NVM, I got it! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Tim - let's get dexterity bonus &amp; notes for some saving throws sendChat("System", "Char ID: " + character.id); sendChat("System", "Saving Throw Bonus: " + getAttrByName(character.id,"armorbonus")); sendChat("System", "Saving Throw Notes: " + getAttrByName(character.id,"savingthrow_notes")); sendChat("System", "Magic Resistannce Notes: " + getAttrByName(character.id,"magic_resistance")); Hi, a fairly simple question, I think. in addition to the tremendous help I've received here from this group, I am also relearning API/Mods. I'm trying to write an API that will give me the "armorbonus" characteristic. I can do this on the saving throw macro I've made, but I'd rather have a blank space if the player does not have a dexterity bonus or penalty. Similarly I'd like to do the same for Saving Throw and Magic resistance Notes which are @{selected|savingthrow_notes} and @{selected|magic_resistance} in the following chat. With the help of (I hate to admit it) an AI search in Google, I'm going OK with this script I want to use to display the characteristics I've mentioned above. So far, it's working really nicely - previous incarnations of this would throw errors if nothing was selected, but now I need to how to figure out how to draw armorbonus using the variable "character" defined below, near the end of the other scripts (is "code" a correct word when it comes to JS?). //10 May 2026 Based on what I originally made for a Crossfire dice script in. //<a href="https://app.roll20.net/forum/post/8951266/request-javascript-criique/?pageforid=8980029#post-8980029" rel="nofollow">https://app.roll20.net/forum/post/8951266/request-javascript-criique/?pageforid=8980029#post-8980029</a> //Also from AI response to "roll20 API get selected character" on('ready', () =&gt; { //Version information const ver = "Version 1" const verdate = "10 May 2026" //The following will be outputted after a restart sandbox or save: log("═╣ Dex Check for Saving Throw by Tim, " + ver + ", " + verdate + " ╠═"); //Tim - From here to the next Tim comment is from AI response to "roll20 API get selected character" on("chat:message", function(msg) { if (msg.type === "api" &amp;&amp; msg.content.indexOf("!dexcheck") === 0) { if (!msg.selected) { sendChat("System", "Please select a token first."); return; } // Map through selected items to find character objects let characters = msg.selected .map(obj =&gt; getObj('graphic', obj._id)) // Get the token object .filter(token =&gt; token &amp;&amp; token.get('represents') !== "") // Check if it represents a character .map(token =&gt; getObj('character', token.get('represents'))); // Get the character object // Do something with the first selected character if (characters.length &gt; 0) { let character = characters[0]; sendChat("System", "Selected Character: " + character.get("name") + " " + characters.length); } } }); }); Adding this line: sendChat("System", "Dex Bonus: " + character.get("armorbonus")); Just gives a result of "undefined" as does using "savingthrow_notes". Thanks for any hints and apologies for using AI. -- Tim