Hey, Itjeong... here are a couple of places to start (and keep bookmarked): <a href="https://help.roll20.net/hc/en-us/articles/360037772833-API-Function-Documentation#API:FunctionDocumentation-createObj" rel="nofollow">https://help.roll20.net/hc/en-us/articles/360037772833-API-Function-Documentation#API:FunctionDocumentation-createObj</a> <a href="https://help.roll20.net/hc/en-us/articles/360037772793-API-Objects#API:Objects-Attribute" rel="nofollow">https://help.roll20.net/hc/en-us/articles/360037772793-API-Objects#API:Objects-Attribute</a> The first is the actual createObj function that R20 exposes to create the various objects. There are other functions in there, so definitely keep that handy. The second is the documentation of the various sorts of objects you can interact with, specifically linked to the attributes. One thing to remember is that although the attributes belong to a character, they are not attached to the character. They have their own id, and are attached to the character by use of a foreign key (to use database terminology). So if your character has an ID of -M1234567890abcdef, then that character might have attributes that look like: id: -Mfedcapfdsah04n201 type: 'attribute' character_id: -M1234567890abcdef name: 'Anthropology' current: 1 max: 1 // etc. You will need to arrive at the character to work on (so that you know whose attributes to retrieve/work on). You can do that with a selected character, a targeted character, a roll query that asks you for a character, or by generating a new character (the createObj function returns the object you created). Once, you can get the character's_id feed it any function to help get things associated with that character. Obviously, you'll need to check if the character actually exists (creating if not), and then check if each attribute exists (creating if not, updating if so). There's a lot you sort of learn along the way... like what properties can be accessed directly off the object (like id and type) versus what properties must be accessed using the get() function: theAttr.get('current') ...or how to get repeating attributes (attributes in list). There's also a known bug when trying to set properties of an object you created in the same statement that creates it... you should create it, assign it to a variable, then apply the properties. Really, it's too much to list in one post all of the things to know that you might potentially bump into... better if you get started and post back with specific questions. Also, one of the best resources is seeing what other people have already done. Look on the Roll20 GitHub for examples. Steal our stuff. =D More reading: Wiki: Beginning to work with character sheets. Wiki: API Scripts