movblock.mov

Loot, tags and advancements

NTM additions to vanilla loot and advancement data.

These use vanilla datapack formats with the NTM additions described below. The Minecraft Wiki data pack reference covers the base formats.

Loot tables

NTM supplies block, entity and structure loot tables. Use the Minecraft Wiki loot-table reference for the base JSON. A higher-priority file with the same resource ID replaces the complete lower-priority table.

Scaled rolls

The hbm:config_scaled number provider scales its input by the world's loot amount factor:

{
  "type": "hbm:config_scaled",
  "value": 2
}
FieldMeaning and default
typehbm:config_scaled.
valueContext integer provider: an integer, an inline provider object or a provider reference.

The result is:

\max\!\left(1,\left\lfloor\mathrm{value}\cdot\mathrm{amount\_factor}\right\rfloor\right)

amount_factor is a field of the loot world settings, read each time the provider rolls. value is sampled as an integer, so a uniform integer provider lies in [\mathrm{min}, \mathrm{max}] before scaling. The provider may appear as a pool's rolls value. The rest of the pool uses vanilla formats and functions.

Entity enchantment levels

hbm:entity_enchantment_level reads an enchantment level from an entity selected from the loot context, such as the attacker's Looting level.

Container fill policy

FieldMeaning and default
hbm:random_slots​OptionalTop-level loot-table field. When true, container filling uses the policy below; default false.

When a container unpacks a table with hbm:random_slots: true:

  • Each rolled stack keeps its rolled count and goes to a uniformly random slot, replacing that slot's contents, including earlier rolls.
  • A stack larger than its maximum stack size is split into single items, each placed in a random slot.

Zero-count stacks also write to a random slot, clearing its contents. A minecraft:empty entry emits no stack and makes no slot write.

Only the table named by the container is checked; nested minecraft:loot_table entries ignore their own flag. Drops and /loot draw the table normally.

Example: data/example/loot_table/chest.json.

{
  "type": "minecraft:chest",
  "hbm:random_slots": true,
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "minecraft:iron_ingot"
        }
      ],
      "modifier": [
        {
          "type": "minecraft:set_count",
          "count": 16
        }
      ]
    }
  ]
}

NTM chest tables

NTM structures and features store a roll-table ID in each container. A roll table draws one content table. Every shipped chest table sets hbm:random_slots to true.

Table IDContents
hbm:chests/<pool>Content table: one weighted draw, rolls 1. Overriding it changes every container drawing that pool.
hbm:chests/<pool>_<min>_<max>Draws hbm:chests/<pool> a uniform [\mathrm{min}, \mathrm{max}] times; a constant count when equal.
hbm:chests/component/<pool>_<min>_<max>The same count wrapped in hbm:config_scaled.
hbm:chests/component/unscaled/<pool>_<min>_<max>The same count without scaling.

Generated chest selection

The 44 built-in content tables encode their weighted selection as nested minecraft:alternatives entries with minecraft:value_check conditions. To change odds in a copied table, update those selection conditions or replace the pool with a vanilla weighted entry list. Changing leaf weight fields alone leaves the generated branch selection unchanged.

hbm:chests/nuke_fuel now yields hbm:pile_rod_mk2_nu in place of hbm:pile_rod_uranium, and hbm:pile_rod_mk2_ra226be in place of hbm:pile_rod_source. Their count ranges remain 2–5 and 1–2, with weights 3 and 2 respectively.

hbm:chests/vanilla/simple_dungeon fills the library dungeon's chests with one draw of minecraft:chests/simple_dungeon.

Vanilla chest additions

When loot tables load, NTM appends single-item entries to the first pool of five vanilla chest tables. A replacement table receives them only when it has at least the listed number of pools and first-pool entries; otherwise it is left unchanged.

TableMinimum pools / first-pool entriesAdded entries (weight)
minecraft:chests/village/village_weaponsmith2 / 20hbm:armor_polish (3), hbm:bathwater (1)
minecraft:chests/abandoned_mineshaft3 / 6hbm:bathwater (1), hbm:serum (5), hbm:no9 (5), hbm:key_red_cracked (5)
minecraft:chests/simple_dungeon3 / 12hbm:heart_piece (1), hbm:scrumpy (1), hbm:key_red_cracked (5)
minecraft:chests/desert_pyramid3 / 16hbm:heart_piece (1), hbm:scrumpy (1)
minecraft:chests/jungle_temple2 / 13hbm:heart_piece (1)

