Godot 4 smooths every texture by default, so pixel art turns blurry the moment you scale it up. This guide covers getting a sprite or a sprite sheet into your project, keeping it sharp, and turning a sheet into an animation.
Import
Drop the PNG in, check the Import dock
Show
Slice sheet
SpriteFrames, Hframes or AtlasTexture
Show
Pixel-perfect
Nearest filter, snapping, integer scale
Show
Drag the PNG onto the FileSystem dock, or copy it into your project folder. Godot imports it as a Texture2D right away. To put it in a scene, drag it from the FileSystem into the 2D viewport and Godot creates a Sprite2D with the texture set. You can also add a Sprite2D node yourself and drop the PNG on its Texture property.

Select the PNG and open the Import tab next to the Scene tab. The defaults already suit pixel art, so this is mostly a check.
You won't find a filter option here. Godot 4 moved texture filtering to the project settings and to each node, which is why a freshly imported sprite still looks soft. Step 4 fixes that.

A sheet stays one PNG. You tell Godot how the grid is laid out, and it reads the frames from there. Pick one of these three ways.

On a Sprite2D, open Animation in the Inspector and set Hframes and Vframes to the sheet's columns and rows. Change Frame to show a different cell. To animate it, key the Frame property in an AnimationPlayer. This is handy when the same timeline also moves a hitbox or plays a sound.
For icons or props packed into one image, give a Sprite2D a new AtlasTexture, set your sheet as its Atlas, and draw the Region around the sprite you want. Save the AtlasTexture as a .tres to reuse it.
These are project-wide, so you set them once. The first one is the setting that fixes blurry sprites.



Only some sprites blurry? Set Texture ▸ Filter = Nearest on those nodes. Children inherit it by default.
Godot can batch 2D sprites that share a texture. Keeping a character's frames in one sheet, through SpriteFrames or AtlasTexture, means fewer texture switches than loading every frame as its own PNG.
Godot 4 draws textures with linear filtering by default, which blends neighboring pixels as soon as a sprite is scaled. Set Project Settings ▸ Rendering ▸ Textures ▸ Default Texture Filter to Nearest. If only a few sprites look soft, set Texture ▸ Filter to Nearest on those nodes instead.
Drag the PNG from the FileSystem dock into the 2D viewport. Godot creates a Sprite2D with the texture already set. You can also add a Sprite2D node yourself and drop the PNG on its Texture property.
Import the PNG like any other image. Then either load it into a SpriteFrames resource with Add Frames from Sprite Sheet and play it on an AnimatedSprite2D, or set Hframes and Vframes on a Sprite2D. You never have to cut the sheet into separate files.
AnimatedSprite2D with SpriteFrames is the quicker setup for character animations like idle, walk and attack. Use a Sprite2D with an AnimationPlayer when the same animation also has to move a hitbox, play a sound or change other properties on one timeline.
Any size works. Most pixel games use 16, 32 or 64 pixel tiles with characters around the same size. Pick a small base resolution like 320x180 or 640x360 under Display ▸ Window ▸ Size, and let integer scaling blow it up to the screen.
SpriteCook exports characters as a Godot project with the SpriteFrames already built, and tilesets as ready-to-paint TileSet resources.