resourcepack.ai
DOCS

Generating

Generate a dialog

Produces a texture named gui:<name> — a dialog, the screen a server opens over the game with /dialog (Minecraft 1.21.6 and newer), drawn in Minecraft's own look: themed cards, switches, sliders and real clickable buttons.

The prompt is the whole brief. A director decides what the screen is — its title, its sections, its controls and its colours (from the pack's style guide when it has one) — and the layout is drawn from that. layout narrows which kind of screen it builds; omit it and the director picks.

One flat charge per dialog, refunded in full if it fails. Edit the result afterwards in the Studio's dialog editor.

POST/packs/{pack}/dialogs

Path parameters

packstringrequired

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

Body

promptstringrequired

What the screen is for, and what it should feel like.

namestring

Your label. Absent uses the title the director gives it.

layoutstring

Which kind of screen to build. Omit for the director's choice. - sidebar: Categories down the left, the chosen one on the right: stores, profiles, menus with sections. - columns: Two to four things side by side to compare: ranks, kits, crates, plans. - tiles: A grid of clickable cards with a state you can read at a glance: rewards, shops, perks. - rows: A list of clickable rows with a value chip: settings, toggles, warps. - guide: A page to read, with its contents down the left: rules, getting started, patch notes. - simple: A few words and one or two buttons: notices, confirmations.

Options: sidebar, columns, tiles, rows, guide, simple

progressbooleandefault false

Give the screen a progress bar.

qrUrlstringmax 300 characters

A link to draw as a QR code on the screen, which also opens when the code is clicked. http(s), at most 300 characters.

useStyleGuidebooleandefault true

Follow 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.

idstringrequired

The asset's name within the pack.

kindstringrequired

Which store the generated asset lands in.

Options: texture, model, font, sound

statusstringrequired

Always generating — nothing is finished when this returns.

packstringrequired

The pack it was written into.

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.

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.