minecraft:chests/spawn_bonus_chest always receives one extra pool: 10 rolls of hbm:no9 (weight 7) against an empty entry (weight 64).

Tags

Use the Minecraft Wiki tag reference for tag paths, values, and replace. An NTM recipe ingredient refers to an item tag as #example:ingredients; other NTM fields may expect a bare tag ID. Follow the shape documented for that field.

To remove entries contributed by another tag file, use the field for your loader. The generated minecraft:trimmable_armor tag removes NTM items this way:

FabricApplies to NTM 1.0.4 · Fabric.Shown because Both loaders is selected.

fabric:remove is an array of item IDs. See the Fabric tag-removal example.

NeoForgeApplies to NTM 1.0.4 · NeoForge.Shown because Both loaders is selected.

remove is an array of item IDs. See the NeoForge tag reference.

NTM uses tags for recipe inputs, fluid equivalence, biome scopes, damage behavior and other membership policies. Some consumers snapshot tag membership at world load.

Membership tags

NTM code reads these tags. Paths are under data/<namespace>/tags/<directory>/.

TagDirectoryBehavior
hbm:coal_fuelsitemCoal fuel class: +25% burn time in the Firebox, Heating Oven and Iron Furnace. Solid fuels, rocket fuel, coke and briquettes keep their own classes.
hbm:faraday_armoritemMarks armor pieces for Faraday protection. All four slots must hold eligible pieces; positive installed cladding resistance also qualifies a piece.
hbm:no_container_nestingitemRefuses listed items in NTM storage and cargo paths that enforce container-item eligibility.
hbm:mining_laser_worthlessitemDrops the Mining Laser deletes while a Scrap Destroyer Upgrade is installed.
hbm:tool_repair/<item>, hbm:armor_repair/<material>itemAnvil repair materials for NTM tools and armor. <item> is the original repair item's path; <material> is the armor material.
c:dyes/<color>itemColor applied when the item dyes a pylon or connector, Deco Light Emitter or Firework Battery. A minecraft:dye component takes precedence.
c:ores, c:raw_materials, minecraft:logs, hbm:any_taritemSteel Furnace bonus per smelted item, first match in this order: 25% for ores and raw materials, 50% for logs, 50% for tar. Each full 100% adds one more result.
hbm:framed_mesh, hbm:framed_unbobbeditemNTM renderers that display item stacks, such as pedestals, presses and conveyor items, draw hbm:framed_mesh members with their ground model; hbm:framed_unbobbed members omit the bob offset.
hbm:depth_rockblockThe Large Mining Drill stops drilling while a member is in its bore.
c:oresblockBlocks the Large Mining Drill mines as veins when vein mining is enabled and the installed drill bit supports it.
hbm:ancient_tomb_materialblockBlocks kept in the ancient tomb's cladding volume; other non-air blocks there become tomb concrete.
hbm:meteorite_replaceableblockNon-replaceable blocks a deflected meteor's crater may overwrite.
hbm:fbi_breakableblockBlocks FBI Agents break during raids.
hbm:pile/flux_absorberblockStops graphite-pile neutron flux.
hbm:pile/flux_attenuatorblockMultiplies passing graphite-pile neutron flux by 0.25.
hbm:radiation_immuneentity_typeExempts entity types from radiation and neutron contamination.
hbm:endermen_evadedamage_typeNon-projectile damage types an enderman teleports away from instead of taking.
hbm:endermen_cannot_evadedamage_typeProjectile damage types an enderman takes instead of teleporting away.
c:bossesentity_typeThermal sights outline members in orange.
c:no_default_monstersworldgen/biomeBiomes excluded from NTM's added mob spawns.

Item-hazard bindings target item tags such as hbm:hazard/<name>; see Item hazards. Fluid shares name fluid tags; see the Fluid Trait Reference.

NTM's c:<family>/<name> item tags join their parent c:<family> tag for the families dusts, dyed, dyes, gems, ingots, nuggets, ores, raw_materials and storage_blocks. NTM ore and storage blocks are also listed in c:ores/<name> and c:storage_blocks/<name> block tags, which join the c:ores and c:storage_blocks block tags.

