Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rpg-leveling.zuxaw.com/llms.txt

Use this file to discover all available pages before exploring further.

Messages Language Mapping

File: mods/Zuxaw_RPGLeveling/MessagesLanguageMapping.json This file contains all translatable text strings for the plugin. It was renamed from messages.json in version 0.2.0.

Overview

The file supports full localization and includes messages for:
  • Stat names and descriptions — Health, Stamina, Damage, Defense, etc.
  • HUD messages — Level, XP progress, zone names
  • GUI labels and buttons — Stat allocation, navigation, confirmations
  • Error messages — Invalid commands, permission errors
  • Notification messages — Level up, stat allocation, system messages
  • Command descriptions and responses — Help text, feedback messages

Translation Support

The plugin uses this file to support multiple languages. You can create a full translation by editing all text strings in this file.

Supported Languages

Any language can be supported by editing the text strings. Common translations include:
  • English (default)
  • French
  • Spanish
  • German
  • Portuguese
  • Russian
  • Japanese
  • Chinese
  • And more…

File Structure

The file is organized into logical sections:
{
  "Version": "0.2.0",
  "Stats": {
    "Health": "Health",
    "Stamina": "Stamina",
    "Damage": "Damage",
    "Defense": "Defense",
    ...
  },
  "HUD": {
    "Level": "Level",
    "XP": "XP",
    "Zone": "Zone",
    ...
  },
  "GUI": {
    "Title": "Stats",
    "AllocateButton": "Allocate",
    "ResetButton": "Reset",
    ...
  },
  "Commands": {
    ...
  },
  "Notifications": {
    ...
  }
}

Common Message Keys

Stat Names

{
  "Health": "Health",
  "Stamina": "Stamina",
  "Mana": "Mana",
  "Damage": "Damage",
  "Defense": "Defense",
  "Mining": "Mining",
  "Woodcutting": "Woodcutting",
  "StaminaRegenSpeed": "Stamina Regen Speed",
  "StaminaConsumption": "Stamina Consumption",
  "Ammo": "Ammo",
  "Oxygen": "Oxygen"
}

Stat Descriptions

{
  "HealthDesc": "Increases maximum health",
  "StaminaDesc": "Increases maximum stamina",
  "DamageDesc": "Increases damage to NPCs",
  "DefenseDesc": "Reduces damage taken (%, max 80%)",
  "MiningDesc": "Increases damage to stone/ore blocks",
  "WoodcuttingDesc": "Increases damage to wood blocks"
}

HUD Messages

{
  "Level": "Level",
  "XP": "XP",
  "Zone": "Zone",
  "LevelProgress": "{current} / {required}",
  "ZoneLevel": "Zone {id} (Lvl {min}–{max})"
}

GUI Labels

{
  "StatsGUITitle": "Stats",
  "AllocateButton": "Allocate",
  "ResetButton": "Reset",
  "AvailablePoints": "Available: {points}",
  "MaxReached": "Max reached"
}

Stats GUI — Settings tab (gui tree)

These keys live under the merged gui object in MessagesLanguageMapping.json (same nesting as other GUI strings the plugin writes). Defaults are defined in MessageService.createDefaultMessages(). Custom .ui layouts should leave translatable Text empty and set strings from Java (see StatsGUIPage.appendSettingsTabUi).
KeyPurpose
gui.navigation.settingsSidebar tab label (e.g. SETTINGS)
gui.settings.titleSettings page heading
gui.settings.level_hud_sectionSection title for level HUD options
gui.settings.level_hud_descriptionShort explanation for players
gui.settings.server_hud_disabledShown when EnableHUD is off server-wide
gui.settings.show_level_hudButton to show the level progress HUD
gui.settings.hide_level_hudButton to hide the level progress HUD
gui.settings.notif_section_titleSettings heading for toast/title preferences (only if EnableNotification)
gui.settings.notif_section_introShort intro for that block
gui.settings.notif_xp_titleXP / progression subgroup title
gui.settings.notif_xp_descriptionWhat XP/progression toasts include
gui.settings.notif_passive_titlePassive subgroup title (only if EnablePassiveNotifications)
gui.settings.notif_passive_descriptionWhat passive popups include
gui.settings.show_notificationsGeneric “Show” for notification rows
gui.settings.hide_notificationsGeneric “Hide” for notification rows
Player data keys (in PlayerLevelData, persisted): HideXpProgressNotifications, HidePassiveNotifications.

Notifications

{
  "LevelUp": "Level Up! You are now level {level}",
  "StatAllocated": "Allocated {points} point(s) to {stat}",
  "StatsReset": "Stats reset successfully",
  "MaxLevel": "You have reached the maximum level!"
}

Command Messages

{
  "CommandHelp": "/lvl - Open stats GUI",
  "CommandInfo": "/lvl info - Show your level and stats",
  "NoPermission": "You don't have permission to use this command",
  "InvalidArgument": "Invalid argument: {arg}"
}

Example Translation (French)

Here’s an example of a partial French translation:
{
  "Version": "0.2.0",
  "Stats": {
    "Health": "Santé",
    "Stamina": "Endurance",
    "Mana": "Mana",
    "Damage": "Dégâts",
    "Defense": "Défense",
    "Mining": "Minage",
    "Woodcutting": "Bûcheronnage"
  },
  "HUD": {
    "Level": "Niveau",
    "XP": "XP",
    "Zone": "Zone"
  },
  "Notifications": {
    "LevelUp": "Niveau supérieur! Vous êtes maintenant niveau {level}",
    "StatAllocated": "{points} point(s) alloué(s) à {stat}",
    "StatsReset": "Statistiques réinitialisées avec succès"
  }
}

Placeholders

Many messages support placeholders that are replaced with dynamic values:
PlaceholderDescriptionExample
{level}Player level”You are now level 50
{points}Stat points”Available: 15 points”
{stat}Stat name”Allocated to Damage
{current}Current XP1250 / 2000”
{required}Required XP”1250 / 2000
{min}Min level”Zone 2 (Lvl 25–50)“
{max}Max level”Zone 2 (Lvl 25–50)“
{id}Zone/instance IDZone 3

Creating a Translation

To create a full translation:
  1. Copy the default MessagesLanguageMapping.json file
  2. Translate all text strings to your target language
  3. Keep the JSON structure intact (don’t change keys, only values)
  4. Test in-game to ensure all messages display correctly
  5. Share your translation with the community!

Formatting Tips

  • Keep placeholders intact{level}, {points}, etc. must remain as-is
  • Maintain similar length — Very long translations may not fit in UI elements
  • Use consistent terminology — Use the same word for “level”, “stat”, etc. throughout
  • Test thoroughly — Check HUD, GUI, commands, and notifications

File location and reload

  • Path: mods/Zuxaw_RPGLeveling/MessagesLanguageMapping.json
  • To apply changes without restarting, use /lvl reload (rpgleveling.command.reload). See Configuration Overview.

See Also