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 ouzlifaneyassine1-dot/onyx-engine --skill playgit clone --depth 1 https://github.com/ouzlifaneyassine1-dot/onyx-engineWrote 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/ouzlifaneyassine1-dot/onyx-engine/play)<a href="https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/play"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/play/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/ouzlifaneyassine1-dot/onyx-engine/play"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/play.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.00054 | $0.00873 |
| Opus 5 | $0.00027 | $0.00436 |
| Sonnet 5 | $0.00011 | $0.00175 |
| Haiku 4.5 | $0.00005 | $0.00087 |
Grade A, and why
play 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 109 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/play — Run the Game
Overview
Press play. Watch what happens. Report it back.
Steps
1. Check if it's already running
onyx_is_running
If running:
The game is already playing. Stop and restart, or leave it?
Wait for the user. Don't unilaterally stop.
If not running, continue.
2. Pre-check for compile errors
Cheapest call. If the script won't compile, play will fail with a noisy error — better to surface that clearly first.
onyx_get_script_errors
If errors found:
Won't run yet — there's a script error:
<one-line summary>. Want me to /debug it?
Stop here on user's no.
3. Clear and play
onyx_clear_console
onyx_play
4. Brief wait, then read state
Wait ~2 seconds (so the engine has time to process at least one frame). Then:
onyx_get_diagnostics
onyx_get_debugger_errors
5. Report
Three outcomes:
Clean: onyx_get_diagnostics shows zero errors and zero warnings.
Running. No errors or warnings. Tell me what you see and I'll dig in if needed.
Warnings only:
Running. warnings —
<one-line summary of the most important one>. Want me to look at them?
Runtime error:
Crashed:
<error class>at<file>:<line>—<message>. Want me to /debug?
6. Don't auto-stop
Leave the game running. The user wants to play it. Stop only on explicit ask.
Common patterns
| Situation | Right move |
|---|---|
| User says "play" with no context | Steps 1–5 above |
| User says "play and watch it for me" | After step 5, set a timer / poll onyx_get_debugger_errors every few seconds for the duration the user specifies |
| User says "play the boss fight scene" | Open the specific scene first (onyx_open_scene "scenes/boss_fight.tscn"), then steps 1–5 |
| Game is already running and user says "play" again | Step 1's check covers it — ask before restarting |
Anti-patterns
- Don't auto-stop a running game just because the user said "play". They probably mean "make sure it's playing", not "stop and restart".
- Don't call
onyx_get_consoleinstead ofonyx_get_debugger_errorsfor runtime errors. Console has print() output and warnings; debugger errors has the stack traces. - Don't report "no errors" before waiting for the engine to actually run a frame. A 0-frame snapshot is meaningless.
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.
- 10d ago First seen · 109 lines · 54 tokens per session scan A 0ddf56eebd60
play is a skill published in the GitHub repository ouzlifaneyassine1-dot/onyx-engine (0 stars, last pushed 2mo ago), licensed MIT. It adds 54 tokens to every session and 873 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
make-game
Use when the user says "make me a game", "build me a game", "I want to make a [genre] game", "let's build something" — the orchestration spine that runs the full game-dev pipeline: brainstorm → plan → scaffold → build core mechanics → art direction → audio → polish/VFX → verify → ship. Delegates to specialist skills…
brainstorm-game
Use when the user wants help deciding what game to make, scoping a new project, or turning a vague idea into a buildable plan. Walks through genre, scope, core loop, mechanics, and art direction, then writes a 1-page brief to .summer/GameSoul.md. Trigger on "brainstorm a game", "what should I make", "I want to make a…
scene-composition
Use when building or organizing Summer Engine scenes: node hierarchy conventions, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions. Trigger on "scene", "sub-scene", "instance", "prefab", "node hierarchy", "scene structure", "PackedScene".
browse-templates
Use when the user wants to see available Summer Engine project templates, start from an existing template, or asks "what templates exist?" — fetches the live list from github.com/SummerEngine, presents the choices, and creates a project from the chosen template via summer create . Trigger on "templates", "starter"…
new-project
Use when the user wants a fresh blank Summer Engine project — not from a template. Asks one question (project name) and runs summer create empty . Trigger on "new project", "blank project", "empty project", "from scratch", "start fresh", "create new game", "blank canvas", "scaffold a project".
play
Use when the user says "play", "run it", "test it", "let me see it", or "start the game". Runs the project in Summer Engine, briefly waits, then reports what's happening — clean run, errors, or warnings.