DiceCloud Helper Equations - ThaumRystra/DiceCloud GitHub Wiki

DiceCloud Helper Formulas and Equations

Referenced from DiceCloud Helper Document
Some of these equations need curly braces {} around them, depending on where you paste them.

Table of Contents

Class Equations
Miscellaneous Equations
Multiclassing Equations
Formatting Equations
Tools

Class Equations

These equations do not apply to multiclassing.

Classes

Artificer
Barbarian
Bard
Cleric
Druid
Fighter
Monk
Paladin
Ranger
Rogue
Sorcerer
Warlock
Wizard

Artificer

Property Tab Equation
Maximum Magical Tinkering Objects Features max(intelligenceMod, 1)
Cantrips Known Spellbook
Description
min(max(ceil((ArtificerLevel - 9) / 4), 0), 2) + 2
Cantrips Known Text Description line of Spell Container You know **{min(max(ceil((ArtificerLevel - 9) / 4), 0), 2) + 2} cantrips.**
Spells Known Spellbook (Max prepared spells) min(max(ceil((ArtificerLevel - 9) / 4), 0), 2) + 2
1st Journal (Class) 2 + min(floor(ArtificerLevel/2.5),2)
2nd Journal (Class) (min(floor(ArtificerLevel/5),1) * 2) + min(floor(ArtificerLevel/7),1)
3rd Journal (Class) (min(floor(ArtificerLevel/9),1) * 2) + min(floor(ArtificerLevel/11),1)
4th Journal (Class) min(floor(ArtificerLevel/13),1) + min(floor(ArtificerLevel/15),1) + min(floor(ArtificerLevel/17),1)
5th Journal (Class) min(floor(ArtificerLevel/17),1) + min(floor(ArtificerLevel/19),1)
Infusions Known Features if (ArtificerLevel > 1, min(3 + ceil(max(ArtificerLevel - 3,0) / 3.75),8), 0)
Infused Items Features if (ArtificerLevel > 1, ceil((ArtificerLevel)/ 5) + 1, 0)

Tool Expertise:

| STR | DEX | CON | WIS | INT | CHA |  
| :--: | :--: | :--: | :--: | :--: | :--: |  
| +{strengthMod + (proficiencyBonus * 2)} | +{dexterityMod + (proficiencyBonus * 2)} | +{constitutionMod + (proficiencyBonus * 2)} | +{wisdomMod + (proficiencyBonus * 2)} | +{intelligenceMod + (proficiencyBonus * 2)} | +{charismaMod + (proficiencyBonus * 2)} |

Barbarian

Property Tab Equation
Barbarian Rages Features if (BarbarianLevel == 20,0, if (BarbarianLevel > 0, 2 + min(floor(BarbarianLevel/3),1) + min(floor(BarbarianLevel/6),1) + min(floor(BarbarianLevel/12),1) + min(floor(BarbarianLevel/17),1), 0))
Barbarian Rage Damage Features (add attack) 2 + min(floor(BarbarianLevel/9),1)+ min(floor(BarbarianLevel/16),1)
Barbarian Crits Features 1 + min(floor((BarbarianLevel - 9) / 4), 2)
Barbarian Attacks In the damage field of a weapon's Attack: [Weapon Die Damage] + {strengthMod + rageDamage}
Storm Aura (Tundra) Features if (BarbarianLevel > 2, floor(BarbarianLevel / 5) + 2, 0)
Fast Movement Features if (BarbarianLevel >= 5, 10, 0)
Primal Champion Features (in effect field) if (BarbarianLevel >= 20, 4,0) AND if (BarbarianLevel >= 20, 24, 20)
Spirit Shield & Vengeful Ancestors (Ancestor) Features {if (BarbarianLevel >= 6, "If raging, reduce hit on another you see w/in 30ft by " + min((floor((BarbarianLevel-6) / 4)) + 2, 4) + "d6.", "")}{if (BarbarianLevel >= 14, " Attacker takes same damage in force.", "")}
Unarmored Defense Features 10 + constitutionMod
Zealot Divine Fury Features Add 1d6 + {floor(BarbarianLevel / 2)} radiant (or necrotic) damage to one hit per turn.

Barbarian Storm Herald (3rd and 14th) - Features Tab:

**Desert Calculation**  
{if (BarbarianLevel > 2, "BA hurts everyone in 10 ft for " + (floor(BarbarianLevel / 5) + 2) + " fire dam." + if (BarbarianLevel > 13, " REA on hit, DexDC" + (8+proficiencyBonus+constitutionMod) + " or " +  floor(BarbarianLevel / 2) + " fire damage.", ""))}  

**Sea Calculation**  
{if (BarbarianLevel > 2, "BA zap, 1 target, " + (max(floor(BarbarianLevel / 5), 1)) + "d6, DexDC" + (8 + proficiencyBonus + constitutionMod) + " for half." + if (BarbarianLevel > 13, " When you hit, REA to StrDC" + (8+proficiencyBonus+constitutionMod) + " or prone.", ""))} 

**Tundra Calculation**  
{if (BarbarianLevel > 2, "BA gives " + (floor(BarbarianLevel / 5) + 2) + " temp HP to chosen in 10 ft." + if (BarbarianLevel > 13, " Aura BA, target StrDC" + (8+proficiencyBonus+constitutionMod) + " or move=0 (1rd)", ""))}

