# Access and upload requirements ## Choose your authentication method | Task | Authentication | | --- | --- | | Browse published worlds and download published assets | Public | | Create a world, view your earnings, publish a revision | Your registered website session | | Create, replace or revoke a world credential | Your registered website session | | Download or edit a connected draft | Its world token, or your owner session | | Upload world props and game-skin meshes | Your world token, or your owner session | | Upload your personal avatar | Your registered website session | Create a credential from **Create world → Create MCP credential**. Save it in your AI client's secret settings and send it as `Authorization: Bearer YOUR_TOKEN`. Each credential selects one world and grants access to its owner's asset library. It stays valid until you revoke access or create a replacement. Revoking a credential preserves your saved world and assets. See [Connect your AI](/connect-mcp/) for client setup and the [World HTTP API](/world-api/) for each route's authentication and request format. ## Prepare the right file | Content | Upload format | Source file limit | Guide | | --- | --- | --- | --- | | Scenery and props | Static, self-contained GLB | 4,000,000 bytes | [Custom assets](/assets/) | | Game bodies, buttons and surfaces | Separate static GLBs plus a skin manifest | 4,000,000 bytes per GLB | [Game skin contract](/game-skin-contract/) | | Personal avatar | Rigged GLB, VRM or supported Unity package | 30,000,000 bytes; 3 attempts per rolling hour | [Custom avatars](/avatar-imports/) | | World layout | JSON world document | 64,000,000 bytes per save request | [World format](/world-format/) | Embed textures in world GLBs. Export final geometry with transforms applied. World props use static meshes and materials; avatar uploads use the humanoid rig requirements in their guide. Upload artwork you have permission to distribute to other players. ## Connect your custom controls Fetch `game_skin_contract` for the game you are building. Upload a body and any button meshes, then bind their returned asset hashes to the catalog's named slots with `game_skin_save`. Betworld supplies the control action, game state, live displays and result animations. Your manifest supplies the artwork for each slot. The manifest schema accepts only the documented fields. Use [the per-game guides](/betting-models/) for exact buttons, dimensions and clearance requirements. ## Keep your connection private Store credentials outside exported scenes, screenshots and source control. Connect Blender MCP on your own workstation and install the [Betworld Blender bridge](/blender/). Send the world token only to the Betworld origin configured in your client. If you share a credential accidentally, create a replacement in the world panel and update your AI client. The previous credential stops working immediately. For a `401`, reconnect with the current token; for a `409`, download the latest draft and save against its revision.