Scenario Agent Skills is a collection of instructions that teaches AI coding agents to create images, video, audio, textures, skyboxes, and 3D assets through the Scenario MCP server, an interface to Scenario’s generation tools and custom-trained models. It serves game, entertainment, marketing, and other creative work, and also includes workflows for digital content creation software and game engines. The catalogue entries are these skills, along with plugins, commands, agents, instructions, settings, and hooks for using Scenario or driving supported creative applications.
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 scenario-labs/skills --skill scenario-unity-webgit clone --depth 1 https://github.com/scenario-labs/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/scenario-labs/skills/scenario-unity-web)<a href="https://agentmods.dev/skills/scenario-labs/skills/scenario-unity-web"><img src="https://agentmods.dev/badge/skills/scenario-labs/skills/scenario-unity-web/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/scenario-labs/skills/scenario-unity-web"><img src="https://agentmods.dev/badge/skills/scenario-labs/skills/scenario-unity-web.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.00136 | $0.03858 |
| Opus 5.5 | $0.00054 | $0.01543 |
| Sonnet 5.5 | $0.00027 | $0.00772 |
| Haiku 4.5 | $0.00014 | $0.00386 |
Grade A, and why
scenario-unity-web 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 20d 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 — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Unity Web (web specialist)
Expert level on the Web means the build is judged where players get it: bytes until gameplay starts, served by the real host with the right headers, loaded in a real browser that reports which graphics API ran, how big the heap grew, and that the page and the game talk. The stance: the host picks the compression, the budget is measured to the first playable moment, and nothing counts until a served build loads headless with zero errors and a screenshot you looked at. Target: Unity 6000.3.21f1, URP 17.3, Chrome headless on macOS. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
REQUIRED BACKGROUND: scenario-unity-expert (channels, review loop, 6.3 traps). Toolkit: ut_env, ut_run (incl. build(P, "web"), run_tests), ut_review, plus this skill's scripts/ut_web.py, scripts/AgentKit/Web/WebJobs.cs and scripts/WebRuntime/ (bridge, .jslib, error reporter, template).
Stance (the expert delta)
- The host decides compression. Own HTTPS server or CDN: Brotli, fallback off,
Content-Encodingper file,application/wasmon every.wasm*(6.3 Manual). Plain HTTP: gzip (Chrome refused Brotli at a LAN address,ERR_CONTENT_DECODING_FAILED, observed;localhostis exempt). itch.io: Decompression Fallback on (Max O'Didily 8iApGVX--B0 [00:01:40]). Poki: Disabled. - Budget bytes to gameplay start. CrazyGames counts the initial download until the first
gameplayStart: 20 MB for the mobile homepage, 50 MB otherwise, 1,500 files. Deferred content must be requested after that moment (network log proves it). Preload tags only for bundles the first playable moment needs: they move bytes into the counted window (observed +0.84 MB before start). - Load time is the metric; past broadband the binary and CPU dominate. -25 percent load time gave +50 percent sessions (Craven, LlE35onVdmQ [00:08:40]); gains flatten above 86 Mbps [00:11:26]. Measure with CPU throttling and latency; hosting coverage is load time (Loveridge, FYsVftoLBP8 [00:16:12]). Design the wait: a loading card with how-to text, not a bare bar (Craven [00:14:16]), then a tap to play that also unlocks audio.
- One thread, one heap, the browser's clock. Every ThreadPool API is an unrecoverable hang: use
Awaitable, coroutines,UnityWebRequest(observed:Task.Run(...).Resultfroze the tab). The heap grows from Initial Memory Size and growth can crash on phones: size Initial from a measured session (observed 32 MB grew to 68 to 74 MB; set to 80, no growth). LeavetargetFrameRateat -1: Unity cannot query the refresh rate (6.3 Manual). - WebGL 2 ships; WebGPU is for compute and falls back silently. Experimental in 6.3 to 6.5, supported but opt-in from 6.6. Keep WebGL 2 below it and log
SystemInfo.graphicsDeviceType(a plain-HTTP page got WebGL 2 with no error, observed). WebGL 2 skins on the CPU (30 characters: 7 fps vs 30 on WebGPU, Duncan 3bu4WZUCGYc [~00:15:13]) and takes non-directional lightmaps only. - The page and the game share a narrow contract.
.jslibin ES5, strings as heap pointers, replies throughmakeDynCallinto a static[MonoPInvokeCallback],SendMessagewith one JSON string to an exactly named object. Unity takes page-wide keyboard input by default: a page name field received nothing untilWebGLInput.captureAllKeyboardInput = false(observed). No system fonts: CJK and Greek names drew blank whileFont.HasCharactersaid present (observed). Portals ignore or rewriteindex.html, so the bridge lives in.jslib. - What ships is not what you set. Strip Engine Code removes classes only bundles use (
Could not produce class with ID 182, observed; fix: link.xml). Code Optimization and the texture subtarget live inLibrary/: a fresh clone reads Shorter Build Time (observed). Safari has no IndexedDB in iframes (6.3 Manual): on itch.io, Safari players may reload everything. - Ship like a live service and cut what does not earn its bytes. Hashed names, previous build kept, 5 percent staged rollout (Loveridge [frame 00:23:29]), symbols and an error collector per release. "If it only improves your game's visual fidelity by one or two percent... it needs to go" [00:11:15]: URP post data cost 1.61 MB here.
What ships with it
17 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/critique.md 8.6 KB
- references/expert-notes.md 28 KB
- references/gui-paths.md 8.6 KB
- references/procedures.md 64 KB
- references/sources.md 18 KB
- scripts/AgentKit/Web/WebJobs.cs 51 KB
- scripts/AgentKitOptional/Addressables/WebAddressablesJobs.cs 7.4 KB
- scripts/AgentKitOptional/Tests/AgentWeb.EditorTests.asmdef 518 B
- scripts/AgentKitOptional/Tests/WebReleasePolicyTests.cs 5.2 KB
- scripts/ut_web.py 65 KB runs code
- scripts/WebRuntime/Optional/Addressables/WebDeferredAddressable.cs 2.3 KB
- scripts/WebRuntime/Plugins/WebGL/AgentWebBridge.jslib 4.0 KB
- scripts/WebRuntime/Scripts/WebBridge.cs 11 KB
- scripts/WebRuntime/Scripts/WebErrorReporter.cs 2.5 KB
- scripts/WebRuntime/Scripts/WebLeaderboard.cs 3.5 KB
- scripts/WebRuntime/WebGLTemplates/AgentWeb/index.html 10 KB
- scripts/WebRuntime/WebGLTemplates/AgentWeb/thumbnail.png 1.0 KB
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.
- 20d ago First seen · 101 lines · 136 tokens per session scan A 1582b4d997bb
scenario-unity-web is a skill published in the GitHub repository scenario-labs/skills (1,034 stars, last pushed today), licensed MIT. It adds 136 tokens to every session and 3,858 once invoked, about $0.0005 per session on Opus 5.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-09-27.
Other skills, from other repositories
motion
Reconstruct a skeleton from calibrated mesh projections and sequential VLM joint annotations, then fit joints and skin weights. Generate motion from joint-position trajectories, rhythm and contact constraints through IK; refine bone orientation against the action, then export, retarget and validate on the target mesh.
3d_object
Judge whether a generated mesh is fit to ship in a browser game, from the same rendered sheet the orientation review uses.
3d_scene
Choose how to build a 3dscene asset. Do not default to one pipeline for every task: what the user specified about the scene's appearance matters more than the scene type, and generative reconstruction is the least stable route here.
image
Use this Skill when a game plan needs a single-subject concept image, a character reference cleaned for image-to-3D, or a front-facing transparent T-pose image for downstream character reconstruction. T-pose generation is an image-generation and image-editing task; it is not a separate asset category.
audio
Use this Skill when a game plan requires dialogue, voice lines, sound effects, foley, ambience, or other offline WAV assets. This is asset generation, not a runtime audio-playback contract; use the selected engine context after an asset has passed review.
game-cg-director
Convert game CG intent and optional media references into validated, model-specific directing envelopes for opening, cutscene, ultimate, or promo clips. Use for standalone CG prompt direction or as a child capability of a game-generation Harness. Supports T2VA/text-only, I2VA/first-frame image…