HOW IT IS ORGANISED Four independent test cases, one per property. Each case is a matched PAIR: rcbug:uv_anim_entity rcbug:uv_anim_item rcbug:overlay_color_entity rcbug:overlay_color_item rcbug:is_hurt_color_entity rcbug:is_hurt_color_item rcbug:on_fire_color_entity rcbug:on_fire_color_item Within a pair the entity and the attachable are identical in every respect that matters. They share: the same model geometry.rcbug.test, from models/entity/test.geo.json the same texture the same material rcbug_color:entity, or rcbug_uv:entity for the uv_anim case, both modelled on vanilla (see NOTES) the same render controller body, duplicated under two ids Each pair's controller carries exactly ONE of the properties, so a failure cannot be blamed on interaction between them: uv_anim "uv_anim": { "offset": [0, "math.mod(math.floor(query.life_time), 4) / 4"], "scale": [1, 0.25] } overlay_color "overlay_color": { "r": 0, "g": 0, "b": 1, "a": 0.6 } is_hurt_color "is_hurt_color": { "r": 1, "g": 0, "b": 0, "a": 0.8 } on_fire_color "on_fire_color": { "r": 1, "g": 0.4, "b": 0, "a": 0.8 } The ONLY difference within a pair is that one is drawn as an entity and the other as an attachable. STEPS 1. Apply both packs to a world. Creative mode is easiest. 2. Spawn the entity for the case you are testing, with its spawn egg. 3. Give yourself the matching item and hold it. All items are in the Equipment tab. 4. Stand so the entity and your held item are both on screen. WHAT EACH CASE SHOULD SHOW uv_anim The texture is four solid colour bands. The entity cycles red -> green -> blue -> yellow, one band per second. The attachable stays on red forever. overlay_color The texture is neutral grey. The entity is tinted blue. The attachable stays grey. is_hurt_color Damage the entity: /damage @e[type=rcbug:is_hurt_color_entity] 1 It flashes red. Then take damage yourself while holding the matching item: the item does not flash. (which can be understandable) on_fire_color Set the entity alight with flint and steel. It tints orange. Then set yourself alight while holding the matching item: the item does not tint. (which can be understandable) ACTUAL RESULT In every pair the entity honours the property and the attachable ignores it completely. NOTES - The materials are modelled directly on vanilla rather than invented: rcbug_color:entity {} like vanilla creeper:entity rcbug_uv:entity +defines USE_UV_ANIM like vanilla experience_orb:entity `entity` already carries USE_OVERLAY, which is what overlay_color, is_hurt_color and on_fire_color need - vanilla's creeper adds no defines at all and its overlay_color works. USE_SKINNING is deliberately NOT added: entity_static declares it as a VARIANT the engine selects when the geometry has bones, and no vanilla mob material adds it by hand. - `color` is deliberately NOT included, having been tested and dropped. It is not a general render controller tint: the only two controllers in vanilla that use it are the horse's, whose material resolves to ALPHA_TEST, COLOR_SECOND_TEXTURE, USE_MULTITEXTURE, USE_OVERLAY, and whose value comes from query.armor_color_slot - the engine-side plumbing for dyed horse armour. Reproducing that material and its three texture slots exactly, a constant `color` still does nothing on an ENTITY, so there is no working baseline to compare an attachable against. Player leather armour does not use `color` either. Including it would have meant shipping a case whose control does not work.