Dev
Tools & MCP
The tools a session uses to work on the game: the Unity and Blender MCP servers, the image and audio CLI tools, and the rules for sharing one Unity editor between sessions.
Unity
- Editor: Unity 6000.2.12f1, at
/Applications/Unity/Hub/Editor/6000.2.12f1/Unity.app/Contents/MacOS/Unity. - Unity MCP: the
unity-editor-mcpserver, set in~/.claude.json(user scope). Its command is the absolute path/Users/lobodart/.unity/bin/unity mcp --project-path <game-mower>, because~/.unity/binis not onPATH. It needs thecom.unity.pipelinepackage (installed) and the editor open on the project. - If it can't connect: check whether the editor is in Safe Mode (compile errors).
- It disconnects on every domain reload. See Testing for waiting it out and the other editor quirks.
- Editor preference
ScriptCompilationDuringPlay = 1(recompile after play), so edits don't reload in the middle of a play test.
Menus worth knowing
| Menu | What it does |
|---|---|
| Game Mower › Rebuild Generated Content | Rebuilds materials, prefabs, scenes and build settings. Data assets are only created when missing. |
| Game Mower › Rebuild Hub (house + garage scene) | Rebuilds the hub only. It never touches the Garden or Store scenes, nor the Van/DadCar/GarageRoom prefabs. |
| Game Mower › Rebuild Net Prefabs | Rebuilds the FishNet prefabs in Assets/_Game/Net/Resources/Net. |
| Game Mower › Rebuild UI Fonts | Regenerates the TextMeshPro font assets. |
| Game Mower › Reset Data Assets To Defaults | Overwrites data assets with the defaults written in the setup scripts. |
| Game Mower › Export Voice Lines | Writes ArtSource/voice/lines.json, flagging lines that have no clip yet. |
| Game Mower › Delete Save File | Deletes the save. Back it up first. |
Sharing one Unity editor
Several sessions can work on the project at the same time, and they share one editor. Any file you save gets compiled by their refresh too.
- Callees before callers. Add new methods, fields and files first, then the calls (or land both in one write). A call to a method that doesn't exist yet breaks everyone's compile.
- Announce it. Say "taking Unity" before a rebuild or play mode, and "done with Unity" after.
- Commit only your own paths. Other sessions' uncommitted files stay theirs: don't commit or revert them. When you share a file, stage only your own hunks.
Blender
- Blender MCP: the Claude extension "Blender" (Blender Lab) plus the Blender Lab add-on in Blender 5.2, port 9876. Blender must be open with the add-on server running.
- Models are built by the Python scripts in
ArtSource/scripts, exec'd into the live Blender. Each MCP call gets a fresh namespace, so keep the loaded scripts inbpy.app.driver_namespace["gm"]. - Parallel Blender work: take a
mkdirlock first. There's one scene, with shared selection and globals. - Axes: Blender (x, y, z) becomes Unity (-x, z, -y).
Image and audio CLI tools
Installed on the machine: inkscape, rsvg-convert (librsvg), ImageMagick (magick), ffmpeg, pandoc, and
Pillow for /opt/homebrew/bin/python3.
- 2D art: write the SVG by hand, convert to PNG with
rsvg-convertorinkscape, then usemagickor Pillow for atlases, recolours and checks. The company logos work this way (ArtSource/logo/make_logos.py). - Audio:
ffmpegturns downloaded mp3 ambience into WAV, so loops decode gaplessly and don't click.
ElevenLabs
Voices and ambience come from the ElevenLabs MCP: voices on eleven_v4, American English, recorded clean (phone and
room effects are applied in Unity by Core/Voice.cs). The cast, flows and download steps will get their own page
under Game › Cast and Dev › Content pipeline.
Publishing the wiki
The wiki is online as a Cloudflare Pages project, on its pages.dev URL, behind Cloudflare Access: only the emails
on its list get in, with a code sent by email. Cloudflare rebuilds it on every push to main that touches docs/ or
tools/wiki/. Zero Trust Free covers up to 50 people.
- Letting someone in or out: Zero Trust › Access › Applications › the wiki's app › Policies, the email list. Nothing in the repo changes.
- The Access app covers two domains:
<project>.pages.devand*.<project>.pages.dev(every deployment also gets its own link). The "Enable access policy" switch in the Pages settings only covers the second: never rely on it alone. - How:
tools/wiki/scripts/cloudflare-build.shfetches the full git history first (Cloudflare clones shallow, and the "last edited" dates come from git), then runs the samecheckandbuildas on your machine.
Pages build settings (the project › Settings › Build, repo lobodart/game-mower):
| Setting | Value |
|---|---|
| Production branch | main |
| Framework preset | None |
| Build command | bash tools/wiki/scripts/cloudflare-build.sh |
| Build output directory | docs/site |
| Root directory | (empty: the repo root) |
| Environment variable | NODE_VERSION = 22 |
| Build watch paths | include docs/* and tools/wiki/* |