# Build with your AI ## Give your assistant a starting point Connect your world's MCP credential using [Connect your AI](/connect-mcp/), then give your assistant your design brief and this documentation URL. Connect local Blender MCP and install the [Betworld bridge](/blender/) to model and transfer assets. Start with `world_download`. Its response includes your world ID, revision, document, asset library, catalog and limits. Use these values for subsequent edits. ## Build and save in small steps 1. Download the current draft and record its revision. 2. Choose supported game stations and lay out their player approaches at the standard height and scale. 3. Model props in Blender and export static, self-contained GLBs with embedded textures. 4. Upload a representative prop with `asset_upload`. Save its returned hash and size. 5. Place it using `world_edit_entities`. Each `upsert` or `remove` array accepts up to 1,000 entries. Use the returned revision for the next edit. 6. For a complete layout replacement, call `world_upload` with the current revision and complete document, including any skin definitions you want to retain. 7. Check the returned budget after each meaningful change. Adjust geometry, textures or placements before reaching a limit. 8. Download again to confirm the saved placements and asset references. 9. Open your world panel or in-game builder and publish the saved revision. New bets pause while accepted wagers finish, then connected players automatically load the new layout. For direct integrations, the [World HTTP API](/world-api/) documents equivalent REST requests, authentication, responses and errors. ## Create custom game bodies and buttons Read [the Blender authoring workflow](/model-authoring-workflow/) and the [guide for each game](/betting-models/). Fetch `game_skin_contract` for the exact sockets and catalog fingerprint. Import the native game as a locked reference. Preserve its player/table ratio, screens, card paths and button positions. Export your replacement body and button artwork as separate GLBs. Upload them, replace the starter manifest's placeholder hashes, then use `game_skin_save` with the target entity IDs and current revision. Each binding maps one catalog slot to one uploaded asset hash. Betworld supplies the action and live state for that slot. Omitted bindings keep their native appearance. Use separate prop entities for surrounding scenery. Preview the states that affect clearance: Blackjack splits, all Multiplayer Blackjack seats, Baccarat third cards, Poker Holds, Mines grid sizes, Drago difficulties, Keno paytables, Dice slider extremes, Plinko outer pockets and Coinflip's full toss. Use local preview fixtures to inspect active states. When revising artwork, upload it again and use the returned hash. Replace the old placement or binding to avoid doubled geometry. Existing asset-library entries continue to count toward your storage limit. ## Handle revision conflicts A `409` means your saved revision is stale or the world cannot currently be published. Download the latest draft, merge your intended change and retry with its current revision. Keep edits sequential so one save's returned revision becomes the next save's input. A `401` on token routes means you need the current credential. Tokens stay valid until you revoke or replace them. Store them in your AI client's secret settings. ## Review your saved world Ask your assistant to report the world name and ID, saved revision, placed-entity count, download size, estimated memory, custom assets and any remaining layout issues. Preview the player approaches and controls, then publish from your world panel. ## Machine-readable references - [world.schema.json](/world.schema.json): accepted world structure; see [world format](/world-format/) for semantic rules. - [limits.json](/limits.json): current numerical budgets. - [catalog.json](/catalog.json): built-in props, games and station counts. - [game-skin-catalog.json](/game-skin-catalog.json): reference bounds, named controls, presentation targets and motion channels. - [game-model-reference.json](/game-model-reference.json): measured native meshes, physical controls, library hashes and runtime mounts. - [model-proportions.json](/model-proportions.json): player/table ratios and source scales. - [betting-interfaces.json](/betting-interfaces.json): generated screen regions and runtime anchors. - [llms-full.txt](/llms-full.txt): all guides as plain text.