Jiboux said: I'd like to mark buffs in green and debuffs in red, and I know that in non-roll20 world, it can't be done just by HTML and CSS... But in roll20 we have 2 interesting functions that could help: We're actually more limited on roll20 when it comes to formatting, than the rest of the web. There are good reasons for this, but we have often to use clunky workarounds on roll20 to produce visual effects that are easy outside of roll20. You dont want to use autocalc values for this, because autocalc values dont have the value you might hing they do. With an autocalc value of value="(@{Test2}+@{Test3})", and test 2 and test 2 both equalling 1, you might think the value there is 2. But it's not: the actual value is the text "(@{Test2}+@{Test3})". Roll20 just treats that in a special way to resolve it into a number under some (but not all) circumstances. If you want to use a calculated number to help sort out CSS, the only good way is to use a sheet worker to do the calculation. Then your input would look like <input name="attr_Test" type="number" readonly value="0"> and the calculation would be done in a sheet worker, which owuld look like thid (inside your sheet's script block): on('change:test2 change:test3' , function() { getAttrs(['Test2', 'Test3'], function(values) { let test2 = +values.Test2 || 0; let test3 = +values.Test3 || 0; let sum = test2 + test3; setAttrs({ Test: sum }); }); }); There's a lot going here, and its way more complicated than a simple autocalc. But it also opens up much more powerful things than you can do with autocalcs. If you want to calculate the sign, you cant divide like you have there, because you run the risk of dividing by 0. You also have the same attribute name for a checkbox and a number input - this will not work properly in roll20. Likely using a value of -1 in the checkbox is probably a mistake; you are better off using a positive value="1", and then using that to affect things as if it was negative. If you want a sheet worker to just give a +1 or -1 value, you dont need to use a checkbox, just use a number, and set it with a sheet worker like this: The HTML: <input name="attr_T_ModsSign" type="number" value="1" readonly> and the sheet worker: on('change:t_mods ' , function() { getAttrs(['T_Mods'], function(values) { let t_mods = +values.T_Mods || 0; let sign = t_Mods < 0 ? -1 : 1; setAttrs({ T_ModsSign: sign }); }); }); This will heck the value of T_Mods, and if it is below 0, will set T_Mods to -1, and otherwise to 1. This allows you to use it as a sign, you can multiply something by T_ModsSign, to get the effects of a positive or negative sign. I'm not sure why you need a sign like this, there are probably easier or better ways to do this. Note: read up on the wiki on sheet workers, but in case you don't know, you need to put them inside two lines like this: <script type="text/worker"> /* put your sheet workers here */
</script> If your sheet doesnt have a script block like this, add this one. If it does, add the sheet workers to that block, don't create a new one.