fixedseed-assets
Skill8 starsChanged 36 days agoMITView on GitHub
Generate game assets with FixedSeed (fixedseed.com) through the bundled FixedSeed MCP server or the `fsgc fixedseed` CLI. Covers sprites and icons with transparent backgrounds, consistent variants and animation frames, pixel art, seamless textures, PBR material maps, depth/normal/albedo maps, image-to-3D and text-to-3D models, upscaling, sound effects, music, voice lines with cloning, and trailer or cutscene video. Use whenever a mod needs new art, audio or 3D models, or the user mentions FixedSeed, generating sprites, textures, models, SFX or music for a game.
- Reads credentials
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- asset-pipelineSkill
- game-automationSkill
- game-reconSkill
- mashup-modsSkill
- mod-any-gameSkill
- publish-modSkill
- reverse-engineeringSkill
- share-field-notesSkill
- showcase-videoSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 129
Player / team colour: ask for "bright saturated blue accents" on the parts that should take the player's colour, then fsgc sprite team-mask …
- Distinctive: line 153
Every audio result is a WAV (ElevenLabs at 44.1/48 kHz, Song at 48 kHz stereo).
- Very specific: line 159
Keep SFX short (0.2-2 s) and normalize loudness (-af loudnorm=I=-16) so they sit with the game's own sounds.
- Very specific: line 163
Price the expensive stuff: every model lists starting_charge_cents and maximum_charge_cents (fsgc fixedseed price <model> / MCP get_model).
- Very specific: line 167
Iterate cheap: use low quality or resolution while exploring (--quality low, --res 512 / 1K), then re-run the winners at full quality with …
- Very specific: line 169
Reproducibility: keep fixedseed_manifest.jsonl with the assets.
- Distinctive: line 172
Check the model's provider terms for commercial use (https://fixedseed.com/docs).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Game assets with FixedSeed
FixedSeed runs image, video, 3D, audio and language models behind one API key and one prepaid wallet. Use it whenever the mod needs something that doesn't exist yet: a weapon sprite, a boss, a unit rendered from 16 angles, a tileable floor, a laser sound, boss music, a voiced line.
Setup (check once per session)
- Key.
FIXEDSEED_KEYmust be set (create one at https://fixedseed.com/developers/keys and top up the API wallet at https://fixedseed.com/developers/billing).fsgc fixedseedalso reads it from a.envfile (FIXEDSEED_KEY=...) in the working folder. Never write the key into mod files;fsgc publish checkflags leaked keys.fsgc fixedseed balanceshows the wallet. - A key for the agent. Suggest the user gives the agent its own key with a spend limit (monthly or lifetime, set when creating the key at https://fixedseed.com/developers/keys). The API stops that key at its limit whatever the agent does, so a runaway loop can't drain the wallet.
MCP. The FixedSeed MCP server ships with this repo:
fsgc fixedseed mcp(stdio, stdlib only). It readsFIXEDSEED_KEY(and optionallyFIXEDSEED_API, defaulthttps://run.fixedseed.com) from the environment. It's pre-configured for each agent:- Claude Code:
.mcp.json - Codex:
.codex/config.toml - Cursor:
.cursor/mcp.json - VS Code/Copilot:
.vscode/mcp.json - Gemini CLI:
gemini-extension.json
To add it by hand:
- Claude Code:
claude mcp add fixedseed -e FIXEDSEED_KEY=$FIXEDSEED_KEY -- /path/to/repo/bin/fsgc fixedseed mcp - Codex (
~/.codex/config.toml):[mcp_servers.fixedseed]withcommand = "/path/to/repo/bin/fsgc",args = ["fixedseed", "mcp"]andenv_vars = ["FIXEDSEED_KEY"] - anything else: a stdio server whose command is
bin/fsgc fixedseed mcp.
MCP tools:
search_models,get_model(input schema, example, price),upload_file,estimate(what a plan costs),generate(queue, wait, download intoout_dir, manifest line, previews),generate_batch(many at once under amax_centscap),get_request(finish a long job),get_balance. The same server has apassthroughtool and prompt for running two games at once (see the mashup-mods skill).- Claude Code:
- Plain HTTP works too:
https://run.fixedseed.com/v1/llms.txtdocuments every endpoint and model with current prices, and/v1/openapi.yamlis the contract.
Which interface
- Discovery (which model for X, its inputs, its price): MCP
search_models/get_model, orfsgc fixedseed search "<words>" [--kind image|video|audio|model],fsgc fixedseed schema <model>,fsgc fixedseed price <model>. The catalog is public and live, so these need no key. The defaults below were current in October 2026; check before a big batch. - Anything that must land on disk (every game asset):
fsgc fixedseed <recipe>or MCPgenerate. Both upload local inputs through/v1/files, queue, poll, download every output file, and append the model, inputs and request id to<out>/fixedseed_manifest.jsonl, so every asset can be traced and regenerated. - Long jobs (video, 3D, long music): MCP
generatewithwait: false(or let it time out) returns arequest_id; collect it withget_requestorfsgc fixedseed result <request_id>. - Retries never pay twice: MCP
generateandgenerate_batch(andfsgc fixedseed batch) record every request in<out>/.fixedseed_ledger.jsonl. Asking again for the same model, input and name within an hour (after a timeout, a crash, a dropped connection) collects the earlier request. For a new variation, change the name or passfresh: true(--fresh). A result never replaces an earlier file. - Many assets at once (every item of a mod, a set of sounds): MCP
generate_batchwithmax_cents, orfsgc fixedseed batch plan.json --max-cents 300with a plan of{"model", "input", "name"}jobs. New requests over the cap are refused before anything is spent; whatever is still running comes back as pending, and running the same batch again collects it. - Limits, and what a refusal costs. An account runs only its plan's number of requests at once, counting
every key and the fixedseed.com site. A key can also have a spending limit, and the wallet must cover each
request's hold (its maximum charge, settled to the real cost when it finishes). The API checks all three
before it holds anything, so a refused request is never charged, and the error names the limit with its
numbers: plan, limit and active; or the key's limit, what it has committed and when it resets; or the
balance against the model's maximum. Plan around them:
- Send many assets as one batch, not as parallel
generatecalls. The batch starts the rest as slots free up. - A single
generate(or CLI recipe) waits up to about a minute for a slot, then reports the limit. - Fit the plan to what the key has left.
- Send many assets as one batch, not as parallel
- Look at what came back: MCP results carry small previews (sprites enlarged with hard edges, an
archive's
preview.png, video keyframes, audio waveforms). Check them before building on a result.
Recipes (fsgc fixedseed <recipe> --help for options; fsgc fs is the same; --model overrides the model; --set k=v passes extra inputs)
| Asset | Command | Default model |
| Game item as true pixel art: exact grid, small palette, outline; Terraria's 2x style or plain | fsgc fixedseed item "<the item>" [--style pixel] [--size 24] [--orientation diagonal] | fixedseed/item-sprite (transparent PNG) |
| Voxel block: seamless 16/32 px face textures + Minecraft model, blockstate and item files | fsgc fixedseed block "<material>" --namespace <modid> [--faces column|top_bottom] [--block id] | fixedseed/block-texture (ZIP, unpacked with its assets/ tree and preview.png) |
| Sprite / icon, transparent background | fsgc fixedseed sprite "<subject, view, style>" --name x | openai/gpt-image-2.5-sunburst (background=transparent) |
| Concept art, key art, backgrounds | fsgc fixedseed image "<prompt>" --aspect 16:9 | google/nano-banana-2 |
| Consistent variants, extra frames, recolors, same character new pose | fsgc fixedseed edit "<change>" --ref base.png | google/nano-banana-2 (image_urls) |
| Background removal (soft matting, no prompt) | fsgc fixedseed rmbg in.png [--mode matting] | birefnet/v2 |
| Clean pixel art from any image | fsgc sprite pixelate in.png out.png --size 32x32 --colors 24 (local, grid-exact) | none needed |
| Upscale | fsgc fixedseed upscale in.png --factor 4x | topaz/image-upscale |
| Seamless tiling texture | fsgc fixedseed texture "mossy cobblestone" [--tiling horizontal] | tongyi/z-image-turbo-tiling |
| PBR material (basecolor, normal, roughness, metalness, height) | fsgc fixedseed pbr "rusted sheet metal" [--upscale 2] | patina/material (ZIP, unpacked) |
| Depth / normal / albedo map of any image | fsgc fixedseed maps in.png --map normals | fixedseed/image-maps |
| Image → textured 3D model (GLB) | fsgc fixedseed model3d concept.png [--engine trellis|hunyuan|tripo|meshy] | microsoft/trellis-2 |
| Text → 3D model (GLB) | fsgc fixedseed model3d --prompt "low-poly treasure chest" | tencent/hunyuan3d-3.1 |
| Game-ready low-poly remesh | fsgc fixedseed remesh unit.glb --faces 8000 [--engine meshy] | tripo/remesh |
| New texture on an existing mesh | fsgc fixedseed retexture unit.glb reference.png | microsoft/trellis-2-retexture |
| Auto-rig a humanoid (+ walk/run, optional preset) | fsgc fixedseed rig character.glb [--animate 92] | meshy/rigging (ZIP: GLB + FBX + animations) |
| Text → humanoid animation clip | fsgc fixedseed motion "swings a greatsword overhead" --seconds 4 | tencent/hunyuan-motion (FBX) |
| SVG icons, emblems, UI art | fsgc fixedseed vector "shield emblem icon" --color "#e4b355" | recraft/v4.1-text-to-vector |
| Sound effect | fsgc fixedseed sfx "plasma rifle shot, punchy" --seconds 1.2 [--loop] | elevenlabs/sound-effects-v2 |
| Music | fsgc fixedseed music "tense boss battle, chiptune, 150 bpm" --seconds 90 [--vocals] | elevenlabs/music-v2.5 (--engine song: fixedseed/song, with lyrics) |
| Voice line, stock voice | fsgc fixedseed voice "You dare challenge me?" --voice George | elevenlabs/eleven-v3 |
| Voice line, cloned | fsgc fixedseed voice "..." --voice-ref actor.wav --direction "gruff dwarf" | bytedance/seed-audio-1.0 |
| Trailer / cutscene clip | fsgc fixedseed video still.png "camera orbits the boss" | bytedance/seedance-2.5-i2v |
| Video background removal (alpha) | fsgc fixedseed video-rmbg clip.mp4 [--format mov] | pixelcut/video-background-removal (WebM/ProRes 4444) |
| Anything else | fsgc fixedseed run <model> key=value key:=json image_url=@local.png | any |
Results with several files (rigs, PBR sets, motion clips, SVG, alpha video) arrive as one ZIP that fsgc fixedseed
and the MCP generate tool unpack into <out>/<name>/, with a manifest.json listing the files.
Other useful models (fsgc fixedseed schema <model> for inputs):
- Images:
openai/gpt-image-2.5-flare,google/nano-banana-pro,black-forest-labs/flux-2-pro,qwen/image-edit-max(precise edits),ideogram/v4(lettering, logos),bytedance/seedream-5-pro. - Upscale:
topaz/bloom-2-image(creative upscale for low-res art),black-forest-labs/flux-image-upscaler. - Video:
bytedance/seedance-2.5-t2v/-r2v(reference-driven shots),minimax/h3-max-i2v,google/veo-3.1,kling/video-v3-pro-motion-control(copy motion from a reference clip),topaz/video-upscale. - Characters:
fixedseed/character-turnaround(6-panel turnaround sheet video from 1-3 refs),fixedseed/character-expressions(expression sheet). - Audio:
deepgram/nova-3(speech-to-text, e.g. subtitles for a showcase). - Text: chat models through
POST /v1/chat/completions(OpenAI format) for item names, dialogue and lore.
Prompting game art that fits the game
- Look at the game's own assets first: pixel size, outline, palette, perspective, facing, how busy they are. Put that into a reusable style suffix. For Terraria: "16-bit pixel art game sprite in the style of Terraria, crisp dark outline, limited palette, centered, plain flat white background, no shadow, no text".
- Describe the view and orientation explicitly: "perfectly horizontal side view with the muzzle pointing right" for held weapons, "seen from the side facing left" for enemies, "pointing straight down" for a falling bomb. Engines have conventions (Terraria items point right, NPCs face left) and fixing orientation afterwards costs quality.
- Backgrounds: transparent (
fsgc fixedseed sprite, GPT Image 2.5 withbackground=transparent) or a flat colour thatfsgc sprite cutoutcan flood-fill. Avoid gradients, scenery and ground shadows. If a soft shadow sneaks in, use--grey/--keep-topin cutout. - Player / team colour: ask for "bright saturated blue accents" on the parts that should take the
player's colour, then
fsgc sprite team-mask --hue blueturns them into a mask. - Consistency across a set: generate one hero image, then derive the rest with
fsgc fixedseed editand the hero as--ref("same robot, now firing, muzzle flash"; refer to refs as @Image1, @Image2). Don't ask one prompt for a whole sprite sheet; grids come out uneven. - Many angles or frames of the same object: go 3D. Take the concept, run
fsgc fixedseed model3d, thenfsgc render3dfrom the game's camera (asset-pipeline skill). That's how the AoE2 robotaxi got 16 consistent headings × 5 animations. Generated meshes are dense:fsgc fixedseed remesh --faces 8000before shipping real-time 3D. For characters,fixedseed/character-turnaroundgives matched front/side/back views to model or draw from. - Pixel art: generate at 1K with a pixel-art prompt, then snap it to the real grid and palette locally
with
fsgc sprite pixelate/fsgc sprite palette --from <game sprite>; it uses the game's exact frame size. - No text or logos in art unless wanted: models love to add them.
Rigging and animation
- Humanoids:
fsgc fixedseed model3d char.png --engine meshy --set pose=a-posegives a clean A-pose, thenfsgc fixedseed rig char.glbadds a skeleton plus walking and running clips (GLB and FBX);--animate <id>adds a preset from Meshy's animation library (0 = idle). - Custom moves:
fsgc fixedseed motion "<what the character does>"returns an FBX clip on a standard humanoid skeleton; retarget it in Blender or the engine (Unity Humanoid, Unreal IK Retargeter). - Sprites:
fsgc render3d --animsanimates rigid parts procedurally, andfsgc sprite framesmakes quick idle loops. For video-driven motion,kling/video-v3-pro-motion-controltransfers motion from a reference clip.
Audio for engines
- Every audio result is a WAV (ElevenLabs at 44.1/48 kHz, Song at 48 kHz stereo). Convert to what the engine
wants:
ffmpeg -i x.wav -ar 44100 x_44k.wav(XNA/tModLoader, most engines);ffmpeg -i x.wav -c:a libvorbis -q:a 5 x.ogg(Minecraft, Godot, Unity);- trim silence first:
-af silenceremove=start_periods=1:start_threshold=-50dB.
- Loops:
fsgc fixedseed sfx ... --loop, or ask Song for a loopable track and crossfade the ends. - Keep SFX short (0.2-2 s) and normalize loudness (
-af loudnorm=I=-16) so they sit with the game's own sounds.
Cost and etiquette
- Price the expensive stuff: every model lists
starting_charge_centsandmaximum_charge_cents(fsgc fixedseed price <model>/ MCPget_model). Before 3D, video, long music or any batch, runfsgc fixedseed estimate model[:count] ...(MCPestimate) and tell the user the range; ask before spending more than about $5. Failed requests are not charged. - Iterate cheap: use low quality or resolution while exploring (
--quality low,--res 512/1K), then re-run the winners at full quality with the same prompt (and seed where the model takes one). - Reproducibility: keep
fixedseed_manifest.jsonlwith the assets; it records prompts, inputs and request ids. - Credits: in the mod's README, credit that assets were generated with FixedSeed and name the models. Check the model's provider terms for commercial use (https://fixedseed.com/docs).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

