scenario-unity-web

scenario-unity-web is a skill for Claude Code from scenario-labs/skills. It costs 136 tokens per session (3,858 once invoked), scanned A, original, MIT.

A Unity 6.3 guide for making a game build run in a web browser. It covers WebGL export, compression, server settings, browser loading, and hosting services such as itch.io, CrazyGames, and Poki.

In plain words
What is it for?
Use it to configure and test Unity web builds, check download size and memory use, support Addressables and AssetBundles on the web, and verify that a hosted build loads without errors.
Why use it?
It helps find problems that only appear after the game is served from a real website, such as incorrect compression headers, large downloads, slow startup, or browser loading errors.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the 20.-expert-tools-unity plugin — 14 skills shipped together , and of 21.-expert-tools-unity

Good fit Use it to configure and test Unity web builds, check download size and memory use, support Addressables and AssetBundles on the web, and verify that a hosted build loads without errors.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/scenario-labs/skills/scenario-unity-web
About the project

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.

scenario-labs/skills · 1,034 stars · on GitHub · skills.sh

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 scenario-labs/skills --skill scenario-unity-web
Clone the repo
git clone --depth 1 https://github.com/scenario-labs/skills

Made for: Claude Code.

Or install 20.-expert-tools-unity, the plugin that ships this one along with the rest of its 14 skills.

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 scenario-unity-web

README.md
[![agentmods](https://agentmods.dev/badge/skills/scenario-labs/skills/scenario-unity-web/github.svg)](https://agentmods.dev/skills/scenario-labs/skills/scenario-unity-web)
Your own site
<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.

agentmods 80×15 button for scenario-unity-web

Your own site · 80×15
<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>
Per session 136 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,858 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 original No closer match found 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.00136 $0.03858
Opus 5.5 $0.00054 $0.01543
Sonnet 5.5 $0.00027 $0.00772
Haiku 4.5 $0.00014 $0.00386

Measured 20d ago against content hash 1582b4d997bb, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/ut_web.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

skills/game-engines/unity/scenario-unity-web/SKILL.md · 101 lines

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)

  1. The host decides compression. Own HTTPS server or CDN: Brotli, fallback off, Content-Encoding per file, application/wasm on every .wasm* (6.3 Manual). Plain HTTP: gzip (Chrome refused Brotli at a LAN address, ERR_CONTENT_DECODING_FAILED, observed; localhost is exempt). itch.io: Decompression Fallback on (Max O'Didily 8iApGVX--B0 [00:01:40]). Poki: Disabled.
  2. 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).
  3. 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.
  4. One thread, one heap, the browser's clock. Every ThreadPool API is an unrecoverable hang: use Awaitable, coroutines, UnityWebRequest (observed: Task.Run(...).Result froze 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). Leave targetFrameRate at -1: Unity cannot query the refresh rate (6.3 Manual).
  5. 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.
  6. The page and the game share a narrow contract. .jslib in ES5, strings as heap pointers, replies through makeDynCall into a static [MonoPInvokeCallback], SendMessage with one JSON string to an exactly named object. Unity takes page-wide keyboard input by default: a page name field received nothing until WebGLInput.captureAllKeyboardInput = false (observed). No system fonts: CJK and Greek names drew blank while Font.HasCharacter said present (observed). Portals ignore or rewrite index.html, so the bridge lives in .jslib.
  7. 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 in Library/: 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.
  8. 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.

Read the full file on GitHub · 101 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. 20d ago First seen · 101 lines · 136 tokens per session scan A 1582b4d997bb

Subscribe to this mod's changes

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.

Related

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.

OpenDCAI/GameFactory-3A · 0 tokens

3d_object

Judge whether a generated mesh is fit to ship in a browser game, from the same rendered sheet the orientation review uses.

OpenDCAI/GameFactory-3A · 0 tokens

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.

OpenDCAI/GameFactory-3A · 0 tokens

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.

OpenDCAI/GameFactory-3A · 0 tokens

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.

OpenDCAI/GameFactory-3A · 0 tokens

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…

OpenDCAI/GameFactory-3A · 95 tokens