
UPDATE: Got it to work. Final install of the script is below for anyone else who is running Bar 1 as their HP bar. on('ready', () => { const HPBarNum = 1; const bar = `bar${HPBarNum}_value`; const max = `bar${HPBarNum}_max`; const constrainHPBarToMax = (obj) => { const hpMax = parseInt(obj.get(max),10); if(!isNaN(hpMax) && 'token' === obj.get('subtype') && !obj.get('isdrawing') ){ let hp = parseInt(obj.get(bar),10); let changes = {}; if(hp > hpMax) { hp = hpMax; changes[bar] = hp; changes.status_dead = false; changes.layer = "objects"; } else if(hp <= 0) { hp=0; changes[bar] = hp; changes.status_dead = true; changes.order = "tofront" changes.layer = "map"; } else { changes.status_dead = false; changes.layer = "objects"; } obj.set(changes); } }; on("change:token", constrainHPBarToMax); if('undefined' !== typeof TokenMod && TokenMod.ObserveTokenChange){ TokenMod.ObserveTokenChange(constrainHPBarToMax); } if('undefined' !== typeof ApplyDamage && ApplyDamage.registerObserver){ ApplyDamage.registerObserver('change',constrainHPBarToMax); } });