Unreal Bridge
TornLux/UnrealBridge
Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.
A skill your agent uses when building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD…
$ npx skills add scenario-labs/skills --skill scenario-unreal-gameplay -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-gameplay --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-gameplay .claude/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .claude/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplayType 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-gameplay -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-gameplay --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-gameplay .agents/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .agents/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplay -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-gameplay --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-gameplay .cursor/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .cursor/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplay--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-gameplay -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-gameplay --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-gameplay .gemini/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .gemini/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplayInstalls 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-gameplay -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-gameplay .github/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .github/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplay -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-gameplay --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-gameplay .opencode/skills/scenario-unreal-gameplay && 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-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-gameplay into .opencode/skills/scenario-unreal-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-gameplay", 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-gameplayA skill your agent uses when building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD…
Scenario Unreal Gameplay is an agent skill from scenario-labs/skills. Use when building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD; choosing Blueprint vs C++, GAS or not, StateTree vs Behavior Tree, EQS or Mass; setting up Enhanced Input, Common UI or UMG; replication, RepNotify, save games, World Partition state; "Blueprints are slow", Tick, casts and hard references; "ability won't activate", "enemy ignores the player"; or writing automated gameplay tests with injected…
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 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 C++, Unreal Engine and Python. 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 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
npxpython3From 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 Gameplay loads about 5.2k tokens when it runs, and up to ~34k if it reads all its reference files. Until then it costs about 137 tokens; SKILL.md has 2,025 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,025 words, ~5,159 tokens.
.claude/skills/scenario-unreal-gameplay/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Expert level means every piece of data lives in the class whose lifetime and network presence match it, logic is text (C++ or small functions) under data-only Blueprints and data assets that Python configures, and every mechanic is proven in isolation (injected input, debug commands, traces) before it is judged in play. The agent does not pretend to author graphs it cannot reach: it states which surface each piece lands on and escalates only the residue. 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): Unreal is not installed. The offline layer passed (python3 tests/code/unreal-gameplay/run_all.py --offline). Every in-editor snippet and generated C++ file is not yet run in Unreal (C++ not yet compiled); job_00_gameplay_probe.py answers the [verify] names.
EditDefaultsOnly, asset choices TSubclassOf slots, cosmetics BlueprintImplementableEvent hooks: logic as diffable text, Blueprints as defaults Python sets. Broadcasters fire one-way delegates (OnDied) that controllers, spawners and HUD bind ([00:19:25]).PlayMontageAndWait; Gameplay Cues cosmetic only (Shao 8bi0rnXnRj4 [00:19:25], [00:47:35], [00:21:43], [00:49:12], [00:13:02]; tranek 9.3). A SetByCaller value exists only when code sets it, so console isolation tests use a fixed-magnitude twin [added].InitAbilityActorInfo on the server in PossessedBy and on the owning client in the PlayerController's AcknowledgePossession (or OnRep_PlayerState); Mixed for players, Minimal for AI, set early; never predict damage (tranek 4.1, 4.1.2, 7.3, 4.10).| Input | Why it changes the plan | Default when silent |
|---|---|---|
| Single player or multiplayer, listen or dedicated | ASC placement, replication mode, prediction, test matrix | single player, authority checks from day one (networking doc) |
| C++ toolchain | Xcode 26.6 is installed; Epic lists 26.0 minimum, 26.1.1 recommended, 26.4 incompatible, 26.6 unlisted | probe build (P3) before promising C++; else Blueprint-plus-data fallback |
| Scale | tens of actors vs hundreds of stationary interactables vs thousands of movers | actors; Instanced Actors, then Mass (KBn62trwkLw [00:01:06]) |
| Feel targets | jump height, dash distance, cooldown, walk and chase speeds | ask; untouched CharacterMovement defaults "feel like an Unreal tutorial project" (IaU2Hue-ApI [00:23:39]) |
| Frame budget, platform | tick and AI caps | 60 fps; numbers to scenario-unreal-performance |
| Character and level inputs | skeleton, montages, notifies; nav bounds, player starts, streaming | from scenario-unreal-animation and scenario-unreal-world-building |
Scriptable: C++ classes, Blueprint children and their CDO defaults, data assets and tables, Enhanced Input assets, Gameplay Effect shells, StateTree assets and parameters, widget trees (EditorUtilityLibrary.add_source_widget). Graph content (event graphs, GE modifiers Python cannot instance, StateTree states and transitions, Behavior Tree nodes) goes through a template duplicated per variant, Epic's MCP toolsets, 5.8 BlueprintGraphEditor after help(), or one precise GUI pass. Full table: procedures P15.
job_00_gameplay_probe.py (headless) lists the classes, properties and cvars the skill marks [verify], including the AbilitySystem.Fix... asset-tag cvar, plus a dumpticks sample. GATE: probe.json written.ue_gameplay.decide(spec): data placement, Blueprint vs C++, GAS or not, AI system, ASC placement, init and replication, communication, UI, each with its deciding condition. GATE: every datum has owner, replication and survival (respawn, map change, streaming).ue_env.enable_plugins; ini_set for bUseDebugTargetFromHud, the asset-tag cvar at 0, tags; a GameMode HUD class for showdebug. GATE: config_verdict clean.cpp_scaffold() (character base, player controller, dash and melee abilities, AI controller, StateTree tasks, health widget, native tags), patch_build_cs(), build_command(), editor closed for new reflected members. GATE: build exit 0; cpp_lint without errors (it includes ASC_CLIENT_INIT_MISSING).JumpMaxCount = 2, player_controller_class on the GameMode, and on every AI pawn ai_controller_class = the controller Blueprint that holds the tree plus auto_possess_ai placed or spawned. Input assets from input_plan(), GE assets from plans checked by ge_plan_verdict, StateTree asset, widget tree. GATE: ge_plan_verdict and audit_gameplay() clean.statetree_spec_verdict, wire it from statetree_outline through an MCP toolset or one GUI pass (references/gui-paths.md), set tree parameters per enemy. GATE: spec verdict clean; the tree compiles with no unbound Inputs; ai_setup_verdict clean.showdebug abilitysystem (3 pages), the gameplay debugger on each AI, log LogAbilitySystem VeryVerbose read by gas_log_triage; then pie_scenario or a PythonAutomationTest with Input.+key injection, judged by analyzers whose thresholds derive from the parameters (analyze_jump, dash_expected_cm, analyze_cooldown, state_sequence_verdict, health_bar_verdict). GATE: every scenario passes, no stuck ability, no unplanned root entry.showdebug enhancedinput, health bar before and after damage, enemy per state, navmesh coverage; ue_review.image_checks before looking. GATE: no blank frame; UI in sync.stat game, stat unit, dumpticks (tick_verdict), stat slate with Global Invalidation off and on, and an Insights trace of the scenario before any rewrite (rewrite_gate). GATE: tick census justified; rewrites only for hot-set functions; trace handed to scenario-unreal-performance.| Value | Relative to | Source |
|---|---|---|
| Tick overhead per actor: BP 3.59 us editor, 1.84 us packaged; C++ about 0.64 to 0.70 us | 100,000 actors, UE 5.4 | Arnbjörnsson [00:05:00] |
| CMC 241 us, PlayerController 125 us per frame | same Lyra frame | Arnbjörnsson [00:06:07] |
| BP node 0.1 us packaged (0.5 editor); C++ call 0.7 us (0.8 editor) | per call | Arnbjörnsson [00:18:48] |
| Print String 88.8 to 272.5 us per call | Development build | Arnbjörnsson slides 00:20:10 |
| Fortnite: about 80 ticks per frame client, 700 server | ticking functions | Arnbjörnsson [00:11:03] |
| GetAllActorsOfClass fine for a few dozen results per frame; WithTag and WithInterface scan every actor | world size | Arnbjörnsson [00:37:17], [00:38:56] |
| Empty Tick: free from 5.6 | compiler disables it | myth article |
| 20 active enemies cap; async path offset 0.2 to 0.5 s; attackers 1 dangerous or up to 3 weak | Lords of the Fallen, console, per player | Bruno [00:16:25], [00:15:20], [00:38:40] |
| Lyra modal push repainted 207 widgets; 25 after the fix | paint count | Albert [00:35:03] |
| Jump apex h = v^2 / 2g; a second jump resets Velocity.Z, adding h to the rise at the press | JumpZVelocity, gravity 980 cm/s^2 x GravityScale | physics [added] |
| Ground dash = speed x duration + exit coast (about 24 cm from 600 cm/s) | GroundFriction 8, BrakingFrictionFactor 2, BrakingDecelerationWalking 2048 | engine model [added, verify] |
cpp_lint (asset paths and dependency direction, multicast state, Reliable RPC in Tick, OnRep on the server, client ASC init, widget Tick, Collapsed toggles, repeated BeginPlay); ge_plan_verdict; statetree_spec_verdict; ai_setup_verdict; audit_gameplay (tick census, hard-reference closure, cooldown tags, widget bindings); scenario verdicts with derived thresholds; gas_log_triage empty; showdebug abilitysystem shows no stuck ability; StateTree trace without unplanned root entry; rewrite_gate behind every rewrite.| Mistake | What it looks like | Fix |
|---|---|---|
| Transient client data on the GameMode | clients see nothing | GameState or PlayerState |
| Multicast for a door state | late joiners see it closed | replicated property + RepNotify |
| Cast from the player to optional Blueprints | long loads, memory resident | C++ base, interface, IsA (Soft) |
| "Don't use Tick", Timeline every frame | same cost, harder code | fewer ticking actors, aggregate, interval |
ASC initialized only in PossessedBy | "Can't activate LocalOnly or LocalPredicted ability" on clients | AcknowledgePossession or OnRep_PlayerState |
| Ability never ends; Delay inside it | cannot re-trigger; wait survives cancel | End Ability on every path; Wait Delay |
| PlayMontage in an ability | montage missing on other machines | PlayMontageAndWait |
| SetByCaller GE applied from the console | zero damage, missing-magnitude log | fixed-magnitude twin (GE_Damage_Debug) |
| Querying GE granted tags | reactions fire on wrong effects | asset tags; asset-tag cvar at 0 |
| Enter conditions trusted to be polled | enemy keeps chasing inside attack range | event or On Tick transition on the running state |
| State without a failure transition | "why did it go to the root" | explicit success and failure transitions |
| Delay beside MoveTo in one state | waits while walking | separate Wait state; 5.6 Task Control Flow |
| C++ controller class on the enemy CDO | enemy stands still | controller Blueprint holding the tree; placed or spawned |
| UMG property binding, widget Tick | per-frame cost; frozen under invalidation | events from the attribute delegate |
| Collapsed for an often-toggled bar | layout invalidation per toggle | Hidden |
| Invalidation tested in the viewport PIE | no gain seen | new-window PIE |
| Sync save during play | hitch, certification risk | AsyncSaveGameToSlot |
| Rewrite from a stat hunch | effort, no gain | Insights trace, rewrite_gate |
| Hand-picked test threshold | a correct build fails | derive it from the parameters |
| Agent Blueprint timers as Delay chains | 150 Delay nodes (Deiter [00:56:45]) | Timeline, C++ timer, or GAS task |
AN_SendGameplayEvent notify on hit frames; from scenario-unreal-world-building: levels with nav bounds, player starts, streaming ranges, Data Layers, gameplay data as Asset User Data.vfx_event_contract: tag, trigger, payload, radius from gameplay data, window, max rate, spawn path; cues cosmetic only); to scenario-unreal-performance: a Development build, the worst-case scenario as an automation test, its Insights trace, tick census, AI and ASC counts (perf_handoff); to scenario-unreal-animation: the tuned movement model before motion matching data (DeVoe FLDXtAV7qsw [00:07:01]); to scenario-unreal-pipeline-automation: the automation tests for CI.UPlayerMappableInputConfig deprecated (5.4).GetAssetTags and GetGrantedTags in Blueprint (5.7); debug commands under AbilitySystem.Ability and AbilitySystem.Effect (5.4).UE::StateTree::EComparisonOperator (5.8).BlueprintGraphEditor, no local variables shadowing members, bp.MaxAsyncActionCount (5.8).references/expert-notes.md: principles by expert, with timestamps and disagreements.references/procedures.md: full code, test path and status per procedure; authoring surfaces (P15).references/critique.md: the rubric the agent uses on its own output.references/gui-paths.md: editors, menus and settings for the same work.references/sources.md: every source, credential, URL, best timestamps.scripts/ue_gameplay.py: decisions, scaffolds, lint, GE and StateTree spec checks, trace analysis, handoffs; in-editor helpers (not yet run).scripts/ue_gameplay_cpp.py: C++ source templates (logic in a C++ base class, data-only Blueprint children); not yet compiled.© 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 7 other files (scripts, references) in skills/game-engines/unreal/scenario-unreal-gameplay of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Unreal Gameplay 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 Gameplay this skillscenario-labs/skills | 946 | — | ~5.2k | Automated safety check: Pass | MIT | |
| Unreal BridgeTornLux/UnrealBridge | 306 | — | ~8.4k | Automated safety check: Notes | 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 | |
| Unreal Actor-Component Architecturequodsoler/unreal-engine-skills | 362 | — | ~7.5k | Automated safety check: Pass | MIT | |
| Unreal Engine Animation Systemquodsoler/unreal-engine-skills | 362 | — | ~7k | Automated safety check: Pass | MIT |
TornLux/UnrealBridge
Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.
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.
quodsoler/unreal-engine-skills
Unreal Engine C++ guidance for AActor and UActorComponent: lifecycle hooks, spawning, component creation and attachment, ticking, interfaces and composition.
quodsoler/unreal-engine-skills
Reference for writing and debugging Unreal Engine 5.8 animation C++: AnimInstance and proxy, montages, notifies, curves, blend spaces, state machines, linked layers and root motion.
kevinpbuckley/VibeUE
Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.
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 building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD…. Scenario Unreal Gameplay is an agent skill from scenario-labs/skills.
Scenario Unreal Gameplay fits situations like: debugging UE5 gameplay: a character with double jump; abilities with cooldowns; enemy AI that patrols; chases and attacks.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-gameplay -a claude-code`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-gameplay in scenario-labs/skills) into .claude/skills/scenario-unreal-gameplay in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-gameplay -a codex`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-gameplay in scenario-labs/skills) into .agents/skills/scenario-unreal-gameplay 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-gameplay -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-gameplay, .gemini/skills/scenario-unreal-gameplay, .github/skills/scenario-unreal-gameplay and .opencode/skills/scenario-unreal-gameplay in your project.
Going by SKILL.md and its folder, Scenario Unreal Gameplay needs Python for the scripts in its folder and the command-line tools its instructions call (npx and python3). 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 Gameplay 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.2k tokens (SKILL.md is roughly 21k 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 29k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Unreal Gameplay: Unreal Bridge (TornLux/UnrealBridge, 306 stars), Unreal Animation Bone Editor (kevinpbuckley/VibeUE, 730 stars), Unreal Engine MCP (EpicGames/unreal-engine-skills-for-claude-code-plugin, 338 stars) and Unreal Actor-Component Architecture (quodsoler/unreal-engine-skills, 362 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.