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.

Related reading