Unreal Bridge
TornLux/UnrealBridge
Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.
A skill your agent uses when an Unreal Engine 5.8 project misses its frame rate or stutters: "optimize to 60 fps", "we run at 38 fps", CPU or GPU bound, game or render thread too long, hitches…
$ npx skills add scenario-labs/skills --skill scenario-unreal-performance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-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/unreal/scenario-unreal-performance .claude/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .claude/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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/unreal/scenario-unreal-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-unreal-performance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-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/unreal/scenario-unreal-performance .agents/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .agents/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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-unreal-performance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-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/unreal/scenario-unreal-performance .cursor/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .cursor/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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/unreal/scenario-unreal-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-unreal-performance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-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/unreal/scenario-unreal-performance .gemini/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .gemini/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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-unreal-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-unreal-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/unreal/scenario-unreal-performance .github/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .github/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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-unreal-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-unreal-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/unreal/scenario-unreal-performance .opencode/skills/scenario-unreal-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-unreal-performance" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-performance into .opencode/skills/scenario-unreal-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-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-unreal-performanceA skill your agent uses when an Unreal Engine 5.8 project misses its frame rate or stutters: "optimize to 60 fps", "we run at 38 fps", CPU or GPU bound, game or render thread too long, hitches…
Scenario Unreal Performance is an agent skill from scenario-labs/skills. Use when an Unreal Engine 5.8 project misses its frame rate or stutters: "optimize to 60 fps", "we run at 38 fps", CPU or GPU bound, game or render thread too long, hitches, traversal or shader stutter (PSO), GC spikes, camera-cut spikes, Lumen, Nanite, VSM, ray tracing, foliage, crowds or Niagara too expensive, async compute, stat unit, ProfileGPU, Unreal Insights, TraceQuery, snapshothitches, scalability and device profiles, dynamic resolution and TSR, streaming budgets, or proving a fix with before and after…
Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 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. It works with Unreal Engine. 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.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. 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 1 file in scripts/ (Python), 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 Unreal Performance loads about 5.4k tokens when it runs, and up to ~32k if it reads all its reference files. Until then it costs about 139 tokens; SKILL.md has 2,075 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 f6f8ab7, republished under its MIT licence (© scenario-labs). 2,075 words, ~5,406 tokens.
.claude/skills/scenario-unreal-performance/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Expert level here means milliseconds per stage, not frames per second: classify the bound with one honest capture, explain the worst frame by the thread that works rather than the one that waits, fix in the order of measured size, and prove the result with repeated runs on the same route and build, hitches judged apart from the average. The performance engineer owns measurement, diagnosis and proof; most fixes go back to the teammate who owns the content. 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-unreal-expert (channels, review loop, 5.8 traps).
Status (2026-09-24): scripts/ue_perf.py is not yet run in Unreal; its pure layers pass tests/code/unreal-performance/run_all.sh (50 offline tests on synthetic captures). Every UE name is [verify]; first run: job_probe_perf.py (procedures P0).
stat unit classifies, Insights says where on the CPU, a GPU capture explains the GPU, and a sampling profiler says why when instrumentation runs out (KEN [00:04:04]; NORSE [00:17:30]).-statnamedevents, about 20% overhead) for "why" (NORSE [00:11:27]); -NoVerifyGC and -handleensurepercent=0 remove fake Development hitches (NORSE [00:13:35] [00:16:23]).| Input | Changes | Default when silent |
|---|---|---|
| Target hardware and who captures on it | every number; this Mac cannot deploy to a devkit (platform SDK and source build, PKG) | ask; meanwhile Mac numbers labeled as proxy |
| Frame target, output resolution | stage budget, resolution chain | 60 fps; 4K output on console |
| Dynamic resolution policy | lock while profiling; the shipped range | on, 55 to 75% of the 1440p secondary (OZ26 [00:15:48]) |
| Builds available | proof in Test; memory traces need Development (INS); a Launcher engine packages only DebugGame, Development, Shipping (PKG) | Test from a source engine, else Development with the noise flags |
| The route | repeatability | busiest scene, crowd, combat, top traversal speed, camera cuts, as BugIt waypoints |
| Quality bar, who signs trades | parity gate | the owner of the look (lighting, art) |
import ue_perf as P (agent side). Commands go through scenario-unreal-expert's channels; packaged builds take only launch flags and a Level Sequence event track.
job_probe_perf.py for API names and cvars; P.schema_probe(jsonl) on the first TraceQuery output. GATE: every planned cvar printed a value; TraceQuery keys mapped.P.budget_table(platform, fps, pass_budgets) (OZ26 [00:45:55]). GATE: sources on every row, passes sum under the stage.P.route_from_bugit(log) (or P.route_event_track when packaged), P.capture_plan("budget", ...), three runs. GATE: three lean runs, spread known, identical hygiene.P.diagnose_bound(frames, 16.67, context=...) gives bound, gap, caveats and the next capture; read back scalability (P.stat_sequence("scalability_readback")). GATE: bound named, gap in ms, caveats answered.P.day_one_60fps_cvars, P.device_profile_block, P.write_ini_section, backups first); P.day_one_engine_ini() through P.apply_ini_keys (Use Simple as Complex, NeverUpdate overlaps while streaming); Lumen foliage threshold 0 and a roughness threshold below 0.4 read from Performance Overview (OZ26 [00:41:56]); r.GTSyncType 2 on Gen9; streaming under the 5 ms default. Log each in P.ChangeLog. GATE: read-back LastSetBy DeviceProfile; each change measured; quality trades A/B'd.ProfileGPU into P.gpu_pass_table, P.lumen_delta, then the numbers through P.feature_budget_check (RT scene), P.nanite_triage and P.vsm_triage; async compute through P.ab_plan(P.ASYNC_AB_VARIANTS) and P.ab_verdict. Game thread: TraceQuery into P.analyze_trace (non-wait timers, counts against the screen, game_wait, advice), P.spawn_bursts, dumpticks grouped, obj list -countsort. Streaming: per-cell cost in World Partition Insights, request-to-visible latency on a top-speed traversal, P.STREAMING_AB_VARIANTS as A/B only. GATE: every over-budget bucket has a named cause, asset and owner.P.perf_audit_level(), P.perf_audit_assets() (mobility, collision source, WPO bounds, Displacement Fade), P.change_requests(rows) to owners; apply only after agreement. Parity from the same BugItGo views (P.parity_pair). GATE: every needs_eyes pair judged by eye.capture_plan("hitch") cold then warm (cold only off-console); P.hitch_snapshots(dir), each through P.analyze_trace; P.camera_cut_spikes on the route's cuts; unclassified frames go to a sampling profiler. GATE: zero snapshots on the cold route, no blocking load in gameplay, GC events under 2 ms, UObjects under 500k.P.compare_runs then P.write_proof_report. Guard with a nightly automated performance test trended in Horde (OZ26 [00:47:43]). GATE: verdict stable_at_target, "not tested" filled in.| Item | Value | Relative to, source |
|---|---|---|
| Stage budget | 16.67 ms each (33.3 at 30) | game, render, GPU, W4R [00:05:17] |
| Lumen GI and reflections | about 4 ms at 60, 8 at 30 | frame delta, console High, OZ24 [00:37:55]; LVP |
| Roughness threshold | 0.4 default vs content near 0.35; 0.4 vs none 3x faster, imperceptible | OZ26 [00:41:56]; W4R [00:33:42] |
| HWRT scene | under about 100,000 active instances (consoles, LVP); Witcher: near field about 150 m, RT pool about 400 MB, update 0.5 ms async, about 40,000 dynamic triangles per frame | PS5, W4R [00:29:30] [00:30:37] |
| Async compute | about 1.5 ms saved overall; reflections faster on graphics | PS5, W4R [00:20:42] [00:21:48] |
| Deep-water Lumen cull | over 1 ms | PS5, W4R [00:35:18] |
| Resolution chain | primary 800p to 1080p, secondary 1440p (66.67% of 4K), dynres 55 to 75%; secondary saved about 1 ms | W4R [00:43:08]; OZ26 [00:15:48] |
| Streaming | 5 ms engine default; 2.5 to 1.5 ms unified (40% less latency); 0.8 ms final; 51 frames request to visible in their example | OZ26 [00:25:25]; W4S [00:22:13] [00:23:55] [00:32:18] |
| Crowd | 300 to 200 NPCs: game thread 11.5 ms, 5 ms headroom | PS5, W4R [00:16:53] |
| UObjects, GC | under 500k good, over 1M wrong; GC 1 ms fine, 2 ms isolate, 10 ms investigate | HITCH [00:39:06] [00:39:39] |
| Spawns | one complex actor per frame | low-end targets, HITCH [00:25:29] |
Measurable: stage medians and every lean-route frame under 16.67 ms (NORSE [00:29:51]), percentiles and VSync-miss share (OZ26 [00:45:55]); zero hitch snapshots cold; no unexplained over in P.feature_budget_check; every changed cvar read back; deltas beyond run-to-run spread, same hygiene. Visual: same-camera pairs for every trade; hitch-snapshot screenshots; views as locators only. Full rubric: references/critique.md.
| Mistake | What it looks like | Fix |
|---|---|---|
| Profiling PIE | Blueprint and CPU costs inflated | cooked Test build; editor for GPU triage only (FFW [00:04:29]) |
| GPU ms with dynres on | GPU stays near budget while resolution drops | lock 75% (NORSE [00:44:40]) |
| Async compute taken as given | pass sums above the frame; a pass with nothing to overlap costs more | r.RDG.AsyncCompute 0 only to attribute; per-feature A/B (W4R [00:21:48]) |
| Blaming the longest bar | 34 ms of GameThreadWaitForTask | follow to render, RHI or worker (KEN [00:16:30]) |
| Epic scalability on a 60 fps target | sg.* print 3 | level 2 in device profiles and editor settings (OZ26 [00:12:01]) |
sg.ResolutionQuality=2 | 2% resolution | it is a percentage [added] |
| TSR straight to 4K | post passes at 4K | 1440p secondary, spatial upscale (W4R [00:42:33]) |
| Nanite Overdraw view first | chasing white pixels | budget, Evaluate WPO, Pixel Programmable, Overdraw last (OZ24 [00:32:13]) |
| Half a long shadow animates | WPO foliage shadow split at a clipmap | raise r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias (OZ24 [00:46:49]) |
| VSM local lights over moving characters | dynamic pages invalidated every frame | A/B ray-traced shadows for those lights (AVW [00:26:25]) |
| Rain or deep water | Lumen reflection and water cost climb | re-read Performance Overview in rain, clamp roughness; water opaque-depth cutoff (OZ24 [00:40:40]; W4R [00:35:18]) |
| PSO blamed, or tested warm | wrong fix; stutter "fixed" on the second run | classify by trace signature; cold runs with -clearPSODriverCache; consoles skip (PSO blog; HITCH [00:35:50]) |
| A wave spawned in one frame | SpawnActor spike | cap per frame, Tick Animation On Skeletal Mesh Init, per-type pools (HITCH [00:25:29] [00:27:26]) |
| Camera-cut spike | overdraw on the frame after a cut | r.Nanite.PrimeHZB (5.7) [verify] (W4R [00:44:44]) |
| Many changes, one measurement | gains cannot be attributed | ChangeLog, one change per run |
| Density scaling on colliding foliage | gameplay changes | non-colliding types only (FFW [00:32:48]) |
| Complex collision by default | per-poly queries on 2M-triangle fallbacks | Use Simple as Complex on day one, batch-update old meshes, Nanite fallbacks (OZ26 [00:07:23] [00:37:15]; HITCH [00:15:58]) |
| "Static" props left Movable | a 20% drop from about 1,000 meshes | mobility audit (ARG [00:11:54]) |
Receives builds and routes from scenario-unreal-pipeline-automation, content from every teammate. Delivers a diagnosis report plus JSON change requests with measured deltas and parity screenshots:
snapshothitches -start|-stop (needs stat default), TraceQuery JSONL (schema [verify]), UObject Count counter, World Partition Insights (Spatial Profiler), stat unit VRAM on discrete GPUs only, ProfileGPU pipe waits and r.ProfileGPU.TableFormatting 0 (rn58; TL part 2).r.Nanite.PrimeHZB since 5.7.references/expert-notes.md: principles by expert with timestamps, disagreements and deciding conditions.references/procedures.md: P0 to P11 plus P5b, P6b (suspect trees), P7b (streaming), P9b (camera cuts), with full code, test path and status.references/critique.md: rubric for captures, diagnoses, fixes and proof.references/gui-paths.md: Insights, editor and Xcode paths for a computer-use agent.references/sources.md: sources, credentials, best timestamps, revision history.scripts/ue_perf.py: plans, A/B plans, trace analysis, suspect trees, parsers, config writers, proof, audits.© 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 6 other files (scripts, references) in skills/game-engines/unreal/scenario-unreal-performance of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Unreal 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 Unreal Performance this skillscenario-labs/skills | 946 | — | ~5.4k | Automated safety check: Pass | MIT | |
| Unreal BridgeTornLux/UnrealBridge | 306 | — | ~8.4k | Automated safety check: Notes | MIT | |
| Unreal Blueprint Authoringflopperam/unreal-engine-mcp | 1.1k | — | ~1.6k | Automated safety check: Pass | None | |
| UMG Material MCPwinyunq/UnrealMotionGraphicsMCP | 210 | — | ~913 | Automated safety check: Pass | MIT | |
| Unreal Animation Bone Editorkevinpbuckley/VibeUE | 730 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Unreal Engine MCPEpicGames/unreal-engine-skills-for-claude-code-plugin | 338 | — | ~1.8k | Automated safety check: Pass | MIT |
TornLux/UnrealBridge
Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.
flopperam/unreal-engine-mcp
Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.
winyunq/UnrealMotionGraphicsMCP
Creates, edits and compiles Unreal Engine 5.8 material assets as one HLSL Custom node through the UMG MCP bridge, instead of editing .uasset files directly.
kevinpbuckley/VibeUE
Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.
EpicGames/unreal-engine-skills-for-claude-code-plugin
Drives a live Unreal Editor through the unreal-mcp server: spawn actors, edit Blueprints, materials and sequences, change properties and trigger Live Coding.
flopperam/unreal-engine-mcp
Guides scene and world building in Unreal Engine through the Flopperam MCP: placing actors, sculpting landscapes, scattering foliage, editing materials and verifying the level.
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 creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
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…
Works with
Categories
A skill your agent uses when an Unreal Engine 5.8 project misses its frame rate or stutters: "optimize to 60 fps", "we run at 38 fps", CPU or GPU bound, game or render thread too long, hitches…. Scenario Unreal Performance is an agent skill from scenario-labs/skills.
Scenario Unreal Performance fits situations like: an Unreal Engine 5.8 project misses its frame rate; stutters: optimize to 60 fps; we run at 38 fps; render thread too long.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-performance -a claude-code`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-performance in scenario-labs/skills) into .claude/skills/scenario-unreal-performance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-performance -a codex`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-performance in scenario-labs/skills) into .agents/skills/scenario-unreal-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-unreal-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-unreal-performance, .gemini/skills/scenario-unreal-performance, .github/skills/scenario-unreal-performance and .opencode/skills/scenario-unreal-performance in your project.
Going by SKILL.md and its folder, Scenario Unreal Performance needs Python for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Python 3; 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 Unreal 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 5.4k tokens (SKILL.md is roughly 22k 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 27k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Unreal Performance: Unreal Bridge (TornLux/UnrealBridge, 306 stars), Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars), UMG Material MCP (winyunq/UnrealMotionGraphicsMCP, 210 stars) and Unreal Animation Bone Editor (kevinpbuckley/VibeUE, 730 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 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 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.