Bard

Property Tab Equation
Cantrips Known Spellbook (Description) 2 + min(floor(BardLevel/4),1)+ min(floor(BardLevel/10),1)
Cantrips Known Text Description line of Spell Container You know **{2 + min(floor(BardLevel/4),1)+ min(floor(BardLevel/10),1)} cantrips.**
Spells Known Spellbook (Max prepared spells) if (BardLevel < 10, BardLevel + 3, 14 + min(floor(BardLevel/11),1) + min(floor(BardLevel/13),1) + (min(floor(BardLevel/14),1) * 2) + min(floor(BardLevel/15),1) + min(floor(BardLevel/17),1) + (min(floor(BardLevel/18),1) * 2))
1st Journal (Class) min(1 + BardLevel, 4)
2nd Journal (Class) if (BardLevel < 3, 0, 2 + min(floor(BardLevel/4),1))
3rd Journal (Class) if (BardLevel < 5, 0, 2 + min(floor(BardLevel/6),1))
4th Journal (Class) if (BardLevel < 7, 0, 1 + min(floor(BardLevel/8),1) + min(floor(BardLevel/9),1))
5th Journal (Class) if (BardLevel < 9, 0, 1 + min(floor(BardLevel/10),1) + min(floor(BardLevel/18),1))
6th Journal (Class) if (BardLevel < 11, 0, 1 + min(floor(BardLevel/19),1))
7th Journal (Class) if (BardLevel < 13, 0, 1 + min(floor(BardLevel/20),1))
8th Journal (Class) if (BardLevel < 15, 0, 1)
9th Journal (Class) if (BardLevel < 17, 0, 1)
Bardic Inspiration charismaMod
Bardic Inspiration Die Features d{6+(min(floor(BardLevel/5), 3) * 2)}
Song of Rest Features 1d{if (BardLevel > 8, 6 + ((ceil((BardLevel - 4)/4) -1) * 2), 6)}
Song of Rest w/ level change Features **Bardic Inspiration**: Use a BA to give one creature a **d{6+(min(floor(BardLevel/5), 3) * 2)}** for saves, attacks, and skill checks. Resets on **{if (BardLevel >= 5, "Short", "Long")} Rest.**
Magical Secrets Features You know **{if (BardLevel >= 10, floor((BardLevel - 2)/4)*2 - 2 ,0)}** spells or cantrips from any other class.
Glamour Mantle Temp HP 5 + (min(floor(BardLevel/5), 3) * 3)
Whispers Psychic Blades Features {if (BardLevel > 14, 8, (if (BardLevel > 9, 5, (if (BardLevel > 4, 3, if (BardLevel > 2, 2, ""))))))}{if (BardLevel > 2, "d6 psychic.", "")}

Psychic Blades Conditional Visibility:

{if (BardLevel >= 3, "On hit, use one Bardic Inspiration to deal an extra", "**You must be lvl 3 to use this.**")}
{if (BardLevel >= 3, (2 + min(floor(BardLevel/5), 1) + (min(floor(BardLevel/10), 1) 2) + (min(floor(BardLevel/15), 1)  3)), "")}
{if (BardLevel >= 3, "d6 psychic damage once per round on your turn.", "")}

Cleric

Property Tab Equation
Cantrips Known Spellbook (Description) 3 + min(floor(ClericLevel/4),1) + min(floor(ClericLevel/10),1)
Cantrips Known Text Description line of Spell Container You know **{3 + min(floor(ClericLevel/4),1) + min(floor(ClericLevel/10),1)} cantrips.**
Spells Known Spellbook (Max prepared spells) max((wisdomMod + ClericLevel),1)
1st Journal (Class) min(1 + ClericLevel, 4)
2nd Journal (Class) if (ClericLevel < 3, 0, 2 + min(floor(ClericLevel/4),1))
3rd Journal (Class) if (ClericLevel < 5, 0, 2 + min(floor(ClericLevel/6),1))
4th Journal (Class) if (ClericLevel < 7, 0, 1 + min(floor(ClericLevel/8),1) + min(floor(ClericLevel/9),1))
5th Journal (Class) if (ClericLevel < 9, 0, 1 + min(floor(ClericLevel/10),1) + min(floor(ClericLevel/18),1))
6th Journal (Class) if (ClericLevel < 11, 0, 1 + min(floor(ClericLevel/19),1))
7th Journal (Class) if (ClericLevel < 13, 0, 1 + min(floor(ClericLevel/20),1))
8th Journal (Class) if (ClericLevel < 15, 0, 1)
9th Journal (Class) if (ClericLevel < 17, 0, 1)
Channel Divinity Features 1 + min(floor(ClericLevel/6),1)+ min(floor(ClericLevel/18),1)
Destroy Undead CR Features Creatures under CR{if (ClericLevel < 8, "1/2", min(floor(ClericLevel/8),1) + min(floor(ClericLevel/11),1) + min(floor(ClericLevel/14),1) + min(floor(ClericLevel/17),1))} are destroyed
Divine Strike Features {floor(ClericLevel/8)}d8

Druid

