smoke

smoke is a skill for Claude Code from ouzlifaneyassine1-dot/onyx-engine. It costs 81 tokens per session (4,576 once invoked), scanned A, a copy of smoke, MIT.

A method for creating soft, rising smoke effects in a game with particles, a shader, and a fading density pattern.

In plain words
What is it for?
Use it for chimney smoke, fire and explosion smoke, rocket trails, steam, smoldering wreckage, or small fog puffs.
Why use it?
It gives smoke a reusable visual treatment for effects that need to drift upward without looking like glowing fire.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions Claude Code; mentions Codex.

Part of the onyx plugin — 77 skills, 1 command, 2 hooks, 1 MCP server shipped together

Good fit Use it for chimney smoke, fire and explosion smoke, rocket trails, steam, smoldering wreckage, or small fog puffs.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ouzlifaneyassine1-dot/onyx-engine/smoke
Install

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.

Any agent
npx skills add ouzlifaneyassine1-dot/onyx-engine --skill smoke
Clone the repo
git clone --depth 1 https://github.com/ouzlifaneyassine1-dot/onyx-engine

Made for: Claude Code.

Or install onyx, the plugin that ships this one along with the rest of its 77 skills, 1 command, 2 hooks, 1 MCP server.

Wrote 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.

agentmods badge for smoke

README.md
[![agentmods](https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/smoke/github.svg)](https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/smoke)
Your own site
<a href="https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/smoke"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/smoke/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.

agentmods 80×15 button for smoke

Your own site · 80×15
<a href="https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/smoke"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/smoke.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 81 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,576 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 86% copy Near-identical to another mod in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00081 $0.04576
Opus 5 $0.00041 $0.02288
Sonnet 5 $0.00016 $0.00915
Haiku 4.5 $0.00008 $0.00458

Measured 8d ago against content hash ec8c3690a52e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

smoke 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 8d 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.

Origin

This is a copy

86% identical to smoke — 131 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.

skills/visual-effects/recipes/smoke/SKILL.md · 382 lines

How it starts

The opening of the file, as written. The whole thing — 382 lines — stays where its author put it; the contents beside it link to each section on GitHub.

smoke — Soft Particle Smoke Plume

Smoke is the same particle pattern as fire — billboard quads emitted from a small disc, drifting upward — except the shader is dim, soft, low-emission, and tinted by depth instead of glowing. Slower spawn rate, longer lifetime, larger end scale. Pair it with fire for any campfire/torch/explosion. Used everywhere: chimney smoke, smoldering wreckage, smoke trails behind rockets, steam from vents, fog clouds.

When to use

  • "Smoke rising from the campfire."
  • "Chimney smoke on the cottage."
  • "Smoke trail behind the rocket."
  • "Steam from the vent."
  • "Smoke from the smoldering wreckage."
  • "Fog cloud at the cave entrance."
  • After spawning fire, smoke almost always belongs above it.

When NOT to use

  • The user wants flames, not smoke — use fire.
  • The user wants a giant ground-hugging fog volume — use a FogVolume node with the WorldEnvironment.volumetric_fog shader, not a particle system. Particles don't scale to room-size fog.
  • The user wants a 2D smoke effect — canvas_item shader, not this.
  • The user wants the smoke to physically interact with the player (pushed by movement) — particles are visual; use a FogVolume + script that follows the player.
  • The user wants thick black bonfire smoke that completely occludes — bump density way up, but consider a FogVolume for genuine visual occlusion.

Recipe

1. Files to create

addons/vfx/smoke/smoke.gdshader
addons/vfx/smoke/smoke_controller.gd
addons/vfx/smoke/smoke.tscn

2. Shader code

addons/vfx/smoke/smoke.gdshader:

shader_type spatial;
render_mode unshaded, blend_mix, depth_draw_never, cull_disabled, shadows_disabled;

#include "res://addons/vfx/_building-blocks/noise-3d-fbm.gdshaderinc"

