Macro cookbook
This page is a collection of ready-to-paste macros for any game, for 5e and 5.5e, and for Ashfall, each with what it does, its text and how to change it for your table.
Every recipe here has been checked against RollQuest's own macro code: it reads in the Text view, saves, and runs, with every card, pop-up and button working. Copy one into the editor's Text view, give it a name and a chat shortcut, and it's ready. Each recipe says what it does, shows its text, says what you see when it runs, and suggests how to adapt it. If a line in a recipe is new to you, The macro language (Text view) explains the syntax, and Every step, one by one every step.
Plan: running macros is on every plan. Building one from a recipe needs Pro. Putting it into a game, for the whole table to run, needs the Game Master (GM) to be on Starter.
Use a recipe
- In a game, click Macros on the tool rail, the column of icons down the right edge, then New macro. The editor opens with a Roll and a Chat card already in it.
- Type the recipe's name in Name, and its shortcut, without the
#, in Chat shortcut. - Under Belongs to, choose Me (any game), or one of your characters. The GM can press Apply damage on the cards either kind posts.
- Click Text at the top right of the editor.
- Select everything in the box, delete it, and paste the recipe. The line under the box says Reads as 3 steps, or however many the recipe has, in green.
- Click Test run to try it: it asks its questions and shows the cards it would post, but posts nothing.
- Click Save.
Then run it from the Macros panel, put it on your Shortcut Bar, or type its #shortcut in chat. See Share, run and fix macros.
Recipes that read the sheet use these IDs: @{STR_MOD} and @{PROF} are the 5e and 5.5e Strength modifier and proficiency bonus, and @{MELEE} is Ashfall's Melee. Every ID is listed on Dice, values and outcomes. Where a recipe says PASTE_, put in an ID of your own.
Any game
These work in any game system, or in a game with no system.
Roll 1d20 + 5 and post it
Shortcut #d20plus5. The smallest useful macro: one roll, one card.
[[1d20 + 5]] label="Check" -> roll
&{card:check} "Check" show=roll
end
You see a Check card in chat with the d20, the 5 and the total.
Adapt it: change 1d20 + 5 to any dice, such as 2d6 + 3. Change label="Check" and "Check" to name it. Add a pop-up after it, as in the next recipe, to see the result on screen too.
A private pop-up, nothing in chat
Shortcut #d6. Rolls a d6 that only you see.
[[1d6]] label="d6" -> d6
&{notify} "Rolled a d6" show=d6
end
You see a pop-up at the top right, Rolled a d6, with the roll. Nothing goes to chat, and nobody else sees it.
Adapt it: add to=gm after show=d6 to show it to the GM as well, or to=everyone for the table.
A secret roll: ask a bonus, only you and the GM see it
Shortcut #hidden. Asks for a bonus, rolls a d20 plus that bonus, and keeps it between you and the GM.
?{Bonus?} -> bonus
[[1d20 + {bonus}]] label="Hidden check" -> check
&{card:check} "Hidden check" show=check to=gm
line "Bonus" "{bonus}"
end
/w gm Hidden check: {check.total} (bonus {bonus})
A prompt asks Bonus?: type a whole number, such as 3, and press Enter. A Hidden check card posts that only you and the GM see, with a Bonus line, and the GM gets a whisper with the total.
Adapt it: type the number without a plus sign: +3 stops the roll. Change to=gm to to=self to keep the card to yourself and the GM, which looks the same to the GM but says Only you and the GM see this.
Run another macro by its shortcut
Shortcut #start. Whispers the GM, then runs your #init macro, such as the ready-made Roll initiative.
/w gm Ready for battle.
#init
The GM gets Ready for battle., then your Initiative card posts.
Adapt it: put any shortcut after #. The other macro runs with its own values: it can't read this macro's results, and this one can't read its results. A macro that runs a macro that runs a macro is as deep as it goes.
A sound, a pause, then a whisper
Shortcut #storm. Plays a sound for everyone, waits 2 seconds, then whispers the GM.
!sound {"soundId":"PASTE_SOUND_ID","label":"Thunder"}
!wait 2
/w gm The storm has started.
Everyone hears the sound; two seconds later the GM gets the whisper.
Adapt it: replace PASTE_SOUND_ID with the ID of a sound in the game's Sound Library. The app doesn't show sound IDs yet, so a held action is the easier way to play a sound on cue. Change !wait 2 to any number of seconds from 0.1 to 60.
GM: Ambush!
Shortcut #ambush. For the GM: switches the scene, starts the battle music, waits, rolls the ambushers on a table only the GM sees, and whispers a reminder.
!scene {"sceneId":"PASTE_SCENE_ID","label":"Cliffs"}
!music {"musicId":"PASTE_TRACK_ID","label":"Battle"}
!wait 2
!table PASTE_TABLE_ID "Ambushers" to=gm
/w gm Ambush sprung. Roll initiative!
Everyone moves to the new scene and hears the music; two seconds later the table result appears for the GM alone.
Adapt it: replace each PASTE_ with your own scene, track and table IDs. Only the table has a picker: in the Steps view, choose it from Table. Run by a player, the scene and music steps are skipped, with a note saying so.
GM: stop the music and change phase
Shortcut #nightfall. For the GM: stops the music and swaps the scene on the board to its night phase.
!stopMusic
!phase {"sceneId":"PASTE_SCENE_ID","phaseId":"PASTE_PHASE_ID","label":"Night"}
The music stops, and the map changes to the phase for everyone.
Adapt it: the phase must belong to the scene that's on. See Phases.
5e and 5.5e
These read a character sheet for 5e (the 2014 rules) or 5.5e (the 2024 rules). A GM who runs one from the panel reads the most recently updated character in the game: see Share, run and fix macros.
Strength check from the sheet (5e)
Shortcut #str. Rolls a 5e (2014) Strength check with the sheet's own bonus, posts it and pops it up.
[[1d20 + @{STR_CHECK}]] label="Strength check" -> str
&{card:check} "Strength check" show=str
end
&{notify} "Strength check" show=str
end
You see a Strength check card in chat and the same roll in a pop-up. With no character in the game, it rolls 1d20 + 0 and a note says You have no character in this game, so every sheet value counted as 0.
Adapt it: STR_CHECK is in 5e only: in a 5.5e game, use @{STR_MOD} in its place. For another ability, use DEX_CHECK, CON_CHECK, INT_CHECK, WIS_CHECK or CHA_CHECK in 5e.
Choose advantage when you press it
Shortcut #stealth. Asks how to roll, then rolls Stealth that way.
?{Roll Stealth with?|Normal=normal|Advantage=advantage|Disadvantage=disadvantage} -> mode
[[1d20 + @{STE}]] label="Stealth" mode={mode} -> stealth
&{card:check} "Stealth" show=stealth
end
Pick Advantage and two d20 land; the card keeps the higher and strikes out the other.
Adapt it: swap @{STE} for another skill, such as @{PERC} (Perception), @{ATH} (Athletics) or @{ACR} (Acrobatics). The answers' values must be the roll modes normal, advantage and disadvantage, in capitals or not.
Check against a fixed number
Shortcut #perception. Rolls Perception against 15 and posts one of two cards.
[[1d20 + @{PERC}]] label="Perception" vs=15 -> look
if {look.outcome} = hit
&{card:check} "Perception: you spot it" show=look
end
else
&{card:miss} "Perception: nothing" show=look
end
/w me You rolled {look.total} against 15.
end
At 15 or more, Perception: you spot it. Below, Perception: nothing, and a whisper to you with the total.
Adapt it: change vs=15 to the number to beat. To ask for it each time, add ?{DC?} -> dc as the first line, write vs={dc}, and change against 15 in the whisper to against {dc}.
Either of two conditions
Shortcut #notice. A natural 20, or a total of 20 or more, posts the big card.
[[1d20 + @{PERC}]] label="Perception" -> look
if {look.natural} = 20 or {look.total} >= 20
&{card:check} "You notice everything" show=look
end
else
&{card:default} "Perception" show=look
end
end
Adapt it: or means either will do; and means both must be true. One if can't mix them.
Work a number out first
Shortcut #helped. A comparison can't add, so this works the total plus 2 out in a roll first, then compares that.
[[1d20 + @{PERC}]] label="Perception" -> look
[[{look.total} + 2]] label="With help" -> sum
if {sum} >= 15
&{card:check} "Perception with help: you spot it" show=look
end
else
&{card:miss} "Perception with help: nothing" show=look
end
end
A roll of plain numbers, [[{look.total} + 2]], throws no dice: it saves the sum as sum for the if to read.
A card only you and the GM see
Shortcut #quiet. A Stealth roll the other players don't see.
[[1d20 + @{STE}]] label="Stealth" -> sneak
&{card:check} "Stealth" show=sneak to=self
end
The card says Only you and the GM see this. For a roll only you see, use a pop-up instead, as in A private pop-up, nothing in chat.
Attack against the target's AC, with Roll damage and Apply damage
Shortcut #longsword. Asks how to roll, picks a target, attacks its AC, and on a hit posts a card with Roll damage for the player and Apply damage for the GM. Every line is explained on Questions, cards and buttons.
?{Attack with?|Normal=normal|Advantage=advantage|Disadvantage=disadvantage} -> mode
@target(count=1, stat=defense) -> target
[[1d20 + @{STR_MOD} + @{PROF}]] label="Longsword" mode={mode} vs={target.stat} crit=20 -> attack
if {attack.outcome} in (hit, crit)
&{card:attack} "Longsword" show=attack,target
button "Roll damage" id=roll-damage
[[1d8 + @{STR_MOD}]] label="Damage" type=slashing -> damage
&{notify} "Longsword damage" show=damage
end
end
apply "Apply damage" id=apply-damage amount={damage.total} type=slashing
end
&{notify} "Longsword" show=attack,target buttons=card
end
else
&{card:miss} "Longsword misses" show=attack,target
end
&{notify} "Longsword" show=attack,target
end
end
On a hit or a natural 20: a Longsword card with Roll damage. Press it and the damage joins the card; the GM presses Apply damage and the card says Applied 9 slashing to Goblin 2. On a miss: Longsword misses.
Against a token with no AC, only a natural 20 hits: everything else takes the miss path, because there's nothing to compare with.
Adapt it: for a Dexterity weapon, use @{DEX_MOD} in both rolls. For another weapon, change 1d8 and slashing. For a wider critical range, change crit=20 to crit=19. To use whatever weapon is equipped, see the next recipe.
The ready-made Weapon attack
Shortcut #attack. The ready-made macro: it reads the equipped weapon, so one macro works for any weapon, and plays the weapon's swing at the target. Add it from the Macros panel, or paste it.
?{Attack with?|Normal=normal|Advantage=advantage|Disadvantage=disadvantage} -> mode
@weapon "Weapon" -> weapon
@target(count=1, stat=defense) -> target
[[{weapon.attack}]] label="Attack" mode={mode} vs={target.stat} crit=20 -> attack
!swing weapon target=target outcome=attack
if {attack.outcome} in (hit, crit)
&{card:attack} "{weapon.name} attack" show=attack,target
button "Roll damage" id=roll-damage
[[{weapon.damage}]] label="Damage" type={weapon.type} -> damage
&{notify} "{weapon.name} damage" show=damage
end
end
apply "Apply damage" id=apply-damage amount={damage.total} type={weapon.type}
end
&{notify} "{weapon.name}" show=attack,target buttons=card
end
else
&{card:miss} "{weapon.name} misses" show=attack,target
end
&{notify} "{weapon.name}" show=attack,target
end
end
With a longsword equipped, the attack rolls 1d20 + 5 and the damage 1d8 + 3 slashing, from the sheet, and the sword swings at the target on the board.
Adapt it: the swing needs Spell FX on the GM's Pro plan; without it the macro runs without the swing. See Ready-made macros.
Area damage to up to three targets
Shortcut #fireball. Rolls 8d6 fire and offers the GM one button to apply it to every target.
@target(count=3) -> targets
[[8d6]] label="Fireball" type=fire -> burn
&{card:attack} "Fireball" show=burn,targets
line "Save" "DEX DC @{SPELL_SAVE_DC}, half on a success"
apply "Apply full damage" id=apply-full amount={burn.total} type=fire target=targets
end
&{notify} "Fireball" show=burn,targets buttons=card
end
The card shows the damage, the targets and the save, and Apply full damage applies the same amount to all three: Applied 27 fire to Goblin 1, Goblin 2, Goblin 3.
Adapt it: a macro can't roll each target's save. The GM applies half damage to those who saved from their tokens instead. Change count=3 for more or fewer targets, up to 10.
Healing Word
Shortcut #heal. Rolls healing and posts it for the GM, who heals the token by that much. Apply damage can't heal (an amount below zero is refused), so the card says what to do instead.
@target(count=1, selected=no) -> target
[[1d4 + @{SPELL_ABIL_MOD}]] label="Healing Word" -> heal
&{card:default} "Healing Word on {target.name}" show=heal,target
line "To do" "The GM heals {target.name} by {heal.total} from the token"
end
The card says Healing Word on Goblin 2 (your target's name), with the roll, the target and The GM heals Goblin 2 by 5 from the token. The GM then heals the token: see Damage and healing.
Adapt it: selected=no always asks who to heal, even with a token selected. Change 1d4 to the spell's dice.
Ashfall
These read an Ashfall character sheet, with its eight characteristics and 42 skills (see Dice, values and outcomes). Each is explained on Macros for Ashfall. For an attack with whatever weapon is equipped, add the ready-made Weapon strike: see Ready-made macros.
Melee strike
Shortcut #strike. The ready-made macro: a d100 under Melee, with a success or failure card and pop-up.
[[1d100]] label="Melee strike" vs=@{MELEE} beat=under -> check
if {check.outcome} = hit
&{card:check} "Melee strike: success" show=check
end
&{notify} "Melee strike: success" show=check
end
else
&{card:miss} "Melee strike: failure" show=check
end
&{notify} "Melee strike: failure" show=check
end
end
Adapt it: for Dodge or Sanity, add the ready-made Dodge and Steady your nerves. For another skill, swap @{MELEE} and the titles.
A test with a difficulty
Shortcut #sneak. Asks how hard the test is, and moves the roll by that much.
?{How hard?|Easy (+20)=20|Normal=0|Hard (-20)=-20|Very hard (-40)=-40} -> diff
[[1d100 - {diff}]] label="Stealth" vs=@{STEALTH} beat=under -> check
if {check.outcome} = hit
&{card:check} "Stealth: success" show=check
line "Difficulty" "{diff}"
end
else
&{card:miss} "Stealth: failure" show=check
line "Difficulty" "{diff}"
end
end
On Hard (-20), the card shows the roll plus 20, such as 102 for an 82, against Stealth.
Adapt it: swap @{STEALTH} for any skill. Add or change answers: the value after = is the modifier.
Fortune and Misfortune
Shortcut #dodge-luck. Fortune is the roll mode advantage, and Misfortune disadvantage: on a roll-under roll, advantage keeps the lower d100.
?{Roll with?|Normal=normal|Fortune (keep the lower)=advantage|Misfortune (keep the higher)=disadvantage} -> luck
[[1d100]] label="Dodge" mode={luck} vs=@{DODGE} beat=under -> check
if {check.outcome} = hit
&{card:check} "Dodge: success" show=check
end
else
&{card:miss} "Dodge: failure" show=check
end
end
&{notify} "Dodge" show=check
end
Pick Fortune and two d100s land; the card keeps the lower, strikes out the other, and prints advantage, the mode the macro used. With a Dodge of 40, a normal roll passes 40 times in 100, and Fortune about 64.
Adapt it: keep the values as they are; change only the labels and the skill.
Triumph and Disaster
Shortcut #strike-band. Ashfall names a natural 1 a Triumph, and a natural 100, or 96 and up when the skill is under 50, a Disaster. This posts those, and success or failure otherwise.
[[1d100]] label="Melee" vs=@{MELEE} beat=under -> check
if {check.natural} = 1
&{card:check} "Melee: Triumph" show=check
end
else
if {check.natural} = 100
&{card:miss} "Melee: Disaster" show=check
end
else
if {check.natural} >= 96 and @{MELEE} < 50
&{card:miss} "Melee: Disaster" show=check
end
else
if {check.outcome} = hit
&{card:check} "Melee: success" show=check
end
else
&{card:miss} "Melee: failure" show=check
end
end
end
end
end
&{notify} "Melee" show=check
end
Adapt it: swap @{MELEE} (in both places) and the titles for any skill. Ashfall's Sharp and Solid, a pass at or under a fifth or a half of the skill, can't be built: a macro can't divide. The sheet's own tests name every band.
Strike and wound
Shortcut #cleave. A Rust Cleaver attack: a d100 under Melee, a Roll damage button for the Cleaver's 1d10 plus your Heft, and Apply damage as cutting, which Armour soaks before it adds to Wounds.
@target(count=1, stat=armour) -> target
[[1d100]] label="Melee strike" vs=@{MELEE} beat=under -> attack
if {attack.outcome} = hit
&{card:attack} "Strike hits {target.name}" show=attack,target
button "Roll damage" id=roll-damage
[[1d10 + @{HEFT_DICE}d@{HEFT_SIDES} + @{HEFT_FLAT}]] label="Damage" type=cutting -> damage
end
apply "Apply damage" id=apply-damage amount={damage.total} type=cutting
end
&{notify} "Melee strike" show=attack,target buttons=card
end
else
&{card:miss} "Strike misses {target.name}" show=attack,target
end
&{notify} "Melee strike" show=attack,target
end
end
On a hit the card offers Roll damage, and the GM's Apply damage says Applied 7 cutting to Drift-walker: Armour comes off that afterwards. @{HEFT_DICE}d@{HEFT_SIDES} + @{HEFT_FLAT} is your Heft from the sheet: for a character with no Heft dice and no modifier it adds nothing, and with one d4 and a modifier of -1 the damage rolls a d10 and a d4, less 1.
Adapt it: for an Iron Maul, use 2d6 in place of 1d10, and impact in both places. The ready-made Weapon strike does the same with whatever weapon is equipped, Heft included, and offers Fortune and Misfortune: see Ready-made macros.
Toxin Needler
Shortcut #needler. The Toxin Needler shoots under your Pistol skill, with toxic damage.
@target(count=1, stat=armour) -> target
[[1d100]] label="Toxin Needler" vs=@{PISTOL} beat=under -> attack
if {attack.outcome} = hit
&{card:attack} "Needle hits {target.name}" show=attack,target
button "Roll damage" id=roll-damage
[[1d6]] label="Damage" type=toxic -> damage
end
apply "Apply damage" id=apply-damage amount={damage.total} type=toxic
end
else
&{card:miss} "Needle misses {target.name}" show=attack,target
end
end
Adapt it: keep an Ashfall damage type on the Apply damage button (cutting, impact, rending, toxic or warp): a type Ashfall doesn't have, such as poison, does nothing.
Resist the warp
Shortcut #resist. Ashfall resists the warp with a Sanity test; on a failure, warp damage for the GM to apply to your Sanity.
@target(count=1, stat=sanity) -> me
[[1d100]] label="Sanity" vs=@{SANITY} beat=under -> resist
if {resist.outcome} = hit
&{card:check} "{me.name} resists the warp" show=resist
end
else
[[1d6]] label="Warp" type=warp -> warp
&{card:miss} "The warp takes hold of {me.name}" show=resist,warp
line "Sanity now" "@{SANITY} / @{SANITY_MAX}"
apply "Apply warp to Sanity" id=apply-warp amount={warp.total} type=warp target=me
end
if @{SANITY} <= 10
/w gm {me.name} is close to breaking (Sanity @{SANITY}).
end
end
Pick your own token when it asks for a target, or select it first. With Sanity 10 or less, the GM also gets a whisper: Mara Voss is close to breaking (Sanity 8).
Resist the warp with Steeled Mind
Shortcut #steeled. The same, with the Steeled Mind talent's +10 to Sanity tests against the warp: the roll takes 10 off, which is the same as 10 more Sanity.
@target(count=1, stat=sanity) -> me
[[1d100 - 10]] label="Sanity (Steeled Mind)" vs=@{SANITY} beat=under -> resist
if {resist.outcome} = hit
&{card:check} "{me.name} resists the warp" show=resist
end
else
[[1d6]] label="Warp" type=warp -> warp
&{card:miss} "The warp takes hold of {me.name}" show=resist,warp
apply "Apply warp to Sanity" id=apply-warp amount={warp.total} type=warp target=me
end
end
Scavenger: Ruinlore for salvage
Shortcut #salvage. The Scavenger talent gives +10 Ruinlore to identify salvage and ruins. This asks whether the talent applies, and takes 10 off the roll when it does.
?{Identifying salvage or ruins?|Yes=10|No=0} -> scav
[[1d100 - {scav}]] label="Ruinlore" vs=@{RUINLORE} beat=under -> check
if {check.outcome} = hit
&{card:check} "Ruinlore: success" show=check
end
else
&{card:miss} "Ruinlore: failure" show=check
end
end
The talent also puts an Identify salvage action on the sheet, which rolls the same test with the 10 added: the macro is for when you want it on the Shortcut Bar or to ask first.
Quickened: reroll a failed Dodge
Shortcut #quick-dodge. On a failed Dodge, asks whether to use Quickened, and rerolls. The sheet does this by itself now: with the Quickened talent, a failed Dodge test from the sheet offers Reroll the Dodge, once between breathers, and the use comes back when you Catch Breath or Recuperate. Use this macro if you'd rather roll your Dodge from a macro and see the reroll in chat.
[[1d100]] label="Dodge" vs=@{DODGE} beat=under -> first
if {first.outcome} = hit
&{card:check} "Dodge: success" show=first
end
else
?{Failed. Use Quickened to reroll?|Yes=yes|No=no} -> quick
if {quick} = yes
[[1d100]] label="Reroll (Quickened)" vs=@{DODGE} beat=under -> second
&{card:default} "Dodge, rerolled with Quickened" show=first,second
end
else
&{card:miss} "Dodge: failure" show=first
end
end
end
Adapt it: the macro can't tell whether you've used Quickened since your last breather, and doesn't mark the use on the sheet: you keep count.
Corruption tremors
Shortcut #reflex. A Reflex test that adds 5 to the roll while Corruption is 25 or more, for The Tremors.
if @{CORRUPTION} >= 25
[[5]] label="Tremors" -> tremors
end
[[1d100 + {tremors}]] label="Reflex" vs=@{REFLEX} beat=under -> check
if {check.outcome} = hit
&{card:check} "Reflex test: success" show=check
line "Corruption" "@{CORRUPTION}"
end
else
&{card:miss} "Reflex test: failure" show=check
line "Corruption" "@{CORRUPTION}"
end
end
With Corruption 30 it rolls 1d100 + 5; with Corruption 10, 1d100 + 0.
Am I Broken?
Shortcut #wounds. Reads Wounds and Sanity, and tells the table when the character is Broken.
if @{WOUNDS} >= @{WOUNDS_MAX}
&{card:miss} "Broken" to=everyone
line "Wounds" "@{WOUNDS} / @{WOUNDS_MAX}"
end
&{notify} "Broken" to=gm
line "Wounds" "@{WOUNDS} / @{WOUNDS_MAX}"
end
else
&{notify} "Still standing"
line "Wounds" "@{WOUNDS} / @{WOUNDS_MAX}"
line "Sanity" "@{SANITY} / @{SANITY_MAX}"
end
end
Max Wounds is a tenth of Vigour plus Frame, rounded down, so it's different for each character. With a Max Wounds of 8, at 3 Wounds you see a private Still standing pop-up, and at 8 a Broken card posts for everyone and pops up for the GM. The sheet marks Broken by itself too, along with Grievous (one blow took half your Wounds or more) and Dying: the macro only reads the numbers.
Spend a Fate point to reroll a failure
Shortcut #strike-fate. On a failure, asks whether to spend Fate, rerolls, and reminds you to mark it. The sheet does this by itself now: after a failed test or weapon Strike rolled from the sheet, it offers Spend Fate to reroll and takes the point for you. Use this macro if you'd rather roll from a macro and see the reroll in chat.
[[1d100]] label="Melee strike" vs=@{MELEE} beat=under -> first
if {first.outcome} = hit
&{card:check} "Melee strike: success" show=first
end
else
?{Failed. Spend a Fate point to reroll?|Yes=yes|No=no} -> spend
if {spend} = yes
[[1d100]] label="Reroll (1 Fate)" vs=@{MELEE} beat=under -> second
&{card:default} "Melee strike, rerolled with Fate" show=first,second
end
/w me Mark 1 Fate as spent on your sheet.
/w gm Spent 1 Fate: reroll {second.total} ({second.outcome}).
else
&{card:miss} "Melee strike: failure" show=first
end
end
end
Answer No and the failure card posts. A macro can't spend Fate: use − on the Fate row of the sheet.
Initiative
Shortcut #ash-init. A d10 plus Initiative, posted and popped up.
[[1d10 + @{INIT}]] label="Initiative" -> init
&{card:check} "Initiative" show=init
end
&{notify} "Initiative" show=init
end
Related
Every step, one by one · Questions, cards and buttons · Macros for Ashfall · Ready-made macros · Share, run and fix macros
