Aseprite file format: User Data Chunk?

Hello!

I am current implementing a parser for the Aseprite file format, following the format specification on GitHub. The documentation is really good!

The only thing that is a bit unclear to me is the User Data Chunk and its Property Maps.

The following questions came up for me regarding the property maps:

:orange_circle: Regarding the “vector” property (type 0x0011):
Which element types can the vector contain? (Is it all property types? And if so, can it even contain vectors, or a nested property map?)

:orange_circle: Regarding the “nested property map” (type 0x0012):
Can it contain another nested property map, so that theoretically, there would be no nesting limit?

I would appreciate any hint! :slight_smile:

It might help to open the developer console and test for yourself (or write a Lua script that prints to console).

You can assign a keyboard shortcut to open the developer console by going to Edit > Keyboard shortcuts, then searching for it in the input with the magnifying glass.

As far as I can tell, a vector can contain the same data types that a properties map can, including a property map, a vector and some – but not all – Aseprite specific objects (points, rectangles, sizes, uuids). A vector can contain a mixture of data types. A property map can contain another property map; not sure of any nesting limits.

I don’t know much on implementation details, but if you wanted to look at the source code, here are some places to start:

1 Like

Wow, this is so helpful!

(And I had no idea about the developer console!)

Now I have everything I need to know to finish my parser. :slightly_smiling_face:

Thank you so much! :orange_heart: