.LIMBS file format specification

Essentially, these are text files where each character stores a digit from 0 to 63. That is to say, it is stored in Base64 (but not any specific implementation of that). The way to work out what number a character in a .LIMBS file represents, is to take its ASCII value, and subtract 48 from it. So 0 is “0” and it continues along the ASCII encoding until it reaches 63 (which is “o”). There is, however, one exception to this. The number 44 should be encoded in this implementation as “\”, however the backwards slash is replaced with a forward slash, even though it does not follow in the ASCII sequence. This was done in case there might be a situation where “\” is next to a letter like “n” and the program would parse that as “\n” which might be problematic. This never happened, and I am not sure that it would, but that is how I implemented this Base64 regardless.

The first character of a file stores which palette the design uses. Palettes are indexed at zero, incrementing from left to right, top to bottom on the palette menu.

The next two characters store the width of the canvas minus one and the height of the canvas minus one respectively. 64 is the largest the canvas can be, but of course the largest number that can be encoded in this is 63. That is why it stores one less than the height and width.

The next character stores whether the design tessellates or not. 1 if it does, 0 if it doesn’t.

From here on, the file stores data for every single tile on both layers. The order is from left to right, top to bottom on the first layer, and then the same for the second layer. For each tile, there are three characters that store its data, in order these characters encode:

  1. The index in the tilemap which this tile uses. (see tilemap below. Tiles are indexed from zero, left to right, top to bottom),
  2. The colour of the tile (there are only 3 colours, and they are indexed at zero) and
  3. The tilemap variant which the tile uses (there are four tilemap variants, and they are indexed at zero)

With all this information, it would be possible for you to design your own .LIMBS file without ever opening the application. Also with this information, I can tell you the smallest and largest possible file sizes of the .LIMBS format.

Given that 4x4 is the smallest possible canvas, a .LIMBS file of this size will have exactly 100 characters, and will be 100 bytes.

The largest possible canvas size is 64x64, a .LIMBS file of this size will have 24580 characters and will be 24.6 kilobytes.

Return to Software.