ItemHighlighter features

Your color, on your items, everywhere you look at them.

Where highlights show up

The texture, not the slot

The highlight hugs the item's opaque texels: the tint lands only where the sprite is solid, a crisp border sits on transparent texels directly touching the item, and one soft halo ring sits a texel further out. Empty sprite corners are never painted, so a diagonal sword gets a diagonal glow instead of a box. Items whose shape cannot be read (3D models) fall back to a tight sprite-edge border.

Per type by default, exact if you ask

Highlights persist

Highlights live in config/itemhighlighter_data.json (up to 256 items, oldest dropped first) and survive restarts. Entries created in one matching mode only match in that mode, except component-less items whose keys are identical either way.

What it never does

Performance

Item shape masks are resolved once per item type and cached. The world glow syncs once per client tick and restores anything it touched when highlights are removed or disabled. Every render and tick hook is guarded so a failure can never crash the frame.