add-effectslisted
Install: claude install-skill playcanvas/skills
# Effects and game feel
Add transient effects as short-lived, self-owning entities triggered by application events, not as
permanent scene fixtures.
Reuse before authoring. Adapt the closest official particle example with `find-examples`, prefer the
Engine's built-in particle component over a hand-written system, and discover any shipped trail or
effect script with `reuse-scripts`.
Copy particle curve construction from the installed example exactly. `CurveSet` takes one key array
per channel, such as `new CurveSet([0, x0, 1, x1], [0, y0, 1, y1], [0, z0, 1,
z1])`; do not flatten three channels into one array. A malformed curve can type-check and then fail
inside the particle texture upload. Create one emitter, render a frame, and require empty runtime
and console diagnostics before reusing the helper for smoke, spray, or splashes.
For a polished wake, smoke, or spray requirement, do not stop at scaled planes, crossed billboards,
or generic render primitives. Use the built-in particle component for smoke and spray; reserve a
custom mesh and material for a continuously sampled wake ribbon. Verify tint and blending against
the actual scene lighting and surface.
## Place and layer
- Spawn an effect at the emitter's world mount point, either parent it there or copy the world
transform once, and let it destroy itself when finished. Never leak emitters.
- Keep additive or transparent effects above the surface they sit on and biased toward the camera so
they do not z-fight.