Skip to content

Key concepts

Open in AI chat

These rules hold for datapacks, KubeJS scripts and addon mods alike. The other pages assume you know them.

  • HBM’s content uses the namespace hbm: hbm:ingot_uranium, hbm:machine_press, hbm:oil.
  • Your content uses your own namespace. Never put files under data/hbm/ to add something; HBM may ship a file at the same path later, and pack order decides which one wins. The exception is a tag file, which merges (see Tags).
  • Machine recipe ids are <namespace>:<table>/<file name>, for example hbm:press/ball_resin for data/hbm/recipe/press/ball_resin.json. You need the id to remove a recipe.
  • “1.7” on this wiki means HBM’s Nuclear Tech Mod for Minecraft 1.7.10, the behaviour NTM - Continuum follows.

NTM - Continuum never saves numeric ids. Fluids, block states, materials and enum values are stored by their registry name or enum name ("hbm:oil", "iron", "high"). For you this means:

  • Fluids are always written as ids: "hbm:hydrogen", "minecraft:water", "minecraft:lava". Water, lava and “no fluid” (minecraft:empty) are vanilla’s own ids.
  • Materials (for the foundry and crucible) are written by name: "iron", "steel".
  • 1.7’s numeric fluid ids and metadata values do not exist in any file format. A 1.7 item family that used metadata values is one item per value here, each with its own id.

Every HBM fluid is also registered as a vanilla Fluid, and any registered fluid works in HBM’s ducts, tanks and recipes. A fluid made by another mod, or by KubeJS, is an HBM fluid as soon as it exists. A datapack can give it HBM properties (temperature, traits, hazards) with a fluid_property file. See Fluids.

Quantity Unit
Fluid amounts millibuckets (mB); 1000 mB is one bucket. Fabric’s own fluid API counts droplets (81 per mB); HBM converts at the boundary, so you never write droplets.
Power HE, HBM’s energy unit. In the recipe-module machines (assembler, chemical plant and the others that share the common fields), power is HE per tick.
Time ticks, 20 per second (duration, effect durations, delays).
Temperature °C (temperature in fluid properties).

Ingredients may name an item tag with #, like #c:ingots/lead. HBM uses the common c: convention tags on every loader. On 1.20.1 Forge, HBM also publishes its c: tags under forge: and points its crafting recipes at those, but machine recipes and data maps still read c:. See Tags.

When two packs ship a file at the same path, one of two things happens:

  • Merge: every pack’s copy is read and combined. Data maps, item pools and vanilla tags work this way.
  • Replace: only the highest-priority pack’s copy is read. Everything else works this way: recipes, fluid property files, fallout transform files, removal lists and patches.

Pack order between mods is not the same on every loader (on Fabric 1.20.1 it follows the mod list), so never rely on replacing another mod’s file. Change it from your own namespace instead: a removal list for recipes, a patch for fluids and data maps, or a merging file. Files under your own namespace never collide with anyone else’s. The datapack overview lists every folder and how it combines.

Some HBM recipes only exist under a config option from 1.7’s config/hbm.cfg (for example 528 mode, expensive mode or LBSM, “less bullshit mode”). A machine recipe states this with a requires field where its table has one; any other recipe file (crafting, smelting, or a table without that field) uses a top-level golem:requires list. Machine tables re-test their rows when the config changes; golem:requires is checked at each datapack load, so run /reload after changing the config. See Requires and golem:requires.

The mod is written once against 26.1 and built for 1.21.1 and 1.20.1 through Golem Core. HBM’s own data formats (machine recipes, data maps, fluid properties, item pools, fallout rules) are the same on all targets. Only vanilla’s and the loaders’ own formats differ by version:

26.1 1.21.1 1.20.1
Data pack format min_format/max_format 101 pack_format 48 pack_format 15
Recipe folder recipe/ recipe/ recipes/
Other vanilla folders singular (loot_table/, tags/item/) singular plural (loot_tables/, tags/items/)
Vanilla crafting ingredient "minecraft:stick" {"item": "minecraft:stick"} {"item": "minecraft:stick"}
Item stack extra data components components NBT tag
Convention tag namespace c: c: c: (Fabric), forge: and c: (Forge)

The datapack overview has the full folder list, and Removing recipes has the loaders’ load conditions, which also differ per loader.