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.
Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations.
$ npx skills add Besty0728/Unity-Skills --skill unity-skills -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Besty0728/Unity-Skills unity-skills --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/Besty0728/Unity-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .claude/skills/unity-skills && 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 "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .claude/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~Type 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 Besty0728/Unity-Skills --skill unity-skills -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Besty0728/Unity-Skills unity-skills --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .agents/skills/unity-skills && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .agents/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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 Besty0728/Unity-Skills --skill unity-skills -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Besty0728/Unity-Skills unity-skills --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .cursor/skills/unity-skills && 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 "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .cursor/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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/Besty0728/Unity-Skills.git --path 'SkillsForUnity/unity-skills~'--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 Besty0728/Unity-Skills --skill unity-skills -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Besty0728/Unity-Skills unity-skills --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .gemini/skills/unity-skills && 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 "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .gemini/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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 Besty0728/Unity-Skills unity-skillsInstalls 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 Besty0728/Unity-Skills --skill unity-skills -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .github/skills/unity-skills && 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 "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .github/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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 Besty0728/Unity-Skills --skill unity-skills -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Besty0728/Unity-Skills unity-skills --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'SkillsForUnity/unity-skills~' .opencode/skills/unity-skills && 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 "unity-skills" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~ into .opencode/skills/unity-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-skills", 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.
unity-skillsAutomate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations.
Unity Skills is an agent skill from Besty0728/Unity-Skills. Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations. Use when the user wants to actually operate the Unity Editor from chat — create, modify or batch-edit GameObjects/scripts/scenes/assets, or run Editor automation — in any language. Not needed for conceptual Unity Q&A that touches no Editor state — read the matching advisory doc under skills/ instead. 当用户要从对话里实际操作 Unity 编辑器(创建/修改/批量编辑/运行测试)时使用,任何语言均可触发;纯概念问答无需本协议。
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 31 other files, including scripts and reference files (for example `SKILL_GUIDE.md`, `references/2d.md` and `references/3d.md`). Compatibility notes: Requires Unity Editor 2022.3+/6000.x with the UnitySkills package (local REST server on localhost:8090-8100); Python 3 for the bundled client
It sits in Game Development, covering REST APIs. It works with Unity. The repository describes itself as: AI automation skills specifically designed for Unity. The licence is MIT.
Read from SKILL.md and the folder at commit ec8aa7c. 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/, which the agent can run.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, 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.
Requires Unity Editor 2022.3+/6000.x with the UnitySkills package (local REST server on localhost:8090-8100); Python 3 for the bundled client
From compatibility in the SKILL.md frontmatter.
Unity Skills loads about 2k tokens when it runs, and up to ~134k if it reads all its reference files. Until then it costs about 133 tokens; SKILL.md has 754 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 Besty0728/Unity-Skills at commit ec8aa7c, republished under its MIT licence (© Besty0728). 754 words, ~2,006 tokens.
.claude/skills/unity-skills/SKILL.md (or your agent's skills folder). This skill also uses 30 other files; get the full folder from GitHub.Docs are English-only: match requests to modules by meaning in any language, and always reply in the user's language.
surfaceProfile is guide: name menus and Inspector fields per SKILL_GUIDE.md.Ports 8090–8100 go first come, first served: add ?expectProject=<project> (productName or folder name) or the exact ?expectInstance=<instanceId> to every write. A different Editor answers 409 INSTANCE_MISMATCH and runs nothing.
GET /health (exempt from the check) has currentMode, surfaceProfile, dryRunPolicy, instanceId: probe it once in the same shell command as your first request, adding no other call, then only after a refused write, 409, 503/refused connection or odd mode. bypass and auto run writes directly, but under auto confirm ≥5-object batches, prefab apply, scene-level, asset-overwriting or irreversible changes with the user first (probe alone before those); approval gates FullAuto writes behind single-shot grants (permanent: the user's Allowlist).
During a domain reload the port answers 503 or refuses for seconds while its ~/.unity_skills/registry.json entry reads reloading: retry it, never another instance.
Every skill is POST /skill/<name> with JSON args:
curl -s "http://localhost:<port>/skill/gameobject_set_transform?expectProject=<project>" -d '{"name":"Crate","posX":4,"posY":1.5,"posZ":-2}'
Target objects by name or the exact path/instanceId (likewise parentPath, childPath); skip lookup calls — a wrong name fails the call and returns candidates.
| Call |
|---|
gameobject_create {name, primitiveType, parentName, x,y,z, rotX,rotY,rotZ, scaleX,scaleY,scaleZ, space} — x/y/z, rot local to the parent unless space:"world"; scale local |
gameobject_set_transform {name, posX,posY,posZ, rotX,rotY,rotZ, scaleX,scaleY,scaleZ, localPosX,localPosY,localPosZ} — pos, rot world; scale, localPos local; omitted axes kept |
gameobject_find {name, useRegex, component} · gameobject_get_info {name} |
gameobject_rename {name, newName} · gameobject_duplicate {name} |
gameobject_set_parent {childName, parentName} · gameobject_set_active {name, active} |
gameobject_delete {name} (dryRun first) |
component_add {name, componentType} |
component_set_property {name, componentType, propertyName, value} — vectors, colours "1,2,3"; references referenceName/referencePath/assetPath |
component_get_properties {name, componentType} |
material_assign {name, materialPath} |
light_set_properties {name, r,g,b, intensity, range, spotAngle, shadows} |
script_create {scriptName, folder, content} — full source; dryRun first; wait below |
scene_save {} (dryRun first) |
GET /skills/recommend?intent=<words>&includeSchema=true&topN=3&wire=v2 → top 3 skills with exact schemas (~1–4 KB); several needs → one more &intent=<words> each, same call. Name known → GET /skills/schema?names=a,b&wire=v2. Wider layers, v2 fields, constants → discovery.
Several steps, one call: POST /skills/batch?expectProject=<project> {"steps":[{"skill":"gameobject_create","args":{"name":"Rig"}},{"skill":"gameobject_create","args":{"name":"Arm","parentName":"Rig"}}]} — ≤50 steps; a step may name objects earlier steps created, or use {"$ref":"$0.instanceId"}; the first failure skips the rest unless continueOnError:true; ?mode=transactional = all-or-nothing → batch.
dryRun. If this table, recommend or schema gave you the signature this session, execute directly: a failed validation runs nothing and returns the dryRun report (all validation buckets, parameter list). DryRun first (?mode=dryRun&wire=v2) for deletes, riskLevel high, mayTriggerReload/mayEnterPlayMode, approval mode, non-transactional multi-step batches, or when unsure; under a dryRunPolicy, execute with the returned ?dryRunToken=. valid:true = no validation errors (warnings never block; the target may still be missing); authorization previews the permission gate.
Never invent skill or parameter names: use this table, recommend or schema. On failure read suggestedFixes; open a module doc only when a response names one.
A successful write returns the state read back from the Editor (e.g. world position, valueSet) — that is the verification; resolutionNotes flags a non-exact name match. Use *_get_info only for async results or missing fields. Script writes, and asset_refresh after you write a .cs yourself (compileTriggered:true), return waitUrl: one GET waits out compile+reload → status:"completed", or failed with errors in resultData.compilation. One command:
u=http://localhost:<port>; c="$u/skill/script_create?expectProject=<project>"; b='{"scriptName":"Spin","content":"<source>"}'; s='{"steps":[{"skill":"component_add","args":{"name":"Crate","componentType":"Spin"}},{"skill":"component_set_property","args":{"name":"Crate","componentType":"Spin","propertyName":"speed","value":"9"}}]}'; curl -s "$c&mode=dryRun" -d "$b" | grep -q '"valid":true' && J=$(curl -s "$c" -d "$b" | tee /dev/stderr | grep -o '/jobs/[^"]*=90') && curl -s --retry 20 --retry-connrefused --retry-all-errors --retry-delay 2 "$u$J" && curl -s "$u/skills/batch?expectProject=<project>" -d "$s"
surfaceProfile is the user's panel choice; guide and noSceneAuthoring hide some writes, which answer SURFACE_EXCLUDED naming the doc to read or the profile to leave. It is a boundary: do the rest of the task, never retry or route around it (profiles).
| Code | Meaning → action |
|---|---|
MISSING_PARAM / TARGET_NOT_FOUND | Bad or unresolvable arguments → fix from details / locate the target (gameobject_find). |
INSTANCE_MISMATCH (409) | Resend to the port suggestedFixes name. |
MISSING_PACKAGE | Tell the user (dryRun missingPackages, recommend unavailable show it early); installing is their call. |
MODE_RESTRICTED / MODE_FORBIDDEN | Grant / bypass or Allowlist → operating mode. |
| other | error codes |
Compile status, events, analytics → observability; closed Editor + opt-in Unity CLI → unity-cli.
Current snapshot: 805 REST skills, 56 source files, 54 categories, 82 module doc directories (54 REST/module docs + 28 advisory docs), Unity 2022.3+, default timeout 15 minutes.
Python helper: unity-skills/scripts/unity_skills.py
© Besty0728, 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 30 other files (scripts, references) in SkillsForUnity/unity-skills~ of Besty0728/Unity-Skills.
Open the folder on GitHubat commit ec8aa7c
Unity Skills 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 |
|---|---|---|---|---|---|---|
| Unity Skills this skillBesty0728/Unity-Skills | 1.8k | — | ~2k | Automated safety check: Pass | MIT | |
| Fantasy Framework Development Guideqq362946/Fantasy | 1.4k | — | ~5.8k | Automated safety check: Pass | Custom licence | |
| Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills | 275 | — | ~4k | Automated safety check: Pass | MIT | |
| AibridgeFlameskyDexive/Legends-Of-Heroes | 929 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Uloop Control Play ModeCyberAgentGameEntertainment/NovaShader | 1.6k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Unity PluginTomLeeLive/openclaw-unity-plugin | 107 | — | ~5.1k | Automated safety check: Pass | Apache-2.0 |
qq362946/Fantasy
Development and review guide for the Fantasy C# distributed game server framework: ECS, FTask, routing, service discovery, config and databases.
Misaka-Mikoto-Tech/agent-skills
A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…
FlameskyDexive/Legends-Of-Heroes
Unity Editor and Player Runtime CLI integration for AIBridge.
CyberAgentGameEntertainment/NovaShader
Control Unity Editor Play Mode. An agent skill from CyberAgentGameEntertainment/NovaShader.
TomLeeLive/openclaw-unity-plugin
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
MacacaGames/MacacaViewSystem
Migrate MacacaViewSystem ViewElement pools from KeepForever to an evidence-based recovery policy while preserving lifecycle, requested-pool, unique, async, event, and Addressable ownership safety.
Besty0728/Unity-Skills
Edit Unity Animator Controllers and drive runtime parameters
Besty0728/Unity-Skills
Advise on Unity gameplay and system architecture. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Unified batch and async-job orchestration. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Drive Unity Behavior behavior graphs and blackboard variables
Besty0728/Unity-Skills
Capture and query the Unity Editor console. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Automate DOTween Free/Pro at editor time. An agent skill from Besty0728/Unity-Skills.
Works with
Categories
Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations. Unity Skills is an agent skill from Besty0728/Unity-Skills. Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations.
Unity Skills fits situations like: the user wants to actually operate the Unity Editor from chat — create; batch-edit GameObjects/scripts/scenes/assets; run Editor automation — in any language.
Run `npx skills add Besty0728/Unity-Skills --skill unity-skills -a claude-code`. Or copy the skill folder (SkillsForUnity/unity-skills~ in Besty0728/Unity-Skills) into .claude/skills/unity-skills in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Besty0728/Unity-Skills --skill unity-skills -a codex`. Or copy the skill folder (SkillsForUnity/unity-skills~ in Besty0728/Unity-Skills) into .agents/skills/unity-skills 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 Besty0728/Unity-Skills --skill unity-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unity-skills, .gemini/skills/unity-skills, .github/skills/unity-skills and .opencode/skills/unity-skills in your project.
Going by SKILL.md and its folder, Unity Skills needs the command-line tools its instructions call (curl). Our summary lists: Python 3. Compatibility (from SKILL.md): Requires Unity Editor 2022.3+/6000.x with the UnitySkills package (local REST server on localhost:8090-8100); Python 3 for the bundled client.
SKILL.md contains no URLs. Its commands use curl, 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.
Unity Skills is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8k 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 132k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unity Skills: Fantasy Framework Development Guide (qq362946/Fantasy, 1.4k stars), Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars), Aibridge (FlameskyDexive/Legends-Of-Heroes, 929 stars) and Uloop Control Play Mode (CyberAgentGameEntertainment/NovaShader, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Besty0728 (a GitHub user) maintains it in Besty0728/Unity-Skills, which has 1,815 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 7, 2026.
Source: Besty0728/Unity-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.