# Aseprite file format: User Data Chunk?

**URL:** https://community.aseprite.org/t/aseprite-file-format-user-data-chunk/27350
**Category:** Development
**Created:** [September 14, 2025, 2:51pm UTC](https://community.aseprite.org/t/aseprite-file-format-user-data-chunk/27350 "2025-09-14T14:51:45Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![duke\_of\_germany](https://community.aseprite.org/letter_avatar/duke_of_germany/32/5_5575768a8748004e209b776fc1b2916d.png) [@duke\_of\_germany](https://community.aseprite.org/u/duke_of_germany)
#### Post date: [September 14, 2025, 2:51pm UTC](https://community.aseprite.org/t/aseprite-file-format-user-data-chunk/27350/1 "2025-09-14T14:51:45Z")

</div>

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](https://github.com/aseprite/aseprite/blob/main/docs/ase-file-specs.md#user-data-chunk-0x2020) and its _ **Property Maps** _.

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

🟠 **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?)

🟠 **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! 🙂

---

<div class="post-metadata">

### Author: ![behreandtjeremy](https://community.aseprite.org/user_avatar/community.aseprite.org/behreandtjeremy/32/6606_2.png) [@behreandtjeremy](https://community.aseprite.org/u/behreandtjeremy)
#### Post date: [September 14, 2025, 7:58pm UTC](https://community.aseprite.org/t/aseprite-file-format-user-data-chunk/27350/2 "2025-09-14T19:58:05Z")

</div>

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

 ![image](https://community.aseprite.org/uploads/default/original/3X/3/3/33616240ddcb94463fa0b0bfc3e734e4205525bf.png)

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.

 ![image](https://community.aseprite.org/uploads/default/original/3X/f/e/fe61b97aeaa631cf5537e512e7a8903218512f0e.png)

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:

> <https://github.com/aseprite/aseprite/blob/main/src/doc/user_data.h>

> <https://github.com/aseprite/aseprite/blob/main/src/dio/aseprite_decoder.cpp#L1154>

---

<div class="post-metadata">

### Author: ![duke\_of\_germany](https://community.aseprite.org/letter_avatar/duke_of_germany/32/5_5575768a8748004e209b776fc1b2916d.png) [@duke\_of\_germany](https://community.aseprite.org/u/duke_of_germany)
#### Post date: [September 15, 2025, 7:45am UTC](https://community.aseprite.org/t/aseprite-file-format-user-data-chunk/27350/3 "2025-09-15T07:45:45Z")

</div>

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. 🙂

Thank you so much! 🧡
