Sure. So my problem was I wanted to perform additional calculations based on a die roll and present it to the user. I looked at the roll templates and Powercards and neither allowed for this. So I went the api approach. Here's the basic structure: Step 1: On the character sheet itself I altered the buttons to make an API call: <button name="roll_meleehit" type="roll" value="!edy {{--title:@{meleeweaponname}|--subTitle:'sub'|--characterName:@{character_name}|--action:attack|--weaponType:@{meleeweapontype}|--weaponCat:@{meleeweaponcat}|--class:Melee|--character:@{character_name}||[[@{WeaponSkill}+(?{Aim | Half aim (+10),+10 | No aim (+0),+0 | Full aim (+20),+20} + ?{Attack Type | All out (+30),+30| Charge (+20),+20 |Standard (+10),+10 | Swift Attack (+0),+0 | Lighting (-10),-10} + ?{Modifier|0})]] }}"> <span data-i18n="hit-u">Hit</span> </button> Step2: I created a script to handle the api call on("chat:message", function(msg) { if (msg.type !== "api") return; if(msg.content.indexOf("!edy") !== -1) { Step 3: Within my script I get all my passed in arguments and do the needed calculations. I actually decided to just do the 1d100 roll in the script var roll = randomInteger(100); //between [1,100] Step 4: Once the calculations are done I create some html and display it in the chat console. sendChat("", '/desc ' + cardHtml); That's basically it. I'm new to all this so maybe there is a better way but this was what I was able to figure out. Having the backend api script is really key as I'm now able to display any information I want. The hardest part was really just figuring out the syntax to make all the calls hook up. I hope this helps someone.