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.

Translation Packs (.lang)

As of v1.1.7, the nine built-in languages ship as native Hytale .lang translation files, and new languages are added the same way — as a small translation pack dropped into your mods directory. This is the recommended way to add or share a language: it is discovered automatically at server start, needs no admin commands, and survives mod updates.

  • Community languages live in the open-source MMO Skill Translations Pack — fork it to contribute a new language.
  • The full authoring guide (the mmoskilltree.lang filename rule, the fallback chain, and the zip gotcha) is on the Translation Packs page.

Prefer to tweak a handful of strings without shipping a pack? Use the per-server admin overridebelow — it layers on top of the packs and always wins.

Admin Override: Custom Translations

Server owners can override or add individual strings on top of the language packs without touching any pack. These overrides live on your server and always win over pack and built-in translations:

  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

  • Resolution order: admin override → translation pack / built-in language → English default
  • Missing keys fall back to English, per-key
  • Players without skill data use English by default
  • Raw keys are never shown to users

Sharing Translations

Override files are portable — share your messages-XX.json with other servers. To publish a full language for everyone, package it as a translation pack or contribute it to the community pack.

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