So, I have set up my sheet aesthetically...and then I was about to do the next step...putting in rolls/sheet workers...and I realize...I think I might be in a bit of a pickle! I've cut the code down for just a visible test. This is for Night's Black Agents, Solo Ops. The section for General Skills. Let's go with one skill--Athletics. The actual skill has more than just what I'm showing...but I hope I can explain the larger context. So Skills default to 2 Dice (which I'm calling the athletics_max). Each time a skill is used, it depletes down one die. When the PC "Takes time" the dice are refreshed back up to the max. The max can be permanently increased to 3 dice by spending experience. Skills also can be stunted (which mean you deplete 2 dice in a complimentary skill to get a bonus die on your roll. Die mechanics? The player has a number of dice to roll. They have a target number they want to achieve with the dice they have. They roll the dice one at a time noting the running total. They can stunt or take on a problem or get aid from a contact, or spend an Edge to get extra dice. If they hit their target number while still having dice leftover they get a bonus. Here is what the sheet looks like in general: The diamonds on the left are checkboxes that hold the max attribute for the skill (attr_athletics_max). The target a checkbox representing stunting (attr_athletics_stunt). The 3d6s are checkboxes representing how many dice you have to roll with that skill (attr_athletics). The diamonds on the left are checkboxes holding xp you might have invested in improving the skill (attr_athletics_xp). So everything is a checkbox that sets the attributes. I've figured out how to set up the d6's so that if you click on one of the dice, all the dice before it are red, but after are grey. Clicking on an already checked dice resets the dice to 0 and they are all grey. I love this. Everything there is working great! However...my next goal is turning those d6s into roll buttons...well...I guess they would have to be action buttons. What I wanted to happen...(assuming you are at 2 dice) You click the third die? Nothing happens. You click the first die? Nothing happens. You click the second die? A pop-up happens asking if you have any bonus die and if so, how many? If you do it adds that number to the total number of die you will be rolling. You roll each die individually, after each die you are asked if you want to roll the next die or add more bonus die or if you want to stop. If you meet the target number you advance, if you meet the target number and have dice life over you Advance and get a bonus. David M. figured out how to do this using Script Cards. I need to figure out how to a) have a sheet trigger a scriptcard macro, but also b) figure out how to do this with a custom roll parser, because I like to know how to do things multiple ways. After the die roll is done, the attr_athletic number is decremented and the dice colors are changed accordingly, and what buttons you can push are adjusted. Other things: If you have 2+ dice in a skill, the stunt checkbox is available. If you click it, it decrements that skill by 2 and deactivates that stunt button. If you have less than 2 dice in a skill, that stunt checkbox is greyed out. Pressing the Take Time button resets everything. So where I'm at right now is the first step. I just want to figure out the d6 part. How to turn those checkboxes into action buttons that change the attr_athletics variable with accompanying button availability and styling, and launches the roll protocol (which I'm not working on just yet). My current code (with the checkboxes) are like so: <div class = "section general" > <h2> General Abilities </h2> <div class = "dieholdergrid" > <input type = "checkbox" id = "athleticsdie0" value = "0" name = "attr_athletics_die" class = "dietracker0 dietracker" /> <label for = "athleticsdie0" class = "dietracker0 dietrackerL" ></label> <input type = "checkbox" id = "athleticsdie1" value = "1" name = "attr_athletics_die" class = "dietracker1 dietracker" /> <label for = "athleticsdie1" class = "dietracker1 dietrackerL" > F </label> <input type = "checkbox" id = "athleticsdie2" value = "2" name = "attr_athletics_die" class = "dietracker2 dietracker" checked /> <label for = "athleticsdie2" class = "dietracker2 dietrackerL" > F </label> <input type = "checkbox" id = "athleticsdie3" value = "3" name = "attr_athletics_die" class = "dietracker3 dietracker" /> <label for = "athleticsdie3" class = "dietracker3 dietrackerL" > F </label> </div> </div> CSS: /* GENERAL SKILLS DETAILS */ /* Die Tracker */ div.dieholdergrid { background : transparent ; display : grid ; column-gap : 6px ; padding-right : 8px ; height : 100% ; align-items : center ; width : min-content ; margin-bottom : 10px ; } div.dieholdergrid > .dietracker0 { grid-column : 1 ; grid-row : 1 ; } div.dieholdergrid .dietracker0 { display : none !important ; } .dieholdergrid > .dietracker1 { grid-column : 2 ; grid-row : 1 ; } .dieholdergrid > .dietracker2 { grid-column : 3 ; grid-row : 1 ; } .dieholdergrid > .dietracker3 { grid-column : 4 ; grid-row : 1 ; } div.dieholdergrid input { opacity : 0 ; } label.dietrackerL { font-family : 'dicefontd6' ; font-size : 2.5em ; content : 'F' ; display : grid ; height : 20px ; width : 20px ; z-index : 9 ; color : var ( --blood-color ); } .dietracker:checked + label { color : var ( --blood-color ); } .dietracker:checked + label ~ label { color : #aaa ; } I was playing around with action button stuff and this is what I wrote so far: <div class = "dieholdergridA" > <input type = "hidden" name = "attr_athletics_die" value = "0" > <button class = "d6tracker d6tracker1 athletics" type = "action" name = "act_athlectics" ></button> <button class = "d6tracker d6tracker2 athletics" type = "action" name = "act_athlectics" ></button> <button class = "d6tracker d6tracker3 athletics" type = "action" name = "act_athlectics" ></button> </div> CSS: /* GENERAL SKILLS DETAILS */ /* Die Tracker Action */ div.dieholdergridA { background : transparent ; display : grid ; column-gap : 8px ; padding-left : 8px ; height : 100% ; align-items : center ; width : min-content ; margin-bottom : 10px ; } .dieholdergridA > button [ type = action ] .d6tracker { background-color : transparent ; padding : 0 ; border : 0 ; margin : 0 ; } .dieholdergridA > button [ type = action ] .d6tracker::before { font-family : 'dicefontd6' ; font-size : 3em ; content : 'F' ; display : grid ; height : 20px ; width : 20px ; color : var ( --blood-color ); } .dieholdergridA > .d6tracker1 { grid-column : 1 ; grid-row : 1 ; } .dieholdergridA > .d6tracker2 { grid-column : 2 ; grid-row : 1 ; } .dieholdergridA > .d6tracker3 { grid-column : 3 ; grid-row : 1 ; } So my first pass at turning the checkboxes into action buttons was successful insofar as I got them showing up and red. I hadn't gotten to the point where I could turn them off or on by clicking on them or changing their colors. So my current thoughts-- Action Buttons can't have values attached to them it seems...that seems less useful...but I might be able to have the sheetworker of any given die grouping...setAttr of the attr_athletics...somehow. But...the buttons don't have variables...but maybe I could do it through the classes somehow? Or maybe...I could create a die Object that has a button as one of its variables? And maybe also a variable representing the athlectics skill? Maybe even a variable for the images?...would that work? Anyhow, insights from all you smart people would be awesome!