Generating
Generate a mob
Produces a mob: a creature RP Engine spawns in the world, which walks, fights and makes its own sounds. The Studio's Mob answer on the Add asset dialog, in one run: the creature is built as a 3D model, then set up (behaviour, health, hitbox) and animated for each state, and given its own ambient, hurt, death and attack sounds.
This is the slowest one: a model build and a rig, typically ten to twenty minutes. One charge for all of it, refunded in full if the build fails; a rig that fails after the build is not charged, and leaves the mob without animations (animate it again with POST /packs/{pack}/mobs/{model}/rig).
Change its behaviour, drops and abilities in the Studio's mob editor.
/packs/{pack}/mobsPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Body
promptstringrequiredWhat the creature is.
namestringYour label. Falls back to the prompt.
statesarray of stringWhich states to animate. Absent animates death, attack, hurt, walk and idle.
referenceIdstringA reference image: the referenceId from POST /packs/{pack}/references, or one uploaded in the Studio.
useStyleGuidebooleandefault trueFollow the pack's style guide — its palette, its notes and its reference pictures. Defaults to true, so a pack with a style guide produces assets that match it without this field. Send false for one asset that should deliberately not match. A pack with no style guide, or one switched off, ignores this either way.
Response · 202
Accepted. The work runs asynchronously — poll job until it leaves generating.
idstringrequiredThe asset's id within the pack.
typestringrequiredWhat is generating. For an item, item or item3d.
Options: model, vehicle, mob, block, block_face, model_texture, item, item_model, item3d, armor, armor3d, gui, hud, dialog, icon, rank_tag, sound
kindstringrequiredThe file format it is stored as.
Options: texture, model, font, sound
statusstringrequiredAlways generating — nothing is finished when this returns.
packstringrequiredThe pack it was written into.
jobstringrequiredPoll this at GET /jobs/{job} until it leaves generating.
Error codes
Branch on error.code, never on the message.
invalid_request400Something in the body or query is wrong. message says what.
invalid_api_key401The key isn't one of ours, or it has been revoked.
missing_api_key401No Authorization: Bearer header was sent.
wrong_key_kind401An MCP key sent to the REST API, or an API key sent to the MCP server. Each only opens its own.
insufficient_credits402Not enough AI Credits to run this. Nothing was started or charged.
account_suspended403The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.
asset_limit_reached403The pack is at its asset limit.
forbidden403Valid key, but not permitted to do this in this pack.
plan_required403The key is valid, but its account's plan does not include the API.
not_found404No such pack, asset or job.