I had noticed something weird about case sensitivity in sheet workers and tonight tested it properly, thanks to a question over in the API forum. I'm reposting here, because its more relevant to character sheet authors. In the past, sheet workers completely ignored case in attribute names. The on() line needed to be in lower case regardless of the attribute defined in html, but in getAttrs and value statements, it could be anything. But sheet workers are now both case sensitive, and case-insensitive. Honestly, I don't know if I've tested this before, but I think it's new behaviour. Testing So, when doing a getAttrs, the case does not need to match the case defined in the html. Let's say you define the str attribute with <input type="number" name="attr_str" value="5" /> Note that the case here is lower case. Now, in getAttrs you can use either of getAttrs(["str", getAttrs(["STR", Both work. (As would any case, like sTr , or STr ). But whichever case you use, when later grabbing the attribute, you must use the same case . So if you use getAttrs(["STR", you must grab it with values.STR It will fail if you try to use values.str even though that's the case actually defined in the html. This looks very much like a bug to me, but even if it isn't, people should be aware of it, because it could be a very frustrating problem to track down if you accidentally use differing cases in your code because you're used to it not mattering.