Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "commit_map_draft", "get_map_draft", "get_project_export_command" and 15 more; changed the definition of "get_map", "plan_sync" and "set_asset_collision_body" (72 tools before, 90 now)
A map row plus its saved leveldata.data, revision and dependency-sensitive contentVersion for plan_sync. Preserve the returned contentVersion in the map lock entry after a successful import. Every placement has an immutable internal id and ⟨163 unchanged words⟩
⟨625 unchanged words⟩ "}],"description":"contentVersion for a character, map or the exact UI pack export; updatedAt for anasset or map.asset."}},"required":["kind","id" ⟨12 unchanged words⟩
⟨18 unchanged words⟩ its collider from for an asset revision:arect,acircle,orpolygon,acompoundclosedofpolygon1..16 simple disconnected bodies, or none, in NORMALIZED coordinates (0..1 fractions of the sprite/tile ⟨31 unchanged words⟩ for that tile. Pass collisionBody: null toclear.clear/inherit, or {kind:"none"} to explicitly disable collision including bbox fallback. Compound children use the same cell space; preserve open archways between them. This is what stops a game from falling ⟨76 unchanged words⟩
⟨10 unchanged words⟩ string"},"collisionBody":{"anyOf":[{"
Save a validated map draft — FREE. Commit the exact draftHash as a recoverable revision. The existing map must still match its expectedRevision; conflicts require re-reading and merging the user’s changes. Reuse requestId for retry. The map immediately opens in the normal editor.
Read a map draft — Read a prepared map draft, resolved document, hash and expiry.
Download complete game project — Return an authenticated shell download command for a ready project export job. This tool checks status first and never starts a build. Run the command outside the model; do not transmit ZIP bytes through MCP. Supports Phaser, Godot and Unity.
Review complete project export — FREE. Check all saved maps, character and asset dependencies, choose the starting map/player, and inspect target-runtime compatibility before downloading an editable complete Phaser, Godot or Unity project. Errors block export; custom game code remains your responsibility.
Check complete project export — FREE. Read a queued export job. Poll queued/running jobs about every two seconds. Ready jobs include the artifact size and expiry; failed jobs explain what to fix before retrying. Use get_project_export_command only once ready.
List saved map revisions — List recoverable map revisions from editor and agent saves.
Inspect map authoring context — Read project art, material recipes, limits, shape classes, current map JSON and revision. Inspect the returned artwork visually before selecting assets. Read your game code to establish movement/mechanics; SpriteShip fields are flexible metadata.
Read strict map document schema — Read the authoritative JSON Schema before composing a map. Use assetRef instead of inventing image URLs. Shapes, custom properties and paths retain their existing editor meanings.
Read map assemblies and world graph — Read owned project maps, reusable detached assemblies, destination spawn IDs, room links and broken-link diagnostics. No browser required.
Read saved map capabilities and settings — Read saved camera, reference brief, gameplay, assemblies, links, tests and per-engine support. Runtime availability is distinct from playability evidence.
Prepare and validate a map draft — FREE. Resolve owned artwork and validate a complete editable map without changing the live map. Preserve stable placement IDs on edits and pass expectedRevision from context. Returns immutable draft ID/hash and graph-only topology report. Inspect canonical overview and camera-sized region images before commit; no browser is required. Walkable surfaces/transitions are ground-view only, visualParts/reveal apply across game types. Graph reachability is not body-clearance or gameplay proof. Missing assets use existing quoted generation with user approval.
Prepare transactional map edits — FREE. Apply up to 200 stable-ID operations against expectedRevision. Returns a validated draft and semantic diff without changing the live map. Preview/test then use commit_map_draft. Settings use null to remove optional values. Deleting referenced objects must repair their dependencies in the same batch.
Render map draft preview — FREE. Render the actual map composition using canonical terrain/export rendering. Omit viewport for an overview, or request world-pixel viewport and scale for camera-sized inspection (2048px output limit). Inspect this image and fix problems before saving; image output is sufficient for visual review without browser automation. Split-part clips and walking-surface draw order use canonical semantics. This static preview does not prove playability; test mechanics in the target engine.
Restore an earlier map revision — FREE. Restore a saved revision as a new revision, preserving history. Pass the latest expectedRevision and reuse requestId on retry.
Run a map movement test — FREE bounded browser-free route/clearance or deterministic controller replay. Choose exactly one saved mapId or prepared draftId. Returns map hash, declared body/profile, trace, events, diagnostics and limitations. A passed movement test is not proof of combat, scripts or destination-engine gameplay. Save reusable scenarios in document.playtests; inspect canonical images separately.
Set asset movement, hurtbox and hitbox roles — FREE, synchronous metadata edit for an owned revision or collection tileIndex. Each independent role accepts a normalized simple body, disconnected compound, or none. Coordinates refer to the full sprite or padded collection cell; radius is a fraction of width. Omitted roles stay unchanged, null clears an override, none disables. Tile roles override asset roles independently. hitboxFrames is not supported on assets. Legacy collisionBody remains the movement/hurtbox fallback; hitbox requires explicit configuration. No paid job.
Set character movement, hurtbox and hitbox roles — FREE, synchronous metadata edit. Independent normalized full-frame movement, hurtbox and hitbox bodies. Character movement permits a simple body or none; hurtbox/hitbox also permit compound. Omitted keys stay unchanged; null clears that scoped override; none explicitly disables a role. Scope defaults to character base; select one poseId or animation. Only animation scope accepts hitboxFrames (inclusive zero-based delivered indices, maximum 64 windows). Omitted windows mean the explicitly configured hitbox is active for the whole animation; [] disables it for all frames. A hurtbox never inheri…
Build complete game project — FREE. Queue a durable complete Phaser, Godot or Unity project export. First review with get_project_export_review and pass its version and selected starting map/player. Returns a job ID immediately; poll get_project_export_status until ready. No generation credits are spent.
Changed the definition of "animate_asset", "fix_asset_seams" and "retry_job"
⟨142 unchanged words⟩ do not satisfy it by defaulting to 0→last. Confirmed background-removal provider failures already fall back automatically on the server, without a new user charge. There is no daily removal retry lockout; honor reported cooldowns and unknown-task safeguards if recovery still fails. For already-authorized generation, automatically execute a zero-credit recovery ⟨47 unchanged words⟩
⟨72 unchanged words⟩ The fix lands as a new current revision. Confirmed background-removal provider failures already fall back automatically on the server, without a new user charge. There is no daily removal retry lockout; honor reported cooldowns and unknown-task safeguards if recovery still fails.
Changed the definition of "retry_job"
⟨132 unchanged words⟩ partially-committed state and deliberately have no blanket retry. Eligible overhead Material jobs use stored_artifact recovery to repair the original without new generation or background removal. A confirmed failed repair is not offered again by that processor; refresh get_job and honor server eligibility, even below the general two-attempt limit. No automatic refund is implied. For already-authorized generation, automatically execute a zero-credit recovery ⟨47 unchanged words⟩
Added "resume_pose" and "resume_ui_pack_batch" (70 tools before, 72 now)
Resume saved pose background removal — FREE. Resume a failed pose when list_character_poses reports removalRecoveryAvailable. Reuses the saved image; never generates or charges for another image. Respect the retry-after time on cooldown errors, then poll list_character_poses.
Resume saved UI artwork background removal — FREE. Resume background removal when a failed/uncertain illustrated batch reports removalRecoveryAvailable. Reuses its saved artwork and original billing identity. Respect cooldown errors; never create a replacement paid batch.
Changed the definition of "animate_asset", "create_asset", "create_character" and 5 more
PAID (image-to-videoimage-to-video; Wan 3.0 costs 150 credits/second, so each default 2-second pair is 300 credits; total cost scales with duration × pair count). ⟨181 unchanged words⟩
⟨99 unchanged words⟩ invalidates it and requires a new dry run. Standard models cost 60 credits at 1K, 100 at 2K, or 150 at 4K per image/sheet, including automatic background removal and fallback; use the dry-run quote. Object (`assetType: "static"`, formerly Static ⟨57 unchanged words⟩ Object States (`staged`) is one object in
Added "approve_automatic_pose_fallback"; changed the definition of "import_asset_image" (69 tools before, 70 now)
ImportFree imports: import ONE still PNG or WebP as an Object orCharacterCharacter.usingUnlimitedoneforseparateeveryimportaccount,allowanceincluding(Studiofreeunlimited)users
Changed the definition of "create_asset", "create_character", "generate_character_animation" and 1 more
⟨657 unchanged words⟩ style — style comes from the project.","maxLength":20000,"minLength":1,"type":"string"},"referenceAssetUrls ⟨228 unchanged words⟩
⟨341 unchanged words⟩ the subject, not the art style.","maxLength":20000,"minLength":1,"type":"string"},"referenceAssetUrls ⟨51 unchanged words⟩
Changed the definition of "animate_asset", "fix_asset_seams", "retry_job" and 2 more
⟨128 unchanged words⟩ do not satisfy it by defaulting to 0→last. For already-authorized generation, automatically execute a zero-credit recovery quote and poll it; no renewed approval or refund. Never duplicate a running recovery. Limit automatic retries to two per failed job per session; stop on recurring failure or any paid quote. DEFAULTS TO A COST PREVIEW — see the ⟨7 unchanged words⟩
⟨67 unchanged words⟩ The fix lands as a new current revision. For already-authorized generation, automatically execute a zero-credit recovery quote and poll it; no renewed approval or refund. Never duplicate a running recovery. Limit automatic retries to two per failed job per session; stop on recurring failure or any paid quote.
Added "generate_project_intake"; changed the definition of "animate_asset", "create_asset", "create_character" and 12 more (68 tools before, 69 now)
⟨50 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHEN
Changed the definition of "create_character"
⟨84 unchanged words⟩ times more and the user should choose it.SET gridRows:2 ANDBYgridCols:2DEFAULTTOitREQUESTrequests FOUR DESIGN VARIATIONS FOR THE SAME PRICE,—matchingthesethefieldsdashboard.areSeta
Changed the definition of "approve_directional_poses" and "generate_character_animation"
⟨10 unchanged words⟩ ", wizardPhase:"waiting-directional-pose-approval", and directionalPoseReview. Presenttheeveryeightreturned previewUrls to the user and let them adjust ⟨14 unchanged words⟩ to use those candidates as shown before submittingalltheeightcomplete returned index and scale maps. When directions is present, review only those four poses, choose unique indices 0–3, keep scale 100 andscales.preserve unused map entries. Absent directions means eight poses. Closing or declining means do not call this ⟨25 unchanged words⟩
Changed the definition of "approve_directional_poses", "generate_character_animation", "generate_character_turn" and 1 more
⟨13 unchanged words⟩ directionalPoseReview. Present the eight previewUrls to the user,and let them adjust or review the proposed frameIndices andposeScalesposeScales. If any remain unreviewed,thengetsubmitexplicit confirmation to use those candidates as shown before submitting all eight indices and scales. Closing or declining ⟨30 unchanged words⟩
Added "get_integration_status"; changed the definition of "generate_character_animation", "get_credits", "get_export_command" and 1 more (67 tools before, 68 now)
⟨473 unchanged words⟩ Show that structured preview instead of inventing precision.For free treatment accounts only, the server may allow ONEAPI-keyactivationcallsrequestcanbeyonduse the600-credit rolling limit when this call requests exactly one fresh playable animation (no reuse, edit, or mirror), theaccount's fullpreflight total is at most 1000 credits, fewer than two distinct net-paid generation jobs occurredwalletinbalance; the
Added "create_ui_composition", "create_ui_pack", "generate_ui_pack" and 16 more; changed the definition of "create_project" and "plan_sync" (48 tools before, 67 now)
⟨96 unchanged words⟩ in this project.","type":"string"},"styleGuide":{"additionalProperties":false,"description":"Reviewed palette, rendering and typography. Saved as active revision 1 for future generations; font IDs must belong to the available catalog. Omit to create without a guide.","properties":{"bodyFont":{"additionalProperties":false,"properties":{"color":{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},"family":{"maxLength":100,"minLength":1,"type":"string"},"fontId":{"maxLength":100,"minLength":1,"type":"string"},"lineHeight":{"maximum":3,"minimum":1,"type":"number"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"size":{"maximum":160,"minimum":8,"type":"number"},"version":{"maxLength":100,"minLength":1,"type":"string"},"weight":{"maximum":900,"minimum":100,"type":"integer"}},"required":["family","fontId","weight","size","lineHeight","color"],"type":"object"},"camera":{"enum":["platformer","topdown","topdown_overhead","isometric","point_and_click"],"type":"string"},"direction":{"maxLength":2000,"type":"string"},"headingFont":{"additionalProperties":false,"properties":{"color":{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},"family":{"maxLength":100,"minLength":1,"type":"string"},"fontId":{"maxLength":100,"minLength":1,"type":"string"},"lineHeight":{"maximum":3,"minimum":1,"type":"number"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"size":{"maximum":160,"minimum":8,"type":"number"},"version":{"maxLength":100,"minLength":1,"type":"string"},"weight":{"maximum":900,"minimum":100,"type":"integer"}},"required":["family","fontId","weight","size","lineHeight","color"],"type":"object"},"lockedColors":{"items":{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},"maxItems":24,"type":"array"},"palette":{"additionalProperties":{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},"propertyNames":{"pattern":"^[a-zA-Z][a-zA-Z0-9_-]{0,39}$"},"type":"object"},"references":{"items":{"additionalProperties":false,"properties":{"key":{"maxLength":1500,"minLength":1,"type":"string"},"target":{"enum":["overall_style","ui","world_indicators","characters","backgrounds"],"type":"string"}},"required":["key","target"],"type":"object"},"maxItems":12,"type":"array"},"rendering":{"maxLength":500,"type":"string"},"shapeLanguage":{"maxLength":500,"type":"string"},"version":{"const":1,"type":"number"}},"required":["version","direction","palette","shapeLanguage","rendering","headingFont","bodyFont","camera","references","lockedColors"],"type":"object"}
Certificate recorded, valid to 2026-11-26
Authorization not required
First tool surface recorded: 48 tools (server version 1.0.0)
Showing the latest 17 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨177 unchanged words⟩ general two-attempt limit. No automatic refund is implied. Confirmed background-removal provider failures already fall back automatically on the server, without a new user charge. There is no daily removal retry lockout; honor reported cooldowns and unknown-task safeguards if recovery still fails. For already-authorized generation, automatically execute a zero-credit recovery ⟨47 unchanged words⟩
PAID (~150standardcredits1K: 60 credits; 2K: 100; 4K: 150; premium models may differ). Generate a NEW character from a text ⟨300 unchanged words⟩
⟨7 unchanged words⟩ operation because they use world-space sampling. PAID (~10060 credits,oneperimage-to-imagestandard-modelcalledit attempt; use the dry-run quote). Make an old texture tile seamless. Legacy ⟨103 unchanged words⟩
⟨8 unchanged words⟩ OF ANIMATIONS (each is its own image-to-videocallcall; Wan 3.0 costs 150 credits/second,~400socreditsitsatdefaultdefaults2-second clip is 300 credits). All frames are text-free by default: ⟨788 unchanged words⟩
PAID (~150standardcredits1K: 60 credits; 2K: 100; 4K: 150; premium models may differ). Generate a new pose for a character ⟨31 unchanged words⟩
PAID (~400Wan 3.0 costs 150 credits/second: 300 credits atdefaultsthe default 2-second settings). Re-run video generation for a SINGLE motion ⟨41 unchanged words⟩
⟨41 unchanged words⟩ Use it when you are about to spend~400300 credits on a default video and are unsure what to write: ⟨17 unchanged words⟩
Approve an automatic pose decision — Successful automatic poses now continue without review, including imports. Four-direction setup stays automatic and eight-direction keeps its existing selection. Imported generation preserves source rendering rather than project style. Use this tool only when get_job returns a pending automaticPoseFallback. If poseReview is present, this is a historical imported-pose checkpoint from an earlier flow: show originalUrl and poseUrl side by side and ask the user to check style, complete head/body and unwanted ground/scenery. Submit choice="generated" only after they accept that exact pose, or choi…
⟨399 unchanged words⟩ item switches sides under a mirror. The serverchoosesuses therelease-new-animation-pipelinestandardrolloutpose-awareforanimationthispipelineAPI-keyforowner;new requests; there is no flag argument to set. When ⟨181 unchanged words⟩ verbatim into the confirmed call so the quotedrolloutpipeline decision cannot change while the user is deciding. ⟨193 unchanged words⟩
⟨162 unchanged words⟩ unless templateId is given (terrain).","maxLength":20000,"type":"string"},"sourceItemIndex":{"description" ⟨89 unchanged words⟩
⟨132 unchanged words⟩ partially-committed state and deliberately have no blanket retry. For already-authorized generation, automatically execute a zero-credit recovery quote and poll it; no renewed approval or refund. Never duplicate a running recovery. Limit automatic retries to two per failed job per session; stop on recurring failure or any paid quote. DEFAULTS TO A COST PREVIEW — see the ⟨7 unchanged words⟩
⟨175 unchanged words⟩ },"tileIndex":{"description":"Target one collection tile (tileset/staged onlytileset/staged/terrain). Coordinates are normalized to its padded presentation cell, not the cropped item image. Omit for the asset-level default.","minimum": ⟨9 unchanged words⟩
⟨44 unchanged words⟩ aspect ratio within both area and side limits. Admin accounts receive Studio map capacity even without a subscription. Read effective limits and the saved map before recommending gameplay-sized dimensions; starter dimensions are not an account limit. Free is fixed at 720 × 480; saved ⟨41 unchanged words⟩
⟨402 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨437 unchanged words⟩
⟨64 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨281 unchanged words⟩
⟨41 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨58 unchanged words⟩
⟨480 unchanged words⟩ there is no inventory argument to send. For platformer walk/run, the server-created cached mid-walk anchor pose is FREE; explicit pose generation remains paid. For eight-direction and legacy video-based topdown/isometric clips with targetFacings, ⟨302 unchanged words⟩
⟨321 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨239 unchanged words⟩
⟨56 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨68 unchanged words⟩
⟨29 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨104 unchanged words⟩
PAID but very cheap (oneGeminiconfigured text-model call) and SYNCHRONOUS — the result comes ⟨70 unchanged words⟩
⟨37 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨154 unchanged words⟩
⟨6 unchanged words⟩ ,"description":"Show the user estimatedCredits andget an explicit yesaskforwhetherthattoscopeproceed, unless already authorized in this session. Prefer the client native question UI with Approve / Decline / Discuss choices; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or magic word. Then set false and supply the returned quote. ⟨160 unchanged words⟩
One project with its description, registered mount slots, andassetSuggestions — premade AI prompt ideas per entity type (character + the 6 asset types), tailored to the project's vision. Usesavedthemstyleasguide.ready-madeThepromptslegacywhenassetSuggestionscreatingfieldcharacters/assets.isMaycurrentlybealways nullrightbecauseafterautomaticcreatesuggestions(generatedareasynchronouslydisabled;—dore-fetchnottopollread).for it.
⟨31 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨99 unchanged words⟩
⟨23 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨64 unchanged words⟩
⟨31 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨172 unchanged words⟩
⟨18 unchanged words⟩ ,"description":"Show the user estimatedCredits andget an explicit yesaskforwhetherthattoscopeproceed, unless already authorized in this session. Prefer the client native question UI with Approve / Decline / Discuss choices; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or magic word. Then set false and supply the returned quote. ⟨85 unchanged words⟩
PAID but very cheap (oneGeminiconfigured text-model call) and SYNCHRONOUS — returns { hint, ⟨63 unchanged words⟩
⟨33 unchanged words⟩ }) and executes nothing. Show the user estimatedCredits,andthengetaskanaexplicitnormalyesconfirmationforquestion.thatPreferamount,theTHENclient's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.", ⟨106 unchanged words⟩
Turn a game idea into a project foundation — PAID but very cheap and SYNCHRONOUS. Use this for a broad game vision, story, or mood before create_project. Returns a proposed project name, game type, art style, world description, creative guidance, and a validated styleGuide object ready to pass unchanged to create_project. It stores nothing and does not create assets. Afterward, inspect the game repository and propose an MVP art plan before any image or animation spend. Skip this tool when the user already supplied a complete project/style guide or asked for one specific asset. DEFAULTS TO A COST PREVIEW — see the dryRun argument.
⟨127 unchanged words⟩ ,"point_and_click"],"type":"string"},"generateFourVariations":{"description":"Defaults to true, matching the dashboard: one image call produces four design variations for the cost of one. Set false only when the user explicitly requests a single character.","type":"boolean"},"gridCols":{"const":2,"description":"Legacytriggerequivalent of the default four-variation mode: set to 2 together with gridRows:2 to request 4 variations;2; extraction follows complete silhouettes.","type":"number"},"gridRows":{"const":2,"description":"Legacytriggerequivalent of the default four-variation mode: set to 2 together with gridCols:2 to request 4 variations for the cost of one image.2. This is not cut geometry.","type": ⟨157 unchanged words⟩
⟨181 unchanged words⟩ action names and no 360; four_direction uses S/N/E/Wrows;rows with FREE four-pose image setup; eight_direction also usesdiagonals.diagonals and keeps the regular 360 video setup (+200 credits when newly needed). Overhead setup is free; animation videos are priced separately. Setup and Luna run only after animation generation is confirmed; the server creates the poses and automatically assigns matching facings without pose approval for four_direction, then continues animation generation. Poll all operation jobs while queued or running; an approved directionalPoseReview is a completion record, not a user checkpoint. The chosen mode is saved on the character. ⟨203 unchanged words⟩ there is no inventory argument to send. For eight-direction and legacy video-based topdown/isometric clips with targetFacings, automatic planning uses ⟨299 unchanged words⟩
⟨537 unchanged words⟩ se, s, sw, w, nw). Omit for overhead; four_direction accepts only n/e/s/w. Use this for custom actions and any standard ⟨25 unchanged words⟩
⟨129 unchanged words⟩ want before spending: 4 animations cost 4x. For a topdown character, resolve the animation direction mode BEFORE choosing those animation names. Read animationDirection from get_character and preselect its Luna-classified mode; let the user override it. Pass animationDirectionMode on both the dry run and confirmed request: overhead uses one engine-rotated sprite with base action names and no 360; four_direction uses S/N/E/W rows; eight_direction also uses diagonals. The chosen mode is saved on the character. A missing classification is not permission to guess silently. Every animation defaults to 2 seconds, including walks ⟨260 unchanged words⟩ and call approve_directional_poses only after the user acceptsalltheeightfullcandidates.set, including explicit confirmation to use any candidates they did not review individually. The dry-run response includes animationPipelineAssignmentToken; copy it verbatim ⟨209 unchanged words⟩
⟨65 unchanged words⟩ composed prompt.","type":"object"},"animationDirectionMode":{"description":"Choose this BEFORE selecting animations for a topdown character and pass it on dry-run plus confirmation. Preselect get_character.animationDirection.mode when present (Luna suggestion; user may override). overhead uses one rotatable true-overhead sprite, base action names, and no 360; four_direction uses S/N/E/W animations; eight_direction also uses NE/SE/SW/NW. The confirmed choice is saved on the character.","enum":["overhead","four_direction","eight_direction"],"type":"string"},"animationPipelineAssignmentToken":{"description":"Opaque server proof returned ⟨439 unchanged words⟩
PAID (~400200 credits — ONE 2-second rotation video), except ⟨288 unchanged words⟩
The full PhaserCharacter JSON: animations, frameSize, gameType, animationDirection, per-group atlas + spritesheet URLs, poses and mount points. For topdown characters, animationDirection is Luna's saved mode suggestion or the user's last override; preselect it before asking for overhead, four-direction, or eight-direction animation generation. The top-level animationQualityGate is the delivery verdict per ⟨119 unchanged words⟩
⟨66 unchanged words⟩ for all three" is the useful answer.TwoAPI-keydifferentcallswallscanexistuse the account's full wallet balance; the dashboard-only 600-credit experiment andtheyits activation exception do not apply. freeCreditLimit therefore reports applies:false with exemptionReason:"api_key". Two remaining walls need OPPOSITE advice: running out of BALANCE is ⟨13 unchanged words⟩ , never quote prices, they change), whilea free account may instead have wallet balance but no rolling allowance — get_credits reports its freeCreditLimit. If needed <= limit, wait for the non-null resetsAt; if needed > limit, resetsAt is null because waiting can never make that unchanged request fit. Report that and never reduce or split work without fresh user approval. freeCreditLimit.firstAnimationAllowance reports whether the one activation exception is still available: exactly one fresh playable character animation plus required setup, at most 1000 credits, before two recent net-paid generation jobs and before any successful playable animation. Explicit turn/turn_* rotations, reuse, edit, mirror, and multi-animation requests do not qualify; a failed fully-refunded claim is reusable only if no playable animation was produced. Never split or reshape work to manufacture eligibility. An eligible reset, or completing any plan/pack purchase, clears that wall.hitting the key's DAILY SPEND CAP is not ⟨106 unchanged words⟩
⟨54 unchanged words⟩ the selected sheet/atlas pairs keep canonical size-agnostic filenames. Sparrow XML is character-only: preserve the bundle's Sparrow prefixes and multisparrow assetPath routing. This tool exports whole characters, not a dashboard single-animation selection. Requires SPRITESHIP_API_KEY to be set in that shell.
⟨3 unchanged words⟩ "engine":{"description":"Target engine. \"fnf\" is characters only and emits Sparrow PNG/XML plus character JSON. \"tiled\" is maps only; sprites have no Tiled ⟨15 unchanged words⟩ phaser","godot","unity","gamemaker","fnf","unreal","tiled"],"type":"string"} ⟨21 unchanged words⟩ to one downscale variant. Godot, Unity, GameMaker, Unreal andUnrealSparrow XML use full-resolution sourceframes.frames; omit size for them.","enum":["512","256"," ⟨21 unchanged words⟩
⟨57 unchanged words⟩ used by this lock entry. Defaults to phaser; Sparrow XML supports characters; tiled supports maps and UI pack artwork.","enum":["phaser","godot","unity","gamemaker","fnf","unreal","tiled"],"type":" ⟨572 unchanged words⟩
Check SpriteShip skill updates — Free advisory version check. Call once when starting SpriteShip work in a session, passing the version actually read from the installed skill; omit it when unknown. Report an available update with its release summary and manual update guide once, then continue compatible work. Unknown is not outdated; never downgrade a newer local copy. Does not install files, grant permissions, spend credits or require an update.
⟨10 unchanged words⟩ one call. Returns unchanged/changed/unavailable per character, asset, map, ormap;UI pack; exact animation frame-count/FPS/collision, revision, runtime-intent, map-shape andmap-shapeUI component summaries when the previous lock entry includes the ⟨52 unchanged words⟩
⟨4 unchanged words⟩ items":{"additionalProperties":false,"properties":{"artworkOnly":{"description":"UI pack only: preserve the originally authorized recovery mode; never silently enable it.","type":"boolean"},"componentIds":{"description":"UI pack only: preserve the original selected component IDs; omit for the whole pack.","items":{"format":"uuid","type":"string"},"maxItems":256,"minItems":1,"type":"array"},"engine":{"description":"Export engine already used by this lock entry. Defaults to phaser; tiledissupportsmap-only.maps and UI pack artwork.","enum":["phaser","godot"," ⟨30 unchanged words⟩ "enum":["character","asset","map","ui-pack"],"type":"string"},"snapshot":{ ⟨411 unchanged words⟩ gridSize","hasMapData"],"type":"object"},{"additionalProperties":false,"properties":{"componentCount":{"minimum":0,"type":"integer"},"components":{"additionalProperties":{"additionalProperties":false,"properties":{"configurationHash":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}]},"name":{"maxLength":300,"type":"string"},"revisionId":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}]},"status":{"maxLength":200,"type":"string"}},"required":["name","revisionId","configurationHash","status"],"type":"object"},"propertyNames":{"maxLength":200},"type":"object"},"kind":{"const":"ui-pack","type":"string"},"name":{"maxLength":300,"type":"string"}},"required":["kind","name","componentCount","components"],"type":"object"}],"description":"Copy the prior snapshot from the ⟨16 unchanged words⟩ null"}],"description":"contentVersion for acharacter;character or the exact UI pack export; updatedAt for an asset or map."}}, ⟨15 unchanged words⟩
Assemble UI components — Create a free static composition of existing icon/frame revisions; indicators and functional widgets remain independent. No new image generation.
Create UI Pack — Create an empty project-owned UI Pack with its guide snapshot. Free; generation is a separate quoted action.
Generate UI Pack — Get a cost preview for an exact component list and batch breakdown, then generate using the returned signed quote. Every paid raster/SVG batch is 100 credits; one pack action can contain several batches. Fonts are free. Defaults to dry-run; never alter the quote.
Read project style guide — Read the current guide; old projects without an adopted guide receive an initial suggestion. Existing assets retain their saved guide versions.
Read a UI Pack — Read components, immutable revisions, capabilities, fonts and batch progress. Artwork URLs expire; native engine capability gaps are not successful tests.
Read UI Pack batch — Read one paid batch and retained source URL; provider completion does not prove usable component delivery.
Inspect retained UI sheet for recovery — Read original PNG dimensions, expiring image URL, source hash, and exact delivered/missing slots for an illustrated batch needing review. Inspect artwork before choosing crops.
Download UI Pack command — Return an authenticated curl command for a whole/selected UI Pack ZIP or component source. Run locally; never put multi-MB ZIP data into model context. Phaser has browser behavior coverage; Godot/Unity native acceptance is pending; GameMaker/Unreal deliver artwork, Tiled transports metadata. Recovery artworkOnly must be explicit.
List UI fonts — Read the retained licensed Google Fonts catalog. Existing font selection, preview and export cost zero customer credits.
List UI Packs — List owned UI Packs, optionally within a project.
Recover missing UI components for free — Crop missing slots from a retained original PNG after visual review. No provider call or credit charge. Supply original-pixel rectangles and the current source hash; already delivered siblings remain untouched. Inspect validation after recovery.
Rename UI component — Rename an owned component for free. Supply its current name as expectedName to reject stale edits. Preserves IDs, artwork and historical revisions; re-sync updates its exported display name.
Replace edited UI PNG — Save a locally edited PNG, revalidate behavior metadata and preserve the prior revision. Free. Maximum PNG 4 MB and 2048 pixels per axis; no SVG artwork editing.
Revise UI Pack PNG — Get a cost preview for a 100-credit selected PNG revision, then pass its signed quote to execute. SVG artwork editing is Phase 2; it is not enabled by this tool. Siblings and prior revisions remain available.
Save project style guide — Adopt a new immutable guide revision with optimistic concurrency. Colors, typography and camera apply to future generation, never silently rewrite prior assets.
Save UI component defaults — Save supported fill, text and layout values for an exact current revision. Free and deterministic; cannot manufacture unsupported capabilities or edit arbitrary SVG geometry.
Save UI Pack style — Save a pack-specific style for future quotes using the current pack updatedAt. Free; preserves project defaults and existing component revisions. A stale timestamp is rejected.
Suggest style and fonts — Suggest palette, treatment and existing font IDs from the available catalog. Free to customers; suggestions require explicit save to adopt.
Validate UI component layout — Revalidate an exact current revision and apply only proven deterministic runtime layout repairs, including bar fill openings, panel text/slice regions, and explicitly named SVG button-state separation. Free; preserves original sources. This is not arbitrary SVG artwork editing and cannot promise a successful capability result.