Agent skill

Scenario Unreal Performance

by scenario-labs in scenario-labs/skills

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…

MITAuto-check passedGame Development

Install Scenario Unreal Performance

skills CLI
$ npx skills add scenario-labs/skills --skill scenario-unreal-performance -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install scenario-labs/skills scenario-unreal-performance --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
scenario-unreal-performance
GitHub stars
946
Token cost
~5.4k tokens
SKILL.md length
2,075 words
Files
7 (incl. scripts, references)
Skills in repo
146
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 9 steps: Probe the tools. job_probe_perf.py for… → Frame the gap, write budgets. 38 fps is… → Route and honest capture.… → …
  • An Unreal Engine 5.8 project misses its frame rate
  • SKILL.md covers Stance (the expert delta), Establish first, Workflow and Numbers, plus 5 more sections
  • Runs Python scripts from its folder; calls npx

What it does

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.

When your agent uses it

  • An Unreal Engine 5.8 project misses its frame rate
  • Stutters: optimize to 60 fps
  • We run at 38 fps
  • Render thread too long

Example prompts

  • “optimize to 60 fps”
  • “we run at 38 fps”
  • “/scenario-unreal-performance”

Requirements

  • Python 3
  • Node.js

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Probe the tools. job_probe_perf.py for API names and cvars; P.schema_probe(jsonl) on the first TraceQuery output. GATE: every planned cvar…
  2. Frame the gap, write budgets. 38 fps is 26.3 ms, 9.6 ms over 16.67. P.budget_table(platform, fps, pass_budgets) (OZ26 [00:45:55]). GATE…
  3. Route and honest capture. P.route_from_bugit(log) (or P.route_event_track when packaged), P.capture_plan("budget", ...), three runs. GATE…
  4. Classify. P.diagnose_bound(frames, 16.67, context=...) gives bound, gap, caveats and the next capture; read back scalability…
  5. Config first, one change per measurement. Scalability 2 plus a selector that activates it; resolution chain (P.day_one_60fps_cvars…
  6. Deep pass on the bound (procedures P6 to P7b). GPU: attributed ProfileGPU into P.gpu_pass_table, P.lumen_delta, then the numbers through…
  7. Audit and route fixes. P.perf_audit_level(), P.perf_audit_assets() (mobility, collision source, WPO bounds, Displacement Fade)…
  8. Hitch pass. capture_plan("hitch") cold then warm (cold only off-console); P.hitch_snapshots(dir), each through P.analyze_trace…
  9. Prove and guard. Same route, build, device; three runs each; async compute as chosen; DRS locked and as shipped. P.compare_runs then…

What it can do on your machine

Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~5.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~32k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 2,075 words, ~5,406 tokens.

Download SKILL.mdSave it as .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.
name
scenario-unreal-performance
description
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 captures.
license
MIT

Performance engineering in Unreal Engine 5.8

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).

