[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CQH84MTK6M5XRG1AD6DZB0":3,"skill-same:01M6CQH84MTK6M5XRG1AD6DZB0":117},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":14,"repositoryHtmlUrl":67,"repositoryHomepageUrl":68,"ownerHtmlUrl":69,"ownerBlogUrl":70,"ownerDescription":71,"updatedAt":72,"install":73,"resources":86},"01M6CQH84MTK6M5XRG1AD6DZB0","unreal-mcp",null,"Automate Unreal Engine editor scenes, actors, and renders.","Trollz1004\u002FANTIGRAVITY","Trollz1004","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132442315?v=4","01M6CQ4Z97ERZA2CXR388F6NZ1","Joshua Coleman","01M6CQ4ZCYE67QPNWBBV8H9DBE",0,"MIT","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"unreal mcp","MCP","hermes agent","running","unreal editor","with","unreal engine","lighting","cinematics","scenes","ue5","unreal-engine","unreal","hermes","automate","engine","gamedev","3D","server","plugin","windows","editor","linux","macos","2026-11-10 10:12:30",false,"---\nname: unreal-mcp\ndescription: Automate Unreal Engine editor scenes, actors, and renders.\nversion: 1.0.0\nrequires: Unreal Editor 5.8+ with the Unreal MCP plugin enabled and its server running\nauthor: Hermes Agent\nlicense: MIT\ntags: [unreal, unreal-engine, ue5, 3d, mcp, scenes, cinematics, lighting, gamedev]\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [unreal, unreal-engine, ue5, 3d, mcp, scenes, cinematics, lighting, gamedev]\n    related_skills: []\n---\n\n# Unreal Engine MCP Skill\n\nCompanion skill for the `unreal-engine` entry in the Hermes MCP catalog. The\nMCP server (Epic's official, experimental \"Unreal MCP\" plugin, internal id\n`ModelContextProtocol`) runs INSIDE the Unreal Editor process and exposes\neditor functionality as typed tools. This skill teaches how to drive it well:\ndiscovering the live tool surface, sequencing calls safely, translating\nplain-English asks into scenes that actually look good, and verifying work\nvisually. The user should never need to touch the editor beyond launching it.\n\n## When to Use\n\nUse when the user wants anything done in Unreal Engine: build or dress a\nlevel, spawn\u002Fmove\u002Fdelete actors, set up lighting and atmosphere, create or\ntune material instances, frame a camera shot, capture screenshots or renders,\nimport assets, inspect the scene or UI, run automation tests, or script the\neditor. Works for single actions (\"make the sun golden hour\") and for\ncomplete multi-step projects (\"build me a moody forest clearing with a\ncampfire and render a shot of it\").\n\nDon't use for: DCC-style mesh modeling\u002Fsculpting (model in Blender and\nimport the result), or for editing Unreal C++ project source (that's normal\ncode work — use the terminal; this skill is about the live editor).\n\n## Prerequisites\n\nTwo halves, in this order: the editor side must be up before Hermes connects.\n\n### One-time, editor side\n\n1. Unreal Editor **5.8+** with a project open. (macOS: full Xcode must be\n   installed and its license accepted — the editor exits on first launch\n   without it; see pitfalls.)\n2. **Edit > Plugins** — enable **Unreal MCP** (its Toolset Registry\n   dependency auto-enables). Restart the editor when prompted.\n3. The typed toolsets ship separately from the server: also enable the\n   **AllToolsets** plugin in the same Plugins browser. Unreal MCP ships NO\n   tools itself — AllToolsets provides the shipped toolsets (SceneTools,\n   ActorTools, MaterialInstanceTools, ObjectTools, …); skip it and the\n   server connects but the agent has nothing to call.\n4. **Edit > Editor Preferences > General > Model Context Protocol** — enable\n   **Auto Start Server**. Default bind is `http:\u002F\u002F127.0.0.1:8000\u002Fmcp`\n   (port\u002Fpath configurable in the same panel; server name is `unreal-mcp`).\n   To start manually instead, run `ModelContextProtocol.StartServer` in the\n   editor console (backtick key).\n\n### One-time, Hermes side\n\n    hermes mcp install unreal-engine\n\nThis writes the `mcp_servers.unreal-engine` HTTP entry pointing at\n`http:\u002F\u002F127.0.0.1:8000\u002Fmcp` and probes the live server for its tools. Run it\nwhile the editor + server are up so the probe sees the real surface. If the\nuser changed port\u002Fpath in Editor Preferences, edit the `url` in\n`~\u002F.hermes\u002Fconfig.yaml` under `mcp_servers.unreal-engine` to match.\n\nDo NOT use `ModelContextProtocol.GenerateClientConfig` for Hermes — that\nwrites `.mcp.json`-style files for Claude Code\u002FCursor\u002Fetc. Hermes connects\nfrom `config.yaml` via the catalog entry.\n\n### Every session\n\n1. Launch Unreal Editor, wait for the project to finish loading; confirm the\n   server started (Output Log shows the bind address, or run\n   `ModelContextProtocol.StartServer` manually).\n2. Start the Hermes session. Tools register as `mcp_unreal_engine_*`. If\n   they're missing: editor wasn't up first — start it, then open a new\n   Hermes session.\n3. Sanity check: call `mcp_unreal_engine_list_toolsets` and confirm toolsets\n   come back.\n\n## The Tool Surface: Discovery, Not a Fixed List\n\nBy default the plugin runs in **tool-search mode**: `tools\u002Flist` returns only\nthree meta-tools, and every real tool is reached through them. Through Hermes\nthey appear as:\n\n| Hermes tool | Purpose |\n|---|---|\n| `mcp_unreal_engine_list_toolsets` | Names + descriptions of every registered toolset |\n| `mcp_unreal_engine_describe_toolset` | Full JSON schemas for one named toolset's tools |\n| `mcp_unreal_engine_call_tool` | Invoke a named tool with arguments, get the result |\n\nThe discovery walk, always in this order:\n\n1. `list_toolsets` → see what capability groups this project actually has\n   (the surface is project-dependent: enabled plugins, Game Feature Plugins,\n   and any custom toolsets all contribute). Names come back FULLY QUALIFIED\n   (`editor_toolset.toolsets.scene.SceneTools`,\n   `EditorToolset.EditorAppToolset`) — use them verbatim as `toolset_name`.\n2. `describe_toolset` on the group you need → read the real parameter\n   schemas. Never guess parameter names — schemas are the contract.\n3. `call_tool` with the qualified toolset name, the SHORT tool name\n   (`find_actors`, not the dotted form), and arguments matching the schema.\n\nCache what you learn for the session; re-list only after the editor side\nchanges (new plugin enabled, toolset authored, `RefreshTools` run).\n\nThe alternative eager mode (`Enable Tool Search` off in Editor Preferences)\nadvertises every tool as its own `mcp_unreal_engine_\u003Ctool>` entry. Discovery\nthen happens at `hermes mcp install`\u002F`configure` time instead. Tool-search\nmode is the default and what this skill assumes; it also keeps schema tokens\nout of every API call, so prefer it.\n\nSee `references\u002Ftool-surface.md` for the shipped toolset catalog, authoring\ncustom toolsets, and the full plugin configuration\u002Fconsole-command reference.\n\n## Operating Loop\n\nEvery Unreal task follows the same loop:\n\n1. **Inspect first.** List toolsets, then query the scene\u002Flevel state before\n   touching anything. Never assume an empty or default level. In an\n   unfamiliar project, also check for project-registered Agent Skills\n   (`call_tool` → `AgentSkillToolset.ListSkills`): a matching project skill's\n   instructions override this skill's generic defaults.\n2. **Act in small, single-purpose calls.** One logical step per `call_tool`.\n   The server executes tools **serially on the game thread** — a big\n   monolithic operation freezes the editor UI until it finishes and risks\n   client timeouts. Exception: for loops over 5+ homogeneous operations,\n   ONE `ProgrammaticToolset.execute_tool_script` call batches them\n   server-side without breaking the serial rule\n   (`references\u002Fadvanced-workflows.md`).\n3. **NEVER issue overlapping calls.** Do not batch multiple\n   `mcp_unreal_engine_*` calls in one turn — Hermes runs batched calls\n   concurrently, and parallel calls against the game thread deadlock or\n   fail. Strictly one call, await result, next call. This overrides the\n   general parallel-tool-calls guidance.\n4. **Read every result.** Many tools (Blueprint compiles, material edits,\n   widget creation) report success\u002Ffailure in the response body with no\n   protocol-level exception. Anything that isn't an explicit success is a\n   stop-and-diagnose, not a shrug. After property writes, read the value\n   back — several write paths silently no-op (see pitfalls).\n5. **Verify visually and structurally.** After each milestone, confirm state\n   by querying the actors\u002Fproperties you changed, and capture a viewport\n   screenshot when composition matters (see `references\u002Ftool-surface.md` for\n   the capture options; `vision_analyze` the image — you are the art\n   director, judge it).\n6. **Save often.** Editor edits are in-memory until packages\u002Flevels are\n   saved; an editor crash loses everything since the last save, and MCP\n   edits are not reliably undoable. Save before AND after any bulk change,\n   and after every milestone.\n7. **Report concretely.** Actor labels, asset paths (`\u002FGame\u002F...`), file\n   locations of captures\u002Frenders.\n\nRules of the world while you work:\n\n- Units are **centimeters**; axes are **Z-up**, X-forward; rotations are\n  degrees (Rotator: Roll around X, Pitch around Y, Yaw around Z). Human eye\n  height ≈ 165 cm; a door ≈ 210×90 cm. Full tables in\n  `references\u002Fscene-craft.md`.\n- Content paths use long package names: `\u002FGame\u002FFolder\u002FAsset.Asset` for\n  project content, `\u002FEngine\u002FBasicShapes\u002FCube.Cube` for engine primitives.\n- Actor **labels** (what you see in the Outliner, settable, non-unique) are\n  not actor **names** (internal, unique). Prefer resolving actors by\n  label\u002Fclass queries, then hold on to whatever handle the tool returns.\n- Prefer physically-plausible lighting values (lux\u002Fcandela\u002FKelvin) over\n  arbitrary brightness numbers — but FIRST read the existing sun's\n  intensity to learn the scene's calibration convention; template worlds\n  are often calibrated around `intensity: 10`, and physical values blow\n  them out (`references\u002Fscene-craft.md` has the numbers,\n  `references\u002Fpitfalls.md` #12b has the calibration rule).\n\n## From Plain English to a Scene\n\nThe user gives intent, not specs. Translate before you build:\n\n1. **Extract the brief.** Subject, mood, time of day, interior\u002Fexterior,\n   style, deliverable (screenshot? render? playable level?). Ask at most one\n   round of clarifying questions, then commit — you are the technical\n   director; don't bounce Unreal jargon back at the user.\n2. **Plan the build order.** The order that works: level\u002Fenvironment shell →\n   blocking (major geometry\u002Fmeshes in place) → lighting + atmosphere →\n   materials → set dressing\u002Fdetail → camera → capture\u002Frender. Post the plan\n   as a todo list for multi-step builds.\n3. **Build with the loop above**, one milestone at a time, screenshot at\n   each milestone.\n4. **Art-direct yourself.** Compare each screenshot against the brief:\n   readable silhouette? believable light direction\u002Fintensity? horizon not\n   dead-center? scale correct against a human-height reference? Fix before\n   moving on.\n5. **Deliver.** Screenshots\u002Frenders as files (`MEDIA:` path), plus a short\n   summary of what exists in the level and where it was saved.\n\n`references\u002Frecipes.md` has complete worked builds (exterior daylight scene,\nmoody interior, golden-hour cinematic + render, asset import & placement)\nwith the exact call sequences and values.\n\n## Reference Files\n\nLoad on demand; keep SKILL.md-level rules in mind throughout.\n\n| Reference | Contents |\n|---|---|\n| `references\u002Ftool-surface.md` | Shipped toolsets catalog, discovery protocol detail, plugin console commands\u002FCVars\u002Fflags, screenshot & capture paths, MCP Inspector debugging, extending with custom Python\u002FC++ toolsets |\n| `references\u002Fadvanced-workflows.md` | Sophisticated workflows, live-verified: ProgrammaticToolset batching, Blueprint DSL authoring loop (create→DSL→compile→spawn), PIE test sessions, Sequencer orientation (140 tools), LogsToolset self-debugging, automation testing, semantic asset search, config settings, per-situation decision table |\n| `references\u002Fscene-craft.md` | Numeric cheat sheet: physical light intensities, color temperatures, exposure\u002FEV100, fog densities, mood recipes (noon\u002Fgolden hour\u002Fovercast\u002Fnight\u002Finterior), scale tables, content path conventions |\n| `references\u002Frecipes.md` | End-to-end worked builds with exact call sequences |\n| `references\u002Fpitfalls.md` | Setup, runtime, and workflow pitfalls with fixes — read before your first session and whenever something misbehaves |\n\n## Pitfalls (top of mind — full list in references\u002Fpitfalls.md)\n\n- **Start order matters.** Editor + server up first, then the Hermes\n  session. Missing `mcp_unreal_engine_*` tools = wrong order.\n- **One call at a time.** Serial game thread; no batching, no overlap.\n- **The editor UI freezes during each call.** That's by design (game-thread\n  execution). Warn the user during long operations; keep calls small.\n- **Modal dialogs block everything.** A tool call that opens (or collides\n  with) a modal editor dialog stalls until a human dismisses it. If a call\n  hangs indefinitely, tell the user to check the editor for a dialog.\n- **Timeouts on long operations.** Hermes' per-call default is 120 s; asset\n  imports, big level saves, and renders can exceed it. Raise\n  `mcp_servers.unreal-engine.timeout` in `~\u002F.hermes\u002Fconfig.yaml` for\n  render\u002Fimport-heavy sessions.\n- **Stale tool schemas.** After authoring\u002Fhot-reloading toolsets or enabling\n  a plugin, run `ModelContextProtocol.RefreshTools` in the editor console\n  and re-`list_toolsets`. New C++ `UFUNCTION`s need a full editor restart —\n  Live Coding won't surface them.\n- **Experimental plugin.** APIs and tool shapes can change between engine\n  versions; trust `describe_toolset` over memory, including this skill's\n  examples. When docs and the live schema disagree, the live schema wins.\n- **Don't expose the server beyond localhost.** Loopback-only, no auth, by\n  design. Never suggest binding it wider.\n- **Licensing note.** The server logs on start: data transmitted via the\n  plugin to a connected LLM service is Licensed Technology under the UE\n  EULA (§6(e)) — the user is responsible for ensuring their LLM provider\n  doesn't train on it. Surface this if the user asks about data handling.\n\n## Verification Checklist\n\n- [ ] `list_toolsets` returns toolsets at session start (connection healthy)\n- [ ] Scene state queried before first edit (never assumed empty)\n- [ ] After each milestone: changed actors\u002Fproperties re-queried and a\n      screenshot reviewed against the brief\n- [ ] Level\u002Fdirty packages saved after each milestone and at the end\n- [ ] Deliverables exist on disk (screenshot\u002Frender paths confirmed) and are\n      reported to the user with absolute paths\n- [ ] Editor left in a clean state: no pending modal, no unsaved surprise,\n      user told exactly what was created\u002Fchanged and where\n","# Unreal Engine MCP Skill\n\nCompanion skill for the `unreal-engine` entry in the Hermes MCP catalog. The\nMCP server (Epic's official, experimental \"Unreal MCP\" plugin, internal id\n`ModelContextProtocol`) runs INSIDE the Unreal Editor process and exposes\neditor functionality as typed tools. This skill teaches how to drive it well:\ndiscovering the live tool surface, sequencing calls safely, translating\nplain-English asks into scenes that actually look good, and verifying work\nvisually. The user should never need to touch the editor beyond launching it.\n\n## When to Use\n\nUse when the user wants anything done in Unreal Engine: build or dress a\nlevel, spawn\u002Fmove\u002Fdelete actors, set up lighting and atmosphere, create or\ntune material instances, frame a camera shot, capture screenshots or renders,\nimport assets, inspect the scene or UI, run automation tests, or script the\neditor. Works for single actions (\"make the sun golden hour\") and for\ncomplete multi-step projects (\"build me a moody forest clearing with a\ncampfire and render a shot of it\").\n\nDon't use for: DCC-style mesh modeling\u002Fsculpting (model in Blender and\nimport the result), or for editing Unreal C++ project source (that's normal\ncode work — use the terminal; this skill is about the live editor).\n\n## Prerequisites\n\nTwo halves, in this order: the editor side must be up before Hermes connects.\n\n### One-time, editor side\n\n1. Unreal Editor **5.8+** with a project open. (macOS: full Xcode must be\n   installed and its license accepted — the editor exits on first launch\n   without it; see pitfalls.)\n2. **Edit > Plugins** — enable **Unreal MCP** (its Toolset Registry\n   dependency auto-enables). Restart the editor when prompted.\n3. The typed toolsets ship separately from the server: also enable the\n   **AllToolsets** plugin in the same Plugins browser. Unreal MCP ships NO\n   tools itself — AllToolsets provides the shipped toolsets (SceneTools,\n   ActorTools, MaterialInstanceTools, ObjectTools, …); skip it and the\n   server connects but the agent has nothing to call.\n4. **Edit > Editor Preferences > General > Model Context Protocol** — enable\n   **Auto Start Server**. Default bind is `http:\u002F\u002F127.0.0.1:8000\u002Fmcp`\n   (port\u002Fpath configurable in the same panel; server name is `unreal-mcp`).\n   To start manually instead, run `ModelContextProtocol.StartServer` in the\n   editor console (backtick key).\n\n### One-time, Hermes side\n\n    hermes mcp install unreal-engine\n\nThis writes the `mcp_servers.unreal-engine` HTTP entry pointing at\n`http:\u002F\u002F127.0.0.1:8000\u002Fmcp` and probes the live server for its tools. Run it\nwhile the editor + server are up so the probe sees the real surface. If the\nuser changed port\u002Fpath in Editor Preferences, edit the `url` in\n`~\u002F.hermes\u002Fconfig.yaml` under `mcp_servers.unreal-engine` to match.\n\nDo NOT use `ModelContextProtocol.GenerateClientConfig` for Hermes — that\nwrites `.mcp.json`-style files for Claude Code\u002FCursor\u002Fetc. Hermes connects\nfrom `config.yaml` via the catalog entry.\n\n### Every session\n\n1. Launch Unreal Editor, wait for the project to finish loading; confirm the\n   server started (Output Log shows the bind address, or run\n   `ModelContextProtocol.StartServer` manually).\n2. Start the Hermes session. Tools register as `mcp_unreal_engine_*`. If\n   they're missing: editor wasn't up first — start it, then open a new\n   Hermes session.\n3. Sanity check: call `mcp_unreal_engine_list_toolsets` and confirm toolsets\n   come back.\n\n## The Tool Surface: Discovery, Not a Fixed List\n\nBy default the plugin runs in **tool-search mode**: `tools\u002Flist` returns only\nthree meta-tools, and every real tool is reached through them. Through Hermes\nthey appear as:\n\n| Hermes tool | Purpose |\n|---|---|\n| `mcp_unreal_engine_list_toolsets` | Names + descriptions of every registered toolset |\n| `mcp_unreal_engine_describe_toolset` | Full JSON schemas for one named toolset's tools |\n| `mcp_unreal_engine_call_tool` | Invoke a named tool with arguments, get the result |\n\nThe discovery walk, always in this order:\n\n1. `list_toolsets` → see what capability groups this project actually has\n   (the surface is project-dependent: enabled plugins, Game Feature Plugins,\n   and any custom toolsets all contribute). Names come back FULLY QUALIFIED\n   (`editor_toolset.toolsets.scene.SceneTools`,\n   `EditorToolset.EditorAppToolset`) — use them verbatim as `toolset_name`.\n2. `describe_toolset` on the group you need → read the real parameter\n   schemas. Never guess parameter names — schemas are the contract.\n3. `call_tool` with the qualified toolset name, the SHORT tool name\n   (`find_actors`, not the dotted form), and arguments matching the schema.\n\nCache what you learn for the session; re-list only after the editor side\nchanges (new plugin enabled, toolset authored, `RefreshTools` run).\n\nThe alternative eager mode (`Enable Tool Search` off in Editor Preferences)\nadvertises every tool as its own `mcp_unreal_engine_\u003Ctool>` entry. Discovery\nthen happens at `hermes mcp install`\u002F`configure` time instead. Tool-search\nmode is the default and what this skill assumes; it also keeps schema tokens\nout of every API call, so prefer it.\n\nSee `references\u002Ftool-surface.md` for the shipped toolset catalog, authoring\ncustom toolsets, and the full plugin configuration\u002Fconsole-command reference.\n\n## Operating Loop\n\nEvery Unreal task follows the same loop:\n\n1. **Inspect first.** List toolsets, then query the scene\u002Flevel state before\n   touching anything. Never assume an empty or default level. In an\n   unfamiliar project, also check for project-registered Agent Skills\n   (`call_tool` → `AgentSkillToolset.ListSkills`): a matching project skill's\n   instructions override this skill's generic defaults.\n2. **Act in small, single-purpose calls.** One logical step per `call_tool`.\n   The server executes tools **serially on the game thread** — a big\n   monolithic operation freezes the editor UI until it finishes and risks\n   client timeouts. Exception: for loops over 5+ homogeneous operations,\n   ONE `ProgrammaticToolset.execute_tool_script` call batches them\n   server-side without breaking the serial rule\n   (`references\u002Fadvanced-workflows.md`).\n3. **NEVER issue overlapping calls.** Do not batch multiple\n   `mcp_unreal_engine_*` calls in one turn — Hermes runs batched calls\n   concurrently, and parallel calls against the game thread deadlock or\n   fail. Strictly one call, await result, next call. This overrides the\n   general parallel-tool-calls guidance.\n4. **Read every result.** Many tools (Blueprint compiles, material edits,\n   widget creation) report success\u002Ffailure in the response body with no\n   protocol-level exception. Anything that isn't an explicit success is a\n   stop-and-diagnose, not a shrug. After property writes, read the value\n   back — several write paths silently no-op (see pitfalls).\n5. **Verify visually and structurally.** After each milestone, confirm state\n   by querying the actors\u002Fproperties you changed, and capture a viewport\n   screenshot when composition matters (see `references\u002Ftool-surface.md` for\n   the capture options; `vision_analyze` the image — you are the art\n   director, judge it).\n6. **Save often.** Editor edits are in-memory until packages\u002Flevels are\n   saved; an editor crash loses everything since the last save, and MCP\n   edits are not reliably undoable. Save before AND after any bulk change,\n   and after every milestone.\n7. **Report concretely.** Actor labels, asset paths (`\u002FGame\u002F...`), file\n   locations of captures\u002Frenders.\n\nRules of the world while you work:\n\n- Units are **centimeters**; axes are **Z-up**, X-forward; rotations are\n  degrees (Rotator: Roll around X, Pitch around Y, Yaw around Z). Human eye\n  height ≈ 165 cm; a door ≈ 210×90 cm. Full tables in\n  `references\u002Fscene-craft.md`.\n- Content paths use long package names: `\u002FGame\u002FFolder\u002FAsset.Asset` for\n  project content, `\u002FEngine\u002FBasicShapes\u002FCube.Cube` for engine primitives.\n- Actor **labels** (what you see in the Outliner, settable, non-unique) are\n  not actor **names** (internal, unique). Prefer resolving actors by\n  label\u002Fclass queries, then hold on to whatever handle the tool returns.\n- Prefer physically-plausible lighting values (lux\u002Fcandela\u002FKelvin) over\n  arbitrary brightness numbers — but FIRST read the existing sun's\n  intensity to learn the scene's calibration convention; template worlds\n  are often calibrated around `intensity: 10`, and physical values blow\n  them out (`references\u002Fscene-craft.md` has the numbers,\n  `references\u002Fpitfalls.md` #12b has the calibration rule).\n\n## From Plain English to a Scene\n\nThe user gives intent, not specs. Translate before you build:\n\n1. **Extract the brief.** Subject, mood, time of day, interior\u002Fexterior,\n   style, deliverable (screenshot? render? playable level?). Ask at most one\n   round of clarifying questions, then commit — you are the technical\n   director; don't bounce Unreal jargon back at the user.\n2. **Plan the build order.** The order that works: level\u002Fenvironment shell →\n   blocking (major geometry\u002Fmeshes in place) → lighting + atmosphere →\n   materials → set dressing\u002Fdetail → camera → capture\u002Frender. Post the plan\n   as a todo list for multi-step builds.\n3. **Build with the loop above**, one milestone at a time, screenshot at\n   each milestone.\n4. **Art-direct yourself.** Compare each screenshot against the brief:\n   readable silhouette? believable light direction\u002Fintensity? horizon not\n   dead-center? scale correct against a human-height reference? Fix before\n   moving on.\n5. **Deliver.** Screenshots\u002Frenders as files (`MEDIA:` path), plus a short\n   summary of what exists in the level and where it was saved.\n\n`references\u002Frecipes.md` has complete worked builds (exterior daylight scene,\nmoody interior, golden-hour cinematic + render, asset import & placement)\nwith the exact call sequences and values.\n\n## Reference Files\n\nLoad on demand; keep SKILL.md-level rules in mind throughout.\n\n| Reference | Contents |\n|---|---|\n| `references\u002Ftool-surface.md` | Shipped toolsets catalog, discovery protocol detail, plugin console commands\u002FCVars\u002Fflags, screenshot & capture paths, MCP Inspector debugging, extending with custom Python\u002FC++ toolsets |\n| `references\u002Fadvanced-workflows.md` | Sophisticated workflows, live-verified: ProgrammaticToolset batching, Blueprint DSL authoring loop (create→DSL→compile→spawn), PIE test sessions, Sequencer orientation (140 tools), LogsToolset self-debugging, automation testing, semantic asset search, config settings, per-situation decision table |\n| `references\u002Fscene-craft.md` | Numeric cheat sheet: physical light intensities, color temperatures, exposure\u002FEV100, fog densities, mood recipes (noon\u002Fgolden hour\u002Fovercast\u002Fnight\u002Finterior), scale tables, content path conventions |\n| `references\u002Frecipes.md` | End-to-end worked builds with exact call sequences |\n| `references\u002Fpitfalls.md` | Setup, runtime, and workflow pitfalls with fixes — read before your first session and whenever something misbehaves |\n\n## Pitfalls (top of mind — full list in references\u002Fpitfalls.md)\n\n- **Start order matters.** Editor + server up first, then the Hermes\n  session. Missing `mcp_unreal_engine_*` tools = wrong order.\n- **One call at a time.** Serial game thread; no batching, no overlap.\n- **The editor UI freezes during each call.** That's by design (game-thread\n  execution). Warn the user during long operations; keep calls small.\n- **Modal dialogs block everything.** A tool call that opens (or collides\n  with) a modal editor dialog stalls until a human dismisses it. If a call\n  hangs indefinitely, tell the user to check the editor for a dialog.\n- **Timeouts on long operations.** Hermes' per-call default is 120 s; asset\n  imports, big level saves, and renders can exceed it. Raise\n  `mcp_servers.unreal-engine.timeout` in `~\u002F.hermes\u002Fconfig.yaml` for\n  render\u002Fimport-heavy sessions.\n- **Stale tool schemas.** After authoring\u002Fhot-reloading toolsets or enabling\n  a plugin, run `ModelContextProtocol.RefreshTools` in the editor console\n  and re-`list_toolsets`. New C++ `UFUNCTION`s need a full editor restart —\n  Live Coding won't surface them.\n- **Experimental plugin.** APIs and tool shapes can change between engine\n  versions; trust `describe_toolset` over memory, including this skill's\n  examples. When docs and the live schema disagree, the live schema wins.\n- **Don't expose the server beyond localhost.** Loopback-only, no auth, by\n  design. Never suggest binding it wider.\n- **Licensing note.** The server logs on start: data transmitted via the\n  plugin to a connected LLM service is Licensed Technology under the UE\n  EULA (§6(e)) — the user is responsible for ensuring their LLM provider\n  doesn't train on it. Surface this if the user asks about data handling.\n\n## Verification Checklist\n\n- [ ] `list_toolsets` returns toolsets at session start (connection healthy)\n- [ ] Scene state queried before first edit (never assumed empty)\n- [ ] After each milestone: changed actors\u002Fproperties re-queried and a\n      screenshot reviewed against the brief\n- [ ] Level\u002Fdirty packages saved after each milestone and at the end\n- [ ] Deliverables exist on disk (screenshot\u002Frender paths confirmed) and are\n      reported to the user with absolute paths\n- [ ] Editor left in a clean state: no pending modal, no unsaved surprise,\n      user told exactly what was created\u002Fchanged and where\n",{"name":5,"tags":53,"author":56,"license":15,"version":57,"metadata":58,"requires":62,"platforms":63,"description":7},[36,35,34,54,55,33,32,31,40],"3d","mcp","Hermes Agent","1.0.0",{"hermes":59},{"tags":60,"related_skills":61},[36,35,34,54,55,33,32,31,40],[],"Unreal Editor 5.8+ with the Unreal MCP plugin enabled and its server running",[46,47,44],"main","6deb42cc8c67a99d7613cb5802f8bbe01a0f3d12",".agents\u002Fskills_disabled\u002Funreal-mcp-hermes","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY","https:\u002F\u002Fwww.ai-solutions.store","https:\u002F\u002Fgithub.com\u002FTrollz1004","https:\u002F\u002Fyouandinotai.com","Founder building YouAndINotAI, OnlineRecycle, and AIDoesItAll through Trash Or Treasure Online Recycler LLC.","2026-11-11 18:41:12",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add Trollz1004\u002FANTIGRAVITY --skill unreal-mcp",{"tool":79,"command":80},"bunx","bunx skills add Trollz1004\u002FANTIGRAVITY --skill unreal-mcp",{"tool":82,"command":83},"pnpm","pnpm dlx skills add Trollz1004\u002FANTIGRAVITY --skill unreal-mcp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002FSKILL.md",true,[87,93,97,101,105,109,113],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fadvanced-workflows.md","REFERENCE","参考文档",13003,"https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002Freferences\u002Fadvanced-workflows.md",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fbenchmarks.md",7130,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Foptimization-flash-attention\u002Freferences\u002Fbenchmarks.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fpitfalls.md",17635,"https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002Freferences\u002Fpitfalls.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Frecipes.md",10609,"https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002Freferences\u002Frecipes.md",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fscene-craft.md",12793,"https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002Freferences\u002Fscene-craft.md",{"path":110,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Ftool-surface.md",19446,"https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills_disabled\u002Funreal-mcp-hermes\u002Freferences\u002Ftool-surface.md",{"path":114,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002Ftransformers-integration.md",7428,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Foptimization-flash-attention\u002Freferences\u002Ftransformers-integration.md",[118,146,184,208,234,260],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":122,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":48},"01M6M5BT49KEBHJM9D0P5NM8ED","security-audit","Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full\u002Fcomprehensive\u002Fend-to-end reviews, or requested report artifacts.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-audit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-audit\u002FSKILL.md",[],[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],"security audit","audit","security","reviews","end","only","workflow","vulnerability","review","libraries","cli","run","Tools","full","for","complete","security guidance","codebase audit","tests","use",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":150,"licenseFileUrl":151,"sourceHtmlUrl":152,"categories":153,"keywords":165,"publishedAt":48},"01M6M5B16Q534MKFHKBHRZ2773","impeccable","Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimpeccable\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimpeccable\u002FSKILL.md",[154,157,160],{"categoryNo":155,"categoryName":156,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":158,"categoryName":159,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":161,"categoryName":162,"taxonomyType":163,"taxonomyTypeDesc":164},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[148,166,167,168,169,170,171,172,131,173,174,175,176,177,134,178,179,180,181,182,183],"ux copy","states","quieter","frontend","improve","design","interface","design systems","effects","simplify","tasks","components","hierarchy","critique","native","product","layout","when",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":193,"publishedAt":48},"01M6M5AHHV2NPZYVMW48HP7A6H","hallmark","Design skill for websites and new pages that look designed, not generated. Use when the user asks to build or design something new, or names Hallmark. Never use it on an existing design unless the user names Hallmark, as in `\u002Fhallmark redesign \u003Cpath>`.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fhallmark\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fhallmark\u002FSKILL.md",[191,192],{"categoryNo":158,"categoryName":159,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[186,194,195,140,196,197,171,198,145,199,200,201,127,202,203,204,205,206,207,183],"as","never","true","pages","generated","Existing","prompt","build","redesign","look","it","user","path","new",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":150,"licenseFileUrl":212,"sourceHtmlUrl":213,"categories":214,"keywords":219,"publishedAt":48},"01M6CQDXJ785JCD5PMKYD239ZZ","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[215,218],{"categoryNo":216,"categoryName":217,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":155,"categoryName":156,"taxonomyType":21,"taxonomyTypeDesc":22},[220,221,222,223,169,224,225,226,227,228,229,230,231,232,140,233,29],"webapp","testing","webapp testing","applications","debugging","toolkit","logs","browser","playwright","web","behavior","ui","screenshots","local",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":238,"sourceHtmlUrl":239,"categories":240,"keywords":241,"publishedAt":48},"01M6CQ5HBDE9Q5WJZXQ7G72MYD","appinsights-instrumentation","Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. USE FOR: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices. DO NOT USE FOR: adding App Insights to my app (use azure-prepare), add telemetry to my project (use azure-prepare), add monitoring (use azure-prepare). This skill provides guidance—azure-prepare orchestrates component changes.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fappinsights-instrumentation\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fappinsights-instrumentation\u002FSKILL.md",[],[242,243,244,245,246,145,247,248,249,250,251,252,253,254,255,256,257,258,259,140],"appinsights instrumentation","instrumentation","do","azure","telemetry","monitoring","references","component","how","patterns","apm","sdk setup","app","project","insights","how to","my","add",{"skillNo":261,"name":262,"nameZh":6,"description":263,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":264,"categories":265,"keywords":279,"publishedAt":48},"01M6CQNQ5FNDP6K32RKXQ9X157","youtube-automation","YouTube automation: upload, SEO, thumbnails, scheduling, analytics.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002Fops\u002Fskills\u002Fyoutube-automation\u002FSKILL.md",[266,269,272,273,276],{"categoryNo":267,"categoryName":268,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":270,"categoryName":271,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":274,"categoryName":275,"taxonomyType":163,"taxonomyTypeDesc":164},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":277,"categoryName":278,"taxonomyType":163,"taxonomyTypeDesc":164},"01JBSEEDCAT000000000000035","市场营销",[280,281,282,44,283,46,284,285,37,286,26,287,47,288],"automation","youtube","youtube automation","seo","scheduling","thumbnails","analytics","content","upload"]