Localization

Multi-language support

Included Languages

CodeLanguage
enEnglish
esSpanish (Español)
frFrench (Français)
ptPortuguese (Português)
huHungarian (Magyar)
trTurkish (Türkçe)
deGerman (Deutsch)
itItalian (Italiano)
ruRussian (Русский)

Changing Language

  1. Open /xp → Settings
  2. Click your preferred language
  3. Changes apply immediately
Player settings page showing language selection with 9 available languages

Language preference is saved per-player.

Adding Custom Languages

  1. Navigate to mods/mmoskilltree/localization/
  2. Copy messages-en.json to messages-XX.json (e.g., messages-ja.json)
  3. Translate all values (keep keys the same)
  4. Run /mmoconfig reloadlang
  5. New language appears in Settings!

Message Structure

Language files use a flat key-value structure with placeholder support:

{
  "language.name": "English",
  "ui.button.close": "CLOSE",
  "ui.button.back": "< BACK",
  "ui.viewxp.title": "Skill Overview",
  "ui.viewxp.level_prefix": "Lv. {0}",
  "notify.xp_gain": "+{0} {1} XP",
  "notify.level_up": "LEVEL UP! {0} is now Level {1}!",
  "skill.mining": "Mining",
  "reward.stat_health": "Max Health",
  "reward.format.percent": "+{0}%",
  "reward.format.flat": "+{0}"
}

Message Categories

PrefixDescription
ui.*UI labels, buttons, page text
notify.*XP gain, level up, combat notifications
skill.*Skill names
reward.*Reward type names and formats
cmd.*Command responses
cmd.config.*/mmoconfig command messages

Placeholders

Use {0}, {1}, etc. for dynamic values:

  • "notify.xp_gain": "+{0} {1} XP" → "+50 Mining XP"
  • "ui.viewxp.level_prefix": "Lv. {0}" → "Lv. 42"

Hot Reload

/mmoconfig reloadlang

Reload all language files without server restart. New translations take effect immediately.

Fallback Behavior

  • Missing keys fall back to English
  • Players without skill data use English by default
  • Raw keys are never shown to users

Sharing Translations

Language files are portable! Share your messages-XX.json with other servers or contribute to the community.

What's Localized

  • All UI text (pages, buttons, labels)
  • XP and level-up notifications
  • Skill names
  • Reward type names and descriptions
  • Command responses and error messages
  • Settings labels