Property Tab Equation
Cantrips Known Spellbook (Description) 2 + min(floor(DruidLevel/4),1) + min(floor(DruidLevel/10),1)
Cantrips Known Text Description line of Spell Container You know **{2 + min(floor(DruidLevel/4),1) + min(floor(DruidLevel/10),1)} cantrips.**
Spells Known Spellbook (Max prepared spells) max((wisdomMod + DruidLevel),1)
1st Journal (Class) min(1 + DruidLevel, 4)
2nd Journal (Class) if (DruidLevel < 3, 0, 2 + min(floor(DruidLevel/4),1))
3rd Journal (Class) if (DruidLevel < 5, 0, 2 + min(floor(DruidLevel/6),1))
4th Journal (Class) if (DruidLevel < 7, 0, 1 + min(floor(DruidLevel/8),1) + min(floor(DruidLevel/9),1))
5th Journal (Class) if (DruidLevel < 9, 0, 1 + min(floor(DruidLevel/10),1) + min(floor(DruidLevel/18),1))
6th Journal (Class) if (DruidLevel < 11, 0, 1 + min(floor(DruidLevel/19),1))
7th Journal (Class) if (DruidLevel < 13, 0, 1 + min(floor(DruidLevel/20),1))
8th Journal (Class) if (DruidLevel < 15, 0, 1)
9th Journal (Class) if (DruidLevel < 17, 0, 1)
Wild Shapes Features {if (DruidLevel == 20, 999, 2)}
Max CR WS Features {(min(floor(DruidLevel/2),1) * 0.25) + (min(floor(DruidLevel/4),1) * 0.25) + (min(floor(DruidLevel/8),1) * 0.5)}
Max CR WS (Moon) Features {if (DruidLevel < 6, 1, ceil(DruidLevel/3))}

Druid Wild Shape - Features Tab:

You can transform into a creature with a maximum CR of **{if(DruidLevel>=4, if(DruidLevel>=8, "1", "1/2"), "1/4")}**.  

The creature **{if(DruidLevel>=4, "can", "cannot")}** have a swimming speed,
{if(DruidLevel<4, "and", if(DruidLevel>=8, "and", "but"))} it **{if(DruidLevel>=8, "can", "cannot")}** have a flying speed.

Circle of the Moon:

At your current level, you can transform into a creature with a maximum CR of **{max(floor(DruidLevel/3),1)}**.

The creature **{if(DruidLevel>=4, "can", "cannot")}** have a swimming speed,
{if(DruidLevel<4, "and", if(DruidLevel>=8, "and", "but"))} it **{if(DruidLevel>=8, "can", "cannot")}** have a flying speed.

Both: You can stay in a beast shape for a maximum of **{floor(DruidLevel/2)} hour{if(DruidLevel>=4,"s","")}**.

Druid Balm of the Summer - Features Tab:

{if (DruidLevel >= 2, "You have", "")}
{if (DruidLevel >= 2, "**DruidLevel**", "")}
{if (DruidLevel >= 2, "d6 dice.", "")}

{if (DruidLevel >= 2, "As a BA, spend dice equal to", "")}
{if (DruidLevel >= 2, min(DruidLevel / 2), "")}
{if (DruidLevel >= 2, "to heal a creature you can see w/in 120ft. They gain 1 add'l THP per die spent.", "")}

Druid Hearth of Shadow and Moonlight - Features Tab:

{if (DruidLevel >= 6, "During a rest, you and your allies gain +5 to Stealth & Perception checks w/in a 30ft sphere which counts as total cover.", "")}

Druid Hidden Paths - Features Tab:

{if (DruidLevel >= 10, "As a BA, teleport up to 60ft to a space you can see, or, teleport 1 willing creature you touch up to 30ft to a space you can see.", "")}

{if (DruidLevel >= 10, "You can do this up to", "")}
{if (DruidLevel >= 10, wisdomMod, "")}
{if (DruidLevel >= 10, "times per long rest.", "")}

Druid Walker in Dreams - Features Tab:

{if (DruidLevel >= 14, "When you finish a long rest, cast *dream*, *scrying*, or *teleportation circle*, without expending a spell slot or material components.", "")}

Fighter

