Free Online Tool — No Sign-up

Roblox Sprite Sheet Generator
Create sprite sheets and texture atlases for your Roblox games.

Create sprite sheets and texture atlases for your Roblox games. Convert video or GIF into animated sprite sheets, or pack images for Roblox UI, decals, and 2D elements. Export PNG and metadata — no plugin required.

Features

Video & GIF to Sprites

Extract frames from video or GIF for Roblox ImageLabel animation.

UI-Ready Export

PNG sprite sheets work with Roblox ImageLabel, SurfaceGui, and decals.

Frame Metadata

JSON includes frame positions and sizes for scripting in Roblox.

1024px-Aware Packing

Set max atlas size to 1024 to match Roblox's image upload limit.

Privacy First

Processing runs locally — your Roblox assets never upload to our servers.

Free to Use

No sign-up, no limits. Use for personal or published Roblox games.

How It Works

1

Upload Video or Images

Drop a video, GIF, or sprite images.

2

Configure FPS & Scale

Set frame rate and scale; keep the atlas within 1024×1024.

3

Download & Import to Roblox

Upload the PNG in Roblox, then animate with the script below.

Why Use I Love Sprites?

Roblox developers use sprite sheets for GUI animations, ImageLabel sequences, loading screens, and 2D game elements. Roblox has no built-in sprite sheet importer, but ImageLabel and ImageButton expose ImageRectOffset and ImageRectSize — set those per frame and any packed sheet becomes an animation. I Love Sprites outputs the PNG plus JSON frame data you need to drive them, and your assets never leave your device.

Two Roblox-specific constraints shape how you should pack. Images upload at a maximum of 1024×1024, so set the max atlas size to 1024 — if your animation doesn't fit, reduce scale or FPS rather than letting frames spill across multiple images. And because Roblox serves images through its CDN with filtering you don't control, leave 1-2px padding/extrusion on so neighboring frames never bleed into view at UI scale.

The typical workflow: generate the sheet here, upload the PNG through Roblox's asset manager, paste the frame table from the JSON into a ModuleScript, and run a small loop that steps ImageRectOffset at your frame rate — the snippet below is a complete working example.

Animate an ImageLabel through the frames (Luau)

Parent this LocalScript to an ImageLabel whose Image is your uploaded sheet. Fill the frames table from the exported JSON (x, y, w, h per frame).

local label = script.Parent -- ImageLabel with your atlas as Image
local FPS = 12

-- Frame rects from the I Love Sprites JSON export
local frames = {
    { x = 0,   y = 0, w = 128, h = 128 },
    { x = 128, y = 0, w = 128, h = 128 },
    { x = 256, y = 0, w = 128, h = 128 },
    -- ...
}

local i = 0
while label.Parent do
    i = (i % #frames) + 1
    local f = frames[i]
    label.ImageRectOffset = Vector2.new(f.x, f.y)
    label.ImageRectSize = Vector2.new(f.w, f.h)
    task.wait(1 / FPS)
end

Frequently Asked Questions

Common questions about sprite sheet generator for roblox.

Upload the PNG as an image asset, set it as an ImageLabel's Image, then script ImageRectOffset and ImageRectSize per frame using the coordinates from the exported JSON — see the example script above.

Yes. Export an animated sprite sheet from a video or GIF, then cycle frames on an ImageLabel or ImageButton with a small Luau loop.

Roblox images upload at up to 1024×1024. Set max atlas size to 1024 in the packer; if frames don't fit, lower the scale or FPS.

Roblox doesn't auto-parse the JSON, but the format is simple — copy the frame rects into a ModuleScript table and read them from your animation loop.

Stay Updated

Get notified about new features and tool updates.

Start Using Sprite Sheet Generator for Roblox

Create sprite sheets for Roblox games from video, GIF, or images. Animate ImageLabels with ImageRectOffset using the exported frame data. Free browser tool. No sign-up required.