Skip to content

Export as generic atlas

The Generic atlas engine packs every asset in a pack into one PNG and emits a JSON manifest mapping each asset slug to its rectangle inside the atlas. Pack-scope only (Pro).

Use this when your engine isn’t one of the named presets but you still want a single texture file with a sidecar manifest.

A .zip containing:

  • atlas.png - the packed atlas image (power-of-two sized)
  • atlas.json - the TexturePacker JSON-Hash manifest mapping each asset slug to its rectangle in the atlas
  • README.txt - a short note with per-engine loading snippets (Phaser, Babylon, Three.js, Godot, Unity)

Hexcalibur emits the TexturePacker JSON-Hash format, which Phaser, Babylon, and most engine atlas loaders read natively:

{
"frames": {
"<asset-slug>": {
"frame": { "x": 0, "y": 0, "w": 32, "h": 32 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
"sourceSize": { "w": 32, "h": 32 }
}
},
"meta": {
"app": "Hexcalibur",
"version": "1.0",
"image": "atlas.png",
"format": "RGBA8888",
"size": { "w": 256, "h": 256 },
"scale": "1"
}
}
  • frames - keyed by asset slug, each value describes the slug’s rectangle inside the atlas
  • meta - atlas-level metadata (the atlas image name, total size, pixel format)
  • rotated and trimmed are always false for Hexcalibur output (voxel blocks are uniform-size and edge-to-edge); the fields are included anyway because strict loaders look them up by key.

The shelf-pack algorithm lays tiles out left-to-right, top-to-bottom into rows. The atlas size is the smallest power-of-two square that fits every tile. No padding by default.

For dense packs of similarly-sized tiles, this is near-optimal. For mixed sizes, expect some wasted space - the trade-off for the simple manifest format.

  • You’re targeting Phaser, Babylon, Three.js, Godot, or Unity
    • all of these consume TexturePacker JSON-Hash via library or hand-rolled loader (the in-zip README has per-engine snippets)
  • Your engine isn’t Minecraft Java / Bedrock / Tiled but understands TexturePacker manifests
  • You want a portable atlas that doesn’t bake in any Minecraft-specific assumptions

For Minecraft, use the Java or Bedrock engine. For Tiled, use the Tiled engine.