Dear Community. Firstly I apologise if this should go in the sheets forum rather than the API forum. It seems to be somewhere half way. The non-problem: The god-awful HTML/CSS style if requesting the sheet (which I am happy to provide). The appearance of the sheet is tested in firefox, chrome and brave, and works properly. I have to test on roll20 itself of course, but this is not really a problem yet (yet!). The Problem: I am converting a JS sheet worker for opening "description" boxes for various lists (inventory, spells, abilities). In accordance to the CSS wizadry/sheetworker page for making sheets I have a button, which when pressed sets the value on a hidden input. The CSS code then sets the visibility/state of the "description box" . The JS sheet worker allows not only to switch between item description boxes, but to hide it on a second click on the button: The JS code looks like this and works: const b = document . getElementById ( x ). addEventListener ( 'click' , function () { // Get the hidden element whose value is read by the CSS script. let x = document . getElementById ( 'ability-details-tab' ); console . log ( x ); // This sets the value to blank if the hidden element is already open to this // description box, hence hiding it. if ( x . value == num + 1 ) { x . value = "" ; } else { // This sets the value to the magic number specified in the CSS code, hence // displaying the description box. x . value = num + 1 ; } }) }); However, I have the feeling that my conversion for roll20 (SEE BELOW) is wonky. I would be very grateful if someone could tell me whether this should work, and what I should change to make it work (other than putting a `sheet-` prefix for class names, this much I know): on ( `clicked: ${ x } ` , function () { getAttrs ( 'ability-details-tab' , function ( attr ) { if ( x == num + 1 ) { setAttrs ({ ability -details-tab: "" }); } else { setAttrs ({ ability -details-tab: ( num + 1 ) }); } }); }); Backstory: I am working on a game system (Fansys: <a href="https://aleshaleksey.github.io/fansys23/" rel="nofollow">https://aleshaleksey.github.io/fansys23/</a>), and for now, due to HTML being my only weakness, have been using an google-sheets sheet that Alluscythe had previously made. While this was an excellent sheet, and I am very grateful for the work put in it is obviously not connected to roll20. Recently I restarted work on a roll20 sheet - a a terrifying, yet necessary proposition. For reasons of geography, preparing the necessary groundwork on roll20 takes longer than it would otherwise (such as upgrading from free to pro), so for now I am doing what I can without the roll20 infrastructure. Most of the sheet (though primitive by professional standards) works to my satisfaction, with the the exception of one part: The SHEET WORKER. The sheet worker currently works standard JS. However, I know that this will not work with roll20 out of the box, so I am converting it, and here I would like the help of the more experienced roll20 wizards. I would like to thank you for reading this far, and bring in advance my thanks for any advice rendered.