Godot Adapt 3D To 2D
thedivergentai/GD-Agentic-Skills
Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…
A skill your agent uses when a Unity 6.3 game is slow or stutters: low fps, frame spikes, hitches when entering areas or on first effects, GC spikes, too many draw calls or SetPass calls, CPU vs GPU…
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-unity-performance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .claude/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .claude/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-unity-performance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .agents/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .agents/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-unity-performance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .cursor/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .cursor/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scenario-labs/skills.git --path skills/game-engines/unity/scenario-unity-performance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-unity-performance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .gemini/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .gemini/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scenario-labs/skills scenario-unity-performanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .github/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .github/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-unity-performance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills scenario-unity-performance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/game-engines/unity/scenario-unity-performance .opencode/skills/scenario-unity-performance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scenario-unity-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-performance into .opencode/skills/scenario-unity-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-performance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scenario-unity-performanceA skill your agent uses when a Unity 6.3 game is slow or stutters: low fps, frame spikes, hitches when entering areas or on first effects, GC spikes, too many draw calls or SetPass calls, CPU vs GPU…
Scenario Unity Performance is an agent skill from scenario-labs/skills. Use when a Unity 6.3 game is slow or stutters: low fps, frame spikes, hitches when entering areas or on first effects, GC spikes, too many draw calls or SetPass calls, CPU vs GPU bound questions, Profiler, Profile Analyzer, Memory Profiler, Frame Debugger or Project Auditor work, GPU Resident Drawer or SRP Batcher setup, LOD and Mesh LOD, shader warm-up and variants, memory or VRAM budgets, IL2CPP and build size, or proving a fix with numbers from a player.
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 22 other files, including scripts and reference files (for example `references/critique.md`, `references/expert-notes.md` and `references/gui-paths.md`).
It sits in Game Development, covering Game development and Performance optimization. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 91caa01. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 9 files in scripts/ (C#, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scenario Unity Performance loads about 4.9k tokens when it runs, and up to ~37k if it reads all its reference files. Until then it costs about 122 tokens; SKILL.md has 2,028 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from scenario-labs/skills at commit 91caa01, republished under its MIT licence (© scenario-labs). 2,028 words, ~4,936 tokens.
.claude/skills/scenario-unity-performance/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Expert performance work is a measurement discipline: a budget in milliseconds, the bounding thread named before any change, the biggest measured cost fixed first, structure before tuning, and every fix proven with before/after numbers from a development player. An agent does all of it headless: AgentProfile in Editor Play mode to iterate, PerfProbe in a batch-mode player for verdicts, PerfCapture to attribute costs from a Profiler capture, metal_trace for GPU time, PerfBuild for size. Target: Unity 6000.3.21f1, URP 17.3, macOS Apple Silicon. 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, ut_* toolkit).
GC.Collect (Hall [frame 00:21:52]). Observed: 27,000 allocations per frame displayed 0.8 to 1.1 ms; the allocating code cost 3.8 to 5.4 ms. Count bytes and calls, measure collections, target 0 B per gameplay frame, and keep the probe itself allocation-free (git-amend ham_w48aRJ4 [00:11:30]).Start.Shader.CreateGPUProgram (warm a traced GraphicsStateCollection during loading, Nicolas Borromeo CmD8MVGkDxQ [00:11:14]-[00:14:35]); here warm-up removed all 18 first-use compiles, yet the first frame stayed about 250 ms on Mono.JIT.Target platforms and min-spec device per tier; frame budget (16.67 ms desktop, mobile x 0.65); resolution and quality tier; what may change (code only, or art, design, feel); a repeatable benchmark, time-based when judging streaming (a fixed step per frame reaches boundaries sooner after a speed-up) [added]; scripting backend and build type; the machine actually measured (discrete GPU, on power; probe JSON device) [added]. Defaults: PC-tier URP asset, 60 fps, 1920x1080, development Mono player for iteration, IL2CPP release for size.
ut_perf.profile (render=False isolates scripts), ab_profile for time deltas. GATE: numbers labeled "Editor, iteration".PerfRendering.Audit (batching, GRD eligibility per renderer, graphics jobs per platform, Build Profile, stack traces, upload buffer, culling), lint_scripts, Project Auditor (project_auditor, Major first, triage_auditor keeps per-frame lines), PerfAudit.AudioImport, bundle_duplicates. GATE: findings triaged by call frequency.build_player(development=True), run_player(..., shot=png, markers=[...]). GATE: draw_calls > 0, PNG opened, budget_check.capture_player, analyze_capture), longest vs median frame. GPU: metal_trace + metal_gpu_frames (GPU busy and per-pass ms; Rendering Debugger Display Stats in the GUI), then the pixel-bound test (4K vs 1080p, render scale). GATE: bound named with a number.attribute_spikes (your markers, GC.Collect, compiles, MeshCollider cooking, synchronous reads, physics steps), physics_catchup, memory_budget, density_check, allocations per block (AllocScope, Is.Not.AllocatingGCMemory()), GRD coverage (PerfFrameDebug.Capture or the window). GATE: top three costs named, no unexplained spike.EnableGpuResidentDrawer, one camera, Split graphics jobs on DX12/Vulkan. GPU: dynamic resolution or STP, depth priming and less transparency, LOD where triangles are pixel-sized, post-processing on a fixed slice; shadows with scenario-unity-rendering-lighting. Hitches: async loads, prewarmed pools, PSO warm-up in loading, baked MeshColliders, audio load types, no duplicated bundle dependencies. GATE: compare_line shows the target down, nothing else up, image parity.BuildPlayerOptions (platform profiles share settings). GATE: build succeeded, size explained, smoke run clean.| Value | Relative to | Source |
|---|---|---|
| 16.67 / 33.33 ms; x 0.65 mobile | frame budget at 60 / 30 fps; thermal headroom | profiling e-book p. 9, 36 |
| 0 B | managed allocation per gameplay frame | 6.3 Manual; e-book p. 66 |
| up to about 1 ms | per-frame cost of incremental GC write barriers | e-book p. 69 |
| 4.4x / 2.07x / 1.45x | GRD gain: 2M-instance stress / game in Editor / same game standalone | Oc6T4hh5gaI [frame 00:12:41] |
| 217 / 199 / 176 / 161 fps | DX12 Split / Legacy / plain DX12 / Native graphics jobs | Oc6T4hh5gaI [frame 00:03:52] |
| 256 vertices | below it GPU instancing is inefficient: combine instead | 6.3 Manual |
| about 250 ms | one PSO creation stall | Oc6T4hh5gaI [frame 00:04:48] |
| 4 pixel invocations | per one-pixel triangle (2x2 quads); gate 1 triangle per rendered pixel [added] | CmD8MVGkDxQ [00:27:26] |
| 48.55 of 80 ms | per-frame Debug.Log in a development frame | xjsqv8nj0cw [00:10:23] |
| < 200 / > 400 KB | audio: Decompress On Load / Streaming | console e-book p. 104-105 |
| up to 1 ms | CPU per extra active camera on mobile | console e-book p. 89 |
| up to 10 s | startup added by Autoconnect Profiler | e-book p. 47 |
| 50% / 70% / 80% of RAM | memory budget: 2 GB phones / general / dedicated devices | Hall; Unity tutorial; e-book |
| 5,946 to 33 SetPass; 58-60 to 5.2-6.2 ms | 3,000 spheres, MPB tint to 8 Material Variants, dev player | observed |
| 18 to 0 | first-use Shader.CreateGPUProgram after warming 10 PSOs (3.6 ms at load) | observed |
| 177.9 / 110.5 / 116.3 MB | macOS app: IL2CPP Minimal + speed / IL2CPP High + size / Mono | observed |
| 14.75 M to 0.26 M triangles (7.1 to 0.12 per pixel) | 400 dense meshes after Mesh LOD, draw calls unchanged | observed |
57.1 ms frame = Spawn.Burst 26.9 ms + 4 compiles; next frame 3 physics steps | burst of 3,000 Instantiate read through its own marker | observed |
| 48-80 ms vs 0 ms | MeshCollider cooking at spawn vs Physics.BakeMesh in a job at load (40 meshes) | observed |
| 33 us vs 2.6-3.9 us | per Debug.Log, stack traces ScriptOnly vs None (dev player) | observed |
| 2.5 vs 5.8 ms; 1.2x at 4x pixels | GPU busy vs CPU main (Metal System Trace); 4K vs 1080p: not pixel bound | observed |
| 1,944 to 1,002 KB | two bundles sharing a texture: implicit copies vs a shared bundle | observed |
budget_check pass (p95 under budget, no gameplay hitch); gc_check pass in the player; attribute_spikes unexplained = 0; physics_steps at most 1 outside a forced spike; memory_budget pass; density_check pass; PerfRendering.Audit counts.error == 0 and every GRD fallout explained; 0 Shader.CreateGPUProgram after loading; no new Major Project Auditor issue in your code; IL2CPP build within budget.-perfShot) and Editor captures from the same bookmarks before and after, ut_review.compare, contact sheet opened; no blank, uniform or magenta frame.| Mistake | What it looks like | Fix |
|---|---|---|
| Optimizing the side that is not bound | fewer allocations, same frame time | classify first (wait markers, GPU busy, SetPass) |
| Trusting Editor numbers or one run | "3x faster" gone in the player | player CSV; ab_profile with consistent sign |
| Benchmarking a batch-mode player that renders nothing | 0.3 ms frames, 0 draw calls | PerfProbe submit + -perfShot |
| GRD on, nothing changes | draw calls unchanged | Keep All, Forward+/Deferred+, static batching off, fallouts fixed |
| MaterialPropertyBlock for per-object color | SetPass = draw calls; StdRender.ApplyShader dominates | Material Variants; unity_RendererUserValue with GRD |
| Reading GC.Alloc ms as the cost | "allocations cost 0.5 ms" | count and bytes, GC.Collect ms, A/B |
| A monitor that formats strings each frame | GC column never 0 | preallocated buffers, write once (PerfProbe) |
| Closure in a rarely taken branch | allocations with the feature off | move captured locals into the branch |
| Deep Profile to find a spike | inflated small functions | markers and counters kept in code, -perfMarkers |
| GPU tuned from the Frame Debugger | guessed timings | metal_trace (PIX, Nsight on Windows) |
| Fixed render scale on a laptop | fine cold, hitches when hot or loaded | dynamic resolution; STP at a fixed scale only for a fixed pixel bound |
| Warm-up assumed to fix a first-frame hitch | still 250 ms | capture: JIT means IL2CPP, loading means async |
| Frame-spreading as the fix | lower peak, same total | measure unamortized first, fix structure |
| MeshCollider added at runtime | spawn spike, Physics.BakePhysXCollisionMeshData | Physics.BakeMesh in a job, Prebake Collision Meshes |
Development flag set through EditorUserBuildSettings | every platform profile changed | BuildPlayerOptions or a build profile asset |
Sizing from BuildReport totalSize | 1.9 GB for a 178 MB app | shipped folder on disk |
InstantiateAsync as a hitch fix | 17 to 83 ms frame later | pool and prewarm behind a transition |
| Benchmarking the first launch of a new build | 212 vs 22 ms | discard the first launch |
Game feel (fixed timestep, Maximum Allowed Timestep, animation timing, input, AI ticks); art direction (texture sizes, lights, LOD thresholds, render scale) without before/after captures; the pipeline, engine version or an ECS rewrite; incremental GC off unless gameplay allocates 0 B in the player and an A/B shows the gain; asyncUploadBufferSize raised blindly (never returned, console e-book p. 31); VSync off in release; the benchmark path between before and after.
GraphicsStateCollection is experimental, traces only in development players; WebGPU tracing in 6.4. FrameDebuggerUtility is internal.ProfilerCounterValue) are preinstalled packages added by name.Physics.BakeMesh(int, bool) is obsolete: pass mesh.GetEntityId(). 6.3 runs Boehm (non-generational); CoreCLR is future work.references/procedures.md: eighteen procedures with full calls, each with its live test and recorded result.references/expert-notes.md: principles by expert with timestamps, disagreements and deciding conditions.references/critique.md: the rubric for judging a performance pass.references/gui-paths.md: Profiler, Frame Debugger, Rendering Debugger, Project Auditor and settings paths.references/sources.md: every source with credentials, URLs, best timestamps and revision history.scripts/ut_perf.py (runner side), scripts/AgentKit/Performance/*.cs (Editor jobs), scripts/Runtime/Performance/*.cs (PerfProbe, AllocScope).© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files (scripts, references) in skills/game-engines/unity/scenario-unity-performance of scenario-labs/skills.
Open the folder on GitHubat commit 91caa01
Scenario Unity Performance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scenario Unity Performance this skillscenario-labs/skills | 931 | — | ~4.9k | Automated safety check: Pass | MIT | |
| Godot Adapt 3D To 2Dthedivergentai/GD-Agentic-Skills | 816 | — | ~4.5k | Automated safety check: Pass | LGPL-3.0 | |
| Game DeveloperJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Unreal Engine FPS Cap Removerkevinpbuckley/VibeUE | 726 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Profiler Get Rendering StatsIvanMurzak/Unity-MCP | 4.4k | — | ~833 | Automated safety check: Pass | Apache-2.0 | |
| Gdscript Advancedjame581/GodotPrompter | 799 | — | ~3.4k | Automated safety check: Pass | MIT |
thedivergentai/GD-Agentic-Skills
Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…
Jeffallan/claude-skills
Covers game programming in Unity and Unreal Engine: ECS design, physics, multiplayer networking, shaders and profiling toward a 60 FPS target.
kevinpbuckley/VibeUE
Finds and clears the five independent settings that cap the Unreal editor or game frame rate, so it runs uncapped or at a chosen target FPS.
IvanMurzak/Unity-MCP
Return current frame timing, FPS, vsync, target frame rate, threading mode, and graphics device type from Unity Time / QualitySettings / SystemInfo.
jame581/GodotPrompter
A skill your agent uses when writing production-grade GDScript — performance idioms, metaprogramming, @tool lifecycle, async pitfalls, signal/Callable trade-offs, profiler-driven idioms, and common…
jame581/GodotPrompter
A skill your agent uses when optimizing Godot games — profiler, draw calls, physics tuning, memory management, and common bottlenecks
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
scenario-labs/skills
A skill your agent uses when a Godot 4 game goes online or co-op: host and join with ENet, WebSocket for a web build, RPCs (@rpc, rpcid, anypeer), MultiplayerSpawner and MultiplayerSynchronizer…
Categories
A skill your agent uses when a Unity 6.3 game is slow or stutters: low fps, frame spikes, hitches when entering areas or on first effects, GC spikes, too many draw calls or SetPass calls, CPU vs GPU…. Scenario Unity Performance is an agent skill from scenario-labs/skills.3 game is slow or stutters: low fps, frame spikes, hitches when entering areas or on first effects, GC spikes, too many draw calls or SetPass calls, CPU vs GPU bound questions, Profiler, Profile Analyzer, Memory Profiler, Frame Debugger or Project Auditor work, GPU Resident Drawer or SRP Batcher setup, LOD and Mesh LOD, shader warm-up and variants, memory or VRAM budgets, IL2CPP and build size, or proving a fix with numbers from a player.
Scenario Unity Performance fits situations like: A Unity 6.3 game is slow; stutters: low fps; hitches when entering areas; on first effects.
Run `npx skills add scenario-labs/skills --skill scenario-unity-performance -a claude-code`. Or copy the skill folder (skills/game-engines/unity/scenario-unity-performance in scenario-labs/skills) into .claude/skills/scenario-unity-performance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-unity-performance -a codex`. Or copy the skill folder (skills/game-engines/unity/scenario-unity-performance in scenario-labs/skills) into .agents/skills/scenario-unity-performance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-unity-performance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-unity-performance, .gemini/skills/scenario-unity-performance, .github/skills/scenario-unity-performance and .opencode/skills/scenario-unity-performance in your project.
Going by SKILL.md and its folder, Scenario Unity Performance needs C# for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Scenario Unity Performance is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 32k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Unity Performance: Godot Adapt 3D To 2D (thedivergentai/GD-Agentic-Skills, 816 stars), Game Developer (Jeffallan/claude-skills, 12k stars), Unreal Engine FPS Cap Remover (kevinpbuckley/VibeUE, 726 stars) and Profiler Get Rendering Stats (IvanMurzak/Unity-MCP, 4.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 931 GitHub stars. The repository holds 143 skills in this directory. The repository was last updated on October 8, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.