Skip to main content

Item Overrides

Overrides let you customize how specific items, tags, mods, or rarities appear in the pickup HUD. Each override is a JSON rule that can change an item's sound, text, background, visual effects, duration, and more.


Override Files

  • Stored in config/lootlog/overrides/
  • Any .json file in this directory is loaded automatically
  • Files starting with _ are skipped (use for examples/notes)
  • Reload with /lootlog reload

Match Types

TypeFormatExampleDescription
itemRegistry IDminecraft:diamondMatches a specific item
tagTag IDc:oresMatches all items with this tag
modMod namespacecreateMatches all items from this mod
rarityRarity name (lowercase)epicMatches all items of this rarity
regexRegex patternminecraft:.*_ingotFull match against item registry ID

Priority System

When multiple overrides match the same item, they are merged in priority order (lowest to highest):

  1. mod — Broadest scope, lowest priority
  2. rarity — Matches by item rarity tier
  3. regex — Pattern-based matching
  4. tag — Tag-based matching
  5. item — Exact item ID, highest priority

Higher-priority overrides win for any field they define. Fields left null inherit from the next lower-priority match or from global config.

note

Within the same match type, use the behavior.priority field to control ordering. Higher numbers take precedence.


Override Structure

Full JSON structure with all available fields:

{
"overrides": [
{
"match": {
"type": "item",
"id": "minecraft:diamond"
},
"sound": {
"soundId": "minecraft:entity.player.levelup",
"volume": 0.6,
"pitch": 1.5
},
"background": {
"style": "BANNER",
"decoration": "gilded",
"color": "AA000000",
"texture": "lootlog:textures/gui/lootlog/custom_bg.png",
"textureWidth": 256,
"textureHeight": 12,
"renderMode": "STRETCH",
"sliceBorder": 4,
"layers": [
{
"texture": "lootlog:textures/gui/lootlog/banner_body.png",
"tint": "FFFFFFFF",
"alpha": 1.0,
"animSpeed": 4
},
{
"texture": "lootlog:textures/gui/lootlog/banner_accent.png",
"tint": "FFFFFFFF",
"alpha": 1.0,
"anchor": "ICON",
"xOffset": 0,
"yOffset": 0,
"visible": true
}
]
},
"text": {
"markup": "<rainbow f=2.0>{name}</rainbow>",
"color": "B9F2FF",
"prefix": "[Rare] ",
"suffix": " !",
"fullName": "Shiny Diamond"
},
"display": {
"durationMs": 8000,
"scale": 1.2,
"combineMode": "NEVER"
},
"visual": {
"iconGlow": {
"color": "AAFFFFFF",
"radius": 4,
"shape": "circle",
"softness": 1.5,
"pulse": {
"speed": 2.0,
"min": 0.5,
"max": 1.0
}
},
"iconShadow": {
"color": "80000000",
"offsetX": 1,
"offsetY": 1,
"radius": 1,
"shape": "item",
"softness": 1.5
},
"pickupPulse": {
"enabled": true,
"durationMs": 300,
"iconScaleStrength": 0.1,
"overallScaleStrength": 0.1
}
},
"layout": {
"iconEnabled": true,
"nameEnabled": true,
"pickupCountEnabled": true,
"totalCountEnabled": true,
"iconOffsetX": 0,
"iconOffsetY": 0
},
"behavior": {
"priority": 5,
"forceShow": false
}
}
]
}

match (required)

FieldTypeDescription
typeStringMatch type: item, tag, mod, rarity, or regex
idStringThe identifier to match against

sound

FieldTypeDefaultDescription
soundIdStringGlobal settingMinecraft sound resource location
volumeFloatGlobal settingVolume (0–1)
pitchFloatGlobal settingPitch (0.5–2)

text

FieldTypeDescription
markupStringText with {name} placeholder for item name. Supports EmbersTextAPI tags
colorStringHex color (RGB or ARGB) for item name text
prefixStringText prepended to the item name
suffixStringText appended to the item name
fullNameStringComplete replacement for the item name

display

FieldTypeDescription
durationMsLongOverride display duration in milliseconds
scaleFloatOverride entry scale
combineModeStringOverride stacking: ALWAYS, NEVER, or EXCLUDE_NAMED

background

FieldTypeDescription
styleStringBackground style: NONE, SOLID, TOOLTIP, TEXTURE, BANNER, FLAT
decorationStringNamed decoration preset (e.g., default_banner, gilded, ribbon)
colorStringBackground color (hex ARGB) for SOLID and FLAT styles
textureStringNamespaced texture path (e.g., lootlog:textures/gui/lootlog/popup_bg.png)
textureWidthIntegerSource PNG width in pixels
textureHeightIntegerSource PNG height in pixels
renderModeStringSTRETCH (banner-style) or NINE_SLICE (scalable with preserved borders)
sliceBorderIntegerBorder size in pixels for 9-slice rendering
layersArrayMulti-layer banner definition — see Backgrounds Guide
animationObjectSpritesheet animation for TEXTURE backgrounds

Decoration vs. layers: Setting decoration applies a named preset that configures layers automatically. Setting layers directly gives you full control over each layer's texture, tint, opacity, animation, and positioning. If both are set, layers takes precedence.

Animation sub-object (for TEXTURE style):

FieldTypeDescription
animation.typeStringAlways "spritesheet"
animation.framesIntegerNumber of frames in the vertical spritesheet
animation.frameTimeMsIntegerMilliseconds per frame
animation.interpolateBooleantrue = cross-fade, false = hard cut

For creating your own textures, see the Custom Textures Guide.


visual

Contains iconGlow, iconShadow, and pickupPulse sub-objects. See Icon Effects Guide for details.


layout

FieldTypeDescription
iconEnabledBooleanShow/hide the item icon
nameEnabledBooleanShow/hide the item name
pickupCountEnabledBooleanShow/hide the pickup count (+3)
totalCountEnabledBooleanShow/hide the inventory total (x64)

behavior

FieldTypeDescription
priorityIntegerPriority within the same match type. Higher wins
forceShowBooleanIf true, bypasses all blacklist/whitelist filtering