Better Sprite Packer

A random-access sprite packer for games
#open-source #kotlin #desktop-app

A tool designed to pack video game sprites efficiently and randomly access them without increasing game client memory usage.


  • You can randomly access any sprite (extremely fast and less memory consumption especially for sprites that aren't used!)
  • Images are fully preserved even the meta data, compression is done by the image format
  • Transparency is never set, if you have transparent images they will remain transparent
  • Displays image meta data
  • Indexes are preserved (any image removed and if its not the last element will create a placeholder 0 byte)
  • Import sprites from a directory
  • Import from binary
  • Select the sprites you want to add (with multi-selection)
  • Export to raw formats
  • Export to binary
  • Search an image by it's imdex
  • Modern, clean looking
  • Made in Kotlin programming language
  • Works on Windows, Mac, and Linux
  • Supports PNG, JPEG, and GIF


The programs exports your files in a binary format in 2 files

  1. main_file_sprites.dat (this is where all of the image data is kept)
  2. main_file_sprites.idx (this is the meta data that contains meta information)


  1. main_file_sprites.dat

    • signature: "bsp" (3 bytes)
    • image: byte[] (variable length)
  2. main_file_sprites.idx

    • dataOffset: 24uint
    • dataLength: 24uint
    • offsetX: ushort
    • offsetY: ushort




View on GitHub

Built and designed by Chad Adams
Copyright © 2023 Chad Adams