Property Tab Equation
Extra Attacks min(floor(FighterLevel/5),1) + min(floor(FighterLevel/11),1) + min(floor(FighterLevel/20),1)
Action Surge {if (FighterLevel > 16,2,1)}
Indomitable {min(floor(FighterLevel/9),1) + min(floor(FighterLevel/13),1) + min(floor(FighterLevel/17),1)}
Superiority Dice Die 1d{8 + (min(floor(FighterLevel/10),1) * 2) + (min(floor(FighterLevel/18),1) * 2)}
Superiority Dice 4 + min(floor(FighterLevel/7),1) + min(floor(FighterLevel/15),1)
Brute Damage Die (4 + ((min(floor(FighterLevel/10),1) * 2) + (min(floor(FighterLevel/16),1) * 2) + (min(floor(FighterLevel/20),1) * 2)))
Maneuvers if (FighterLevel > 2, 3 + (min(floor(FighterLevel/7),1) * 2) + (min(floor(FighterLevel/10),1) * 2) + (min(floor(FighterLevel/15),1) * 2),0)
Improved Critical {if (FighterLevel > 2, "Critical hit on a" + (if (FighterLevel > 14, "n 18,", "")) + " 19" + (if (FighterLevel > 14, ",", "")) + " or 20.", "")}
Includes Superior Critical for Champion Fighter.
Fighting Spirit (Samurai) Samurai Lvl 3 {if (FighterLeveL >2, max(min(floor(FighterLevel / 5),3),1) * 5, "")}
Cantrips (Eldritch Knight) Spellbook (Description) {if (FighterLevel > 2, if (FighterLevel < 10,3,4), 0)}
Spells Known (Eldritch Knight) Spellbook (Max prepared spells) {if (FighterLevel < 3, 0, 3 + min(floor(FighterLevel /4),1) + min(floor(FighterLevel /7),1) + min(floor(FighterLevel /8),1) + min(floor(FighterLevel /10),1) + min(floor(FighterLevel /11),1) + min(floor(FighterLevel /13),1) + min(floor(FighterLevel /14),1) + min(floor(FighterLevel /16),1) + min(floor(FighterLevel /19),1) + min(floor(FighterLevel /20),1))}
1st (Eldritch Knight) Journal (Class) max(max(min(2, FighterLevel - 1), min(3, FighterLevel - 1), min(4, FighterLevel - 3)), 0)
2nd (Eldritch Knight) Journal (Class) max(max(min(2, FighterLevel - 5), min(3, FighterLevel - 7)), 0)
3rd (Eldritch Knight) Journal (Class) max(max(min(2, FighterLevel - 11), min(3, FighterLevel - 13)), 0)
4th (Eldritch Knight) Journal (Class) max(min(1, FighterLevel - 18),0)
Second Wind Feature BA to regain 1d10 + {FighterLevel} HP. 1/SR

Monk

Property Tab Equation
Martial Arts Attack Damage 1d{4 + (min(floor(MonkLevel/5),1) * 2) + (min(floor(MonkLevel/11),1) * 2) + (min(floor(MonkLevel/17),1) * 2)} + {dexterityMod}
Useful for attack damage equations
Ki Points if (MonkLevel > 1, MonkLevel, 0)
Unarmored Movement (min(floor(MonkLevel/2),1) * 10) + (min(floor(MonkLevel/6),1) * 5) + (min(floor(MonkLevel/10),1) * 5) + (min(floor(MonkLevel/14),1) * 5) + (min(floor(MonkLevel/18),1) * 5)
Ki Conditional Visibility Text {if (MonkLevel >= 2, "**You have " + if (MonkLevel > 1, MonkLevel, 0) + " Ki points**", "")} {if (MonkLevel >= 2, "- Flurry of Blows (1 Ki pt)", "")} {if (MonkLevel >= 2, "- Patient Defense (1)", "")} {if (MonkLevel >= 2, "- Step of the Wind (1)", "")}
Unarmored Movement Visibility Text {if (MonkLevel >= 3, "**Your Unarmored Movement is +", "")} {if (MonkLevel >= 3, (min(floor(MonkLevel/2),1) * 10) + (min(floor(MonkLevel/6),1) * 5) + (min(floor(MonkLevel/10),1) * 5) + (min(floor(MonkLevel/14),1) * 5) + (min(floor(MonkLevel/18),1) * 5), "")}**
Wholeness of Body Regain **{MonkLevel * 3}** HPs - 1/LR

Paladin

Property Tab Equation
Lay on Hands PaladinLevel * 5
Aura of Protection max(1, charismaMod)
Aura Size if (PaladinLevel > 17, 30, 10)
Spells Known Spellbook (Max prepared spells) max((charismaMod + floor(PaladinLevel / 2)),1)
1st Journal (Class) (min(floor(PaladinLevel/2),1) * 2) + min(floor(PaladinLevel/3),1) + min(floor(PaladinLevel/5),1)
2nd Journal (Class) (min(floor(PaladinLevel/5),1) * 2) + min(floor(PaladinLevel/7),1)
3rd Journal (Class) (min(floor(PaladinLevel/9),1) * 2) + min(floor(PaladinLevel/11),1)
4th Journal (Class) min(floor(PaladinLevel/13),1) + min(floor(PaladinLevel/15),1) + min(floor(PaladinLevel/17),1)
5th Journal (Class) min(floor(PaladinLevel/17),1) + min(floor(PaladinLevel/19),1)
Divine Sense uses Features 1 + charismaMod
Range of Divine Smite Features {if (PaladinLevel > 1, "On hit, (2-", "")}{if (PaladinLevel > 1, floor((PaladinLevel - 1) / 4) + 3, "")}{if (PaladinLevel > 1, ")d8 radiant damage per spell slot (+1d8 extra for undead/fiend).", "")}

Ranger

Property Tab Equation
Favored Enemy Damage if (RangerLevel > 5, 4, 2)
Spells Known Spellbook (Max prepared spells) if (RangerLevel > 1, ceil(RangerLevel / 2) + 1, 0)
1st Journal (Class) (min(floor(RangerLevel/2),1) * 2) + min(floor(RangerLevel/3),1) + min(floor(RangerLevel/5),1)
2nd Journal (Class) (min(floor(RangerLevel/5),1) * 2) + min(floor(RangerLevel/7),1)
3rd Journal (Class) (min(floor(RangerLevel/9),1) * 2) + min(floor(RangerLevel/11),1)
4th Journal (Class) min(floor(RangerLevel/13),1) + min(floor(RangerLevel/15),1) + min(floor(RangerLevel/17),1)
5th Journal (Class) min(floor(RangerLevel/17),1) + min(floor(RangerLevel/19),1)
Planar Warrior (Horizon Walker) Feature {if (RangerLevel >= 11, "Choose a creature you can see w/in 30ft as a BA. Next hit is all force damage w/ extra 2d8.", (if (RangerLevel >= 3, "Choose a creature you can see w/in 30ft as a BA. Next hit is all force damage w/ extra 1d8.", "")))}
Planar Warrior (Horizon Walker) Attack w/in Feature tab {if (RangerLevel >= 11, "2d8", (if (RangerLevel >=3, "1d8", "")))}

