Fantasy Framework Development Guide
qq362946/Fantasy
Development and review guide for the Fantasy C# distributed game server framework: ECS, FTask, routing, service discovery, config and databases.
A skill your agent uses when building or debugging Unity gameplay systems: enemy AI that patrols, chases and attacks, NavMesh baking and agents (AI Navigation 2), feet sliding on agents, state…
$ npx skills add scenario-labs/skills --skill scenario-unity-gameplay -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-unity-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/unity/scenario-unity-gameplay .claude/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .claude/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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/unity/scenario-unity-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-unity-gameplay -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-unity-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/unity/scenario-unity-gameplay .agents/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .agents/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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-unity-gameplay -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-unity-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/unity/scenario-unity-gameplay .cursor/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .cursor/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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/unity/scenario-unity-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-unity-gameplay -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-unity-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/unity/scenario-unity-gameplay .gemini/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .gemini/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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-unity-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-unity-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/unity/scenario-unity-gameplay .github/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .github/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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-unity-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-unity-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/unity/scenario-unity-gameplay .opencode/skills/scenario-unity-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-unity-gameplay" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unity/scenario-unity-gameplay into .opencode/skills/scenario-unity-gameplay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unity-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-unity-gameplayA skill your agent uses when building or debugging Unity gameplay systems: enemy AI that patrols, chases and attacks, NavMesh baking and agents (AI Navigation 2), feet sliding on agents, state…
Scenario Unity Gameplay is an agent skill from scenario-labs/skills. Use when building or debugging Unity gameplay systems: enemy AI that patrols, chases and attacks, NavMesh baking and agents (AI Navigation 2), feet sliding on agents, state machines or behavior trees, physics projectiles that tunnel, the physics spiral, layers and the collision matrix, CharacterController vs Rigidbody characters, object pooling, 'hundreds of enemies', DOTS, Burst or Jobs decisions, Netcode for GameObjects multiplayer, audio mixers, snapshots, volume sliders and 3D combat sounds.
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 41 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 Multiplayer and networking. 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 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 10 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 Gameplay loads about 4.9k tokens when it runs, and up to ~37k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 2,092 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,092 words, ~4,926 tokens.
.claude/skills/scenario-unity-gameplay/SKILL.md (or your agent's skills folder). This skill also uses 36 other files; get the full folder from GitHub.Expert gameplay work in Unity 6.3 means every system has one owner of its state, runs at a rate someone chose, and is proven by a measurement: steps per frame, a tunneling test at the real speed, a path query through the real door, a timed transition, the worst frame at the real agent count. This skill carries the expert delta from the 6.3 manuals, AI Navigation 2, NGO and shipped games (Survival Kids, Very Very Valet), with jobs and tests run in 6000.3.21f1. 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). Install: ut_gameplay.install(P) (core AgentKit + AgentKit.Gameplay jobs + the AgentKit.Gameplay.Runtime assembly).
SweepProjectile) stopped the 300 m/s shot, and a 0.25 m sphere sweep hit a post a center ray missed: match the cast to the collider (LlamAcademy, fJyi7l2tWKo [00:09:54]).UpdateHub sorted by type (Survival Kids: same code, mean -12%, worst frame 2.18 to 1.43 ms [00:23:59]; measured here at 1,000 and 10,000 objects: mean 7 to 14% lower)..Run() (measured: 6 to 10 ms saved of 21 to 26), and only then Entities (Survival Kids [00:08:49], [00:39:15]). Decide ECS early, for large CPU-driven counts, competitive netcode or determinism (Turbo Makes Games, Bz24Jp30nkM [00:21:58]).AnticipatedNetworkVariable, AnticipatedNetworkTransform, OnReanticipate) is the building block for hand-built prediction (NGO 2.7 manual; same text in the bundled 2.13.0 docs). Server authority by default, HasAuthority over IsServer, "would a late joiner need it?" decides NetworkVariable vs RPC.ClearFloat, and 60 uncapped looping weapon sounds erased a quiet music bed at default priority. Cap frequent sounds at 10 to 15 and steal the oldest (git-amend, BgpqoRFCNOs [00:17:56]).Ask once: genre and whether play is competitive; platforms and frame budget (default 16.67 ms desktop, mobile x 0.65, scenario-unity-mobile); peak agents, projectiles and sounds; whether the player pushes and is pushed by physics; animation-driven or agent-driven locomotion; multiplayer (players, host leaving, rollback or hit rewind); existing layers, mixer and scenes; 2D or 3D (scenario-unity-2d). Defaults: 3D URP, 50 Hz, layers Environment 8, Player 9, Enemy 10, Projectile 11 with Projectile x Projectile and Enemy x Enemy off, Humanoid agent type (radius 0.5), code FSM enemies at 10 Hz, one mixer Master > Music, SFX, UI.
GameplaySetup.ConfigurePhysics (layers, Physics.IgnoreLayerCollision, Time and Physics through SerializedObject). GATE: ReadPhysicsSettings in a second process shows the matrix, 0.02 s and the cap (measured: Time.* setters plus SaveAssets did not persist).GameplayScenes.BuildNavArena pattern: surface layerMask = Environment, voxel = radius/3, BuildNavMesh() then AssetDatabase.CreateAsset(surface.navMeshData, ...) as the Inspector Bake button does, save. Build Height Mesh when agents use stairs; NavMesh Modifier Remove Object on foliage; Collect Objects = Volume or Modifier-only to scope. GATE: CalculatePath PathComplete through every door, SamplePosition on spawns and treads, data present after reopening, scene still text; overlay capture opened.FloatingCapsule when it is. Agent locomotion with AgentLocomotionSync: agent drives (root motion off, speed from deltaPosition) or animation drives (updatePosition = false, 0.9 pull beyond the radius). GATE: 0 cc.* audit errors; ControllerTests numbers; drift test.EnemyBrain + EnemyDirector; perception cheapest first, then one ray on an occluder mask with QueryTriggerInteraction.Ignore, batched in LineOfSightBatch (RaycastCommand with QueryParameters) at scale; agent off before obstacle on death. GATE: EnemyLoopTests times Patrol > Chase > Attack > Search > Patrol > Dead.SweepProjectile. NonAlloc through Queries (loop on the count, flag a full buffer, sort when order matters); Physics.SyncTransforms() before querying colliders moved by transform. ProjectilePool with collectionCheck. GATE: CcdLadderMeasured and QueryTests at your numbers; CountActive back to 0.GameplayAudio.CreateCombatMixer or a template; every source routed; CombatAudio capped emitters; sliders on a parameter no snapshot drives; music priority 0; distance muffling with an AudioLowPassFilter curve. GATE: AudioTests, AudioSpatialTests (music band under spam), 0 audio.* errors; a human listening pass at caps 30, 15, 5 under stress, keeping the smallest that sounds full (BgpqoRFCNOs [00:17:23]).BuildCrowdScene at the real count, AgentProfile.PlayModeTimings, AIBudgetMeter, JobWaitMeter; PerceptionBenchmark, ProximityBenchmark, dots_gate and proximity_gate before any DOTS proposal. GATE: p95 AND the worst frame; editor numbers confirmed in a development player with Profile Analyzer and the native device profiler (Survival Kids [00:10:27]; scenario-unity-performance).ut_gameplay.netcode_fit, authority and tick sheet, prediction proven in Edit Mode with NetSim before NGO wiring. GATE: reconciliation tests green; the design says what must be hand-built.| Value | Relative to | Source |
|---|---|---|
| 0.02 s (50 Hz); 1/60 for one step per 60 fps frame | Fixed Timestep | Manual; pTz3LMQpvfA [00:01:22] |
| 0.333 s default (about 16 steps at 50 Hz); 0.1 s = 5 steps | Maximum Allowed Timestep | measured |
| near 10 calls per frame = problem | Physics.Processing Calls | Manual |
| Discrete tunnels above about (thickness + 2r + 0.02) / dt | 50 Hz | discrete_tunnel_speed; measured 20 m/s, 5 cm wall |
| skin >= max(0.01, 0.1 x radius); step 0.1 to 0.4 m; min move 0 | 2 m CharacterController | Manual |
| sag = m x g / k; x2 acceleration on reversals | floating capsule | measured; Toyful [00:05:32] |
| 3 voxels per radius; 4-6 interiors; >8 rarely helps; door >= about 1.5x agent diameter | agent radius | manual; measured |
| drift pull 0.9 x delta when drift > agent radius (measured max 0.41 to 0.45 m at r 0.4, 1.84 m without) | animation-driven agent | AI Navigation manual |
| carve seen next frame; Carve Only Stationary re-carves after 0.5 s still (measured 0.50 to 0.61 s) | NavMesh Obstacle | manual; measured |
| AI slice 0.10-0.15 ms (Update) vs about 0.01 ms (10 Hz director) | 200 agents, Editor | measured |
| Burst parallel slower than managed at 200 agents, faster from 2,000 | perception prefilter | measured |
| brute force 7-8 ns managed, 1.2-1.5 ns Burst per item-query pair; grid 0.3-1.3 ms vs 14-15 ms at 10,000 x 200 | proximity queries | measured (Survival Kids KD tree: 5 ms to 0.08 ms, 20 queries over 1,000 items) |
| 200 ms noticed; FPS < 100 ms; 30 Hz tick; update rate > fire rate | netcode | NGO manual |
| 32 real / 512 virtual voices; priority 0-256, default 128 | Audio settings | measured; manual |
| gain = min/d past Max Distance (Logarithmic); 0 at Max Distance (Linear) | 3D rolloff | measured |
| low-pass cutoff curve 22000 to 10 Hz, needs an Audio Low Pass Filter | distance muffling | Manual; measured 8 kHz at 8 m: 0.03x |
| slider 0.0001..1 -> 20 log10(v); 10-15 instances per frequent sound | mixer, voices | DU7cgVsU2rM [00:14:30]; BgpqoRFCNOs [00:17:56] |
compile_errors == []; settings read back in a new process; AuditGameplayScene 0 errors (the negative control flags every seeded trap); suites green with GAMEPLAY_METRICS parsed; CCD and sweep tests at the real speed; pools back to baseline; crowd CSV at the real count with p95, worst frame and AI slice; code_audit 0 errors.ut_review.image_checks and were opened; controller and locomotion feel judged from frames when feel is the brief.| Mistake | What it looks like | Fix |
|---|---|---|
| Continuous Dynamic on every fast body | CPU grows, still tunnels a dynamic plate | Speculative first; SweepProjectile |
| thin ray for a fat projectile | misses what its radius touches | sweep the collider's shape (Queries.SweepShape) |
| NonAlloc loop over the buffer | stale or silently dropped hits, unordered | loop on the count; flag count == length; sort |
Physics.autoSyncTransforms = true | hidden sync before every query, CS0618 | one Physics.SyncTransforms() before the query |
Time.maximumDeltaTime = x in an editor job | back to 0.333 next launch | SerializedObject on TimeManager.asset |
BuildNavMesh() then save the scene | data embedded, scene file turns binary | AssetDatabase.CreateAsset(surface.navMeshData) first |
| querying after saving over an existing scene | NavMesh empty, paths invalid | GameplayScenes.EnsureLoaded |
| stairs without a HeightMesh | agents glide up a ramp | Build Height Mesh, rebake |
| repath in the frame an obstacle carves | route through the new body | query next frame |
| agent and animation both move the character | foot sliding, jitter | one way: AgentLocomotionSync |
| static singleton, domain reload off | last session's hub, double updates | reset in SubsystemRegistration; SafeUnregister |
TransformAccessArray from FindObjectsByType<Transform> | frame cost grows with the scene | own list, rebuild on change |
| writing TAA transforms while the job runs | main thread stalls for the job | copy out read-only; write after Complete() |
| triggers for "anything near me" at scale | transform sync on every mover | own list, Burst, then grid (proximity_gate) |
| MonoBehaviour in a file with another name | silently absent after a scene save | one MonoBehaviour per file |
PlayClipAtPoint for combat sounds | sliders do nothing | pooled emitters routed to a group |
| low-pass "distance" effect on the SFX group | every sound muffled alike | AudioLowPassFilter curve per source |
| trusting Max Distance to silence a Logarithmic source | still audible far away (1/d) | Linear or custom curve, or cull by distance |
| "NGO has client prediction" in a plan | promised loop does not exist | anticipation plus hand-built reconciliation, or Netcode for Entities |
MixerControl.SetUserVolume); crowd CSVs, AI slice and job waits to scenario-unity-performance; 2D physics to scenario-unity-2d; audio limits to scenario-unity-mobile and scenario-unity-web. Packet: scene, job ids, audit JSON, test metrics, CSV verdicts, Verified and Assumed.linearVelocity, linearDamping, PhysicsMaterial, Physics.simulationMode; Physics.autoSyncTransforms deprecated (not just off); RaycastCommand takes QueryParameters; Physics.BakeMesh(int...) obsolete.Entities.ForEach; 6.6 makes Burst built in and new projects skip domain reload on Play.[Rpc(SendTo.Server)]; override OnUpdate, not NetworkTransform.Update; Multiplayer Services replaces Lobby and Relay.references/expert-notes.md: principles by source, timestamps, measured numbers.references/procedures.md: procedures as code with live tests and results (G1 to G16).references/critique.md: the self-review rubric.references/gui-paths.md: windows and menus for the same procedures.references/sources.md: sources, credentials, timestamps, revision history.scripts/ut_gameplay.py: install, numbers, gates (DOTS, proximity, netcode, AI structure), rolloff model, metrics, code audit.scripts/AgentKit/Gameplay/: editor jobs. scripts/Runtime/: brains, director, hub, queries, sweeps, coupling, Burst jobs, meters, pools, audio, controller, netcode model.© 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 36 other files (scripts, references) in skills/game-engines/unity/scenario-unity-gameplay of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Unity 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 Unity Gameplay this skillscenario-labs/skills | 946 | — | ~4.9k | Automated safety check: Pass | MIT | |
| Fantasy Framework Development Guideqq362946/Fantasy | 1.4k | — | ~5.8k | Automated safety check: Pass | Custom licence | |
| Validate GsdkPlayFab/gsdk | 170 | — | ~645 | Automated safety check: Pass | Apache-2.0 | |
| Game DeveloperJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Unreal Character Movement Componentquodsoler/unreal-engine-skills | 362 | — | ~8.5k | Automated safety check: Pass | MIT | |
| MultiplayerxenitV1/Antigravity-Workflows | 130 | 9 repos | ~686 | Automated safety check: Notes | MIT |
qq362946/Fantasy
Development and review guide for the Fantasy C# distributed game server framework: ECS, FTask, routing, service discovery, config and databases.
PlayFab/gsdk
Validates PlayFab Game Server SDK (GSDK) integrations in game server projects.
Jeffallan/claude-skills
Covers game programming in Unity and Unreal Engine: ECS design, physics, multiplayer networking, shaders and profiling toward a 60 FPS target.
quodsoler/unreal-engine-skills
Reference for writing and debugging UCharacterMovementComponent code in Unreal Engine C++: custom movement modes, floor detection, root motion, prediction and gravity.
xenitV1/Antigravity-Workflows
Multiplayer game development principles. An agent skill from xenitV1/Antigravity-Workflows.
thedivergentai/GD-Agentic-Skills
Expert blueprint for dedicated / headless multiplayer hosts: ENet/DTLS, authority validation, safe packet decode, matchmaker handoff, and health telemetry.
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…
Categories
A skill your agent uses when building or debugging Unity gameplay systems: enemy AI that patrols, chases and attacks, NavMesh baking and agents (AI Navigation 2), feet sliding on agents, state…. Scenario Unity Gameplay is an agent skill from scenario-labs/skills. Use when building or debugging Unity gameplay systems: enemy AI that patrols, chases and attacks, NavMesh baking and agents (AI Navigation 2), feet sliding on agents, state machines or behavior trees, physics projectiles that tunnel, the physics spiral, layers and the collision matrix, CharacterController vs Rigidbody characters, object pooling, 'hundreds of enemies', DOTS, Burst or Jobs decisions, Netcode for GameObjects multiplayer, audio mixers, snapshots, volume sliders and 3D combat sounds.
Scenario Unity Gameplay fits situations like: debugging Unity gameplay systems: enemy AI that patrols; chases and attacks; navMesh baking and agents (AI Navigation 2); feet sliding on agents.
Run `npx skills add scenario-labs/skills --skill scenario-unity-gameplay -a claude-code`. Or copy the skill folder (skills/game-engines/unity/scenario-unity-gameplay in scenario-labs/skills) into .claude/skills/scenario-unity-gameplay in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-unity-gameplay -a codex`. Or copy the skill folder (skills/game-engines/unity/scenario-unity-gameplay in scenario-labs/skills) into .agents/skills/scenario-unity-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-unity-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-unity-gameplay, .gemini/skills/scenario-unity-gameplay, .github/skills/scenario-unity-gameplay and .opencode/skills/scenario-unity-gameplay in your project.
Going by SKILL.md and its folder, Scenario Unity Gameplay 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 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 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 Gameplay: Fantasy Framework Development Guide (qq362946/Fantasy, 1.4k stars), Validate Gsdk (PlayFab/gsdk, 170 stars), Game Developer (Jeffallan/claude-skills, 12k stars) and Unreal Character Movement Component (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.