Localization
Multi-language support
Included Languages
| Code | Language |
|---|---|
en | English |
es | Spanish (Español) |
fr | French (Français) |
pt | Portuguese (Português) |
hu | Hungarian (Magyar) |
tr | Turkish (Türkçe) |
de | German (Deutsch) |
it | Italian (Italiano) |
ru | Russian (Русский) |
Changing Language
- Open
/xp→ Settings - Click your preferred language
- Changes apply immediately

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.langfilename 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:
- Navigate to
mods/mmoskilltree/localization/ - Copy
messages-en.jsontomessages-XX.json(e.g.,messages-ja.json) - Translate all values (keep keys the same)
- Run
/mmoconfig reloadlang - 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
| Prefix | Description |
|---|---|
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 reloadlangReload 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