Rogue

Property Tab Equation
Sneak Attack Features {ceil(RogueLevel/2)}d6
Cantrips (Arcane Trickster) Spellbook (Description) {if (RogueLevel > 2, if (RogueLevel < 10,3,4), 0)}
Cantrips Known Text (Arcane Trickster) Description line of Spell Container You know **{if (RogueLevel > 2, if (RogueLevel < 10,3,4), 0)} cantrips.**
Spells Known (Arcane Trickster) Spellbook (Max prepared spells) {if (RogueLevel < 3, 0, 3 + min(floor(RogueLevel /4),1) + min(floor(RogueLevel /7),1) + min(floor(RogueLevel /8),1) + min(floor(RogueLevel /10),1) + min(floor(RogueLevel /11),1) + min(floor(RogueLevel /13),1) + min(floor(RogueLevel /14),1) + min(floor(RogueLevel /16),1) + min(floor(RogueLevel /19),1) + min(floor(RogueLevel /20),1))}
1st (Arcane Trickster) Journal (Class) max(max(min(2, RogueLevel - 1), min(3, RogueLevel - 1), min(4, RogueLevel - 3)), 0)
2nd (Arcane Trickster) Journal (Class) max(max(min(2, RogueLevel - 5), min(3, RogueLevel - 7)), 0)
3rd (Arcane Trickster) Journal (Class) max(max(min(2, RogueLevel - 11), min(3, RogueLevel - 13)), 0)
4th (Arcane Trickster) Journal (Class) max(min(1, RogueLevel - 18),0)

Sorcerer

Property Tab Equation
Sorcery Points Feature if (SorcererLevel < 2, 0, SorcererLevel)
Metamagic Feature if (SorcererLevel > 2, 2 + min(floor(SorcererLevel/10),1) + min(floor(SorcererLevel/17),1),0)
Cantrips Spellbook (Description) 4 + (min(floor(SorcererLevel/4),1)) + min(floor(SorcererLevel/10),1)
Cantrips Known Text Description line of Spell Container You know **{4 + (min(floor(SorcererLevel/4),1)) + min(floor(SorcererLevel/10),1)} cantrips.**
Spells Known Spellbook (Max prepared spells) if (SorcererLevel <= 9, SorcererLevel + 1, if (SorcererLevel <= 18, 6 + ceil(SorcererLevel/2),15))
1st Journal (Class) 2 + min(SorcererLevel-1, 2)
2nd Journal (Class) min(max(SorcererLevel-(3-1), 0), 1)*2 + min(max(SorcererLevel-(4-1), 0), 1)
3rd Journal (Class) min(max(SorcererLevel-(5-1), 0), 1)*2 + min(max(SorcererLevel-(6-1), 0), 1)
4th Journal (Class) min(max(SorcererLevel-(7-1), 0), 3)
5th Journal (Class) min(max(SorcererLevel-(9-1), 0), 2) + min(max(SorcererLevel-(18-1), 0), 1)
6th Journal (Class) min(max(SorcererLevel-(11-1), 0), 1) + min(max(SorcererLevel-(19-1), 0), 1)
7th Journal (Class) min(max(SorcererLevel-(13-1), 0), 1) + min(max(SorcererLevel-(20-1), 0), 1)
8th Journal (Class) min(max(SorcererLevel-(15-1), 0), 1)
9th Journal (Class) min(max(SorcererLevel-(17-1), 0), 1)
Conditional Unearthly Recovery Text Feature {if (SorcererLevel >= 18, "1/LR: As a BA, with fewer than 1/2 your HPs, regain HP =", "")} {if (SorcererLevel >= 18, floor(((6 + constitutionMod) + (max(SorcererLevel - 1, 0) * (4 + constitutionMod))) * 0.5), "")}
Max spell level Feature (Attack) min(ceil(SorcererLevel/2), 9)
Useful for attacks where you want to show the range of damage of an attack with higher spell slots. Fireball, for instance, could have this equation in damage:
(8-{5+min(ceil(SorcererLevel/2), 9)})d6
to show (8-14)d6 when you're 20th level.

Font of Magic Conditional Visibility Text - Features Tab:

{if (SorcererLevel > 1, "BA Points=Spell Lvl or Points for Spell:", "")}

{if (SorcererLevel > 1, "| Slot | 1st | 2nd | 3rd | 4th | 5th |", "")}
{if (SorcererLevel > 1, "| :--: | :--: | :--: | :--: | :--: | :--: | :--: |", "")}
{if (SorcererLevel > 1, "| Point | 2 | 3 | 5 | 6 | 7 |", "")}

