pack_sprite_sheet
Pack frames or sprites into one sheet (texture atlas) plus a JSON atlas in the frames-hash format Phaser and PixiJS load (TexturePacker JSON Hash). Without columns it packs tightly like voidless.dev/tools (shelf packing, tallest first); with columns it lays a uniform grid in the given order. Images up to 2048x2048, 256 frames, 32 MB of input per call. Free: no credits.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"frames": "<frames>"
},
"name": "pack_sprite_sheet"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Base file name: <name>.png / <name>.json | atlas |
| save | No | Also save the result to your Voidless library (free, private) and return its asset id and cdn.voidless.dev URL, for passing to the next tool without base64 | |
| names | No | Atlas key per frame; default frame_000, frame_001… | |
| frames | Yes | Frames in order, each an image (https URL, library image key, data: URI or base64). An animated GIF counts as all its frames. | |
| columns | No | Lay out a grid with this many columns | |
| padding | No | Pixels around and between frames | |
| px_per_unit | No | With sprite_scales: px per world unit in the base image (get_asset) | |
| power_of_two | No | Round the sheet size up to 16, 32, 64… | |
| world_height | No | With sprite_scales: the sprite's world height (get_asset) | |
| sprite_scales | No | Optional world scale: each frame's sprite_scale (get_asset), in frame order. The atlas then carries each frame's px per world unit and feet pivot, so a game draws every frame at one size |