resourcepack.ai
DOCS

Generating

Edit an asset with AI

Changes an asset that already exists from a sentence (make it rustier, slower, add a second ring), exactly as the Studio's Edit with AI button does, and at the same price. The asset is changed in place.

Which assets. A stored asset is addressed by the kind and name the asset listing reports, as for a download: a block (texture/mossy_bricks), an item sprite (texture/item:rusted_key), a model, item3d or vehicle (model/lantern) and an icon (font/heart). The rest are addressed by their own kind and the id their generation returned: a 3D shader object or a text effect (shader/<id>), a VFX (vfx/<id>) and an emote (emote/<id>). GUIs, HUDs, dialogs, armour, sounds, rank tags and HUD shaders are changed in the Studio's editors, and are refused here.

Limits. An emote's instruction is up to 500 characters, a VFX's or a text effect's 600, a 3D object's 800. One edit at a time per asset: a second while the first runs answers already_running.

The job polls like a generation's. When it is ready, the asset holds the change: download it again to see it.

POST/packs/{pack}/assets/{kind}/{name}/edit

Path parameters

packstringrequired

The pack's slug, as returned by the packs endpoints.

kindstringrequired

The asset's kind from the listing, or shader, vfx or emote.

Options: texture, model, font, shader, vfx, emote

namestringrequired

The asset's stored name from the listing, or the id a shader, VFX or emote was generated under.

Body

instructionstringrequired

What to change.

Response · 202

Accepted. The edit runs asynchronously, so poll job until it leaves generating.

idstringrequired

The name you addressed it by.

typestringrequired

What the asset is.

kindstringrequired

The kind you addressed it by.

Options: texture, model, font, shader, vfx, emote

statusstringrequired

Always generating: nothing is finished when this returns.

packstringrequired

The pack it is in.

jobstringrequired

Poll this at GET /jobs/{job} until it leaves generating.

Error codes

Branch on error.code, never on the message.

invalid_request400

Something in the body or query is wrong. message says what.

invalid_api_key401

The key isn't one of ours, or it has been revoked.

missing_api_key401

No Authorization: Bearer header was sent.

wrong_key_kind401

An MCP key sent to the REST API, or an API key sent to the MCP server. Each only opens its own.

insufficient_credits402

Not enough AI Credits to run this. Nothing was started or charged.

account_suspended403

The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.

asset_limit_reached403

The pack is at its asset limit.

forbidden403

Valid key, but not permitted to do this in this pack.

plan_required403

The key is valid, but its account is on Starter. The API needs a paid plan.

not_found404

No such pack, asset or job.

already_running409

An AI edit or generation of that asset is still running. Wait for its job, then send the edit again.