Metamagic Conditional Visibility Text - Features Tab:

{if (SorcererLevel >= 3, "You have **" + (2 + min(floor(SorcererLevel/10),1) + min(floor(SorcererLevel/17),1)) + " **Metamagic Options", "")}
{if (SorcererLevel >= 3, "- <Insert 3rd level choice here>", "")}
{if (SorcererLevel >= 3, "- <Insert 3rd level choice here>", "")}
{if (SorcererLevel >= 10, "- <Insert 10th level choice here>", "")}
{if (SorcererLevel >= 17, "- <Insert 17th level choice here>", "")}

Metamagic Simple Text:

**1 Careful Spell** choose charismaMod people to auto succeed 1 spell save
**1 Distant Spell** 2x range, self=30ft
**1 Empowered Spell** reroll charismaMod damage dice. Must use new roll
**1 Extended Spell** double duration of 1 spell (max 24 hrs)
**3 Heightened Spell** DisADV 1 ST
**2 Quickened Spell** 1 spell as BA
**1 Subtle Spell** no V or S comps
**1-9 Twinned** 1pt/lvl, 2 targets

Warlock

Property Tab Equation
Cantrips Spellbook (Description) {(min(floor(WarlockLevel/4),1) + 2) + min(floor(WarlockLevel/10),1)}
If you're using Pact of the Tome, remember to add 3 to the equation:
{(min(floor(WarlockLevel/4),1) + 2) + min(floor(WarlockLevel/10),1) + 3}
Cantrips Known Text Description line of Spell Container You know **{(min(floor(WarlockLevel/4),1) + 2) + min(floor(WarlockLevel/10),1)} cantrips.**
Spells Known Spellbook (Max prepared spells) if (WarlockLevel > 9, floor((WarlockLevel-9)/2) + 10, WarlockLevel + 1)
Spell Slots Features You have {max (1, min (WarlockLevel, 2), min (WarlockLevel - 8, 3), min (WarlockLevel - 13, 4))} Warlock spell slot{if(WarlockLevel>1,"s","")}
Spell Slots Level Features Your spell slots are level {min(ceil(WarlockLevel/2),5)}
1st Journal (Class) if(WarlockLevel<3, WarlockLevel, 0)
2nd Journal (Class) if(ceil(WarlockLevel/2)==2, 2, 0)
3rd Journal (Class) if(ceil(WarlockLevel/2)==3,2,0)
4th Journal (Class) if(ceil(WarlockLevel/2)==4,2,0)
5th Journal (Class) if(WarlockLevel>=17, 4, if(WarlockLevel>=11, 3, if(WarlockLevel>=9, 2, 0)))
6th (Myst Arcan 1/LR) Journal (Class) if(WarlockLevel >= 11, 1, 0)
7th (Myst Arcan 1/LR) Journal (Class) if(WarlockLevel >= 13, 1, 0)
8th (Myst Arcan 1/LR) Journal (Class) if(WarlockLevel >= 15, 1, 0)
9th (Myst Arcan 1/LR) Journal (Class) if(WarlockLevel >= 17, 1, 0)
Invocations Known Features {if (WarlockLevel < 2, 0, 2 + min(floor(WarlockLevel/5),1) + min(floor(WarlockLevel/7),1) + min(floor(WarlockLevel/9),1) + min(floor(WarlockLevel/12),1) + min(floor(WarlockLevel/15),1) + min(floor(WarlockLevel/18),1))}
Eldritch Blast Damage 1d10 for {if(Level >= 17, 4, if(Level >= 11, 3, if(Level >= 5, 2, 1)))} beams
Eldritch Blast Damage2 x{floor((WarlockLevel + 1) / 6) + 1} beam{if (WarlockLevel > 4, "s","")}, 1d10 + {charismaMod}

Invocations Known (Fully Formatted) - Features Tab:

{if (WarlockLevel >= 2, "You know **" + (if (WarlockLevel < 2, 0, 2 + min(floor(WarlockLevel/5),1) + min(floor(WarlockLevel/7),1) + min(floor(WarlockLevel/9),1) + min(floor(WarlockLevel/12),1) + min(floor(WarlockLevel/15),1) + min(floor(WarlockLevel/18),1))) + "** invocations:")}

{if (WarlockLevel >= 2, "- <Insert 2nd level choice here>", "")}
{if (WarlockLevel >= 2, "- <Insert 2nd level choice here>", "")}
{if (WarlockLevel >= 5, "- <Insert 5th level choice here>", "")}
{if (WarlockLevel >= 7, "- <Insert 7th level choice here>", "")}
{if (WarlockLevel >= 9, "- <Insert 9th level choice here>", "")}
{if (WarlockLevel >= 12, "- <Insert 12th level choice here>", "")} {if (WarlockLevel >= 15, "- <Insert 15th level choice here>", "")} {if (WarlockLevel >= 18, "- <Insert 18th level choice here>", "")}

Wizard

