Skip to main content
Version: 6.0.x

Loot

Loot has no field of its own. A locked item is kept out of chest loot and mob drops by the loot action, which — like every other action — is on unless an entry narrows it away:

{
"items": [
"minecraft:diamond",
{ "id": "minecraft:emerald", "unlock_actions": ["loot"] }
]
}

Diamonds will not appear in loot while the stage is locked. Emeralds still will, because loot is listed as an action that stays free.

What happens to the filtered slot — empty, or something else in its place — is a server-wide decision in gameplay.toml.

In the editor

There is no Loot tab, because loot is not a category of its own. Right-click an ordinary item, tag or mod entry and pick Lock Actions; loot is one of the tick boxes in that popup, alongside use, pickup and the rest.

Replacement is server-wide and lives in the Common tab of the Config Editor under loot_replacements.

Chest loot goes through Lootr

This is why Lootr is a required dependency. A vanilla container is shared: one roll, one inventory, whoever opens it first takes what is there. That cannot be filtered per player. Lootr gives every player their own view of a container, and the filter runs while that view is being rolled — so each player gets a copy matching their own stages.

Because the filter sits at roll time rather than at open time, it covers every Lootr container in one go, including the ones that never open a menu at all: the decorated pot and the suspicious sand or gravel a player brushes.

Loot rolled before the lock does not disappear

A container that was already rolled for a player keeps what it holds, even if a stage is locked afterwards. This is deliberate. Inside a Lootr inventory, loot and whatever a player put in themselves are indistinguishable, so a hook that cleaned out locked items on open would also throw away their own belongings.

Mob drops are not symmetrical with chest loot

A mob drops one shared set of items into the world — there is no per-player copy to filter. So drops are judged against the killing player:

  • Killed by a player → that player's stages decide.
  • Killed by anything else (a fall, another mob, a cactus) → only global stages apply, since there is nobody to ask.
Known collateral damage

If a player without the stage lands the kill, the item is gone for everyone standing there — including teammates who have unlocked it. There is no way around this without a per-player copy of a world item, so it was accepted rather than solved. Turn lockLoot off under [individual_stages] if a pack would rather not have it.

Replacing instead of removing

By default a locked entry is simply removed from the loot. A pack can put something else there instead:

SettingDefaultWhat it does
useReplacementsfalseTurn replacement on. Without it, locked loot is removed.
replacementItems[]Item ids to pick a random replacement from. Checked first.
replacementTags[]Item tags to pick from, used when replacementItems is empty or exhausted.

gameplay.toml

Both chest loot and mob drops honour replacementTags. That was not always true — mob drops used to read replacementItems only.

The switches

SettingBlockDefaultWhat it governs
lockMobLoot[gameplay]trueRemove globally-locked items from mob drops.
lockLoot[individual_stages]trueApply individual stages to Lootr containers and mob drops.
dropOnRevoke[individual_stages]trueDrop locked items out of a player's inventory when their individual stage is revoked.

dropOnRevoke is the other half of the story: it is what happens to items a player is already holding when a stage is taken away from them, rather than what happens when loot is generated. The same scan runs on login, which is how items that became locked while a player was offline are caught.

Global or individual

Both. Chest loot works per player because of Lootr; mob drops work per player only as far as the killer can be identified.

See also

Something wrong or missing here? Ask on Discord · Open an issue