Quick answer: Unity VFX Graph event payload types becoming Object in cooked builds? Strict type info erased by serialization - declare event types explicitly in the asset.
Editor: event payload is Vector3. Built player: same payload is Object; shader reads garbage.
Declare event payload type
VFX Graph blackboard > event > Type. Explicit Vector3 (not default Object). Serializer preserves.
Verify at runtime
Inspect the VFX component's event attributes panel. Stored type should match authoring.
Re-import after edits
VFX assets cache; re-import after type changes. Otherwise the cache holds the old type.
“VFX Graph types must be explicit. Implicit = runtime Object.”
When authoring VFX events, set types explicitly in the asset. Catches the build bug before it ships.