Dungeon depth, spell slots, and D20 results for campaign sheets.

Dungeon crawl depth

Put depth 0-10 in A1. Torches lead deeper into the crypt.

=REPT("๐Ÿ•ฏ๏ธ",MIN(A1,B1))&REPT("ใƒป",MAX(0,B1-A1))&"๐Ÿ’€"

๐Ÿ•ฏ๏ธ๐Ÿ•ฏ๏ธ๐Ÿ•ฏ๏ธใƒปใƒปใƒปใƒปใƒป๐Ÿ’€

D20 roll display

Put roll 1-20 in A1. Natural 20 and fumble get called out.

=IF(A1=20,"๐ŸŽฒ NAT 20!",IF(A1=1,"๐ŸŽฒ Fumble!",A1&" ๐ŸŽฒ"))

๐ŸŽฒ NAT 20!

IF

Spell slot counter

Put slots remaining 0-5 in A1. Arcane orbs show spell slots left.

=REPT("๐Ÿ”ฎ",MIN(A1,B1))&REPT("โ—‹",MAX(0,B1-A1))&" spell slots"

๐Ÿ”ฎ๐Ÿ”ฎ๐Ÿ”ฎโ—‹โ—‹ spell slots

Dungeon boss approach

Put room progress 0-10 in A1.

=REPT("๐Ÿšช",MIN(A1,B1))&REPT("ใƒป",MAX(0,B1-A1))&"๐Ÿ‘น"

๐Ÿšช๐Ÿšช๐Ÿšชใƒปใƒปใƒปใƒปใƒปใƒปใƒป๐Ÿ‘น

Dungeon key collection

Put keys found 0-5 in A1.

=REPT("๐Ÿ—๏ธ",A1)&REPT("๐Ÿšช",MAX(0,B1-A1))

๐Ÿ—๏ธ๐Ÿ—๏ธ๐Ÿ—๏ธ๐Ÿšช๐Ÿšช

Dungeon torch supply

Put torches remaining 0-5 in A1.

=REPT("๐Ÿ”ฅ",MIN(A1,B1))&REPT("๐Ÿ•ฏ๏ธ",MAX(0,B1-A1))

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ•ฏ๏ธ๐Ÿ•ฏ๏ธ

Initiative order tracker

Put turn position 1-5 in A1. Shows whose turn is up in combat.

=CHOOSE(A1,"โš”๏ธ 1st","๐Ÿ—ก๏ธ 2nd","๐Ÿ›ก๏ธ 3rd","๐Ÿน 4th","โœจ 5th")

โš”๏ธ 1st

HP bar with temp HP

Put current HP in A1, max HP in B1, temp HP in C1. Orange shows bonus hit points.

=REPT("โค๏ธ",MIN(A1,B1))&REPT("๐Ÿงก",MIN(C1,MAX(0,B1-A1)))&REPT("๐Ÿ–ค",MAX(0,B1-A1-MIN(C1,MAX(0,B1-A1))))

โค๏ธโค๏ธโค๏ธ๐Ÿงก๐Ÿงก๐Ÿ–ค๐Ÿ–ค๐Ÿ–ค

Long rest countdown

Put hours until long rest 0-8 in A1. Moons count down to a full recovery.

=REPT("๐ŸŒ™",MIN(A1,8))&REPT("โ—‹",MAX(0,8-A1))&" hrs to long rest"

๐ŸŒ™๐ŸŒ™๐ŸŒ™โ—‹โ—‹โ—‹โ—‹โ—‹ hrs to long rest

Short rest dots

Put short rests used 0-2 in A1. Dots track rests between encounters.

=REPT("โ—",MIN(A1,2))&REPT("โ—‹",MAX(0,2-A1))&" short rests"

โ—โ— short rests

Campaign session number

Put session number in A1. Scrolls mark how far the campaign has run.

="Session "&A1&": "&REPT("๐Ÿ“œ",MIN(A1,10))

Session 3: ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ

XP to next level

Put current XP in A1 and XP needed in B1. Stars fill toward the next level.

=REPT("โญ",MIN(ROUND(A1/B1*5,0),5))&REPT("โ—‹",MAX(0,5-ROUND(A1/B1*5,0)))&" "&A1&"/"&B1&" XP"

โญโญโญโ—‹โ—‹ 600/1000 XP

Alignment mood

Put alignment 1-5 in A1. Lawful good through chaotic evil mood labels.

=CHOOSE(A1,"โš–๏ธ Lawful Good","๐Ÿ•Š๏ธ Neutral Good","โš”๏ธ True Neutral","๐Ÿ”ฅ Chaotic Good","๐Ÿ’€ Chaotic Evil")

โš”๏ธ True Neutral

Loot rarity color

Put rarity tier 1-5 in A1. Common through legendary loot colors.

=CHOOSE(A1,"โšช Common","๐ŸŸข Uncommon","๐Ÿ”ต Rare","๐ŸŸฃ Very Rare","๐ŸŸ  Legendary")

๐ŸŸฃ Very Rare

Trap disarm progress

Put disarm progress 0-10 in A1. Keys replace warning signs as the trap yields.

=REPT("๐Ÿ—๏ธ",MIN(A1,B1))&REPT("โš ๏ธ",MAX(0,B1-A1))&" disarm"

๐Ÿ—๏ธ๐Ÿ—๏ธ๐Ÿ—๏ธโš ๏ธโš ๏ธโš ๏ธโš ๏ธ disarm

Perception check meter

Put roll in A1 and DC in B1. Eyes pass; fog means the check failed.

=IF(A1>=B1,REPT("๐Ÿ‘๏ธ",3)&" spotted!",REPT("๐ŸŒซ๏ธ",3)&" missed")

๐Ÿ‘๏ธ๐Ÿ‘๏ธ๐Ÿ‘๏ธ spotted!

Bardic inspiration dots

Put inspiration dice left 0-5 in A1. Music notes show bardic inspiration remaining.

=REPT("๐ŸŽต",MIN(A1,B1))&REPT("โ—‹",MAX(0,B1-A1))&" inspiration"

๐ŸŽต๐ŸŽต๐ŸŽตโ—‹โ—‹ inspiration

Wild magic surge bar

Put surge buildup 0-10 in A1. Sparkles climb until wild magic erupts.

=REPT("โœจ",MIN(A1,B1))&REPT("๐Ÿ’ฅ",IF(A1>=B1,1,0))&REPT("โ—‹",MAX(0,B1-A1-IF(A1>=B1,1,0)))&" wild magic"

โœจโœจโœจโœจโœจโœจโœจ๐Ÿ’ฅโ—‹โ—‹ wild magic

Party formation march

Put party members gathered 0-5 in A1. Heroes march toward the dungeon gate.

=REPT("๐Ÿง™",1)&REPT("๐Ÿ—ก๏ธ",MAX(0,MIN(A1-1,4)))&REPT("ใƒป",MAX(0,B1-A1))&"๐Ÿฐ"

๐Ÿง™๐Ÿ—ก๏ธ๐Ÿ—ก๏ธใƒปใƒปใƒปใƒปใƒป๐Ÿฐ

Related formula guides

Go deeper with Better Sheets

Members get full courses on CHAR, REPT, and dashboard design, plus hundreds of Google Sheets tutorials. Copy-paste formulas here stay free.

See membership options