Generating
Generate an armour set
Produces armour, in one of two shapes:
- 2d (the default): an armor set, a reskin of one of the vanilla sets, named by setId. The game's own silhouette is kept, so the face and forearms stay bare. A pack holds one of each vanilla set; a second answers conflict.
- 3d: an armor3d set, new geometry worn on the player, which needs RP Engine on the server to be seen. A pack may hold as many as it likes; name labels it and setId is ignored.
Takes a few minutes. One charge, refunded in full if it fails. Armour is changed in the Studio's armour editor, not with editAsset.
/packs/{pack}/armorPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Body
promptstringrequiredWhat the armour looks like.
shapestringdefault "2d"A vanilla set reskin, or a 3D set.
Options: 2d, 3d
setIdstringWhich vanilla set to reskin. Required for 2d.
Options: leather, copper, chainmail, iron, gold, diamond, netherite, turtle_scute
namestringYour label, for a 3d set. Absent uses the prompt's first words.
referenceIdsarray of stringmax 5 entriesReference images for a 3d set, in order: referenceIds from POST /packs/{pack}/references. A 2d set takes referenceId.
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, 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 is on Starter. The API needs a paid plan.
not_found404No such pack, asset or job.
conflict409That vanilla target is already reskinned in this pack. Change it in the Studio rather than overwriting it.