I think im starting to understand so something more like this? on('ready', () => { 'use strict'; log('Vital-Casting (Sterling Burrow Only) Ready'); /* ========================= CONFIG ========================= */ const CHARACTER_NAME = 'Sterling Burrow'; /* ========================= DICE TABLES ========================= */ const DAMAGE_TABLE = { cantrip: '1d4', 1: '2d4', 2: '3d4', 3: '4d4', 4: '5d4', 5: '6d4', 6: '7d4' }; const HEAL_TABLE = { 5: '1d4+1', 8: '1d4+3', 11: '2d4+5', 13: '2d4+7', 15: '3d4+9' }; /* ========================= CHAT HANDLER ========================= */ on('chat:message', msg => { if (msg.type !== 'api') return; if (!msg.content.startsWith('!vital-casting')) return; const [, effect, level] = msg.content.split(/\s+/); if (!['damage', 'heal'].includes(effect)) { sendChat('Vital-Casting', '/w gm Invalid effect. Use "damage" or "heal".'); return; } const character = findObjs({ _type: 'character', name: CHARACTER_NAME })[0]; if (!character) { sendChat('Vital-Casting', `/w gm Character "${CHARACTER_NAME}" not found.`); return; } const hp = findObjs({ _type: 'attribute', characterid: character.id, name: 'hp' })[0]; const hpMax = findObjs({ _type: 'attribute', characterid: character.id, name: 'hp_max' })[0]; if (!hp || !hpMax) { sendChat('Vital-Casting', '/w gm HP attributes not found.'); return; } const formula = effect === 'damage' ? DAMAGE_TABLE[level] : HEAL_TABLE[level]; if (!formula) { sendChat( 'Vital-Casting', `/w gm Invalid level "${level}" for ${effect}.` ); return; } sendChat('Vital-Casting', `/roll ${formula}`, rolls => { const rollData = JSON.parse(rolls[0].content); const amount = rollData.total; let currentHP = parseInt(hp.get('current'), 10); const maxHP = parseInt(hpMax.get('current'), 10); if (effect === 'damage') { currentHP = Math.max(0, currentHP - amount); } else { currentHP = Math.min(maxHP, currentHP + amount); } hp.set('current', currentHP); sendChat( character.get('name'), [ '&{template:default}', '{{name=Vital Casting}}', `{{Effect=${effect === 'damage' ? 'Damage Taken' : 'Healing Received'}}}`, `{{Roll=${formula}}}`, `{{Result=${amount}}}`, `{{HP=${currentHP} / ${maxHP}}}` ].join('\n') ); }); }); });