Sprite Sheet Slicer: Split a Sheet into Frames

Upload a sprite sheet, set the grid, and this sprite sheet cutter splits it into one PNG per frame, zipped, plus a Godot 4 SpriteFrames resource that plays the frames straight from your original sheet. A live grid shows exactly where each cut falls, and fully transparent cells can be skipped. Nothing is uploaded: the sheet never leaves your browser.

Step 1 of 3: Sheet

How to use it

  1. Press Choose an image, or drop your sprite sheet on the box, then press Next.
  2. Pick Columns and rows or Cell size, set the numbers, and add Offset X/Y for a margin before the first cell and Spacing X/Y for gaps between cells. Watch the grid on the preview, leave Skip fully transparent cells on, then press Next.
  3. Set the Frame file prefix, the Animation name, the Frames per second and the Godot folder of the sheet. Tick One animation per row if each row of the sheet is its own animation.
  4. Press Slice sprite sheet.
  5. Press Download frames (ZIP) for the separate PNGs, or Download Godot .tres for the SpriteFrames resource.

How to measure a sprite sheet grid

If the sheet has no gaps, Columns and rows is all you need: a 256 x 64 px sheet with 8 columns and 2 rows gives 32 x 32 px frames. If you know the frame size instead, use Cell size and the slicer fits as many whole cells as the sheet holds.

Many packed sheets, especially from asset packs, have a border before the first frame or a gap between frames. Offset X and Y skip the border on the left and top, and Spacing X and Y skip the gap between neighboring cells. When the blue grid lines sit exactly on the frame edges in the preview, the numbers are right.

With Skip fully transparent cells on, any cell whose every pixel is transparent is left out, which removes the empty slots at the end of a sheet whose last row is not full. Darkened cells in the preview are the ones being skipped.

Using the frames in Godot 4

The .tres file is a SpriteFrames resource. Each frame is an AtlasTexture whose region is one cell of your original sheet, so Godot keeps a single texture in memory and you do not need the separate PNGs at all. Save the sheet under the same file name in the Godot folder you typed, for example res://sprites/hero.png, then add an AnimatedSprite2D and drag the .tres onto its Sprite Frames property.

With One animation per row, row 1 becomes hero_1, row 2 becomes hero_2 and so on, each looping at your FPS. Rename them in the SpriteFrames panel to idle, walk or jump and call play("walk") from a script.

Godot can also slice a sheet itself: in the SpriteFrames panel, Add frames from a Sprite Sheet lets you set the horizontal and vertical frame counts. The slicer helps when you want every row as its own animation in one go, want empty cells left out, or need the frames as separate PNG files for another tool or engine.

Frequently asked questions

Is this sprite sheet slicer free?
Yes. It runs in your browser with no account, and your sprite sheet is never uploaded to a server.
How do I split a sprite sheet into individual frames?
Upload the sheet, set the number of columns and rows or the cell size, check the grid on the preview, then press Slice sprite sheet and download the ZIP. Every frame is saved as its own PNG, numbered in reading order from left to right and top to bottom.
My frames are cut off or shifted. What is wrong?
The sheet probably has a border or gaps between frames. Add an offset for the border and spacing for the gaps until the grid lines in the preview sit on the frame edges.
Why does the .tres file need the original sheet?
Its frames are regions of the sheet rather than copies, which keeps your project to one texture. Keep the sheet in the Godot folder you typed, under the same file name, and the animation loads.
Can I put frames back together into a sheet?
Yes. Use the sprite sheet generator to pack separate frames into one sheet with a JSON file and a Godot SpriteFrames resource.

See all tools