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.
How to use it
- Press Choose an image, or drop your sprite sheet on the box, then press Next.
- 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.
- 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.
- Press Slice sprite sheet.
- 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?
How do I split a sprite sheet into individual frames?
My frames are cut off or shifted. What is wrong?
Why does the .tres file need the original sheet?
Can I put frames back together into a sheet?
More free game dev tools
- Sprite Sheet Generator: Pack animation frames into one sprite sheet PNG with JSON and a Godot SpriteFrames file.
- Pixel Perfect Resolution Calculator: Check how a pixel art resolution scales on real screens and get the Godot settings.
- Autotile Template Generator: Generate a 47, 16 or 13 tile terrain tileset template with a ready Godot 4 TileSet file.