Back to News

docs: document MsgMagicEffect 1105 visual pipeline RE

•By Moh•changelogdawn
Changelog

- Add reverse_engineered.md section 47 covering the full

CMsgMagicEffect_Process -> CMsgMagicEffect_DispatchVisual ->

CMagicEffectNewArrow_ctor pipeline. Twelve subsections:

packet field layout, the Process call flow with the

CMagicData_FindSpell gate, the caster-only PlaySpellAnimationOnSelf

hot path, the full ClientRepresent (property 10) -> effect file

case dispatch table for sub_95B2DD, the case 97 NewArrow observer

filter root cause + 1-byte fix, why MagicEffect.ini edits did not

fix it, the off_CC8B08 property name table dump (46 entries),

the IsAOEHaloSpell hardcoded allowlist, an SQL cross-check showing

LevelHu2 is universally 0 in the reference DB so matching it is

parity-only and not a fix for observer-blindness, and a complete

binary address table

- Rewrite PACKET_MIGRATION_6609.md section 2.3 (MsgMagicEffect 1105)

with the binary-verified layout. Document the per-target stride

bug, the Eff2 typo, and the SpellEffect = 1 footgun that were

fixed during the RE work. Note the new IReadOnlyList

API. Cross-link to reverse_engineered.md section 47 for the

case 97 client patch

- Rewrite the stale 03_PACKETS/Combat.md MsgMagicEffect section

(was: 12-byte targets, max 55, count at offset 16) with the

actual 6609 layout, the per-target slot table, the new MagicTarget

struct API note, and warnings about the SoulLevel byte and the

case-97 filter