remix-upload-asset
Upload Game Asset Workflow
Overview
Upload arbitrary files (images, audio, 3D models) as hosted game assets via the REST API. Returns a permanent URL you can reference in your game HTML.
Prerequisites
- A game must already exist on the Remix platform (you need a game ID).
- The
REMIX_API_KEYenvironment variable must be set.
Steps
1. Check for Existing Game ID
IMPORTANT: Do NOT create a new game without checking first.
Use gameId from task context or prior tool results when available.
Otherwise, read the nearest .remix-cli.json. Older projects may still use
.remix-mcp.json. If either contains a gameId, reuse it.
Only if none of those sources contain a gameId should you follow the
upload-game workflow to create one.
2. Upload the Asset
Send the file as multipart form data:
POST https://api.remix.gg/v1/games/{gameId}/assets
Authorization: Bearer $REMIX_API_KEY
Content-Type: multipart/form-data
Form fields:
file (required) — the binary file to upload
assetName (optional) — custom display name; defaults to the filename
Allowed extensions: .jpg, .jpeg, .png, .webp, .mp3, .wav,
.hdr, .glb, .gltf
Max file size: 5 MB
Response:
{
"success": true,
"data": {
"gameId": "...",
"asset": {
"url": "https://..."
}
}
}
Use data.asset.url as the hosted URL for the asset.
3. Use the URL in Game HTML
Reference the returned URL in your game code. Examples:
<img src="https://returned-asset-url.png" width="64" height="64" />
const img = new Image();
img.src = "https://returned-asset-url.png";
img.onload = () => ctx.drawImage(img, x, y, w, h);
const audio = new Audio("https://returned-asset-url.mp3");
audio.play();
4. (Optional) List All Assets
Retrieve all uploaded assets for a game:
GET https://api.remix.gg/v1/games/{gameId}/assets
Authorization: Bearer $REMIX_API_KEY
Tips
- Name files descriptively. Use clear filenames like
player-idle.pngorjump-sfx.mp3-- the filename becomes the default asset name. - Preload assets before gameplay. Wait for
onload/canplaythroughevents before starting the game loop to avoid missing assets. - Stay under 5 MB per file. Compress images and audio before uploading.
Use
.webpfor images and.mp3for audio when possible. - Repeat for each asset. Run through steps 2-3 for every file the game needs.
More from farworld-labs/remix-skills
phaser-2d-arcade
Build mobile-first 2D browser games with Phaser 3 Arcade Physics
37remix-agent-publish
Build and publish Remix games with the current Remix toolchain. Use when work touches the official Remix CLI, MCP server, REST publishing APIs, or the @remix-gg/sdk game runtime.
37threejs-lite
Build lightweight mobile-friendly 3D browser games with Three.js
33remix-api-auth
Configure and verify authentication for Remix REST, CLI, and MCP workflows. Use when a task needs `REMIX_API_KEY`, `remix login`, stored Remix credentials, or auth troubleshooting.
32remix-add-sprite
Generate and add sprites to a Remix game
31remix-game-sdk
Reference for the current @remix-gg/sdk runtime. Use when generating or repairing Remix game code, shop item integrations, save-state flows, multiplayer hooks, or host-safe mobile UI behavior.
31