Ok, here we have a repeatable error. When you modify the STR-mod (strength modifier), it creates 3 rows of repeating fields. Sometimes the first row is outlined in red, sometimes not. The 2nd and 3rd are never outlined in red, but ALL are invalid. Here is the GIST Of our code: <a href="https://gist.github.com/plutosdad/b084fafe88f8eeb1" rel="nofollow">https://gist.github.com/plutosdad/b084fafe88f8eeb1</a>... (after saving the gist above to a campaign) Test: STR 1. Create new character. 2. verify it says .20 in version at upper right. 3. go to Attacks tab , verify there are no attacks (at the very bottom of the page) 4. go to Core tab, go to STR-base (or anything on the Strength line) and modify it , tab out of field to commit 5. go to Attacks tab, verifty there are 3 attacks.. 6. check console log for string: ERROR: ... invalid id: and view the id number. This is a number that is returned by getSectionIds. sometimes it is null, sometimes it is the name of a field the system is firing a change event on. (so there are 3, null, "attack-type", and "damage-ability" because those are the 2 fields it loops through getSectionIDs and attempts to update) test 2: DEX purpose: baseline 1. create new character 2. change DEX 3. note no new attacks test 3: DEX to Melee purpose: (change @{melee-ability} to @{DEX-mod} and watch how it affects repeating rows 1.create new character 2. go to Attacks tab 3. on Melee dropdown near top, change STR to DEX 4. go to Core 5. update DEX to a different value 6. go to Attacks tab, verify there are now TWO attacks, (Melee is the default, by assigning DEX to melee, we are triggering a change. Even if there are no rows, something is creating those rows) This happens because: (@{STR-mod} is default for @{melee-ability} and @{repeating_weapon_$X_damage-ability} and @{melee-ability} causes update to @{attk-melee} and @{attk-melee} is default for @{repeating_weapon_$X_attack-type} . So changing STR-mod causes cascade. but if no rows are in repeating_weapon, the sheet is just adding rows) But in the 3rd test, when we assign DEX-mod to melee-ability, then update DEX-mod, we cause a cascading change to repeating_weapon_attack-type, but NOT to repeating_weapon_damage-ability, so only 2 rows are created instead of 3. Particulars: 1. in every repeating_weapon there are two select dropdowns, the options values reference fields on the sheet. when we used autocalculated fields these were used as the value. But now that we use sheetworkers, these old values are kept for backward compatibility, plus, since the value is the reference of a field, we notice that it calls the onchange event for the select, within the context of a repeating item. Here are the important fields: the melee-ability select event calls handleDropdown() which updates melee-ability-mod. Every select is sent to either handledropdown(), handleRepeatingAttackDropdown(), or handleRepeatingDamageDropdown(). they all modify a field with the same attribute name as the select, but with a "-mod" at the end. <!-- core tab --> <input type="number" name="attr_STR" readonly="readonly" />
<input type="number" name="attr_STR-mod" readonly="readonly" />
<input type="number" name="attr_STR-base" /> <!-- USER ENTERS HERE -->
<input type="number" name="attr_DEX" readonly="readonly" />
<input type="number" name="attr_DEX-mod" readonly="readonly" />
<input type="number" name="attr_DEX-base" /> <!-- USER ENTERS HERE -->
<!-- attacks tab top box -->
<input type="number" name="attr_attk-melee" readonly="readonly" />
<select name="attr_melee-ability" >
<option value="0" >None</option>
<option value="@{STR-mod}" selected>•STR</option>
<option value="@{DEX-mod}">DEX</option>
<option value="@{CON-mod}">CON</option>
<option value="@{INT-mod}">INT</option>
<option value="@{WIS-mod}">WIS</option>
<option value="@{CHA-mod}">CHA</option>
</select>
<input type="number" name="attr_melee-ability" readonly="readonly" />
<!-- attacks tab, repeating_weapon at bottom of page --> <fieldset class="repeating_weapon"> <select name="attr_attack-type">
<option value="@{attk-melee}" selected >Melee</option>
<option value="@{attk-ranged}">Ranged</option>
<option value="@{CMB}">CMB</option>
</select>
<input type="number" name="attr_attack-type-mod" readonly="readonly" />
<select name="attr_damage-ability" >
<option value="0">None</option>
<option value="@{STR-mod}" selected>•STR</option> <!-- a lot more options but I simplified for this post -->
<option value="@{DEX-mod}">DEX</option>
<option value="@{CON-mod}">CON</option>
<option value="@{INT-mod}">INT</option>
<option value="@{WIS-mod}">WIS</option>
<option value="@{CHA-mod}">CHA</option>
</select>
<input type="number" name="attr_damage-ability-mod" readonly="readonly" /> <input type="hidden" name="attr_new_flag" value="0" /> <input type="number" name="attr_row_index" value="0" readonly="readonly" />
<input type="text" name="attr_row_id" value="" readonly="readonly" />
</fieldset>
2. similar dropdowns set Strength as the default attribute to use in Melee, resulting in a cascading change so that when Strength is modified then @{melee} is and so is each attack in the repeating_weapon As long as you have one valid row in repeating_weapon, it works. But if you don't , then the sheet creates 2 or 3 new rows (3 if you modify STR, 2 if you modify anything else assigned to Melee which is the default). this is because Melee is the default choice for repeating_weapon_attack_type, and STR is the default choice for repeating_weapon_damage-ability 3.recent changes: 3.a. defaults for @{repeating_weapon_$X_attack-type} was changed to @{attk-melee} and default for @{repeating_wewapon_$X_damage-ability} was changed to @{STR-mod} , to help users not have to keep picking the same fields. I think this is what started the addition of blank rows if no rows existed yet. Before the defaults were <option value="0" >None</option> we added the following in order to debug past repeating item problems: 3.b. "new_flag" attribute, so we know if it is new or not. If we receive a change to repeating_(whatever)_new_flag. We check this flag, if it is not set, then we know this is new ( except for the one change the user made, normally, since it cannot be fired unless the user changes something in the row). This check is made in the checkIsNewRow() function, which fires within the context of a repeating weapon ( on("change:repeating_weapon" )) 3.c. ID and Index, which we get from getSectionIDs. these are added to each repeating item if the new_flag is not set. This is done in the setRepeatingRowDefaultFields() function. 3.d. When we check for the new_flag and we are at a weapon, force write attributes for the dropdowns attack-type and damage-ability (it looks at the selected option in attack-type, and then writes the resultant value in attack-type-mod. Same for damage-ability and damage-ability-mod. This check (are we new and are we a weapon) is made in checkIsNewRow(), and it calls handleRepeatingAttackDropdown() and handleRepeatingDamageDropdown() 4. ALL of the functions in 3 call isBadRowId(). If the id is bad then write an error message, and stop processing that row, DO NOT UPDATE ANYTHING, even the index and ID Definition of bad; null / blank returned by getSectionIds, or the name of ID equal to name of the repeating section ("weapon" in this case) , or equal to the name of the field that is triggering the event: in our case it is "attack-type" and "damage-ability" so I have found 4 invalid IDs returned by getSectionIds.: SO, ... it is creating new rows , with ids of blank, attack-type, damage-ability Here is the log: My additions are: if the row begins with: CHRIS: I added this after taking the log to tell you what step I was on. TRACE: written at the beginning of a function that affects / is affected by the above scenarios DEBUG: other stuff to write to check values TRACE: EVENT: when on("change: .... ") fires, write the change detected to the log, before calling a function. Connected to session
Someone just connected.
It's us?
Render character editor
Do refresh link cache!
Refresh Journal List!
Search took 22ms
--- RENDER CHARACTIVE VIEW ----
CHRIS: CREATE NEW CHARACTER
CLICKED
Redoing charsheet html
238ms to end of html
Triggering for sheet:opened
TRACE: checkUpdate
Mixed Content: The page at '<a href="https://app.roll20dev.net/editor/" rel="nofollow">https://app.roll20dev.net/editor/</a>' was loaded over HTTPS, but requested an insecure image '<a href="http://imgsrv.roll20.net/?src=paizo.com/image/content/Logos/PathfinderRPGLogo_500.jpeg" rel="nofollow">http://imgsrv.roll20.net/?src=paizo.com/image/content/Logos/PathfinderRPGLogo_500.jpeg</a>'. This content should also be served over HTTPS.
DEBUG: checkUpdate Current Pathfinder sheet data version:0, Sheet code version:0.2
CHRIS: TONS OF LOGS REMOVED SINCE RECALC ALL IS CALLED AND VERSION UPDATED TO .20
Took 806ms
CHRIS: UPDATE STR-BASE FIELD
CHRIS: THIS IS MY LAST COMMENT THE REST OF LOG IS WHAT HAPPENS NEXT
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 36ms
Finding list of dirty attributes took until 37ms
Triggering for change:str-base
TRACE:updateAbility ability:STR
Triggering for change:str-base_max
Querytest took until 44ms
Set values took until 52ms
Took 62ms
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 14ms
Finding list of dirty attributes took until 20ms
Triggering for change:str
Triggering for change:str_max
Triggering for change:str-mod
Triggering for change:str-mod_max
Triggering for change:cmd-ability1
Triggering for change:melee-ability
TRACE: EVENT change:melee-ability
Triggering for change:cmb-ability
TRACE: EVENT change:cmb-ability
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:attack-show
Triggering for change:attack-roll
Triggering for change:enhance
Triggering for change:masterwork
Triggering for change:name
Triggering for change:attack
Triggering for change:attack-mod
Triggering for change:attack-type
Triggering for change:attack-type-mod
Triggering for change:attk-effect-total-copy
Triggering for change:total-attack
Triggering for change:crit-target
Triggering for change:crit-multiplier
Triggering for change:proficiency
Triggering for change:damage-dice-num
Triggering for change:damage-die
Triggering for change:damage
Triggering for change:damage-mod
Triggering for change:damage-ability
Triggering for change:damage-ability-max
Triggering for change:damage-ability-mod
Triggering for change:dmg-effect-total-copy
Triggering for change:dmg-mod-copy
Triggering for change:total-damage
Triggering for change:range
Triggering for change:type
Triggering for change:weight
Triggering for change:ammo
Triggering for change:notes
Triggering for change:iterative-attacks-show
Triggering for change:options-show
Triggering for change:macro-text-show
Triggering for change:ids-show
Triggering for change:toggle_iterative_attack2
Querytest took until 25ms
Triggering for change:iterative_attack2_value
Triggering for change:var_iterative_attack2_macro
Triggering for change:var_iterative_attack2
Triggering for change:toggle_iterative_attack3
Triggering for change:iterative_attack3_value
Triggering for change:var_iterative_attack3_macro
Triggering for change:var_iterative_attack3
Triggering for change:toggle_iterative_attack4
Triggering for change:iterative_attack4_value
Triggering for change:var_iterative_attack4_macro
Triggering for change:var_iterative_attack4
Triggering for change:toggle_iterative_attack5
Triggering for change:iterative_attack5_value
Triggering for change:var_iterative_attack5_macro
Triggering for change:var_iterative_attack5
Triggering for change:toggle_iterative_attack6
Triggering for change:iterative_attack6_value
Triggering for change:var_iterative_attack6_macro
Triggering for change:var_iterative_attack6
Triggering for change:toggle_iterative_attack7
Triggering for change:iterative_attack7_value
Triggering for change:var_iterative_attack7_macro
Triggering for change:var_iterative_attack7
Triggering for change:toggle_iterative_attack8
Triggering for change:iterative_attack8_value
Triggering for change:var_iterative_attack8_macro
Triggering for change:var_iterative_attack8
Triggering for change:iterative_attacks
Triggering for change:var_melee_notes
Triggering for change:var_ranged_notes
Triggering for change:var_cmb_notes
Triggering for change:var_none_notes
Triggering for change:var_attack_notes
Triggering for change:toggle_notes
Triggering for change:toggle_attack_notes
Triggering for change:macro_options
Triggering for change:macro-text
Triggering for change:new_flag
Triggering for change:row_index
Triggering for change:row_id
Triggering for change:attack-npc-roll
Triggering for change:climb-ability
Triggering for change:climb-ability-mod
Triggering for change:swim-ability
Triggering for change:swim-ability-mod
Triggering for change:cs-athletics-ability
Triggering for change:cs-athletics-ability-mod
Set values took until 73ms
Took 82ms
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 81ms
Finding list of dirty attributes took until 96ms
Triggering for change:cmd-str
Triggering for change:cmd-str_max
Triggering for change:melee-ability-mod
TRACE: EVENT change:melee-ability-mod
TRACE:updateAttack attype:melee
Triggering for change:melee-ability-mod_max
Triggering for change:cmb-ability-mod
TRACE: EVENT change:cmb-ability-mod
TRACE:updateAttack attype:CMB
Triggering for change:cmb-ability-mod_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:attack-type-mod
TRACE: EVENT change:repeating_weapon:attack-type-mod
TRACE:updateRepeatingWeaponAttack id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
Triggering for change:repeating_weapon:attack-type-mod_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:damage-ability-mod
TRACE: EVENT change:repeating_weapon:damage-ability-mod
TRACE:updateRepeatingWeaponDamage id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
Triggering for change:repeating_weapon:damage-ability-mod_max
Triggering for change:climb-ability-mod
Triggering for change:climb-ability-mod_max
Triggering for change:swim-ability-mod
Querytest took until 103ms
Triggering for change:swim-ability-mod_max
Triggering for change:cs-athletics-ability-mod
Triggering for change:cs-athletics-ability-mod_max
Triggering for change:attack-show
Triggering for change:attack-roll
Triggering for change:enhance
Triggering for change:masterwork
Triggering for change:name
Triggering for change:attack
Triggering for change:attack-mod
Triggering for change:attack-type
Triggering for change:attack-type-mod
Triggering for change:attk-effect-total-copy
Triggering for change:total-attack
Triggering for change:crit-target
Triggering for change:crit-multiplier
Triggering for change:proficiency
Triggering for change:damage-dice-num
Triggering for change:damage-die
Triggering for change:damage
Triggering for change:damage-mod
Triggering for change:damage-ability
Triggering for change:damage-ability-max
Triggering for change:damage-ability-mod
Triggering for change:dmg-effect-total-copy
Triggering for change:dmg-mod-copy
Triggering for change:total-damage
Triggering for change:range
Triggering for change:type
Triggering for change:weight
Triggering for change:ammo
Triggering for change:notes
Triggering for change:iterative-attacks-show
Triggering for change:options-show
Triggering for change:macro-text-show
Triggering for change:ids-show
Triggering for change:toggle_iterative_attack2
Triggering for change:iterative_attack2_value
Triggering for change:var_iterative_attack2_macro
Triggering for change:var_iterative_attack2
Triggering for change:toggle_iterative_attack3
Triggering for change:iterative_attack3_value
Triggering for change:var_iterative_attack3_macro
Triggering for change:var_iterative_attack3
Triggering for change:toggle_iterative_attack4
Triggering for change:iterative_attack4_value
Triggering for change:var_iterative_attack4_macro
Triggering for change:var_iterative_attack4
Triggering for change:toggle_iterative_attack5
Triggering for change:iterative_attack5_value
Triggering for change:var_iterative_attack5_macro
Triggering for change:var_iterative_attack5
Triggering for change:toggle_iterative_attack6
Triggering for change:iterative_attack6_value
Triggering for change:var_iterative_attack6_macro
Triggering for change:var_iterative_attack6
Triggering for change:toggle_iterative_attack7
Triggering for change:iterative_attack7_value
Triggering for change:var_iterative_attack7_macro
Triggering for change:var_iterative_attack7
Triggering for change:toggle_iterative_attack8
Triggering for change:iterative_attack8_value
Triggering for change:var_iterative_attack8_macro
Triggering for change:var_iterative_attack8
Triggering for change:iterative_attacks
Triggering for change:var_melee_notes
Triggering for change:var_ranged_notes
Triggering for change:var_cmb_notes
Triggering for change:var_none_notes
Triggering for change:var_attack_notes
Triggering for change:toggle_notes
Triggering for change:toggle_attack_notes
Triggering for change:macro_options
Triggering for change:macro-text
Triggering for change:new_flag
Triggering for change:row_index
Triggering for change:row_id
Triggering for change:attack-npc-roll
Set values took until 212ms
Took 219ms
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 16ms
Finding list of dirty attributes took until 43ms
Triggering for change:cmd
Triggering for change:cmd_max
Triggering for change:ff-cmd
Triggering for change:ff-cmd_max
Triggering for change:attk-melee
Triggering for change:attk-melee_max
Triggering for change:cmb
TRACE: EVENT change:CMB
Triggering for change:cmb_max
Triggering for change:climb
Triggering for change:climb_max
Triggering for change:swim
Triggering for change:swim_max
Triggering for change:cs-athletics
Triggering for change:cs-athletics_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:total-attack
Triggering for change:repeating_weapon:total-attack_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Querytest took until 47ms
Triggering for change:repeating_weapon:total-damage
Triggering for change:repeating_weapon:total-damage_max
Triggering for change:repeating_weapon:damage-ability-mod
TRACE: EVENT change:repeating_weapon:damage-ability-mod
TRACE:updateRepeatingWeaponDamage id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
Triggering for change:repeating_weapon:damage-ability-mod_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:attack-show
Triggering for change:attack-roll
Triggering for change:enhance
Triggering for change:masterwork
Triggering for change:name
Triggering for change:attack
Triggering for change:attack-mod
Triggering for change:attack-type
Triggering for change:attack-type-mod
Triggering for change:attk-effect-total-copy
Triggering for change:total-attack
Triggering for change:crit-target
Triggering for change:crit-multiplier
Triggering for change:proficiency
Triggering for change:damage-dice-num
Triggering for change:damage-die
Triggering for change:damage
Triggering for change:damage-mod
Triggering for change:damage-ability
Triggering for change:damage-ability-max
Triggering for change:damage-ability-mod
Triggering for change:dmg-effect-total-copy
Triggering for change:dmg-mod-copy
Triggering for change:total-damage
Triggering for change:range
Triggering for change:type
Triggering for change:weight
Triggering for change:ammo
Triggering for change:notes
Triggering for change:iterative-attacks-show
Triggering for change:options-show
Triggering for change:macro-text-show
Triggering for change:ids-show
Triggering for change:toggle_iterative_attack2
Triggering for change:iterative_attack2_value
Triggering for change:var_iterative_attack2_macro
Triggering for change:var_iterative_attack2
Triggering for change:toggle_iterative_attack3
Triggering for change:iterative_attack3_value
Triggering for change:var_iterative_attack3_macro
Triggering for change:var_iterative_attack3
Triggering for change:toggle_iterative_attack4
Triggering for change:iterative_attack4_value
Triggering for change:var_iterative_attack4_macro
Triggering for change:var_iterative_attack4
Triggering for change:toggle_iterative_attack5
Triggering for change:iterative_attack5_value
Triggering for change:var_iterative_attack5_macro
Triggering for change:var_iterative_attack5
Triggering for change:toggle_iterative_attack6
Triggering for change:iterative_attack6_value
Triggering for change:var_iterative_attack6_macro
Triggering for change:var_iterative_attack6
Triggering for change:toggle_iterative_attack7
Triggering for change:iterative_attack7_value
Triggering for change:var_iterative_attack7_macro
Triggering for change:var_iterative_attack7
Triggering for change:toggle_iterative_attack8
Triggering for change:iterative_attack8_value
Triggering for change:var_iterative_attack8_macro
Triggering for change:var_iterative_attack8
Triggering for change:iterative_attacks
Triggering for change:var_melee_notes
Triggering for change:var_ranged_notes
Triggering for change:var_cmb_notes
Triggering for change:var_none_notes
Triggering for change:var_attack_notes
Triggering for change:toggle_notes
Triggering for change:toggle_attack_notes
Triggering for change:macro_options
Triggering for change:macro-text
Triggering for change:new_flag
Triggering for change:row_index
Triggering for change:row_id
Triggering for change:attack-npc-roll
Triggering for change:climb-macro
Triggering for change:swim-macro
Triggering for change:cs-athletics-macro
Set values took until 169ms
Took 174ms
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 55ms
Finding list of dirty attributes took until 69ms
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:total-damage
Triggering for change:repeating_weapon:total-damage_max
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:damage-ability-mod
TRACE: EVENT change:repeating_weapon:damage-ability-mod
TRACE:updateRepeatingWeaponDamage id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
Triggering for change:repeating_weapon:damage-ability-mod_max
Triggering for change:attack-show
Triggering for change:attack-roll
Triggering for change:enhance
Triggering for change:masterwork
Triggering for change:name
Triggering for change:attack
Triggering for change:attack-mod
Triggering for change:attack-type
Triggering for change:attack-type-mod
Triggering for change:attk-effect-total-copy
Triggering for change:total-attack
Triggering for change:crit-target
Triggering for change:crit-multiplier
Triggering for change:proficiency
Triggering for change:damage-dice-num
Triggering for change:damage-die
Triggering for change:damage
Triggering for change:damage-mod
Triggering for change:damage-ability
Triggering for change:damage-ability-max
Triggering for change:damage-ability-mod
Triggering for change:dmg-effect-total-copy
Triggering for change:dmg-mod-copy
Triggering for change:total-damage
Triggering for change:range
Triggering for change:type
Triggering for change:weight
Triggering for change:ammo
Triggering for change:notes
Triggering for change:iterative-attacks-show
Triggering for change:options-show
Triggering for change:macro-text-show
Triggering for change:ids-show
Triggering for change:toggle_iterative_attack2
Triggering for change:iterative_attack2_value
Triggering for change:var_iterative_attack2_macro
Triggering for change:var_iterative_attack2
Triggering for change:toggle_iterative_attack3
Triggering for change:iterative_attack3_value
Triggering for change:var_iterative_attack3_macro
Querytest took until 76ms
Triggering for change:var_iterative_attack3
Triggering for change:toggle_iterative_attack4
Triggering for change:iterative_attack4_value
Triggering for change:var_iterative_attack4_macro
Triggering for change:var_iterative_attack4
Triggering for change:toggle_iterative_attack5
Triggering for change:iterative_attack5_value
Triggering for change:var_iterative_attack5_macro
Triggering for change:var_iterative_attack5
Triggering for change:toggle_iterative_attack6
Triggering for change:iterative_attack6_value
Triggering for change:var_iterative_attack6_macro
Triggering for change:var_iterative_attack6
Triggering for change:toggle_iterative_attack7
Triggering for change:iterative_attack7_value
Triggering for change:var_iterative_attack7_macro
Triggering for change:var_iterative_attack7
Triggering for change:toggle_iterative_attack8
Triggering for change:iterative_attack8_value
Triggering for change:var_iterative_attack8_macro
Triggering for change:var_iterative_attack8
Triggering for change:iterative_attacks
Triggering for change:var_melee_notes
Triggering for change:var_ranged_notes
Triggering for change:var_cmb_notes
Triggering for change:var_none_notes
Triggering for change:var_attack_notes
Triggering for change:toggle_notes
Triggering for change:toggle_attack_notes
Triggering for change:macro_options
Triggering for change:macro-text
Triggering for change:new_flag
Triggering for change:row_index
Triggering for change:row_id
Triggering for change:attack-npc-roll
Set values took until 230ms
Took 243ms
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:attack-type, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:attack-type
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:attack-type, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:attack-type
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 13ms
Finding list of dirty attributes took until 27ms
Triggering for change:repeating_weapon
TRACE: At checkIsNewRow for section weapon
Triggering for change:repeating_weapon:total-damage
Triggering for change:repeating_weapon:total-damage_max
Triggering for change:attack-show
Triggering for change:attack-roll
Triggering for change:enhance
Triggering for change:masterwork
Triggering for change:name
Triggering for change:attack
Triggering for change:attack-mod
Triggering for change:attack-type
Triggering for change:attack-type-mod
Triggering for change:attk-effect-total-copy
Triggering for change:total-attack
Triggering for change:crit-target
Triggering for change:crit-multiplier
Triggering for change:proficiency
Triggering for change:damage-dice-num
Triggering for change:damage-die
Triggering for change:damage
Triggering for change:damage-mod
Triggering for change:damage-ability
Triggering for change:damage-ability-max
Triggering for change:damage-ability-mod
Triggering for change:dmg-effect-total-copy
Triggering for change:dmg-mod-copy
Triggering for change:total-damage
Triggering for change:range
Triggering for change:type
Triggering for change:weight
Triggering for change:ammo
Triggering for change:notes
Triggering for change:iterative-attacks-show
Triggering for change:options-show
Triggering for change:macro-text-show
Triggering for change:ids-show
Triggering for change:toggle_iterative_attack2
Triggering for change:iterative_attack2_value
Triggering for change:var_iterative_attack2_macro
Triggering for change:var_iterative_attack2
Triggering for change:toggle_iterative_attack3
Triggering for change:iterative_attack3_value
Triggering for change:var_iterative_attack3_macro
Triggering for change:var_iterative_attack3
Triggering for change:toggle_iterative_attack4
Triggering for change:iterative_attack4_value
Triggering for change:var_iterative_attack4_macro
Triggering for change:var_iterative_attack4
Triggering for change:toggle_iterative_attack5
Triggering for change:iterative_attack5_value
Triggering for change:var_iterative_attack5_macro
Triggering for change:var_iterative_attack5
Triggering for change:toggle_iterative_attack6
Triggering for change:iterative_attack6_value
Triggering for change:var_iterative_attack6_macro
Triggering for change:var_iterative_attack6
Triggering for change:toggle_iterative_attack7
Triggering for change:iterative_attack7_value
Triggering for change:var_iterative_attack7_macro
Triggering for change:var_iterative_attack7
Triggering for change:toggle_iterative_attack8
Triggering for change:iterative_attack8_value
Triggering for change:var_iterative_attack8_macro
Triggering for change:var_iterative_attack8
Triggering for change:iterative_attacks
Triggering for change:var_melee_notes
Triggering for change:var_ranged_notes
Triggering for change:var_cmb_notes
Triggering for change:var_none_notes
Triggering for change:var_attack_notes
Triggering for change:toggle_notes
Triggering for change:toggle_attack_notes
Triggering for change:macro_options
Triggering for change:macro-text
Triggering for change:new_flag
Triggering for change:row_index
Triggering for change:row_id
Triggering for change:attack-npc-roll
Querytest took until 42ms
Set values took until 218ms
Took 223ms
TRACE:handleRepeatingRowOrdering section:weapon
DEBUG: this is a NEW REPEATING_WEAPON set attack and damage dropdowns
TRACE:handleRepeatingAttackDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE:handleRepeatingDamageDropdown id:undefined
TRACE: isBadRowId section:weapon, id:undefined, null ok?:true
DEBUG: GOOD ID:undefined for section weapon
TRACE: isBadRowId section:weapon, id:, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:
TRACE: isBadRowId section:weapon, id:damage-ability, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:damage-ability
TRACE: isBadRowId section:weapon, id:attack-type, null ok?:false
ERROR: handleRepeatingRowOrdering invalid id:attack-type
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 16ms
Finding list of dirty attributes took until 16ms
Triggering for change:str-enhance
TRACE:updateAbility ability:STR
Triggering for change:str-enhance_max
Querytest took until 20ms
Set values took until 30ms
Took 43ms
CLICKED
Updating character sheet values
Really updating character sheet values
Setting up repeating sections took until 23ms
Finding list of dirty attributes took until 23ms
Triggering for change:tab
Triggering for change:tab_max
Querytest took until 26ms
Set values took until 40ms
Took 51ms