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
  • original is 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.