codeAPI Reference

Sandbox.ParticleEffect

calendar_today May 3, 2026 schedule ~1 min read person patrickjr verified 50

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

PropertyDescription
ParticleThe particle system asset
LoopedAuto-restart when finished
PlaybackSpeedSpeed multiplier
SimulateInLocalSpaceUse 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?