Property Tab Equation
Max Prepared Spells Spellbook (Max prepared spells) max((intelligenceMod + WizardLevel),1)
Cantrips Spellbook (Description) {3 + min(floor(WizardLevel/4),1)+ min(floor(WizardLevel/10),1)}
Cantrips Known Text Description line of Spell Container You know **{3 + min(floor(WizardLevel/4),1)+ min(floor(WizardLevel/10),1)} cantrips.**
1st Journal (Class) 2 + min(WizardLevel-1, 2)
2nd Journal (Class) min(max(WizardLevel-(3-1), 0), 1)*2 + min(max(WizardLevel-(4-1), 0), 1)
3rd Journal (Class) min(max(WizardLevel-(5-1), 0), 1)*2 + min(max(WizardLevel-(6-1), 0), 1)
4th Journal (Class) min(max(WizardLevel-(7-1), 0), 3)
5th Journal (Class) min(max(WizardLevel-(9-1), 0), 2) + min(max(WizardLevel-(18-1), 0), 1)
6th Journal (Class) min(max(WizardLevel-(11-1), 0), 1) + min(max(WizardLevel-(19-1), 0), 1)
7th Journal (Class) min(max(WizardLevel-(13-1), 0), 1) + min(max(WizardLevel-(20-1), 0), 1)
8th Journal (Class) min(max(WizardLevel-(15-1), 0), 1)
9th Journal (Class) min(max(WizardLevel-(17-1), 0), 1)
Arcane Recovery Features Recover {ceil(WizardLevel / 2)} Spell Slots up to 5th
Max spell level Feature (Attack) min(ceil(WizardLevel/2), 9)
Useful for attacks where you want to show the range of damage of an attack with higher spell slots. Fireball, for instance, could have this equation in damage:
(8-{5+min(ceil(WizardLevel/2), 9)})d6
to show (8-14)d6 when you're 20th level.

Miscellaneous Equations

Property Tab Equation
Ability Up Non-Enabled Modifiers Features If you fully level your character but don't want to Enable and Disable ability modifiers (we use this for arena characters so we can quickly level or de-level them), then put the following equation in the EFFECT window for the stat you are raising. LVL = the level it should take effect, and the # is either a 1 or 2, depending on whether you're raising one stat or two.
if (ClassLevel >= LVL, #, 0)
Average Hitpoints Level Window, Journal Tab <Initial max HP for your class> + (max(ClassLevel - 1, 0) * <average HPs for your class>)
Brave (Halfling) Features Feature: Brave
Add effect - Wisdom save, conditional benefit: "Advantage on saves vs. frighten"
This will make an asterisk appear next to the Wisdom save on the Stats page, and when you click it to expand it it will tell you that you have "advantage on saves vs. frighten". AFAIK all frighten effects are Wisdom saves, but you could add the same conditional benefit on the other saves if you thought it necessary.
Breath Weapon Damage Features Attack Bonus: "Dex" + (constitutionMod + proficiencyBonus + 8)
Damage: {2 + floor ((level-1)/5)}d6
Combining text & equations Features {if (WizardLevel > 2, "I'm a lovely bunch of " + (6*5) + " coconuts, dodadodo", "")}
Great Weapon Master or Sharpshooter Features In your attack to hit:
max(strengthMod, dexterityMod) + proficiencyBonus - if (rageDamage > 4, 5, 0)
In your damage:
1dX + {max(strengthMod, dexterityMod) + if (rageDamage > 4, rageDamage + 5, rageDamage)}
Use the enabled toggle on a feature to add +5 to your rageDamage
The rageDamage check is in case you're also a Barbarian using a rageDamage for its real purpose (the maxiumum plus to a Barbarian's rageDamage is +4). This works for either scenario.
Scaling Cantrip Damage Spells {floor((Level+1)/6)+1}dX
(replace x with the damage die of the cantrip)
Warlock Spell Slots Features Your Spell Slots are currently Level {if(WarlockLevel >= 9, 5, if (WarlockLevel >= 7, 4, if(WarlockLevel >= 5, 3, if(WarlockLevel >= 3, 2, 1))))}
courtesy of SuperSandwizard on Reddit

Feats and Ability Improvement Reminders for Auto-Leveling - Features Tab:

{if (level >= 4, "**- You must increase an ability or add a feat for lvl 4.**", "")}
{if (level >= 8, "**- You must increase an ability or add a feat for lvl 8.**", "")}
{if (level >= 12, "**- You must increase an ability or add a feat for lvl 12.**", "")}
{if (level >= 16, "**- You must increase an ability or add a feat for lvl 16.**", "")}
{if (level >= 19, "**- You must increase an ability or add a feat for lvl 18.**", "")}

Multiclassing Equations

Spellcasting

This is for spellcasting only. For other rules, look at page 163-164 of the PHB.