Stance (the expert delta)

  • Milliseconds per stage, then the right tool. At 60 fps the game thread, render thread and GPU each get 16.6 ms, pipelined game N, render N-1, GPU N-2 (W4R [00:05:17] [00:08:26]). Report ms, never fps (ARI22 [00:14:44]). 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]).
  • An honest capture before any fix. Cooked Test or Development build on target hardware, fixed route; lock dynamic resolution (75%) and force async compute off only to attribute passes, never for the proof (NORSE [00:44:40] [00:45:12]). Lean capture for "are we on budget", rich (-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]).
  • The longest bar is often a wait, and waits are budget. Exclude idle, wait and frame-sync markers and follow the dependency to the working thread; a slow render frame N appears as game-thread waiting in frame N+1 (KEN [00:09:54] [00:16:30]). Waits on animation and movement finalization (about 2 ms at 300 NPCs) are reclaimable (W4R [00:16:20]).
  • Epic scalability is the 30 fps mode. High (2) is the 60 fps level, and nothing selects the 60 fps device profile unless you build that (OZ26 [00:11:00] [00:16:50]; LVP). The resolution chain (dynres 800p to 1080p, TSR to 1440p, spatial upscale to 4K) is the biggest single rendering lever (OZ26 [00:14:41]; W4R [00:43:08]).
  • Budget each feature, measure by delta, follow its tree. Lumen GI plus reflections is about 4 ms at 60 fps, read as the frame delta with Lumen off (OZ24 [00:37:55]). Nanite: budget, then Evaluate WPO and Pixel Programmable views, Overdraw last; a view locates, it does not prove (OZ24 [00:29:18] [00:32:13]). VSM: chase the larger of static and dynamic invalidations (OZ24 [00:48:59]). Async compute is an A/B per feature: about 1.5 ms overall in the Witcher demo, yet Lumen reflections back on graphics saved more (W4R [00:20:42] [00:21:48]).
  • Defaults favor ease; the big wins are content settings. Complex collision everywhere, overlaps on load, translucency After DOF at full output resolution, DF shadows next to VSM, PDO or WPO foliage paying three times (VisBuffer, VSM, custom depth), overlapping shadowed local lights, props left Movable (NORSE [00:38:53] [00:49:03] [00:53:48] [00:49:35]; FFW [00:52:59]; ARG [00:11:54]).
  • Hitches are their own pass. Hundreds of ms is almost certainly a blocking load, stopped at authoring by a validator; GC cost follows the UObject count; spawns are not incremental; camera cuts lose occlusion history; consoles have no runtime PSO hitches, PC and Mac are tested cold (HITCH [00:43:07] [00:45:16] [00:38:31] [00:25:08] [00:35:50]; W4R [00:44:44]; PSO blog). Dynamic resolution cannot fix a hitch (W4R [00:43:38]).
  • Fix content before band-aids. Async physics init, incremental GC and dynres hide growth (HITCH [00:22:56] [00:41:56]); throttle the one feature that spikes instead of letting dynres soften the whole frame (W4R [00:38:55]).

Establish first

InputChangesDefault when silent
Target hardware and who captures on itevery number; this Mac cannot deploy to a devkit (platform SDK and source build, PKG)ask; meanwhile Mac numbers labeled as proxy
Frame target, output resolutionstage budget, resolution chain60 fps; 4K output on console
Dynamic resolution policylock while profiling; the shipped rangeon, 55 to 75% of the 1440p secondary (OZ26 [00:15:48])
Builds availableproof 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 routerepeatabilitybusiest scene, crowd, combat, top traversal speed, camera cuts, as BugIt waypoints
Quality bar, who signs tradesparity gatethe owner of the look (lighting, art)

