const ACTORFOLDER = 'Summonables' swadeMBHelpers.runOnTargetOrSelectedTokens(main) async function main (tokens) { const token = tokens[0] const tokenList = token.name const folder = swadeMBHelpers.getActorFolderByPath(ACTORFOLDER) const actors = swadeMBHelpers.getActorsInFolder(folder) const menuOptions = { title: 'Summon Creature', defaultButton: 'cancel', options: {} } const menuData = { inputs: [ { type: 'header', label: 'Summon Creature' }, { type: 'info', label: `${tokenList} is summoning` }, { type: 'select', label: 'Ally to summon', options: Object.keys(actors).sort().map(k => { return { value: actors[k].id, html: k } }) }, { type: 'number', label: 'Number to spawn (+half base cost per)', options: 1 } ], buttons: [ { label: 'Apply', value: 'apply' }, { label: 'Apply with raise', value: 'raise' }, { label: 'Cancel', value: 'cancel' } ] } const { buttons, inputs } = await warpgate.menu(menuData, menuOptions) if (buttons && buttons !== 'cancel') { const summonData = { raise: (buttons === 'raise'), actorId: inputs[2], number: inputs[3] } summonData.actor = game.actors.get(summonData.actorId) summonData.actorName = summonData.actor.name summonData.icon = summonData.actor.token.img doWork(summonData, token) } } function doWork (summonData, token) { console.log(summonData, token) }