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.
A skill your agent uses when a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens…
$ npx skills add scenario-labs/skills --skill scenario-unreal-materials -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-materials --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-materials .claude/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .claude/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materialsType 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-materials -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-materials --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-materials .agents/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .agents/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materials -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-materials --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-materials .cursor/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .cursor/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materials--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-materials -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-unreal-materials --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-materials .gemini/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .gemini/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materialsInstalls 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-materials -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-materials .github/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .github/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materials -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-materials --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-materials .opencode/skills/scenario-unreal-materials && 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-materials" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/game-engines/unreal/scenario-unreal-materials into .opencode/skills/scenario-unreal-materials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-unreal-materials", 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-materialsA skill your agent uses when a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens…
Scenario Unreal Materials is an agent skill from scenario-labs/skills. Use when a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens, decals, edge wear and dirt, landscape layers and RVT, toon or cel shading, "too many shaders" or shader permutations, static switches, usage flags, texture compression (BC7, normal maps, ORM packing, sRGB), texture memory, or "is this material expensive".
Its SKILL.md is about 4.6k 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 and Shaders. 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.
10 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 Materials loads about 4.6k tokens when it runs, and up to ~32k if it reads all its reference files. Until then it costs about 113 tokens; SKILL.md has 2,077 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,077 words, ~4,628 tokens.
.claude/skills/scenario-unreal-materials/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Expert level means a few master materials whose instances cover the kit, a known and budgeted permutation count, cost proven in milliseconds on a fixed camera, and physically plausible values before any artistic push. The graph is authored once (scripted build or template); everything else is instances, Custom Primitive Data and textures that follow a role policy. Never trust the instruction count or a pretty preview. 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; offline tests pass (tests/code/unreal-materials/run_all.sh, editor layer on a fake unreal). Every snippet is not yet run in Unreal: run P0 first.
switch_ranking; Fortnite kept its top 10 [00:29:31]).cost_census), open every material function ("cheap" in a name is not a measurement [00:22:31]), decide on ms at a fixed camera.listtextures in a cooked build; RDO shrinks disk, not memory.| Input | What it changes | Default when silent |
|---|---|---|
| Platforms and frame rate | GBuffer format (Blendable caps all), closures, samplers (16 on ES3.1), Adaptive-only features | console 60 Hz and PC: Blendable, 1 closure |
| Project Substrate state | r.Substrate in the ini (P1); upgraded projects stay legacy | read it, never assume |
| Style | PBR; Toon BSDF (per asset, experimental); post-process EV cel (whole world) | PBR |
| Architecture | lean master or Material Layering System (Sumo), by library size and projected permutations (lauf_permutations) | lean master, under 10 presets |
| World-wide values (wetness, alert state) | MPC: at most 2 per material; adding parameters recompiles every user (instances doc) | one game-wide, one per level |
| Mesh types per family | usage flags: static, Nanite, skeletal, cloth, Niagara, decal, UI | static + Nanite |
| Texture sources | packing, DirectX green, texel density, source size | ORM packed, DirectX, 2K |
| Budgets | samples, transcendentals, unique static sets, shaders, BasePass ms, texture pool | project decision; lint warns above 12 samples [added] |
um.probe() lists what 5.8 really exposes; P1 reads the ini and runs um.choose_gbuffer_format(targets, needs), whose reasons state the ceiling and the fallback. GATE: CANDIDATES corrected; the format decision written.switch_ranking count; channel picks are Channel Mask Parameters; architecture written.pack_channels, import_textures, audit_textures(apply=True), albedo_stats. GATE: audit passes; resident size at most 2048; lint_graph(g, textures=...) finds no sampler mismatch; normals keep Normalize after making Mips; albedo sRGB 20 (50 rough) to 240, metals at least 180.um.build_kit_surface or a template: texture-gating switches, an If for the paint-mask source, Custom Primitive Data for per-actor wear and dirt, Specular = 0.5 x (1 - cavity) as specular occlusion. Substrate: the Metalness helper feeds a base slab, a bare-metal slab takes albedo 0 and a measured F0, a parameter-blended Horizontal Blend takes the wear mask. Options: value-clamped ID masks, 4 bands per channel (Sumo [00:14:54]); world-aligned texture and normal across modular seams, 3 samples per texture (Ben [pXOknekvmwE 00:12:57]); world-space directional dust (Sumo [00:20:11]). GATE: no failed links; lint_graph free of fail and warn; one closure; clean compile log.make_presets sets static switches; children change values; Custom Primitive Data varies placed actors. GATE: unique sets at most the preset count, no override at default, HSPR only on presets; audit_instance_values_project clean (dielectric F0 at most 0.08, metal albedo 0, Metallic 0 or 1).shader_count per root (an upper bound). 5.8 compiles only connected, non-zero outputs (r.Material.UseShaderCompilationParameters): deleting nodes to strip shaders is folklore. Skin-cache and Slate levers (P7) only after measuring. GATE: shaders within budget; the fallback board shows no gray default material.r.Velocity.TemporalResponsiveness.Supported=1 and a small WPO on Nanite meshes (5.7 article). Decals (P14) end in Convert To Decal; overlapping DBuffer-expression decals do not blend; each receiver's Decal Response covers only the channels its decals write (decal_response_for). Landscape P11, stylized P12 and P13, switch triage P8. GATE: references/critique.md for the family.r.ScreenPercentage 100, warm-up, CSV profile, medians of GPU and pass time, cost_census beside them. GATE: deltas within budget; instruction counts recorded as context only.ue_review.review_images runs before anyone looks. GATE: critique rubric passes.listtextures, stat streaming and r.Streaming.PoolSize through texture_memory_findings; hand over reports, captures, open [verify] items.| Value | Relative to | Source |
|---|---|---|
| Specular 0.5 = F0 0.04 (4%) | 90 to 98% of non-metals | Ben [fePsD_8p9vM 00:12:09] |
| Dielectric F0 at most 0.08; gems, carbon fiber up to about 0.18 | legacy Specular spans IOR 1 to 1.788 | Morgan [00:09:30] |
| Metal: albedo 0, F0 average at least 0.5 (doc) or 0.6 (Ben) | Substrate slab | Ben [a94Lpu1_4dg 00:16:16] |
| Base color sRGB 20 to 240, floor 50 when rough; metals at least 180 | 8-bit sRGB | Ben [fePsD_8p9vM 00:05:28, 00:22:48] |
| Glass IOR 1.5, MFP thickness 0.02; frosted roughness 0.2 to 1 | rough refraction on | Ben [sf-K257zWh8 00:11:02, 00:17:16] |
| 10 shaders, 20 with Skeletal, 27 with Niagara mesh, 186 with every flag | one material, project-dependent | Nadro [00:06:28, 00:07:05] |
| Fetch about 200 cycles; multiply 4; sine about 20 | AMD GCN: a ranking, not Apple truth | Swierad |
| BC1 2048 = 2.66 MiB with mips; BC3, BC5, BC7 double; BC6H one eighth of RGBA16F | GPU memory | textures doc |
lint_graph (with textures= and project budgets=) free of fail and warn; census within presets; audit_textures and audit_instance_values_project pass; shader_count per root; BasePass, Translucency, DBuffer ms A/B; Substrate Material Count 1 on Blendable; VirtualTextureUpdate near zero when still; cooked texture_memory_findings clean; no blank frame.references/critique.md): transitions read as two materials; wear on edges, dirt in cavities, crevices darker in the Specular buffer; no tiling or seams from far; glass free of silhouette seams; screens neither clipped nor smeared; no gray fallback on any mesh type; toon bands stable under a sun sweep.| Mistake | What it looks like | Fix |
|---|---|---|
| Budgeting pixel instructions | "under 200" passes, the frame is still slow | samples and transcendentals, measured ms |
| Switch for a UV channel, tint or mask channel | a shader map per unique instance | If, Enum or Channel Mask |
| Parent flag "just in case"; decal or UI material keeping Used with Static Mesh | every unique child compiles another row | instance overrides, auto usage off, flag off |
| Deleting nodes "to strip shaders" | no change in 5.8 | check ListShaders |
| Gray metallic wear | chalky, plaster edges | two slabs, parameter-blended Horizontal Blend |
| Sharpening masks "for cost" under parameter blending or Blendable | harsher look, no gain | mask_cost applies only without them |
| Blendable "for the weaker platform" | SM6 platforms lose Adaptive features | Adaptive falls back per platform |
| Adaptive on a 60 Hz console game | up to 5x GBuffer memory, forced DBuffer | Blendable |
| Substrate Shading Model node added by hand | conversion path in a new graph | Slab, or Metalness helper into a Slab |
| Packed NOH as Normalmap; sRGB on masks; sampler left after recompression | flat terrain, shifted roughness, compile errors | BC7 or Masks, sRGB off, Fixup Mismatched Samplers |
| Mips disabled to fix blur; normals not normalized after mips | shimmer, flat distant panels | keep mips; normalize, or composite roughness |
| Time, Panner or MPC in the RVT write pass | frozen or stale pages | read pass or RVT Replace |
| Temporal Responsiveness without its cvar | text still smears | cvar, mask, small WPO on Nanite |
audit_rules() and the permutation gate.references/expert-notes.md: principles and judgment by expert, with source and timestamp.references/procedures.md: P0 to P17 with full code, test path and status.references/critique.md: the self-review rubric per material family.references/gui-paths.md: editors, menus and settings for a computer-use agent.references/sources.md: every source, credential, URL, best timestamps, revision history.scripts/ue_materials.py: texture policy, value checks, cost census, graph lint, permutation census, Substrate ini, builders, cooked texture memory, probe.© 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-materials of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Unreal Materials 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 Materials this skillscenario-labs/skills | 946 | — | ~4.6k | Automated safety check: Pass | MIT | |
| UMG Material MCPwinyunq/UnrealMotionGraphicsMCP | 210 | — | ~913 | Automated safety check: Pass | MIT | |
| Dream Shader CreateTypeDreamMoon/DreamShader | 106 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Dream Shader DecompileTypeDreamMoon/DreamShader | 106 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Dream Shader VerifyTypeDreamMoon/DreamShader | 106 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Game DeveloperJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT |
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.
TypeDreamMoon/DreamShader
Write a new DreamShader source from a plain-language description — a material, material function, layer, material instance or Custom Pass pipeline — then check and compile it headlessly to prove it…
TypeDreamMoon/DreamShader
Export an existing Unreal material, material function, layer, layer blend, material instance or Custom Pass pipeline back into DreamShaderLang source headlessly, so a hand-built material graph or…
TypeDreamMoon/DreamShader
Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code.
Jeffallan/claude-skills
Covers game programming in Unity and Unreal Engine: ECS design, physics, multiplayer networking, shaders and profiling toward a 60 FPS target.
ericrisco/rsc-harness
A skill your agent uses when authoring or debugging a shader, material, VFX, or full-screen post-process in a game engine — Godot 4.x .gdshader, Unity 6 URP/HDRP, Unreal 5.x Materials, effect…
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 a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens…. Scenario Unreal Materials is an agent skill from scenario-labs/skills. Use when a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens, decals, edge wear and dirt, landscape layers and RVT, toon or cel shading, "too many shaders" or shader permutations, static switches, usage flags, texture compression (BC7, normal maps, ORM packing, sRGB), texture memory, or "is this material expensive".
Scenario Unreal Materials fits situations like: A UE5 task involves materials; textures: a master material and instances for a kit; blendable vs Adaptive GBuffer; emissive screens.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-materials -a claude-code`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-materials in scenario-labs/skills) into .claude/skills/scenario-unreal-materials in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-unreal-materials -a codex`. Or copy the skill folder (skills/game-engines/unreal/scenario-unreal-materials in scenario-labs/skills) into .agents/skills/scenario-unreal-materials 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-materials -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-materials, .gemini/skills/scenario-unreal-materials, .github/skills/scenario-unreal-materials and .opencode/skills/scenario-unreal-materials in your project.
Going by SKILL.md and its folder, Scenario Unreal Materials 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 Materials 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.6k tokens (SKILL.md is roughly 19k 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 Materials: UMG Material MCP (winyunq/UnrealMotionGraphicsMCP, 210 stars), Dream Shader Create (TypeDreamMoon/DreamShader, 106 stars), Dream Shader Decompile (TypeDreamMoon/DreamShader, 106 stars) and Dream Shader Verify (TypeDreamMoon/DreamShader, 106 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.