Workflow

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.

  1. Probe the tools. 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.
  2. Frame the gap, write budgets. 38 fps is 26.3 ms, 9.6 ms over 16.67. P.budget_table(platform, fps, pass_budgets) (OZ26 [00:45:55]). GATE: sources on every row, passes sum under the stage.
  3. Route and honest capture. 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.
  4. Classify. 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.
  5. Config first, one change per measurement. Scalability 2 plus a selector that activates it; resolution chain (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.
  6. Deep pass on the bound (procedures P6 to P7b). GPU: attributed 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.
  7. Audit and route fixes. 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.
  8. Hitch pass. 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.
  9. Prove and guard. Same route, build, device; three runs each; async compute as chosen; DRS locked and as shipped. 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.
Show full SKILL.md (910 more words)Show less

Numbers

ItemValueRelative to, source
Stage budget16.67 ms each (33.3 at 30)game, render, GPU, W4R [00:05:17]
Lumen GI and reflectionsabout 4 ms at 60, 8 at 30frame delta, console High, OZ24 [00:37:55]; LVP
Roughness threshold0.4 default vs content near 0.35; 0.4 vs none 3x faster, imperceptibleOZ26 [00:41:56]; W4R [00:33:42]
HWRT sceneunder 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 framePS5, W4R [00:29:30] [00:30:37]
Async computeabout 1.5 ms saved overall; reflections faster on graphicsPS5, W4R [00:20:42] [00:21:48]
Deep-water Lumen cullover 1 msPS5, W4R [00:35:18]
Resolution chainprimary 800p to 1080p, secondary 1440p (66.67% of 4K), dynres 55 to 75%; secondary saved about 1 msW4R [00:43:08]; OZ26 [00:15:48]
Streaming5 ms engine default; 2.5 to 1.5 ms unified (40% less latency); 0.8 ms final; 51 frames request to visible in their exampleOZ26 [00:25:25]; W4S [00:22:13] [00:23:55] [00:32:18]
Crowd300 to 200 NPCs: game thread 11.5 ms, 5 ms headroomPS5, W4R [00:16:53]
UObjects, GCunder 500k good, over 1M wrong; GC 1 ms fine, 2 ms isolate, 10 ms investigateHITCH [00:39:06] [00:39:39]
Spawnsone complex actor per framelow-end targets, HITCH [00:25:29]

Quality gates

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.

Common mistakes

MistakeWhat it looks likeFix
Profiling PIEBlueprint and CPU costs inflatedcooked Test build; editor for GPU triage only (FFW [00:04:29])
GPU ms with dynres onGPU stays near budget while resolution dropslock 75% (NORSE [00:44:40])
Async compute taken as givenpass sums above the frame; a pass with nothing to overlap costs morer.RDG.AsyncCompute 0 only to attribute; per-feature A/B (W4R [00:21:48])
Blaming the longest bar34 ms of GameThreadWaitForTaskfollow to render, RHI or worker (KEN [00:16:30])
Epic scalability on a 60 fps targetsg.* print 3level 2 in device profiles and editor settings (OZ26 [00:12:01])
sg.ResolutionQuality=22% resolutionit is a percentage [added]
TSR straight to 4Kpost passes at 4K1440p secondary, spatial upscale (W4R [00:42:33])
Nanite Overdraw view firstchasing white pixelsbudget, Evaluate WPO, Pixel Programmable, Overdraw last (OZ24 [00:32:13])
Half a long shadow animatesWPO foliage shadow split at a clipmapraise r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias (OZ24 [00:46:49])
VSM local lights over moving charactersdynamic pages invalidated every frameA/B ray-traced shadows for those lights (AVW [00:26:25])
Rain or deep waterLumen reflection and water cost climbre-read Performance Overview in rain, clamp roughness; water opaque-depth cutoff (OZ24 [00:40:40]; W4R [00:35:18])
PSO blamed, or tested warmwrong fix; stutter "fixed" on the second runclassify by trace signature; cold runs with -clearPSODriverCache; consoles skip (PSO blog; HITCH [00:35:50])
A wave spawned in one frameSpawnActor spikecap per frame, Tick Animation On Skeletal Mesh Init, per-type pools (HITCH [00:25:29] [00:27:26])
Camera-cut spikeoverdraw on the frame after a cutr.Nanite.PrimeHZB (5.7) [verify] (W4R [00:44:44])
Many changes, one measurementgains cannot be attributedChangeLog, one change per run
Density scaling on colliding foliagegameplay changesnon-colliding types only (FFW [00:32:48])
Complex collision by defaultper-poly queries on 2M-triangle fallbacksUse 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 Movablea 20% drop from about 1,000 meshesmobility audit (ARG [00:11:54])

Handoffs

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:

  • scenario-unreal-world-building: component counts, Packed Level Actors, ISM cell transformer, FastGeo, HLOD, mobility, collision, foliage distances.
  • scenario-unreal-materials: masked, PDO and WPO Nanite materials, max WPO displacement, Displacement Fade, shading bins, After DOF translucency, decals.
  • scenario-unreal-lighting-rendering: Lumen thresholds, RT scene and far field, Lumen Lite, VSM settings, ray-traced local shadows, DF shadows; signs off quality trades.
  • scenario-unreal-gameplay: ticks, significance, spawns and pools, blocking loads, overlaps, UObject counts.
  • scenario-unreal-animation: Animation Budget Allocator (registered components), AnimBP redundancy, MetaHuman LODs, crowd counts.
  • scenario-unreal-vfx: Effect Types, pooling, Data Channels, GPU readbacks, shadowed lights in effects.
  • scenario-unreal-cinematics: camera-cut hitches, cinematic scalability.
  • scenario-unreal-pipeline-automation: device profiles, validators (blocking-load nodes, binding rule), nightly perf test.

UE 5.8 notes

  • New tools: 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).
  • Lumen Lite Beta at Medium; MegaLights Production Ready; VSM deferred invalidation budget; receiver masks default for directional lights since 5.7; Nanite Pixel Programmable Distance on foliage types; r.Nanite.PrimeHZB since 5.7.
  • FastGeo and the 5.6 streaming cvars still Experimental (check the plugin browser).
  • Mac: Apple Silicon only; Nanite and VSM Beta, Lumen HWRT and MegaLights Experimental (M2+); Insights has no ContextSwitch and no listed memory callstacks; GPU "why" in Xcode and Instruments (MOB).

