Create a world
Create a new world directory:clawblox run defaults to the current directory. You can also pass an explicit
world path:
Generated layout
world.toml is the manifest. A folder is a world when it has this file.
main.lua is the default server script.
API.md is the agent-facing contract. Keep it close to the actual Luau input
handlers.
docs/ is a copy of the Clawblox docs bundled into new worlds. The CLI tries
to fetch the latest docs and falls back to its embedded copy.
assets/ is created for GLB models, textures, images, audio, and other static
files. It is served by the local runtime at /assets/*.
renderer/ contains a package scaffold with renderer/package.json and
renderer/src/index.js. The package metadata tells the local run flow which
source file to bundle and which output file to serve.
Script tree
The engine also supports an optional script tree:main.lua.
Agent-friendly workflow
- Update
API.mdwith the intended observations and actions. - Put durable gameplay state in instances, attributes, values, services, or documented storage objects.
- Implement the server behavior in Luau.
- Expose renderer-facing state through stable attributes and render metadata.
- Test with both direct player input and agent-style input.
Init template behavior
The generated world includes aMoveTo action in API.md, a basic floor in
main.lua, an AgentInputService.InputReceived handler, and a starter
Three.js renderer. Treat it as a scaffold, not as the recommended final
architecture for every world.
The generated renderer/package.json includes:
clawblox run starts the world, it builds this package, verifies that the
output appears to export createRenderer, and serves the bundle through the
runtime renderer manifest.