Skip to content

Users Loot Info Configuration

Yanny edited this page Oct 7, 2026 · 12 revisions

Configuration

The configuration file lives in the standard config directory, in the ali folder:

config/ali/ali_common.json

It is created with defaults on first start. It is a common config: on a dedicated server the server's copy decides what is scanned and what is sent to clients.

Changes take effect on restart — the file is read once while the mod starts.

JSON Schema

A JSON Schema is published so editors such as VS Code or IntelliJ can validate and autocomplete the file while you type: https://github.com/yanny7/AdvancedLootInfo/blob/master/ali_config.schema.json

Config version and migration

configVersion marks the format the file was written in (current: 2). When ALI finds an older value, it renames the file to a backup named after the time it was made, such as ali_common.json.2026-10-06_14-30-05.bak, and writes a fresh default file — so your edits are not migrated, they are preserved only in the backup. Earlier backups are never overwritten. After a mod update that bumps the version, re-apply your changes on top of the newly generated file.

When the version is current, every option missing from the file is added to it with its default value on start, so options introduced by an update show up in your file. Your values, and keys ALI does not know, are left as they are; entries are never added to lists, so a category you removed stays removed.

Options

Option Type Default Meaning
configVersion int current version Format marker, see above. Do not hand-edit.
blockCategories list see Loot Categories Categories for block loot.
entityCategories list see Loot Categories Categories for entity (mob) loot.
gameplayCategories list see Loot Categories Categories for gameplay loot tables (chests, fishing, bartering, …).
tradeCategories list see Loot Categories Categories for trades, matched against the trader ID — villager professions, minecraft:wandering_trader and modded traders alike.
disabledEntities list of IDs empty Entities that are skipped while gathering loot tables. Use it for entities that crash or misbehave when ALI touches them.
tooltipColors object see below Colors of the tooltip text, values, errors, tree arrows, most likely values and enchantment levels.
logMoreStatistics boolean false Logs extra statistics about the scanned loot tables. Debug aid.
showInGameNames boolean true true shows translated names of items/blocks/effects, and of IDs and tags that have a translation (see IDs and tags); false shows raw IDs (minecraft:diamond).
hideDefaultBlockLoot boolean true Hides blocks whose loot table only drops the block itself, unless a global loot modifier or a fake loot table adds something to it. Auto-detected global loot modifiers do not count.
defaultBlockLootConditions list of IDs minecraft:survives_explosion Loot conditions that still count as "default drop" for hideDefaultBlockLoot.
defaultBlockLootFunctions list of IDs minecraft:explosion_decay Loot functions that still count as "default drop" for hideDefaultBlockLoot.
ignoredPredicateConditions list of IDs minecraft:random_chance, minecraft:random_chance_with_enchanted_bonus, minecraft:table_bonus, minecraft:survives_explosion Conditions that do not count as "this drop is conditional", so they leave the item's slot uncolored.
showUnboundedGlobalLootModifiers boolean false Shows global loot modifiers that no page selects — the ones deciding at runtime what they apply to. See Global Loot Modifiers.
showEntitiesWithoutLoot boolean false Also lists mobs that spawn naturally but drop nothing, so where they spawn can be looked up. See Interface.
spawnInfo object see below Which mobs show where they spawn naturally. See below and Interface.
showCharts boolean true Draws a small chart under numbers that have a most likely value. See Interface.
entityLootTables map: entity ID → list of loot table IDs empty Declares which loot tables an entity drops, for the rare entity whose table cannot be derived from its ID. See below.

On Minecraft 1.20.1 the default of ignoredPredicateConditions uses minecraft:random_chance_with_looting instead of minecraft:random_chance_with_enchanted_bonus, because that is the vanilla condition on that version.

Example: only IDs, extra logging, one entity skipped

{
  "configVersion": 2,
  "disabledEntities": [
    "somemod:crashing_entity"
  ],
  "logMoreStatistics": true,
  "showInGameNames": false
}

Every field is optional — anything you leave out falls back to its default, so a small file like the one above is valid, and ALI then writes the omitted options into it with their defaults. Note that omitting the category lists means "use the built-in defaults", not "no categories".

A value that cannot be read — a wrong type, a malformed ID, a block, entity or item that no installed mod adds, an invalid regular expression — is ignored, and the log says so: an option falls back to its default, an invalid entry is left out of its list, and a category that cannot be read at all (for example one whose icon does not exist) is left out of its category list on its own.

