Languages Reference
A language file maps translation keys to display text. Every visible string โ item names, descriptions, dungeon titles, skill names โ lives in these files. JSON data files store only the key; the game resolves it to text at runtime.
Files live in: <pack_root>/assets/languages/<locale>.json
Minimum requirement: you must provide at least
en_US.json. The game falls back to it if a key is missing in the player's language.File Format
Language files are structured as sections (top-level keys) containing flat key-value maps:
{
"items": {
"items.materials.mypack.ores.iron": "Iron Ore",
"items.materials.mypack.ores.iron.desc": "A common ore used in basic forging."
},
"skills": {
"skills.category.mypack.crafting.forging": "Forging",
"skills.category.mypack.crafting.forging.desc": "The art of smelting raw ore into metal ingots."
},
"dungeons": {
"dungeons.mypack.pirate.pirates_outpost": "Pirate Outpost",
"dungeons.mypack.pirate.pirates_outpost.desc": "A fortified pirate base in the outer belt."
}
}
Supported Locale Codes
| Filename | Language |
|---|---|
en_US.json | English (US) โ default |
fr_FR.json | French |
de_DE.json | German |
es_ES.json | Spanish |
pt_BR.json | Portuguese (Brazil) |
uk_UA.json | Ukrainian |
zh_CN.json | Chinese (Simplified) |
ja_JP.json | Japanese |
Key Naming Conventions
| Content Type | Pattern | Example |
|---|---|---|
| Material name | items.materials.<pack>.<type>.<id> | items.materials.mypack.ores.iron |
| Material desc | items.materials.<pack>.<type>.<id>.desc | items.materials.mypack.ores.iron.desc |
| Equipment name | items.materials.<pack>.<slot>.<id> | items.materials.mypack.suit.reinforced_suit |
| Skill name | skills.category.<pack>.<category>.<id> | skills.category.mypack.crafting.forging |
| Enemy name | enemies.<pack>.<group>.<id> | enemies.mypack.pirate.raider_frigate |
| Dungeon/Room name | dungeons.<pack>.<group>.<id> | dungeons.mypack.pirate.pirates_outpost |
| Quest name | quests.<pack>.<id> | quests.mypack.my_quest |
| Shop category | shop.category.<pack>.<id> | shop.category.mypack.materials |
| Core systems slot | core_systems.category.<pack>.<entity>.<slot> | core_systems.category.mypack.ship.hull |
Adding a New Language
- Create
assets/languages/fr_FR.json - Copy all keys from
en_US.json - Translate each value โ keep all keys identical
Key Harvesting
The Data Helper auto-collects all displayName and description fields from every editor and adds them to the language table. Keys present in data but missing from a translation file are flagged with a pending badge.