uniform vec4  smoke_color_young : source_color = vec4(0.85, 0.85, 0.85, 1.0);  // freshly emitted
uniform vec4  smoke_color_old   : source_color = vec4(0.45, 0.45, 0.45, 1.0);  // late life
uniform float density           : hint_range(0.0, 1.0) = 0.55;
uniform float noise_scale       : hint_range(0.5, 8.0) = 2.0;
uniform float noise_speed       : hint_range(0.0, 2.0) = 0.5;
uniform float soft_edge         : hint_range(0.01, 0.5) = 0.30;
uniform float depth_fade        : hint_range(0.0, 4.0) = 1.0;  // soft against geometry behind

void vertex() {
    MODELVIEW_MATRIX = VIEW_MATRIX * mat4(
        INV_VIEW_MATRIX[0],
        INV_VIEW_MATRIX[1],
        INV_VIEW_MATRIX[2],
        MODEL_MATRIX[3]
    );
}

void fragment() {
    float age = CUSTOM.x;

    // Distort UVs with slow noise.
    vec3 np = vec3(UV * noise_scale, TIME * noise_speed + CUSTOM.y * 10.0);
    float n = fbm3(np);

    // Soft round mask, modulated by noise so the silhouette is wispy not circular.
    vec2 c = UV - vec2(0.5);
    float r = length(c) * 2.0;
    float mask = smoothstep(1.0, 1.0 - soft_edge, r);
    mask *= (0.6 + 0.4 * n);  // bite chunks out of the puff

    // Fade in fast, fade out slow.
    float alpha_age = smoothstep(0.0, 0.15, age) * (1.0 - smoothstep(0.6, 1.0, age));

    // Color drifts young → old as it ages (cools off / dilutes).
    vec3 col = mix(smoke_color_young.rgb, smoke_color_old.rgb, age);

    ALBEDO = col;
    ALPHA = mask * alpha_age * density;
}

Read the full file on GitHub · 382 lines

Changes

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.

  1. 8d ago First seen · 382 lines · 81 tokens per session scan A ec8c3690a52e

Subscribe to this mod's changes

smoke is a skill published in the GitHub repository ouzlifaneyassine1-dot/onyx-engine (0 stars, last pushed 3mo ago), licensed MIT. It adds 81 tokens to every session and 4,576 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 86% identical to smoke, differing in 131 lines, and is treated as a copy.

Related

Other skills, from other repositories

game-feel

Use when a Summer game "feels flat", "lacks impact", "needs juice", or "needs punch", or the user asks for hit feedback, screen shake, camera shake, audio ducking, or general game feel. Walks through Summer Engine's hit-flash, trauma camera shake, and audio-ducking stack, wired so one hit fires all three. Trigger on…

SummerEngine/summer-engine-agent · 118 tokens

fire

Use when authoring a fire visual effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp. Trigger on "torch", "campfire", "bonfire", "flame", "fire effect", "burning", "make this thing on fire", "candle".

SummerEngine/summer-engine-agent · 68 tokens

lightning

Use when authoring a lightning bolt visual effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake. Trigger on "lightning bolt", "chain lightning", "electric attack", "tesla coil", "shock spell", "thunderbolt", "energy beam".

SummerEngine/summer-engine-agent · 65 tokens

smoke

Use when authoring a smoke visual effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D. Trigger on "smoke", "smoke trail", "puff", "chimney smoke", "smoke from a fire", "steam", "fog cloud", "explosion smoke".

SummerEngine/summer-engine-agent · 81 tokens

water-ripple

Use when authoring a water-ripple visual effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts. Trigger on "water ripple", "ripples on water", "raindrop ripple", "splash ripple", "rain on water", "footstep in puddle", "fish jumps".

SummerEngine/summer-engine-agent · 75 tokens

dissolve

Use when authoring a dissolve effect — an object's mesh disintegrating with a glowing burning edge, driven by a noise threshold ShaderMaterial overriding the target's existing material. Trigger on "dissolve", "disintegrate", "burn away", "Thanos snap", "vanish into ash", "enemy fades out", "object burns up".

SummerEngine/summer-engine-agent · 75 tokens