Steps Equation
Add up your levels
Case 1 - Full Caster {BardLevel + ClericLevel + DruidLevel + SorcererLevel + WizardLevel + (floor((PaladinLevel + RangerLevel) / 2)) + (floor((RogueLevel + FighterLevel) / 3)) }
Full Caster (Bard, cleric, druid, sorcerer, wizard) <Class>Level
Partial Caster (Artificer, paladin, ranger) (floor(<Class>Level / 2)
Mini Caster (Rogue Arcane Trickster or Fighter Eldritch Knight) (floor(<Class>Level / 3)
Add lvls up with () ex: (<Class1>Level + (floor(<Class2>Level / 2) + (floor(<Class3>Level / 3))
Example 1 (Wizard/Paladin) (WizardLevel + (floor(PaladinLevel / 2)))
Example 2 (Cleric/Ranger) (ClericLevel + (floor(RangerLevel / 2)))
Example 3 (Bard/Rogue (Arcane Trickster)) (BardLevel + (floor(RogueLevel / 3)))
Replace Equation Replace the ReplaceMe below with your () equations
Spell Slots Equation
1st min(1 + ReplaceMe, 4)
2nd if (ReplaceMe < 3, 0, 2 + min(floor(ReplaceMe/4),1))
3rd if (ReplaceMe < 5, 0, 2 + min(floor(ReplaceMe/6),1))
4th if (ReplaceMe < 7, 0, 1 + min(floor(ReplaceMe/8),1) + min(floor(ReplaceMe/9),1))
5th if (ReplaceMe < 9, 0, 1 + min(floor(ReplaceMe/10),1) + min(floor(ReplaceMe/18),1))
6th if (ReplaceMe < 11, 0, 1 + min(floor(ReplaceMe/19),1))
7th if (ReplaceMe < 13, 0, 1 + min(floor(ReplaceMe/20),1))
8th if (ReplaceMe < 15, 0, 1)
9th if (ReplaceMe < 17, 0, 1)
Ranger/Cleric Equation
Total Spell Level (floor(RangerLevel / 2) + ClericLevel)
1st min(1 + (floor(RangerLevel / 2) + ClericLevel), 4)
2nd if ((floor(RangerLevel / 2) + ClericLevel) < 3, 0, 2 + min(floor((floor(RangerLevel / 2) + ClericLevel)/4),1))
3rd if ((floor(RangerLevel / 2) + ClericLevel) < 5, 0, 2 + min(floor((floor(RangerLevel / 2) + ClericLevel)/6),1))
4th if ((floor(RangerLevel / 2) + ClericLevel) < 7, 0, 1 + min(floor((floor(RangerLevel / 2) + ClericLevel)/8),1) + min(floor((floor(RangerLevel / 2) + ClericLevel)/9),1))
5th if ((floor(RangerLevel / 2) + ClericLevel) < 9, 0, 1 + min(floor((floor(RangerLevel / 2) + ClericLevel)/10),1) + min(floor((floor(RangerLevel / 2) + ClericLevel)/18),1))
6th if ((floor(RangerLevel / 2) + ClericLevel) < 11, 0, 1 + min(floor((floor(RangerLevel / 2) + ClericLevel)/19),1))
7th if ((floor(RangerLevel / 2) + ClericLevel) < 13, 0, 1 + min(floor((floor(RangerLevel / 2) + ClericLevel)/20),1))
8th if ((floor(RangerLevel / 2) + ClericLevel) < 15, 0, 1)
9th if ((floor(RangerLevel / 2) + ClericLevel) < 17, 0, 1)

Formatting Equations

Property Tab Equation
Conditional Text Visibility Feature To make text appear conditionally, you need to put the following in a smart input field (the ones with the curly brackets { } icon):
{if( level>=5, "Your level is 5 or more", "Your level is under 5" )}
replacing level>=5 with whatever condition you want, e.g. DruidLevel>3, ki=0, etc. The strings can be changed too - the first one is displayed if the condition is true, and the second one if it is false. (NB: you'll have to put "" - an empty string - in place of one of the strings if you want it not to display at all if or unless a condition is met).

You can do a similar thing in numerical effect fields - for example if you wanted to choose your 8th-level ASIs before you actually get them, you could create a Strength effect that adds if(level>=8, 2, 0). Unfortunately, this isn't possible for Advantage/Disadvantage or Conditional Benefit effects.
Dialog Box Visibility Any Using a triple dash ( --- ) creates a break in the text. Only words above the triple-dash are visible unless the window is expanded
Google Drive Direct Link Generator: Any https://sites.google.com/site/gdocs2direct/
Image Code Front Any <div style="float: center; padding-left: 10px; margin-right:-5px; margin-top: -5px;"><img src="
Image Code Back Any " class="mail" alt="anything" style="max-width: 225px;"/> </div>
Image Code Entire Any <div style="float: right; padding-left: 10px; margin-right:-5px; margin-top: -5px;"><img src="IMAGE URL" class="mail" alt="anything" style="max-width: 250px;"/></div>
Alternate Image Code (centering works) Any <div style="text-align:center; margin-top:20px;"><img align="center" src="IMAGE LINK GOES HERE" class="mail" style="max-height:600px;"></div>
Alternate Image Code Front Any <div style="text-align:center; margin-top:20px;"><img align="center" src="
Alternate Image Code Back Any " class="mail" alt="ALT TEXT GOES HERE" style="max-height:600px;"></div>
Third Image Code Any ![Alt text](URL GOES HERE "Image Description on Hover")
Linebreak Any Add 2 spaces after the last word in a line before going to the next line
Header Codes Any
H1 <h1>Header</h1>
H2 <h2>Header</h2>
H3 <h3>Header</h3>
H1 # Header 1 #
H2 ## Header 2 ##
H3 ### Header 3 ###
Multiple Damage Types 2d6 + strengthMod slashing + 2d6 and then select fire for the damage type

Table Code - Any:

| Header 1 | Header 2 |  
| :----: | :----: |  
| Data 1 | Data 2 |  

Tools

Zhu's Auto Character Creator & Spellbook Manager

⚠️ **GitHub.com Fallback** ⚠️