I'm also a longtime fan of the AutoButtons script and yes it was
broken because the output structure / labels have changed with the
latest update. I managed to get it to work but the fix is a bit hacky. Preferably we get a proper fix from Oosh. If
you're desperate or Oosh don't have the time to fix it, you can try my
hacky fix. It basically ignores the damage type parsing (which I was
already not using anyway) and goes straight for just the final damage
number. Snippet of where the change needs to be made. I tried uploading the full script but I think it's too long. const scanBeaconRollOutput = (sheet, msgContent) => { const beaconSheet = preset[sheet]?.beaconSheet; if (beaconSheet) { const templateName = msgContent.match(beaconSheet.templates.nameGroupRegex)?.[1] ?? ''; if (beaconSheet.templates.nameTriggerRegex.test(templateName)) { // Roll-template-patch: Skipping this as it doesn't work. Not needing the damage type anyway. //const header = msgContent.match(beaconSheet.templates.damageGroupRegex)?.[1] ?? ''; //if (beaconSheet.templates.damageTriggerRegex.test(header)) { // Instead we will check if the new damage group identifier exists. if (beaconSheet.templates.damageGroupRegex.test(msgContent)) { const damageResult = msgContent.match(beaconSheet.templates.damageResultGroupRegex)?.[1] ?? ''; return damageResult ? parseInt(damageResult) : null; } } } } // Make script do stuff checkInstall(); on('chat:message', handleInput); } /** * SHEET PRESET DATA */ // Experimental Beacon support const dndDamageTypes = ['custom', 'Acid', 'Bludgeoning', 'Cold', 'Fire', 'Force', 'Lightning', 'Necrotic', 'Piercing', 'Poison', 'Psychic', 'Radiant', 'Slashing', 'Thunder']; const beaconPreset = { dnd5e_2024: { sheet: ['dnd5e_2024'], templates: { nameGroupRegex: /^<rolltemplate\sclass="([\w-]+)/, nameTriggerRegex: /^dnd-2024/, // Roll-template-patch: Change to use the new exact damage identifier //damageGroupRegex: /class="header__subtitle">([^<]+)/, damageGroupRegex: /class="dnd-2024__result dnd-2024__result--Normal dnd-2024__result--damage/, damageTriggerRegex: new RegExp(dndDamageTypes.reduce((output, type, index) => { return`${output}${index === 0 ? `\(${type}|` : index === dndDamageTypes.length - 1 ? `${type}\)` : `${type}|`}`; }, ''), 'i'), damageResultGroupRegex: /data-result="(\d+)/, damageFields: ['damage'], critFields: ['crit'], upcastDamage: [], upcastCrit: [], }, defaultButtons: ['damage', 'damageHalf', 'healingFull'], } };