On Minecraft 1.20.1 only unknown block and entity IDs in a category are left out like that; most other values that cannot be read make the whole file fall back to its defaults, and the log names the error.

Example: stop hiding self-dropping blocks

{
  "configVersion": 2,
  "hideDefaultBlockLoot": false
}

With hideDefaultBlockLoot enabled (the default), a block like Cobblestone — which simply drops itself, guarded by survives_explosion and explosion_decay — gets no loot entry in the viewer, because it carries no information. As soon as anything else touches its table (an extra drop, another condition, a global loot modifier, a fake loot table), it shows up again. An auto-detected global loot modifier (one ALI shows only as its raw data) does not count here, since it cannot tell whether that modifier really changes the block's drops.

Loot pools that contain no drops at all do not count against this. Some mods add such empty pools to every block table; since they can never produce an item, they are ignored when deciding whether a block only drops itself.

spawnInfo — which mobs show their spawns

Key Default Meaning
entities empty Mobs whose spawn info is hidden — or, with whitelist, the only mobs whose spawn info is shown.
whitelist false Turns entities from a blacklist into a whitelist.

Useful when another mod changes or disables natural spawning, so the vanilla spawn rules ALI shows would be wrong. To turn spawn info off for every mob, use a whitelist with no entries:

{
  "configVersion": 2,
  "spawnInfo": {
    "entities": [],
    "whitelist": true
  }
}

To show it only for a few mobs, list them in that whitelist instead. A mob that drops nothing is listed by showEntitiesWithoutLoot only for its spawn info, so when that spawn info is hidden, the mob is not listed either.

Which side reads which option

The loot scan runs on the server, so when you play on a dedicated server, that server's file decides what data exists at all: disabledEntities, entityLootTables, hideDefaultBlockLoot with its two lists, spawnInfo, and which categories are scanned. Your own file still controls how the received data is presented — which category an entry is filed under, whether a category is hidden, showInGameNames, ignoredPredicateConditions, tooltipColors and showCharts. showEntitiesWithoutLoot needs both: the server's file decides whether mobs without loot are sent, your own whether they stay listed. In single player both roles are served by the same file.

tooltipColors — tooltip colors

Tooltip lines are drawn in these colors, all of which can be changed:

Key Default What it colors
text gold Names of the rows — the key, the label, the trailing colon.
value aqua The values themselves — numbers, ranges, item and block names.
error red Values of a row that could not be read properly.
branch dark_gray The -> arrows that draw the tree.
secondary gray Extra information after a value, such as its most likely value (~2 (42%)).
levels green, yellow, light_purple, blue, red, gold A list: the enchantment level rows of a number and their part of its chart, in order — the first level gets the first color. With more levels than colors the list starts over.

Each color is either a vanilla color name (black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white) or a hex color code such as #FFAA00. A value that is neither is ignored — that one color falls back to its default and the log says so. In levels an invalid entry is just left out of the list; an empty list falls back to the default list.

{
  "tooltipColors": {
    "text": "yellow",
    "value": "white",
    "error": "dark_red",
    "branch": "#404040",
    "secondary": "dark_gray",
    "levels": ["#55FF55", "#FFFF55", "#FF55FF"]
  }
}

Keys you leave out keep their default. This is a client-side setting: it changes only how the tooltips are drawn on your own screen, never what a server sends.

entityLootTables — attributing a loot table to an entity

ALI works out which entity a loot table belongs to from the table's ID: entities/<entity id>, or a path one segment below it (that is how the per-color sheep tables work). A table whose ID matches neither still gets resolved, but only through a much slower search, which the server log reports:

Loot table <id> belongs to no entity by its id, had to create N entities of <namespace> to find out (Xms).
Declare it in the entityLootTables configuration to skip this.

entityLootTables is that declaration. It maps an entity type ID to the loot tables it drops:

{
  "configVersion": 2,
  "entityLootTables": {
    "examplemod:golem": [
      "examplemod:loot/golem_core",
      "examplemod:loot/golem_scrap"
    ]
  }
}

Notes:

  • Entries here are applied first and win over anything derived, so this is also the fix for a table attributed to the wrong entity.
  • The table ID does not have to live under entities/ — any loot table ID works.
  • An unknown entity ID is skipped with a warning in the log.
  • You only need this for entities whose loot table follows no convention. Vanilla never needs it.

Categories

Category definitions are the largest part of the file and have their own page: Loot Categories.

Clone this wiki locally