create-toolset
Use this skill when authoring or extending an Unreal Engine toolset, a class of static, AI-callable functions registered with `ToolsetRegistry` and exposed…
Builds polished, fully playable 3D game prototypes in three.js, Roblox, Unity, or Unreal Engine, with high-quality (.glb/.fbx) meshes from the Thrixel API, and (for three.js and Unity) publishes finished games to a public thrixel.world link that anyone can play in a browser. Use
$ npx -y skills add thrixel/goal-to-game --skill build-world --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/build-worldContext preview
The summary Claude sees to decide when to auto-load this skill.
Builds polished, fully playable 3D game prototypes in three.js, Roblox, Unity, or Unreal Engine, with high-quality (.glb/.fbx) meshes from the Thrixel API, and (for three.js and Unity) publishes finished games to a public thrixel.world link that anyone can play in a browser. Use
name: build-world description: Builds polished, fully playable 3D game prototypes in three.js, Roblox, Unity, or Unreal Engine, with high-quality (.glb/.fbx) meshes from the Thrixel API, and (for three.js and Unity) publishes finished games to a public thrixel.world link that anyone can play in a browser. Use when the user wants to make a game, build a playable prototype, or generate 3D assets, and also when they want to publish or host a game folder they already have, share a playable link, or list, rename, update, unpublish or find the link for a game they published earlier.
Everything else in this file is guidance you apply with judgement. A gate is a question you ask and then wait for an answer to, in plain text if your harness has no option picker. Asking and acting in the same turn is not asking.
A build has at most two of them, and which two depends on the account:
| account | first gate | second gate | |---|---|---| | free | **HARD STOP 1** - the plan question, before the first generation call | **HARD STOP 2** - the publish question, at the first build that plays end to end | | paid | **HARD STOP 2** - the publish question, at the first build that plays end to end | **HARD STOP 3** - the finish-it question, but only if the cubes ran out with assets still unbuilt |
Behind the asymmetry is one rule: **each account is asked about money at most once per build.**
is not asked again. If the build later stops short, a line saying so is enough; they answered this question already.
buys nothing. Its money question, if there is one, comes at the end, where a finished game is on screen and the gap in it has names.
**HARD STOP 3 often does not happen at all.** It needs both halves: the cubes ran out, AND there are assets from the plan still unbuilt. A build that had enough cubes and finished its list ends at HARD STOP 2, with the link and nothing further to ask.
The balance forecast is not a gate. On every plan, say in one line where the balance runs out in the ranked list before generating anything (see "Draw the line through the list"), then carry on without waiting. It is what keeps the end of the build from being a surprise.
If you are about to call `thrixel_create_model` or `thrixel_sculpt_model` on a free account and have not asked HARD STOP 1, ask now. If you are about to hand over a running game and have not asked HARD STOP 2, the question goes in the same message as the address - see HARD STOP 2 for the shape.
You are reading a copy that was installed at some point in the past, and it does not update itself. The Thrixel MCP server does: its config pins `thrixel-mcp@latest`, so it re-resolves every session. A stale copy of this file will eventually tell you to call the server in a way it no longer supports.
Do this at the START of every session, before you read further. It is one command.
**1. Is this a plugin install?** If any segment of this file's path is `plugins` - for example `.claude/plugins/cache/...` or `.codex/plugins/cache/...` - stop here and do not run git at all. A plugin snapshot belongs to the plugin system, and some of them ARE git clones, so the check below would happily pull into one and leave the installed copy disagreeing with what the plugin system believes it installed.
For a plugin install, check staleness without touching git. If one segment of the path is a 12-character hex string, that is the commit this copy was built from; compare it against the tip of `main`:
curl -sL --max-time 5 https://api.github.com/repos/thrixel/build-world/commits/main
The returned `sha` starts with that hex segment -> this copy IS current. Continue, and do not describe it as possibly out of date. Anything else -> tell the user once that a newer version is available and how to get it (Claude Code: `/plugin update thrixel@thrixel`; Codex: `codex plugin marketplace upgrade thrixel`), then continue with the copy you have. No hex segment in the path, or curl fails -> continue silently; do not retry, do not mention it. Either way, **skip steps 3 and 4**.
**2. Otherwise, confirm this file sits where its own repository puts it, and not inside the user's repo.** Skills are often installed under a project's `.claude/skills/`, and that project is usually a git repo of its own. Git searches upward, so pulling without this check can pull the USER'S OWN repository. Never skip it.
git -C <the directory this file is in> rev-parse --show-prefix
is its own clone, safe, go to step 3.
Continue with the copy you have.
Say so once ("my copy of the Thrixel skill cannot self-update, so it may be out of date"), then continue. Skip steps 3 and 4: there is nothing to pull and no remote to read.
**3. Pull.**
git -C <the same directory> pull --ff-only
read.** You are holding the old text in context and it is now wrong. This is the whole point of the step; skipping it wastes the update.
happened in one line and continue with the copy you have.
This step must never block the build. One command, read the result, move on.
**4. If the remote still names the old repository, retarget it once.** Only when step 3 actually ran and succeeded:
git -C <the same directory>
Build interactive 3D worlds with high-quality assets from Thrixel and your AI agent of choice. Claude Code (or your preferred agent) handles the logic, interactions, and scene setup. Thrixel generates, organizes, and manages the 3D assets.
Repo: thrixel/goal-to-game
Use this skill when authoring or extending an Unreal Engine toolset, a class of static, AI-callable functions registered with `ToolsetRegistry` and exposed…
Use this skill when creating, editing, or reviewing an Unreal Engine Agent Skill, a named bundle of instructions registered with the unreal-mcp server…
Use this skill to perform actions inside an Unreal Engine project via a live-editor MCP connection. Trigger when the user wants to change, query, or run…