Thank you very much for taking the time to work through this with me! I'll answer your questions in order, but you may want to skip down to the third one for what might be the problem. Does it fire if you manually change the current date attribute? No. When I go into the Attributes tab and manually change the current date, the on("change:currentdate") trigger doesn't fire. I get the following output in my log as soon as I click off of the field: [Violation] Forced reflow while executing JavaScript took 46ms app.js?1541523443:352 Really updating character sheet values app.js?1541523443:353 Foudn a pre-defined key order! app.js?1541523443:352 Setting up repeating sections took until 13ms app.js?1541523443:352 Finding list of dirty attributes took until 14ms app.js?1541523443:352 Querytest took until 15ms app.js?1541523443:352 Attribute cache compliation took until 16ms app.js?1541523443:352 Set values (including auto-calcuating variables) took until 25ms app.js?1541523443:352 Took 27ms As soon as I trigger the event by another means (I've set up the same function to trigger when tabs are switched since, as a manual action, it works just fine), this is the log output: CLICKED: radio/checkbox < input class =" sheet-tab sheet-tab4 sheet-singlesheet " type =" radio " name =" attr_core-tab " value =" 4 " title =" Projects " > app.js?1541523443:352 input type radio value = "4" app.js?1541523443:352 Really updating character sheet values app.js?1541523443:353 Foudn a pre-defined key order! app.js?1541523443:352 Setting up repeating sections took until 14ms app.js?1541523443:352 Finding list of dirty attributes took until 14ms app.js?1541523443:352 Querytest took until 16ms app.js?1541523443:352 Attribute cache compliation took until 19ms app.js?1541523443:352 Set values (including auto-calcuating variables) took until 24ms app.js?1541523443:352 Took 26ms VM17:454 UPDATING DATES: V: {"currentdate":"July 9, 2018","projectstartdate":"July 9, 2018","projectenddate":"July 19, 2018","projectincnum":"1","projectinccounter":6,"projectincunit":"days","projectlaunchrollToggle":2,"projectlaunchresults":"SUCCESS!"} VM17:454 ... NEW COUNTER POS: 10 VM17:454 ... UPDATING INCCOUNTER app.js?1541523443:352 Really updating character sheet values app.js?1541523443:353 Foudn a pre-defined key order! app.js?1541523443:352 Setting up repeating sections took until 11ms app.js?1541523443:352 Finding list of dirty attributes took until 16ms VM17:454 ACTIVATION BY: {"sourceAttribute":"repeating_project_-lqwukdid6jrxck5jcpr_projectinccounter","sourceType":"sheetworker","triggerName":"repeating_project_-lqwukdid6jrxck5jcpr","previousValue":6,"newValue":10} app.js?1541523443:352 Querytest took until 18ms app.js?1541523443:352 Attribute cache compliation took until 19ms app.js?1541523443:352 Set values (including auto-calcuating variables) took until 27ms app.js?1541523443:352 Took 29ms What does your html for these attributes look like? The only attribute that is causing problems is "currentdate". It's contained in a fairly straight-forward hidden input field, outside of any fieldset sections, right at the top of the Projects page: < div class = "sheet-pagecontainer sheet-section-4 sheet-singlesheet" >
< input type = "hidden" name = "attr_currentdate" />
<!-- PROJECTS -->
< div class = "sheet-header1" >
< img src = "<a href="https://imgur.com/b4nLXfG.png" rel="nofollow">https://imgur.com/b4nLXfG.png</a>" /> <!-- Projects Header -->
</ div > What does your API console look like on sandbox bootup? Uhm, well, there is an error in there, and it's been there for quite a while ... Restarting sandbox due to script changes...
Previous shutdown complete, starting up...
Spinning up new sandbox...
"Starting webworker script..."
"Loading 0 translation strings to worker..."
"ReferenceError: GROUPATTRS is not defined"
"ReferenceError: GROUPATTRS is not defined
at eval (eval at messageHandler (evalmachine.<anonymous>:284:6), <anonymous>:421:12)
at Function.m.each.m.forEach (evalmachine.<anonymous>:5:2350)
at eval (eval at messageHandler (evalmachine.<anonymous>:284:6), <anonymous>:419:7)
at eval (<anonymous>)
at messageHandler (evalmachine.<anonymous>:284:6)
at process.<anonymous> (/home/node/d20-api-server/node_modules/tiny-worker/lib/worker.js:60:55)
at emitTwo (events.js:106:13)
at process.emit (events.js:194:7)
at process.nextTick (internal/child_process.js:766:12)
at _combinedTickCallback (internal/process/next_tick.js:73:7)"
"Roller: Ready!"
"GetData: Ready!"
"Chars: Ready!"
"WigglePads: Ready!"
"TimeTracker: Ready!"
... however, I've been ignoring it for two reasons: It hasn't appeared to be messing with any of my scripts (though boy will my face be red if this is the culprit all along...), and It makes no sense to me. "GROUPATTRS" is a const defined right at the top of my sheetworker script, and the line it's complaining about is just a bit further down: const GROUPPREFIXES = [ "g1" , "g2" , "g3" , "g4" , "g5" , "g6" , "g7" , "g8" , "g9" ];
const GROUPATTRS = [ "charname" , "Hunger" ]; // **** GROUPATTRS defined here; error line is just below these declarations ****
const GROUPREPSECTIONS = [ "rolls" ];
const GROUPREPREFS = [ "rollType" , "trait1name" , "trait1value" , "trait2name" , "trait2value" , "rolldiff" , "rollmod" , "posflags" ,
"negflags" , "roll_params" ];
const PROJREPSECTIONS = [ "project" ];
const PROJDATEDEPS = [ "projectstartdate" , "projectincnum" , "projectincunit" , "projectenddate" , "projectinccounter" , "projectrushpool" ];
const PROJREPFLAGS = [ "projectstartdate" , "projectincnum" , "projectincunit" , "projectscope" , "projectlaunchtrait1_name" ,
"projectlaunchtrait1" , "projectlaunchtrait2_name" , "projectlaunchtrait2" , "projectlaunchmod" ,
"projectstake1_name" , "projectstake1" , "projectstake2_name" , "projectstake2" , "projectstake3_name" ,
"projectstake3" , "projectstake4_name" , "projectstake4" , "projectstake5_name" , "projectstake5" ,
"projectstake6_name" , "projectstake6" , "projectlaunchresults" , "projectlaunchresultsmargin" ,
"projectlaunchdiffmod" , "projectwasrushed" ];
const PROJREPATTRS = [ "projectenddate" , "projectinccounter" , "projectscope_name" , "projectlaunchdiff" , "projectlaunchrollToggle" ,
"projectlaunchroll_params" , "projecttotalstake" , "projectrushpool" , "projectstakesatrush" , "projectrushstakelost" ,
"projectrushstakelosttogo" ];
//#endregion
//#region Derivative Stats
const basicStats = _ . flatten ([ _ . values ( ATTRIBUTES ), _ . values ( SKILLS ), ENUMSTATS , TRACKERS ]);
const statFlags = _ . map ( _ . omit ( basicStats , TRACKERS ), function ( stat ) { return stat + "_flag" ; });
var GROUPSTATS = {};
_ . each ( GROUPPREFIXES , function ( prefix ) {
GROUPSTATS [ prefix ] = { attrList : [], repSections : [], repStats : []};
_ . each ( GROUPATTRS , function ( attr ) { // **** the line number complained about in the API console ***
GROUPSTATS [ prefix ]. attrList . push ( prefix + attr );
});
_ . each ( GROUPREPSECTIONS , function ( sec ) {
GROUPSTATS [ prefix ]. repSections . push ( prefix + sec );
});
_ . each ( GROUPREPREFS , function ( stat ) {
GROUPSTATS [ prefix ]. repStats . push ( prefix + stat );
});
}); I'm curious as to Why does the error show up in my API console, and not the developer console of my browser? My developer console shows no errors and has no problems loading the sheetworker script. Though the reference error doesn't affect my API scripts or (most?) of my sheetworker scripts, is it possible this buggy constant --- despite being totally unrelated to anything having to do with Projects (though it's declared right near some Project-related constants, they have absolutely no interaction I can think of in the script; I haven't even started implementing Projects for my Group character sheets) --- is crashing the interface that lets the API trigger sheetworker events? Can you think of any reason why this error is happening in the first place? I mean, the code seems simple enough.