Files
benilla-octo/docs
gromandClaude Opus 5 aeba81ec2e creature_anim: SuperWoW's LootSparkle, the sparkle on lootable treasure
1.12 sparkles a lootable corpse and nothing else — a chest, a herb, a vein or a
quest object is found by eye. Sparkling those arrived in 2.3.0 ("interactable
game objects sparkle and display their names") and SuperWoW backports it as
`LootSparkle`, which upstream describes as "the sparkling effect on lootable
treasure". So on this install the sparkle appears on mobs and not on objects,
which is what was reported.

`arm_loot_fx` grows a GameObject arm beside its unit and corpse ones, hanging the
same "HARDCODED Loot Art" row (0x13) at the same tag, driven by the same field
edges. The three-way decision is a named predicate with a test, because a corpse
falling into the unit arm would read its CORPSE_* bytes as a live unit's, and
because the switch being off has to answer *exactly* 1.12 rather than
approximately it.

The object test has two arms, because the mod's own phrase is "lootable treasure"
and neither arm alone is that:

- `GO_DYNFLAG_LO_ACTIVATE`, the server's per-viewer bit, documented on its own
  field reader as "the sparkle". But vmangos raises it through
  `GameObject::ActivateToQuest`, so on a chest it means *quest* loot: an ordinary
  chest, herb or vein need never carry it, and keying on it alone risks lighting
  up nothing but quest objects.
- `GAMEOBJECT_TYPE_CHEST`, which is exactly chests, herbs and mining nodes —
  treasure by construction, and a type the client reads without the server's
  help. Excluded when `GO_FLAG_IN_USE` or `NO_INTERACT` is set, so an emptied or
  disabled chest stops sparkling.

Both arms are a judgement about what the mod does rather than a trace of it —
there is no source and no published default — so they are written to be read and
corrected, and the predicate's own doc says which symptom indicts which arm: only
quest objects lighting up means the first is doing all the work, doors and signs
lighting up means the second is too wide.

Defaulted on: upstream publishes no default, and the sparkle is present on this
install with SuperWoW loaded, which is what "as if its own default config loaded"
means for this compat layer. `SetCVar("LootSparkle", "0")` is stock 1.12.

**Not verified in world.** The harness has no scene, so the test covers the
decision and not the rendering.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
2026-10-17 09:04:37 -06:00
..