Language
Configuration reference for lang.json.
Introduction
The Language configuration file (lang.json) contains all messages, embeds, and text strings used by Athena Bot. This file allows you to customize every message the bot sends, translate the bot to other languages, or adjust wording to match your server's style.
File Structure
The language file is organized into several main sections:
{
lang: {
// Simple text strings
unexpected_command_error: "...",
no_reason_provided: "...",
},
embeds: {
// Embed configurations
help_default: { ... },
ping: { ... },
},
warnings: {
// Warning/error messages
no_permission: "...",
},
interaction_names: {
// Command and option names
}
}Available Placeholders
Finding Placeholders
Each embed and message configuration lists its available placeholders in a comment above it:
// Placeholder: %bot_latency%, %ws_latency%, %api_latency%, %request%
ping: {
description: "Bot latency: %bot_latency%ms",
}The comment shows which placeholders you can use for that specific message.
Global Placeholders
These placeholders work in all embed configurations throughout the file:
%custom_emoji_% - Custom emojis (e.g., %custom_emoji_28%)
%user% - Username
%user_display% - Display name
%user_id% - User ID
%user_mention% - User mention (@user)
%user_icon% - User avatar URL
%user_created% - Account creation date
%user_created_formatted% - Formatted creation date
%user_joined% - Server join date
%user_joined_formatted% - Formatted join date
%guild% - Server name
%guild_id% - Server ID
%guild_icon% - Server icon URL
%random_int_% - Random integer (e.g., %random_int_100%)
%random_string_% - Random string (e.g., %random_string_8%)
%current_date% - Current date (YYYY-MM-DD)
%current_time% - Current time (HH:mm)
%current_time_seconds% - Current time (HH:mm:ss)
%current_datetime% - Date and time (YYYY-MM-DD HH:mm)
%current_iso% - ISO format date (2025-06-02T00:00:00Z)
%bot_user% - Bot username
%bot_user_id% - Bot user ID
%bot_user_mention% - Bot mention
%bot_user_icon% - Bot avatar URLNote: Global placeholders can be used in any message or embed. Specific placeholders (listed above each configuration) only work in their designated messages.
Configuring Embeds
Basic Embed Structure
Embeds under the embeds section support the full Discord embed JSON format. Here's how to configure an embed:
// Placeholder: %bot_latency%, %ws_latency%, %api_latency%, %request%
ping: {
title: "🏓 Pong!",
description: "Bot Latency: **%bot_latency%ms**\nWebSocket: **%ws_latency%ms**\nAPI: **%api_latency%ms**",
color: "#00FF00",
thumbnail: {
url: "%bot_user_icon%"
},
footer: {
text: "%guild% - Requested by %user%",
iconURL: "%guild_icon%"
},
defaultTimestamp: true,
}Available Embed Properties
You can use any Discord embed property in JSON format:
Basic Properties:
title- Embed titledescription- Main embed textcolor- Hex color code (e.g.,"#FF0000") or decimal numberurl- URL when clicking the title
Image & Thumbnail:
thumbnail: \{ url: "..." \}- Small image in top-rightimage: \{ url: "..." \}- Large image at bottom
Author:
author: {
name: "Author Name",
iconURL: "https://...",
url: "https://..."
}Footer:
footer: {
text: "Footer text",
iconURL: "https://..."
}Fields:
fields: [
{
name: "Field Title",
value: "Field content",
inline: true
},
{
name: "Another Field",
value: "More content",
inline: false
}
]Special Properties:
defaultTimestamp: true- Adds current timestamp to embedguildIcon: true- Uses server icon in footer
Example: Customizing the Help Embed
Here's an example of customizing the help command embed:
help_default: {
title: "📚 %guild% - Command Help",
description: "Welcome to the help menu, %user%!\n\nUse the buttons below to navigate through different command categories.\n\n**Your Highest Role:** %highest_role%",
color: "#5865F2",
thumbnail: {
url: "%guild_icon%"
},
footer: {
text: "Requested by %user%",
iconURL: "%user_icon%"
},
defaultTimestamp: true,
}Simple Text Strings
Not all messages use embeds. Simple text strings are configured under the lang section:
lang: {
unexpected_command_error: "An **error** occurred while executing __command__ ``%command%``",
no_reason_provided: "No reason provided",
modal_placeholder: "Enter a value...",
left_guild: "User left guild",
}These are plain text strings (with optional Discord markdown formatting) that can include placeholders where specified.
Warning Messages
The warnings section contains error and warning messages:
warnings: {
no_permission: "%user%, you **don't have** __permission__ to use this ``command``",
cooldown: "%user%, please **wait** ``%time%`` before using this ``command`` again",
}These follow the same format as simple text strings but are used for errors and warnings.
Best Practices
Customization Tips:
- Test changes - Edit one message at a time and test before making more changes
- Keep placeholders - Don't remove placeholders unless you're sure they're not needed
- Maintain formatting - Keep Discord markdown (
**bold**,__underline__,code) for consistency - Use global placeholders - Add server branding with
%guild%,%guild_icon%, etc. - Check syntax - Invalid JSON will cause the bot to fail loading the config
- Backup first - Save a copy of the original file before making changes
Common Mistakes:
- Removing required placeholders (e.g., removing
%user%from a user-specific message) - Invalid JSON syntax (missing commas, quotes, brackets)
- Using placeholders that don't exist for that message
- Breaking Discord's embed character limits (title: 256, description: 4096, field value: 1024)
Example: Complete Custom Embed
Here's a fully customized embed using multiple properties:
server: {
title: "📊 Server Information",
description: "**%guild%** Statistics",
color: "#5865F2",
thumbnail: {
url: "%guild_icon%"
},
fields: [
{
name: "👥 Members",
value: "Total: **%members%**\nOnline: **%online%**\nBots: **%bots%**",
inline: true
},
{
name: "📝 Channels",
value: "Text: **%text_channels%**\nVoice: **%voice_channels%**\nCategories: **%categories%**",
inline: true
},
{
name: "🎭 Roles",
value: "Total: **%roles%**",
inline: true
},
{
name: "👑 Owner",
value: "%owner%",
inline: true
},
{
name: "📅 Created",
value: "%created%",
inline: true
},
{
name: "🚀 Boosts",
value: "Level **%boosts%**",
inline: true
}
],
footer: {
text: "Server ID: %guild_id%",
iconURL: "%guild_icon%"
},
defaultTimestamp: true,
}This creates a rich, informative embed with organized fields, custom colors, and relevant server information.