References

  • 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

Files

SKILL.md and 6 other files (scripts, references) in skills/game-engines/unreal/scenario-unreal-performance of scenario-labs/skills.

  • SKILL.md
  • references/critique.md
  • references/expert-notes.md
  • references/gui-paths.md
  • references/procedures.md
  • references/sources.md
  • scripts/ue_perf.py

Open the folder on GitHubat commit f6f8ab7

Compare with similar skills

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.

Scenario Unreal Performance compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Scenario Unreal Performance this skillscenario-labs/skills946—~5.4kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge306—~8.4kAutomated safety check: NotesMIT
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone
UMG Material MCPwinyunq/UnrealMotionGraphicsMCP210—~913Automated safety check: PassMIT
Unreal Animation Bone Editorkevinpbuckley/VibeUE730—~1.3kAutomated safety check: PassMIT
Unreal Engine MCPEpicGames/unreal-engine-skills-for-claude-code-plugin338—~1.8kAutomated safety check: PassMIT

Similar skills

  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    306 GitHub stars~8.4k tokensUpdated 10 days ago
    Game DevelopmentAuto-check: notes
  • Unreal Blueprint Authoring

    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.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • UMG Material MCP

    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.

    210 GitHub stars~913 tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Animation Bone Editor

    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.

    730 GitHub stars~1.3k tokensUpdated 3 days ago
    Game DevelopmentAuto-check passed
  • Unreal Engine MCP

    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.

    338 GitHub stars~1.8k tokensUpdated 24 days ago
    Game DevelopmentAuto-check passed
  • Unreal Scene Building

    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.

    1.1k GitHub stars~1.4k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed

More from scenario-labs/skills

All 146 skills in this repo
  • Scenario Blender Grease Pencil

    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…

    946 GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Scenario Blender Hair

    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.

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • 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…

    946 GitHub stars~5k tokensUpdated yesterday
    Auto-check passed
  • Scenario Chatgpt Pet Create

    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…

    946 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Scenario Godot Animation

    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…

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Scenario Godot Audio

    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…

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Scenario Unreal Performance

What does Scenario Unreal Performance do?

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.

When should I use Scenario Unreal Performance?

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.

How do I install Scenario Unreal Performance in Claude Code?

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.

How do I install Scenario Unreal Performance in Codex?

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.

Can I use Scenario Unreal Performance in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Scenario Unreal Performance need to run?

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.

Does Scenario Unreal Performance access the network?

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.

Is Scenario Unreal Performance safe to install?

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.

What licence does Scenario Unreal Performance use?

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.

How many tokens does Scenario Unreal Performance use?

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.

What are the alternatives to Scenario Unreal Performance?

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.

Who maintains Scenario Unreal Performance?

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.