Free to try · clean downloads $4.99 once · no monthly fee · See plans

Sprite sheets that map cleanly onto Godot frames

Even cells for Hframes and Vframes, or one PNG per frame for SpriteFrames.

Cleaning and previewing are free. Unmarked PNGs need Basic ($4.99 once); per-frame ZIP export is Pro.

Godot splits a sheet with two numbers: Hframes and Vframes. Both assume every cell is exactly the same size, and the moment your source sheet has uneven padding that assumption falls apart — frames get clipped, or drift within their cell, or the last cell is half empty. SpriteFix rebuilds the sheet into a true even strip first, so Hframes equals your frame count, Vframes is 1, and every cell holds one pose standing on the same line.

Sound familiar?

  • Hframes and Vframes clipping frames because the source cells are not identical.
  • Building SpriteFrames by hand, one region at a time, for every animation.
  • A pose that drifts inside its cell and makes the walk cycle wobble.
  • Frame exports from an art tool that Godot will not read as a single sheet.
Drag — left messy, right clean
After: Sprite sheets that map cleanly onto Godot frames — messy attack sheet cleaned into an even, bottom-aligned strip
Before: Sprite sheets that map cleanly onto Godot frames — messy attack sheet cleaned into an even, bottom-aligned strip
Before
After

How to do it in SpriteFix

  1. Clean or combine first

    Drop one messy sheet, or the folder of numbered pose files, and let SpriteFix build a single even strip.

  2. Read the frame count

    The Ready panel shows how many frames the strip holds. That number is your Hframes.

  3. Export the strip

    Download the PNG at 32, 64, 128, or 256 px per cell — one row, so Vframes stays 1.

  4. Set it up in Godot

    Add a Sprite2D, drop the PNG in the Texture slot, and set Hframes to the frame count and Vframes to 1. Or use AnimatedSprite2D and let the SpriteFrames editor add frames from the sheet.

  5. Keep pixels crisp

    In Project Settings turn off texture filtering for pixel art, or set the texture's filter to Nearest, so cells stay sharp.

What you get back

  • A single-row strip where Hframes equals the frame count and Vframes is 1.
  • Per-frame PNGs in a ZIP instead, if you prefer building SpriteFrames from files (Pro).
  • Bottom-aligned art, so the character does not wobble between frames.
  • Optional sprites.json in Aseprite format for importer plugins (Basic).
  • A GIF of the animation to check timing before you wire it up.

What it will not do

  • SpriteFix does not write .tres SpriteFrames resources or .import files.
  • It can include an Aseprite-format sprites.json, which Godot reads only through an importer plugin such as godot-aseprite-wizard — not natively.
  • It does not pack several animations into one atlas.
  • Exports are PNG only — which is what Godot wants for 2D sprites.

We would rather tell you the limits here than have you find them after paying. Full list in the limitations chapter.

Free to try. $4.99 once to keep it clean.

Clean, preview, and play as much as you like for free — free PNG downloads carry a watermark. Basic removes the mark for life for $4.99 paid once. Pro ($14.99 once) adds grid cutting, per-frame ZIP export, and bigger batches. There is no subscription.

Questions people ask

What do I set Hframes and Vframes to?
A SpriteFix strip is one row, so Vframes is 1 and Hframes is the frame count shown in the Ready panel. If you split a multi-row atlas into row sheets, each row sheet is again one row.
Should I use a sheet or individual frames in Godot?
Either works. A single strip with Hframes is simplest for one animation; individual PNGs suit SpriteFrames when you are assembling several animations. SpriteFix can produce both — the per-frame ZIP is a Pro job.
Why do my sprites look blurry in Godot?
That is texture filtering, not the export. Set the texture filter to Nearest for pixel art. SpriteFix always exports PNG without resampling smoothing.
Can I clean several animations at once?
Yes. Drop idle, walk, and attack sheets together — each is cleaned and previewed separately, and you tick which ones go into the ZIP download.