codeAPI Reference
Sandbox.ParticleEffect
Sandbox.ParticleEffect
Controls particle system playback.
Overview
ParticleEffect is the root component for playing particle effects (.vpcf files).
Setup
CSHARP
var effect = gameObject.Components.Create<ParticleEffect>();
effect.Particle = ParticleSystem.Load("particles/explosion.vpcf");Playback Control
CSHARP
// Start playing
effect.Play();
// Stop (existing particles finish)
effect.Stop();
// Stop immediately
effect.Stop(true);
// Check if playing
bool playing = effect.IsPlaying;Burst Emission
CSHARP
// Emit 10 particles immediately
effect.Emit(10);
// Emit with custom data
effect.Emit(5, new EmitParams { Position = spawnPos });Control Points
Pass data to effects:
CSHARP
// CP0: Position (usually)
effect.SetControlPoint(0, WorldPosition);
// CP1: Direction/velocity
effect.SetControlPoint(1, Vector3.Up * 100);
// CP2+: Additional data
effect.SetControlPoint(2, Color.Red);From Code
CSHARP
// Quick one-shot
Particles.Play("particles/explosion.vpcf", WorldPosition);
// With control point
var effect = Particles.Create("particles/fire.vpcf");
effect.SetControlPoint(0, WorldPosition);
effect.SetControlPoint(1, Vector3.Up * 50); // Upward velocity
effect.Play();Properties
| Property | Description |
|---|---|
| Particle | The particle system asset |
| Looped | Auto-restart when finished |
| PlaybackSpeed | Speed multiplier |
| SimulateInLocalSpace | Use local or world space |
Callbacks
CSHARP
effect.OnFinished += () =>
{
Log.Info("Effect finished");
GameObject.Destroy(); // Auto-cleanup
};Performance
- Particles are CPU-simulated and multithreaded
- Use LOD for distant effects
- Pool frequently used effects
Was this helpful?