Advancements and NTM criteria

The enclosing advancement fields follow the Minecraft Wiki advancement reference. Every trigger accepts the optional vanilla player predicate. An item field is an optional vanilla item predicate applied to the event stack.

TriggerEventAdditional fields
hbm:radiationRadiation sickness at 200 to below 400 RAD (fatal false), or death from at least 1000 RAD (fatal true)Optional level: bounds on the player's RAD; optional boolean fatal
hbm:digammaPlayer digamma set to a positive valueOptional level: bounds on digamma, [0, 1000]; optional fatal; these events report false
hbm:detonationNTM detonationRequired kinds: list of detonation kinds
hbm:smokedPlayer finished smoking an itemitem
hbm:room_openedPlayer opened a Strange Stone with a Red Key or Cracked KeyNone
hbm:particle_producedParticle Detector produced a digamma particle within 100 blocks horizontally and 50 verticallyitem
hbm:item_dissolvedDropped item dissolved in Sulfuric Acid within 10 blocksitem
hbm:item_picked_upItem entity entered the player's inventoryitem
hbm:item_craftedPlayer took a stack from an NTM output slot, or crafted at an NTM anvil (first listed output)item
hbm:orbitSoyuz payload or satellite reached orbit; every player in the dimensionitem: payload or satellite chip
hbm:satellite_actionOrbiting satellite executed its command; every player in the dimensionitem: satellite chip
hbm:boss_killedNTM boss died within its credit radiusRequired kind
hbm:bled_out8 Inch Blade Autoinjector reduced the player's maximum health to 2None
Detonation kindEventCredited players
nukeNuclear explosionEvery player in the dimension, each tick
rbmkRBMK meltdownWithin 50 blocks
zirnoxZIRNOX explosionWithin 100 blocks
watzWatz meltdownWithin 50 blocks
refineryRefinery destroyed directly by a napalm bombletWithin 100 blocks
fluid_tankTank holding a flammable fluid destroyed directly by a napalm bombletWithin 100 blocks
digamma_spearDigamma spear impactEvery player in the dimension
nuclear_creeperNuclear creeper deathWithin 50 blocks
soyuz_exhaustSoyuz launch exhaustEach player hit
Boss kindBossCredit radius
maskmanMask Man100
meltdownMeltdown Elemental leader50
wormBalls-O-Tron Prime200
ufoMartian Invasion Ship200

A minimal advancement for taking paper from an NTM output slot is:

{
  "criteria": {
    "make_paper": {
      "trigger": "hbm:item_crafted",
      "conditions": {
        "item": {
          "items": "minecraft:paper"
        }
      }
    }
  }
}

NTM furnace output slots also fire minecraft:recipe_crafted for the smelting recipes used.

Bobmazon offers are gated by hbm:blastfurnace, hbm:assembly, hbm:chemplant, hbm:desh, hbm:technetium and hbm:hidden. Overriding one changes when its offers unlock; a missing gate advancement keeps them locked.

Damage types

data/<namespace>/damage_type/<path>.json uses the vanilla damage-type schema described in the Minecraft Wiki data pack reference. For example, a shipped type contains:

{
  "exhaustion": 0.0,
  "message_id": "pc",
  "scaling": "never"
}

The resource ID identifies the damage type. message_id selects its death-message family; translated strings are client language resources. Damage tags control properties such as bypass behavior.

Damage-type registry contents load with the world.

Jukebox songs

data/<namespace>/jukebox_song/<path>.json uses the vanilla song schema described in the Minecraft Wiki data pack reference:

{
  "sound_event": "hbm:music.transmission",
  "description": {
    "translate": "jukebox_song.hbm.glass"
  },
  "length_in_seconds": 62.229,
  "comparator_output": 15
}

This is the shipped hbm:glass song record; NTM also ships hbm:lc, hbm:ss and hbm:vc. The song registry loads with the world. The item refers to the song through its vanilla jukebox-playable component.

© 2026 movblock. Original site text is licensed under CC BY-SA 4.0 unless otherwise noted. Built with Fumadocs.

On this page