Naming & IDs
Every object in the game is identified by a namespaced ID — a string that combines your pack ID with an object name, separated by a colon.
Namespaced ID Format
pack_id:object_name
For example: stellar_forge:xenite_ore, deep_space_mod:plasma_rifle
Rules for Pack IDs
- Lowercase letters and underscores only
- No spaces, hyphens, or special characters
- Must match the datapack folder name exactly
originalis reserved by the base game — do not use it
Rules for Object Names
- Lowercase letters, numbers, and underscores only
- Must be unique within the same content type inside your pack
- Should be descriptive and stable — changing an ID after release will break saves and recipes referencing it
Why Namespacing Matters
Two different packs can both define an item called iron_ore without conflicting, because they become pack_a:iron_ore and pack_b:iron_ore. The game tracks every object by its full namespaced ID.
Translation Key Naming
Translation keys follow a dotted-path convention that mirrors the content hierarchy:
items.materials.my_pack.ores.uranium
items.materials.my_pack.ores.uranium.desc
skills.category.my_pack.crafting.forging
dungeons.my_pack.reactor.abandoned_reactor
Keep keys consistent and descriptive. They appear as raw strings in the UI if a translation is missing — a useful debugging signal.