How to Make a Sprite Sheet for Godot
Everything you need to create, import, and animate sprite sheets in Godot 4. Generate a Godot-compatible sheet with XML TextureAtlas data, then wire it into AnimatedSprite2D, SpriteFrames, or AnimationPlayer.
Drop images here (PNG, JPG, WebP, SVG)
or click to browse
The Godot Pipeline
Sprite Sheets in Godot 4
Godot offers multiple ways to work with sprite sheets. Choose the approach that best fits your project.
AnimatedSprite2D + SpriteFrames
The simplest approach. Create a SpriteFrames resource, import your sprite sheet, define animations with frame ranges. Best for simple character animations and effects.
Sprite2D + AnimationPlayer
More powerful and flexible. Use Sprite2D with Region enabled to reference sprite sheet areas. AnimationPlayer keyframes the region_rect property. Best for complex animations with variable timing.
AtlasTexture Resource
Create AtlasTexture resources that reference regions of your sprite sheet. Combine with AnimatedSprite2D or use directly in code. Godot handles the UV mapping automatically.
XML TextureAtlas Import
Import the PNG + XML files from our tool. Godot can parse XML TextureAtlas format. Each SubTexture becomes a named region you can reference in code or the editor.
Step-by-Step: Create & Import Sprite Sheets for Godot
Complete workflow from creating your sprite sheet to animating it in Godot 4.
Step 1: Create the Sprite Sheet
Upload your frame images to our Sprite Sheet Maker. Select Grid layout, set appropriate padding (1-2px), and choose XML TextureAtlas as your export format. Download the ZIP.
Step 2: Import into Godot
Place the PNG and XML files in your Godot project's res:// folder. Godot auto-imports the PNG as a Texture2D. You can then reference sprite regions using the XML coordinates.
Step 3: Set Up AnimatedSprite2D
Add an AnimatedSprite2D node. Create a new SpriteFrames resource. Add frames from your sprite sheet — either by manually setting regions or using an import plugin that reads the XML.
Step 4: Create Animations
Define animation names (idle, walk, attack). Set frames per animation, adjust FPS, and enable/disable looping. Test directly in the Godot editor using the preview button.
Which Godot Node Path Fits Your Project?
Specs & Limitations
Hard facts, not marketing claims.
Troubleshooting: AnimatedSprite2D Not Playing
If a Godot sprite sheet imports correctly but the animation does not move, check the SpriteFrames resource before changing the PNG. Most playback issues come from missing frames, a mismatched animation name, zero speed, or expecting a non-looping animation to repeat.
Frames are inside SpriteFrames
Adding a texture to the node is not enough. Create or open the SpriteFrames resource and add each animation frame there.
Grid counts match the sheet
When adding frames from a sheet, set horizontal and vertical frame counts to the real grid. A wrong count can create blank or repeated frames.
Animation name matches code
Calling play("run") only works if the SpriteFrames resource has an animation named exactly run, including case.
Autoplay or play() is enabled
AnimatedSprite2D does not start just because frames exist. Set Autoplay in the Inspector or call $AnimatedSprite2D.play("idle") in code.
Speed and frame count are valid
Confirm speed_scale is not 0, the animation FPS is above 0, and the animation contains more than one frame.
Looping matches expectation
A non-looping animation stops at the final frame. Enable Loop if idle or walk should repeat continuously.
Godot Sprite Sheet FAQ
Create Godot-Ready Sprite Sheets
Generate sprite sheets with XML TextureAtlas data for Godot 4, then continue with our broader sprite sheet guide or related conversion tools.