Quick answer: Unity VFX Graph event attribute set in Spawn Event but read as zero in Initialize? Spawn-context attributes need explicit Set Attribute from Source - the inheritance isn't automatic.
SendEvent with a 'targetPos' attribute. The Initialize particle sets position from targetPos - reads (0,0,0).
Set Attribute from Source
In Initialize, add a Set Attribute From Source node. Source = Event, Attribute = targetPos. Without this node, event attributes aren't visible to Initialize particles.
Or use the spawn context
If the value is per-system rather than per-particle, set the attribute on the Spawn context (not the SendEvent). Spawn-context attributes propagate automatically.
Debug with the Target GameObject panel
The VFX debugger shows event payloads. If targetPos arrives but Initialize reads zero, the source binding is the bug.
“VFX Graph event attributes are explicit. Nothing flows that you don't wire.”
Build a small reusable subgraph that takes a position event and applies it via Set Attribute from Source. Reuse across emitters keeps the wiring consistent.