Quick answer: Unity VFX Graph custom buffer binding persisting across prefab instances? Buffer is shared by default - clone the asset or use a per-instance buffer set in script.
Two enemies share the same VFX prefab. Killing one applies its trajectory data to the other's effect.
Use ExposedProperty per instance
vfx.SetGraphicsBuffer(
"path", perInstanceBuffer);Set per instance at spawn. The exposed property accepts a different buffer per VFX component.
Or instance the VFX asset
For complex separation, Instantiate the VisualEffectAsset itself. Heavier; gives full isolation.
Audit shared state
VFX Graph parameters default to per-instance; buffers default to shared. Mixed shared/per-instance state is where bugs live.
“Buffers in VFX Graph are bindings, not values. Shared bindings share state.”
Set the convention at the start of a project: every VFX gets per-instance buffers. The discipline saves an entire class of bug later.