Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add playcanvas/skills --skill add-effectsgit clone --depth 1 https://github.com/playcanvas/skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/playcanvas/skills/add-effects)<a href="https://agentmods.dev/skills/playcanvas/skills/add-effects"><img src="https://agentmods.dev/badge/skills/playcanvas/skills/add-effects/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/playcanvas/skills/add-effects"><img src="https://agentmods.dev/badge/skills/playcanvas/skills/add-effects.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00030 | $0.00331 |
| Opus 5.5 | $0.00012 | $0.00132 |
| Sonnet 5.5 | $0.00006 | $0.00066 |
| Haiku 4.5 | $0.00003 | $0.00033 |
Grade A, and why
add-effects scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 24d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to add-effects — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
Effects
Pick the Engine building block first, then adapt its closest official example with
find-examples:
- Particle systems: the
particlesystemcomponent (graphics/particles-*examples). - Custom shading on existing surfaces:
StandardMaterialchunk overrides (override-shader-chunks), or aShaderMaterialwhen the effect needs its own shader pair. - Procedural or per-frame geometry: a runtime-updated
Meshon arendercomponent (graphics/mesh-*examples), orWideLineRendererfor lines with width. - Full-screen effects:
CameraFrame(light-scene). - Gaussian splat effects: the shipped gsplat scripts (
reuse-scripts).
Engine gotchas
CurveSettakes one key array per channel. A flattened array type-checks, then fails at texture upload.- Create emitters and meshes at load and reuse them. Fire an emitter with
reset()thenplay(); one-shots useloop: false. - The first use of a shader stalls a frame. Render each effect once behind a loading screen.
- Animate values with
setParameter, not a per-framematerial.update(). - A lit material on a custom mesh needs normals; otherwise use an unlit material.
Trigger each effect through the app's real inputs, and confirm repeated triggers keep entity counts stable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 24d ago Changed · -62 lines · -9 tokens per session dfdc72e5143f
- 1mo ago Changed · +11 lines 2c0a2b55830b
- 1mo ago First seen · 82 lines · 39 tokens per session scan A 8f76d8bcbfe1
add-effects is a skill published in the GitHub repository playcanvas/skills (30 stars, last pushed 4d ago), licensed MIT. It adds 30 tokens to every session and 331 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to add-effects, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
i4h-workflow-train-rl
Use when training, evaluating, or exporting Workflow policies with online RSL-RL or RLinf, including RL checkpoint and Workflow handoff.
cdf-autonomous-vehicle-dataset-generation
Prepare payloads, run and monitor the Autonomous Vehicle Dataset Generation Airflow workflow, and inspect results for driving-clip retrieval and Cosmos3-Nano variants. Existing clips with no retrieval use cdf-video-data-augmentation; seed-image event or anomaly generation uses cdf-event-video-generation.
game-engine-choice
Use when a game task could run on more than one engine or the repository has no engine yet - read the repo's engine and pinned version, and only for a brand-new game pick one from platforms, 2D/3D, team language, scale and licensing.
game-visual-self-review
Use when you are about to hand off a change a player can see - the exact steps to look at it running (web game in the browser at two viewports plus a seeded Playwright smoke run for input and console errors; engine games through a headless frame capture), the checklist, and how to report what could not be observed.
unreal-gameplay-ability-system
Use when working with Unreal's Gameplay Ability System - when GAS is worth it, where the AbilitySystemComponent lives and how it is initialised on server and client, AttributeSets with correct clamping and replication, GameplayEffects and execution calculations as data, abilities with commit/end, gameplay tags…
bevy-ecs-patterns
Use when writing Bevy (Rust ECS) game code - pin and respect the repo's minor version, plugins/systems/queries/resources, schedules with FixedUpdate and Time, states and run conditions, messages vs observers across versions, required components, testing systems with App::update and a manual time strategy, compile-time…