Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fourleafclov/d0429189a2ac825bfc3419a6dee92c64 to your computer and use it in GitHub Desktop.
Save Fourleafclov/d0429189a2ac825bfc3419a6dee92c64 to your computer and use it in GitHub Desktop.
/* -WHAT IS THIS?-
This file adds optional material to "MPMB's Character Record Sheet" found at https://flapkan.com/mpmb/charsheets
Import this file using the "Add Extra Materials" bookmark.
-KEEP IN MIND-
It is recommended to enter the code in a fresh sheet before adding any other information (i.e. before making your character with it).
*/
/* -INFORMATION-
Subject: Compendium
Effect: This script adds a complete Compendium
This is taken from Xanathar's Lost Notes to Everything Else
Code by: Fourleafclov
Specific Coding:
Morepurplemorebetter - Fighter - Runeguard
Nod Hero - Paladin - Oath of Providence
Completed Date: 2018-03-19 (sheet v12.999)
*/
var iFileName = "Xanathar's Lost Notes to Everything Else (v1.1).js";
RequiredSheetVersion(12.999);
SourceList["XLNtEE"] = {
name : "Xanathar's Lost Notes to Everything Else",
abbreviation : "XLNtEE",
group : "Dungeon Masters Guild",
url : "http://www.dmsguild.com/product/228484/",
date : "2018/01/11"
};
// CREATURE STATS
// New Monsters
CreatureList["urban dryad"] = {
name : "Urban Dryad",
source : ["XLNtEE", 84],
size : 3,
type : "Fey",
subtype : "",
alignment : "Neutral",
ac : 13,
hp : 78,
hd : [12, 8],
speed : "30 ft",
scores : [10, 16, 15, 14, 14, 18],
saves : ["", "", "", "", "", ""],
skills : {
"perception" : 5,
"stealth" : 7,
"insight" : 5,
},
damage_vulnerabilities : "",
damage_resistances : "bludgeoning, piercing, and slashing from nonmagical attacks",
damage_immunities : "poison",
condition_immunities : "poisoned",
senses : "Darkvision 60 ft",
passivePerception : 15,
languages : "Common, Elvish, Sylvan",
challengeRating : "5",
proficiencyBonus : 3,
attacksAction : 2,
attacks : [{
name : "Lash",
ability : 2,
damage : [2, 6, "slashing"],
range : "Melee (5 ft)",
description : "Target also takes 2d10 poison damage",
modifiers : ["", -2, ""],
},{
name : "Hand Crossbow",
ability : 2,
damage : [1, 6, "piercing"],
range : "Ranged (30/120 ft)",
description : "Target also takes 2d10 poison damage",
modifiers : ["", -2, ""],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Wisdom (save DC 14), requiring no material components.\n At Will: Druidcraft\n 2/day each: Earth Tremor, Goodberry, Thorn Whip\n 1/day each: Calm Emotions, Earthbind, Pass Without Trace",
},
],
actions : [{
name : "MultiAttack",
description : "The urban dryad makes two lash attacks",
},{
name : "Shadow Walk",
description : "The urban dryad can step magically from one shadow within its reach and emerge from a second unoccupied shadow within 60 feet of the original shadow",
},
],
traits : [{
name : "False Appearance",
description : "While hidden or resting, an urban dryad is indistinguishable from a mass of ivy creepers.",
},{
name : "Magic Resistance",
description : "The urban dryad has advantage on saving throws against spells and other magical effects.",
},{
name : "Speak with Beasts and Plants",
description : "The urban dryad can communicate with beasts and plants as if they shared a language.",
},
],
};
CreatureList["urban sproutling"] = {
name : "Urban Sproutling",
source : ["XLNtEE", 85],
size : 4, // (Gargantuan = 0, Huge = 1, Large = 2, Medium = 3, Small = 4, Tiny = 5)
type : "Fey",
subtype : "",
alignment : "Neutral",
ac : 11,
hp : 13,
hd : [3, 6], //[#, die]
speed : "20 ft",
scores : [12, 16, 13, 6, 8, 10], // [Str, Dex, Con, Int, Wis, Cha]
saves : ["", "", "", "", "", ""], // [Str, Dex, Con, Int, Wis, Cha]
skills : {
"acrobatics" : 5,
"stealth" : 7,
},
damage_vulnerabilities : "",
damage_resistances : "",
damage_immunities : "",
condition_immunities : "blinded, deafened",
senses : "Blindsight 60 ft (Blind beyond this radius)",
passivePerception : 12,
languages : "Common, Sylvan",
challengeRating : "1/2",
proficiencyBonus : 2,
attacksAction : 2,
attacks : [{
name : "Bite",
ability : 1,
damage : [1, 4, "piercing"],
range : "Melee (5 ft)",
description : "Multiattack one bite attack and one claw attack.",
modifiers : ["", 1, ""],
},{
name : "Claw",
ability : 1,
damage : [1, 4, "slashing"],
range : "Melee (5 ft)",
description : "Target also takes 1d6 poison damage",
modifiers : ["", 1, ""],
},
],
actions : [{
name : "MultiAttack",
description : "The urban sproutling makes one bite attack and one claw attack",
},
],
traits : [{
name : "False Appearance",
description : "While hidden or resting, the sproutling is indistinguishable from a common weed.",
},{
name : "Magic Resistance",
description : "The sproutling has advantage on saving throws against spells and other magical effects.",
},{
name : "Speak with Beasts and Plants",
description : "The sproutling can communicate with beasts and plants as if they shared a language.",
},
],
};
CreatureList["elder dryad"] = {
name : "Elder Dryad",
source : ["XLNtEE", 85],
size : 4,
type : "Fey",
subtype : "",
alignment : "Neutral",
ac : 15,
hp : 105,
hd : [14, 6],
speed : "30 ft",
scores : [13, 16, 18, 14, 17, 18],
saves : ["", "", "", "", "", ""],
skills : {
"perception" : 4,
"stealth" : 5,
"persuasion" : 7,
},
damage_vulnerabilities : "",
damage_resistances : "bludgeoning, piercing, and slashing from nonmagical attacks",
damage_immunities : "poison",
condition_immunities : "poisoned",
senses : "Blindsight 60 ft",
passivePerception : 14,
languages : "Common, Elvish, Sylvan",
challengeRating : "5",
proficiencyBonus : 3,
attacksAction : 2,
attacks : [{
name : "Claw",
ability : 2,
damage : [1, 6, "slashing"],
range : "Melee (5 ft)",
description : "Target also takes 2d10 poison damage",
modifiers : ["", "", ""],
},{
name : "Entangling Roots",
ability : 5,
damage : ["", "", ""],
range : "Ranged (30 ft)",
description : "[1Min] Animate roots in a 15ft Square. Difficult Terrain. DC 15 Strength Save or be restrained.",
dc : true,
modifiers : [15, "", false],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Wisdom (save DC 14), requiring no material components.\n At Will: Commune with Nature, Meld into Stone, Sleep\n 3/day each: Spiek Growth\n 1/day each: Blight",
},
],
actions : [{
name : "MultiAttack",
description : "The elder dryad makes two lash attacks",
},{
name : "Shadow Walk",
description : "The elder dryad can step magically from one shadow within its reach and emerge from a second unoccupied shadow within 60 feet of the original shadow",
},
],
traits : [{
name : "False Appearance",
description : "While hidden or resting, an elder dryad is indistinguishable from a flowering azalea or another local shrub.",
},{
name : "Magic Resistance",
description : "The elder dryad has advantage on saving throws against spells and other magical effects.",
},{
name : "Speak with Beasts and Plants",
description : "The elder dryad can communicate with beasts and plants as if they shared a language.",
},
],
};
// Warlock Genie Gens
CreatureList["air gen"] = {
name : "Air Gen",
source : ["XLNtEE", 86],
size : 5,
type : "Elemental",
subtype : "",
companion : "pact_of_the_chain",
alignment : "Neutral",
ac : 12,
hp : 7,
hd : [2, 4],
speed : "0 ft , fly 60 ft",
scores : [6, 15, 13, 11, 14, 17],
saves : ["", "", "", "", "", ""],
skills : {
"perception" : 4,
"persuasion" : 5,
},
damage_resistances : "lightning; bludgeoning, piercing, and slashing from nonmagical attacks",
condition_immunities : "prone",
senses : "Darkvision 60 ft",
passivePerception : 14,
languages : "Common and Auran",
challengeRating : "1/2",
proficiencyBonus : 2,
attacksAction : 2,
attacks : [{
name : "Dagger",
ability : 2,
damage : [1, 4, "piercing"],
range : "Melee (5 ft)",
description : "Two dagger attacks as an Attack action",
modifiers : ["", "", ""],
},{
name : "Thunderbolt",
ability : 2,
damage : [1, 6, "lightning"],
range : "Ranged (30/120 ft)",
description : "Two thunderbolt attacks as an Attack action",
modifiers : ["", "", ""],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Charisma (save DC 13), requiring no material components.\n At Will: Detect Evil and Good, Gust\n 2/day each: Fog Cloud, Plane Shift(Self), Tongues",
},
],
actions : [{
name : "Elemental Demise",
description : "If the gen dies, its body disintegrates into a warm breeze, leaving behind only equipment the gen was wearing or carrying.",
},{
name : "Magic Resistance",
description : "The gen has advantage on saving throws against spells and other magical effects.",
},{
name : "MultiAttack",
description : "The gen makes two melee or two ranged attacks",
},{
name : "Invisibility",
description : "As an action, the gen magically turns invisible until it attacks or casts a spell, or until its concentration ends (as if concentrating on a spell). Any equipment the gen wears or carries is invisible with it."
},
],
};
CreatureList["earth gen"] = {
name : "Earth Gen",
source : ["XLNtEE", 87],
size : 5,
type : "Elemental",
subtype : "",
companion : "pact_of_the_chain",
alignment : "Neutral",
ac : 13,
hp : 10,
hd : [3, 4],
speed : "30 ft , fly 40 ft (hover)",
scores : [15, 11, 13, 11, 13, 14],
saves : ["", "", "", "", "", ""],
skills : {
"athletics" : 4,
"insight" : 3,
},
damage_immunities : "poison",
condition_immunities : "poisoned",
senses : "Darkvision 60 ft, Tremorsense 30 ft",
passivePerception : 11,
languages : "Common and Terran",
challengeRating : "1/2",
proficiencyBonus : 2,
attacksAction : 2,
attacks : [{
name : "Fist",
ability : 1,
damage : [1, 4, "bludgeoning"],
range : "Melee (5 ft)",
description : "Two fist attacks as an Attack action",
modifiers : ["", "", ""],
},{
name : "Smash",
ability : 1,
damage : [1, 8, "bludgeoning"],
range : "Melee (5ft)",
description : "Target must succeed on a DC 13 Strength saving throw or be knocked prone ",
modifiers : ["", "", ""],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Charisma (save DC 12), requiring no material components.\n At Will: Detect Evil and Good\n 2/day each: Entangle, Plane Shift(Self)\n 1/day each: Earth Tremor, Tongues",
},
],
actions : [{
name : "Elemental Demise",
description : "If the gen dies, its body disintegrates into a crystalline powder, leaving behind only equipment the gen was wearing or carrying.",
},{
name : "Magic Resistance",
description : "The gen has advantage on saving throws against spells and other magical effects.",
},{
name : "MultiAttack",
description : "The gen makes two fist attacks",
},{
name : "Invisibility",
description : "As an action, the gen magically turns invisible until it attacks or casts a spell, or until its concentration ends (as if concentrating on a spell). Any equipment the gen wears or carries is invisible with it."
},
],
};
CreatureList["fire gen"] = {
name : "Fire Gen",
source : ["XLNtEE", 87],
size : 5,
type : "Elemental",
subtype : "",
companion : "pact_of_the_chain",
alignment : "Neutral",
ac : 12,
hp : 9,
hd : [2, 4],
speed : "30 ft , fly 50 ft (hover)",
scores : [12, 15, 14, 15, 13, 15],
saves : ["", "", "", "", "", ""],
skills : {
"athletics" : 3,
"deception" : 4,
},
damage_vulnerabilities : "cold",
damage_resistances : "lightning; bludgeoning, piercing, and slashing from nonmagical attacks",
damage_immunities : "fire",
senses : "Darkvision 60 ft",
passivePerception : 12,
languages : "Common and Ignan",
challengeRating : "1/2",
proficiencyBonus : 2,
attacksAction : 2,
attacks : [{
name : "Scimitar",
ability : 2,
damage : [1, 6, "bludgeoning"],
range : "Melee (5 ft)",
description : "Two scimitar attacks as an Attack action",
modifiers : ["", "", ""],
},{
name : "Flame Dart",
ability : 2,
damage : [1, 6, "bludgeoning"],
range : "Ranged (30/120 ft)",
description : "Two flame dart attacks as an Attack action ",
modifiers : ["", "", ""],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Charisma (save DC 12), requiring no material components.\n At Will: Control Flames, Detect Evil and Good\n 2/day each: Plane Shift(Self)\n 1/day each: Heat Metal, Tongues",
},
],
actions : [{
name : "Elemental Demise",
description : "If the gen dies, its body disintegrates into a flash of fire and puff of smoke, leaving behind only equipment the gen was wearing or carrying.",
},{
name : "Magic Resistance",
description : "The gen has advantage on saving throws against spells and other magical effects.",
},{
name : "MultiAttack",
description : "The gen makes two melee attacks or two ranged attacks",
},{
name : "Invisibility",
description : "As an action, the gen magically turns invisible until it attacks or casts a spell, or until its concentration ends (as if concentrating on a spell). Any equipment the gen wears or carries is invisible with it."
},
],
};
CreatureList["water gen"] = {
name : "Water Gen",
source : ["XLNtEE", 87],
size : 5,
type : "Elemental",
subtype : "",
companion : "pact_of_the_chain",
alignment : "Neutral",
ac : 12,
hp : 10,
hd : [3, 4],
speed : "30 ft , swim 90 ft, fly 60 ft (hover)",
scores : [13, 14, 13, 12, 14, 16],
saves : ["", "", "", "", "", ""],
skills : {
"perception" : 4,
"insight" : 4,
},
damage_resistances : "acid, cold",
senses : "Blindsight 30 ft, Darkvision 90 ft",
passivePerception : 14,
languages : "Common and Aquan",
challengeRating : "1/2",
proficiencyBonus : 2,
attacksAction : 2,
attacks : [{
name : "Spear",
ability : 2,
damage : [1, 6, "piercing"],
range : "Melee (20/60 ft)",
description : "Two spear attacks as an Attack action",
modifiers : ["", "", ""],
},{
name : "Tidal Wave (Recharge 6)",
ability : 6,
damage : [2, 4, "bludgeoning"],
range : "15 ft Cone",
description : "Target must succeed on a DC 13 Dexterity saving throw or take 2d4 bludgeoning, pushed 10 ft away and knocked prone. Half as much damage on a success, no pushed, and not prone.",
dc : true,
modifiers : ["", "", false],
},
],
features : [{
name : "Innate Spellcasting",
description : "Cast spells using Charisma (save DC 13), requiring no material components.\n At Will: Detect Evil and Good, Frostbite, Shape Water\n 2/day each: Plane Shift(Self)\n 1/day each: Tongues, Water Walk(Self)",
},
],
actions : [{
name : "Amphibious",
description : "The gen can breathe air and water.",
},{
name : "Elemental Demise",
description : "If the gen dies, its body disintegrates into a burst of water and foam, leaving behind only equipment the gen was wearing or carrying.",
},{
name : "Magic Resistance",
description : "The gen has advantage on saving throws against spells and other magical effects.",
},{
name : "MultiAttack",
description : "The gen makes two melee attacks",
},{
name : "Invisibility",
description : "As an action, the gen magically turns invisible until it attacks or casts a spell, or until its concentration ends (as if concentrating on a spell). Any equipment the gen wears or carries is invisible with it."
},
],
};
// Gear or Equipment
WeaponsList["cavalry weapon"] = {
regExpSearch : /^(?=.*cavalry)(?=.*saber).*$/i,
name : "Cavalry Weapon",
source : ["XLNtEE", 18],
list : "melee",
ability : 1,
type : "Martial",
damage : [1, 8, "B,P,S"],
range : "Melee",
description : "One handed, Can't be Light or Finesse",
abilitytodamage : true,
modifiers : ["", ""], // Optional; bonuses to: [to hit, to damage]; "" means ignore. These values are added to the corresponding Modifier/Blue-Text fields. // You can also enter the three-letter abbreviation of an ability score (Str, Dex, Con, Int, Wis, or Cha), to have that ability's modifier added to it.
};
// PLAYER OPTIONS
// Backgrounds
BackgroundList["dead"] = {
regExpSearch : /^(?=.*dead)(?=.*deceased).*$/i,
name : "Dead",
source : ["XLNtEE", 42],
skills : ["History", "Intimidation"],
gold : 5,
equipleft : [
["Sacred Vial, Grave Dirt", 1, ""],
["Two Rare Coins", 1, ""],
],
equipright : [
["Set of common clothes", 1, 3],
["Rope, hempen (50 ft) ", 1, 10],
["Belt pouch (with coins)", 1, 1],
],
feature : "Spirit Talk",
trait : [
"When faced with a new experience the word 'no' isn't in my vocabulary.",
"I always have the loudest laugh in the room.",
"When I want something, I'm direct and simple in my request.",
"The story of my demise, like all my stories, is greatly exaggerated.",
"Those who ask me about my death quickly learn to never ask again.",
"I treat most people like they're idiots. They don't know what I know",
"If I don't want to do something, I simply don't do it.",
"I don't excite easily."
],
ideal : [
["Freedom",
"Freedom: Life is short so live how you want. (Chaotic)"
],
["Despair",
"Despair: Nothing in life is worth celebrating and death is the destination we all deserve. (Evil)"
],
["Vengeance",
"Vengeance: I will find and punish what killed me. (Neutral)"
],
["Charity",
"Charity: I want to prevent others from dying before their time. (Good)"
],
["Mercy",
"Mercy: I was given a second chance and others should get the same opportunity. (Good)"
],
["Labor",
"Labor: Life is short, and so I must keep working to make my mark. (Lawful)"
],
],
bond : [
"I have a great fear of that which killed me.",
"The scars of my death wound are still on my body.",
"My vengeance is more important than any other task.",
"I never wish to return to my gravesite.",
"I wish to bring back another who died by my side.",
"Any mention of my hometown reminds me of my first life."
],
flaw : [
"Death isn't a big deal to me. I've died and come back. People should stop whining.",
"I don't listen to protests before I do something reckless.",
"I'd rather be mad than solve a problem making me angry.",
"I would rather cheat, lie, and steal than be honest because none of this matters.",
"Everything was better when I was dead.",
"I'm believe that I am better than everyone who hasn't died and come back from the dead."
],
languageProfs : 2, // optional; this is an array of the language proficiencies gained. An entry can either be 1) a string that represents the language learned or 2) a number which is the number of language gained that can be chosen by the player
lifestyle : "poor", //optional; sets the lifestyle of the sheet. Options are: "wretched", "squalid", "poor", "modest", "comfortable", "wealthy", or "aristocratic"
};
BackgroundFeatureList["spirit talk"] = {
description : "I can connect with the souls of the dead thanks to the long time I spent dead. I may spend a day of downtime communicating with the souls to learn a piece of information by asking a question. The quality and specifics of the information you get is up to the DM",
source : ["XLNtEE", 42],
};
BackgroundList["heretic"] = {
regExpSearch : /^(?=.*cultist)(?=.*heretic).*$/i,
name : "Heretic",
source : ["XLNtEE", 43],
skills : ["Deception", "Religion"],
gold : 10,
equipleft : [
["Holy Symbol,modified", 1, 1],
["Prayer book or prayer wheel", 1, 5],
["Bottle of Invisible Ink", 1, ""],
["Quill", 1, ""],
],
equipright : [
["Set of common clothes", 1, 3],
["Pouch (with coins)", 1, 1],
],
feature : "Heretical Contacts",
trait : [
"I think I’m right even when I’m wrong.",
"I pity those who deny the heresy.",
"I always scope out the closest exits and position myself near them.",
"Those who refute my beliefs are damned and aren't worth saving.",
"I’m sure my god has chosen me for a greater destiny.",
"I’m a natural orator, but once I start talking it’s difficult for me to stop.",
"I’m always looking over my shoulder and the slightest things startle me.",
"I believe the end of the world is nigh."
],
ideal : [
["Guidance",
"Guidance: I must teach others my forbidden doctrine. (Neutral)"
],
["Caution",
"Caution: It’s always better to be safe than sorry. (Any)"
],
["Knowledge",
"Knowledge: If this conspiracy is true, what else are we being lied to about? (Neutral)"
],
["Insurrection",
"Insurrection: My old faith is corrupt and must be brought down by the new order. (Chaotic)"
],
["Honesty",
"Honesty: I’ve been lied to enough, so now I’m sworn to always tell the truth. (Lawful)"
],
["Self-Knowledge",
"Self-Knowledge: Those who seek the truth become wise beyond their years. (Good)"
],
],
bond : [
"The heretics who educated me were burned at the stake. I won’t let that happen to me.",
"Belief in my old faith still nags at me. Have I chosen the right path?",
"I used to be friends with the cleric who’s now hunting me.",
"I carry a heretical treatise on my person. It mustn’t be found!",
"I protect the faithless so they can know enlightenment.",
"One of my underworld contacts reports my movements to the superiors of my old temple.",
],
flaw : [
"I’m suspicious of strangers, as they may be bounty hunters sent to arrest me.",
"I sneer at those whom I deem unworthy of my time.",
"I’m deeply superstitious, and have many rituals to avoid bad luck.",
"I tend to misjudge the devotion of others.",
"I’m obsessed with my studies, often to the detriment of other concerns.",
"I’m deeply mistrustful of temple hierarchies",
],
extra : [
"Select a Heretical Belief",
"Dark Moon",
"Fatemakers",
"Threefold God",
"Forsaken One",
"Three-Faced Sun",
"Shared Suffering",
"Entropy",
"Harlot's Coin",
],
languageProfs : 2,
lifestyle : "poor", //optional; Options are: "wretched", "squalid", "poor", "modest", "comfortable", "wealthy", or "aristocratic"
};
BackgroundFeatureList["heretical contacts"] = {
description : "I know where to find heretics in settlements where my faith is represented. If no heretics are present, I can indoctrinate weak-willed souls if I spend a day preaching. Where heretics are present, I can always find a place to hide, rest and recuperate. If needed, they can help me escape the settlement on a cart or through a secret tunnel.",
source : ["XLNtEE", 44],
};
BackgroundList["legendary lineage"] = {
regExpSearch : /^(?=.*lineage)(?=.*legendary).*$/i,
name : "Legendary Lineage",
source : ["XLNtEE", 44],
skills : ["Athletics", "History"],
gold : 10,
equipleft : [
["Holy Symbol,modified", 1, 1],
["Prayer book or prayer wheel", 1, 5],
["Bottle of Invisible Ink", 1, ""],
["Quill", 1, ""],
],
equipright : [
["Set of traveler's clothes", 1, 4],
["Pouch (with coins)", 1, 1],
],
feature : "Good Reputation",
trait : [
"I am polite and humble to all who fawn over me.",
"I'm sure you've heard of the great heroes of my family, but let me tell you anyway.",
"I am quiet in public and don't enjoy being noticed.",
"I boast about how I will put my ancestors’ deeds to shame.",
"I am attracted to people who don't fawn over me right away.",
"I often find reasons to excuse myself from large groups of people who love me for my name.",
"I am able to fake smile for anyone, even if I hate that person.",
"I always ask for people to give me free stuff because I can.",
],
ideal : [
["Family",
"Family: I intend to uphold my family name. (Lawful)",
],
["Superiority",
"Superiority: I was born better than everyone and so I deserve better than everyone. (Evil)",
],
["Individuality",
"Individuality: I am not my family's name and will make my own legend. (Chaotic)",
],
["Leadership",
"Leadership: I feel a call beyond my heritage to protect the people who look to me. (Good)",
],
["Aspiration",
"Aspiration: I want to make the people who believe in me proud. (Neutral)",
],
["Generosity",
"Generosity: I was lucky to be born into this family and I will give back to those less fortunate. (Good)",
],
],
bond : [
"I wield the same weapon my ancestor used.",
"No one knows the real me like my childhood best friend.",
"A parent won't respect me until I make good on the family name.",
"I would do anything to protect the town where I grew up.",
"I have my eye on a quiet cottage to which I plan to retire.",
"I feel like the only person who really gets me is my dog.",
],
flaw : [
"I can only handle so much fawning before I explode in anger.",
"If not praised constantly, I doubt myself.",
"If you speak ill of my ancestors, I will punch you in the face.",
"I prefer to have someone else fix my personal problems.",
"I put down others to boost my own confidence.",
"If something is fashionable, I will avoid it at all costs.",
],
toolProfs : ["Vehicles(land)", "Int"],
languageProfs : 1,
lifestyle : "comfortable", //optional; Options are: "wretched", "squalid", "poor", "modest", "comfortable", "wealthy", or "aristocratic"
};
BackgroundFeatureList["good reputation"] = {
description : "Since my family name is known, I can reap many benefits by flying the flag of my heritage. People in positions of power and privilege are willing to take a meeting with me and grant me favors. The DM decides the extent and effect of these favors, but they shouldn't involve lavish gifts or great personal risk to the granter",
source : ["XLNtEE", 45],
};
BackgroundList["polymorphed"] = {
regExpSearch : /^(?=.*polymorph)(?=.*polymorphed).*$/i,
name : "Legendary Lineage",
source : ["XLNtEE", 45],
skills : ["Survival"],
skillstxt : "Choose one from Animal Handling or Deception",
gold : 5,
equipleft : [
["Bag of caltrops", 1, 2],
["Realistic ink drawing of polymorphed form", 1, 2],
],
equipright : [
["Set of common clothes", 1, 3],
["Pouch (with coins)", 1, 1],
],
feature : "Kindred Spirit",
trait : [
"I am always fidgeting because I am uncomfortable.",
"I retained a rude physical behavior of my polymorphed form.",
"I obsess over my appearance and wear eccentric outfits.",
"I always judge the way others look.",
"I am unsure of what to say when people ask about me.",
"I often speak in my head by accident instead of aloud.",
"I find it’s easier to lie than give real personal details.",
"I must keep touching my body to reassure myself I’m in it.",
],
ideal : [
["Freedom",
"Freedom: People should be free to express who they are. (Chaotic)",
],
["Power",
"Power: If it gets me what I want, I’ll manipulate anyone. (Evil)",
],
["Security",
"Security: All people deserve a place where they feel at peace. (Good)",
],
["Beauty",
"Beauty: All people should appreciate who they are. (Neutral)",
],
["Authority",
"Authority: If you respect authority, you will be protected. (Lawful)",
],
["Dog Eat Dog",
"Dog Eat Dog: To survive you must be the smartest or strongest. (Neutral)",
],
],
bond : [
"I have altered my appearance to look like my polymorphed form.",
"Some friends I made in my polymorphed form don’t know I’ve been turned back.",
"I carry a piece of my old body.",
"The place where I spent most of my time while polymorphed is home to me.",
"I still haven’t seen my family since before I was polymorphed.",
"I still enjoy eating what I ate in my polymorphed form.",
],
flaw : [
"I want to be back in my polymorphed form.",
"I sometimes believe I still possess abilities of my polymorphed form that I no longer have.",
"All transmutation magic is terrible and must be stopped.",
"I physically hurt myself for assurance I am in my true form.",
"It’s easier to back down from an argument than try to convince someone I'm right.",
"The opinions of my friends are more important than my own.",
],
languageProfs : 2,
lifestyle : "comfortable", //optional; Options are: "wretched", "squalid", "poor", "modest", "comfortable", "wealthy", or "aristocratic"
};
BackgroundFeatureList["kindred spirit"] = {
description : "Nonhostile creatures of the same type as my polymorphed form are inclined to like me. These creatures might help guide me to a place if they know its location, provide me with shelter, or shield me from danger, provided they aren't put directly into harm’s way.",
source : ["XLNtEE", 45],
};
BackgroundList["retired adventurer"] = {
regExpSearch : /^(?=.*retired)(?=.*adventurer).*$/i,
name : "Retired Adventurer",
source : ["XLNtEE", 46],
skills : ["History", "Insight"],
gold : 25,
equipleft : [
["Old map to secret dungeon", 1, 1],
["Set of bone dice or deck of cards", 1, 1],
],
equipright : [
["Set of common clothes", 1, 3],
["Pouch (with coins)", 1, 1],
],
feature : "C-List Celebrity",
trait : [
"I have no idea how to tell a short story.",
"I'm sure of my first instincts and always act on them.",
"Anyone younger than I am needs my advice.",
"I don't enjoy physical contact with others unless it is my fist in their faces.",
"I show my numerous scars to help drive points home.",
"When I laugh, the volume of my voice fills up the entire room.",
"Nothing pleases me more than a good meal, good company, and job well done.",
"I often correct others when their lack of manners offends me.",
],
ideal : [
["Generosity",
"Generosity: Everything I have I share with those around me and in need. (Good)",
],
["Good Times",
"Good Times: I take advantage of every opportunity to have fun. (Chaotic)",
],
["Power",
"Power: Those who don't tremble at my name will have reason enough to do so soon. (Evil)",
],
["Logic",
"Logic: Emotions shouldn't make decisions for us. (Lawful)",
],
["Greater Good",
"Greater Good: I would gladly give my life to defend those who can't defend themselves. (Good)",
],
["Live and Let Live",
"Live and Let Live: Just because we disagree doesn't mean we have to kill each other. (Neutral)",
],
],
bond : [
"I never found that magic item I wanted in my early career.",
"There's more than a few broken hearts in my past.",
"There is an inn I frequent where no one knows about my past life and I'd like to keep it that way.",
"I can't go back to the town I accidentally partially leveled.",
"My old adventuring companions get together now and then to relive the good old days.",
"A famous song is actually about one of my greatest battles.",
],
flaw : [
"I don't take the advice of others because I know best always.",
"Violence solves most problems.",
"Ale is my very, very best friend.",
"I really don't know when to shut up.",
"I tend to fall asleep at times when I should be alert.",
"I am sarcastic at all times, especially when least appropriate",
],
toolProfs : ["Gaming Set", 1],
languageProfs : 1,
lifestyle : "comfortable",
};
BackgroundFeatureList["c-list celebrity"] = {
description : "Whenever I am in a civilized area that knows of me past adventures, I can live a aristocratic life style for free as people wish to honor my past deeds. I can also use my influence to gain audiences with important political figures and get random gifts from admiring fans. However if I choose to use my influence in this way, it also alerts anyone in the area looking for me of my location and draws attention to my party.",
source : ["XLNtEE", 45],
};
// Feyblood Race
RaceList["feyblood dryashi"] = {
regExpSearch : /^(?=.*dryashi)(?=.*fey)(?=.*blood).*$/i,
name : "Feyblood, Dryashi",
source : ["XLNtEE", 48],
size : 3,
speed : {
walk : { spd : 30, enc : 20 },
},
languageProfs : [1, "Sylvan"], // optional; this is an array of the language proficiencies gained. An entry can either be 1) a string that represents the language learned or 2) a number which is the number of language gained that can be chosen by the player
savetxt : {
immune : ["sleep"],
adv_vs : ["charmed", "illusion magic"],
},
age : " reach adulthood after 30, live up to 250 or 300 years.",
height : " range from 4 to 5 feet tall",
weight : " weigh around 155 lb",
improvements : "Feyblood, Dryashi: +1 Constitution, +2 Charisma;",
scores : [0, 0, 1, 0, 0, 2],
trait : "Feyblood, Dryashi (+1 Constitution, +2 Charisma)\n Fey Charm: Target one humanoid or beast within 30 ft. Wisdom Save or charmed.\n Earthen Upbringing: While perfectly still, I am invisible while lightly obscured\n by foliage, heavy rain, falling snow, mist, or other natural phenomena.\n At 6th level, when hidden in this manner, I can use my action to cast invisibility\n with no material components, once per long rest",
abilitySave : 5,
features : {
"earthen upbringing" : {
name : "Earthen Upbringing",
minlevel : 6,
action : ["action", " (Invisibility)"],
usages : 1,
recovery : "long rest",
},
},
};
RaceList["feyblood sylphi"] = {
regExpSearch : /^(?=.*sylphi)(?=.*fey)(?=.*blood).*$/i,
name : "Feyblood, Sylphi",
source : ["XLNtEE", 48],
size : 3,
speed : {
walk : { spd : 30, enc : 20 },
},
languageProfs : [1, "Sylvan"], // optional; this is an array of the language proficiencies gained. An entry can either be 1) a string that represents the language learned or 2) a number which is the number of language gained that can be chosen by the player
savetxt : {
immune : ["sleep"],
adv_vs : ["charmed", "illusion magic"],
},
age : " reach adulthood after 30, live up to 250 or 300 years.",
height : " range from 4 to 5 feet tall",
weight : " weigh around 155 lb",
improvements : "Feyblood, Sylphi: +1 Wisdom, +2 Charisma;",
scores : [0, 0, 0, 0, 1, 2],
trait : "Feyblood, Sylphi (+1 Wisdom, +2 Charisma)\n Fey Charm: Target one humanoid or beast within 30 ft. Wisdom Save or charmed.\n Faerie Wings: at 3rd level, I can use my wings to glide at a rate of 60 ft. per round \n as if under the effects of feather fall spell.\n Once I reach 6th level, once a long rest, I can fly for 10 minutes as if under the effects \n of the fly spell",
abilitySave : 5,
features : {
"faerie wings" : {
name : "Faerie Wings (Fly)",
minlevel : 6,
usages : 1,
recovery : "long rest",
},
},
};
// Sub Classes
AddSubClass("bard", "college of discord", { //add changing bonus action
regExpSearch : /^(?=.*(college|bard|minstrel|troubadour|jongleur))(?=.*discord).*$/i,
subname : "College of Discord",
source : ["XLNtEE", 11],
features : {
"subclassfeature3" : {
name : "Bonus Proficiencies",
source : ["XLNtEE", 11],
minlevel : 3,
description : desc([
"I gain proficiency with medium armor and one additional musical instrument.",
]),
armor : [false, true, false, false],
toolProfs : ["Musical instrument", 1],
},
"subclassfeature3.1" : {
name : "Battaglia",
source : ["XLNtEE", 11],
minlevel : 3,
description : desc([
"[Bonus Action] Teleport to an unoccupied space adjacent to any number of ",
" creatures I can see within 30 ft of me. Any Large or smaller creatures ",
" within 5 ft make a Strength save or be knocked prone. Effect radius ",
" increases to 10 ft at 6th level and 15 ft at 14th level.",
"As part of the bonus action, I can expend one of my Bardic Inspiration die",
" and add the number to the save DC. I can choose of do this before or after",
" the DM announces if it succeeded or failed.",
]),
action : ["bonus action", " (5 Ft)"]
usages : "Charisma Mod",
usagescalc : "event.value = Math.round(1, tDoc.getField(\"Cha Mod\").value);",
recovery : "short rest",
},
"subclassfeature6" : {
name : "Mantle of Majesty",
source : ["XLNtEE", 11],
minlevel : 6,
recovery : "long rest",
usages : 1,
action : ["bonus action", ""],
description : desc([
"As a bonus action, I appear unearthly beautiful while I concentrate, up to 1 minute",
"At the same time, and as a bonus action during, I can cast Command without a spell slot",
"Creatures charmed by me automatically fail their saves against these Command spells"
]),
spellcastingBonus : [{
name : "Mantle of Majesty",
spells : ["command"],
selection : ["command"],
oncelr : true
}]
},
"subclassfeature14" : {
name : "Unbreakable Majesty",
source : ["XLNtEE", 12],
minlevel : 14,
recovery : "short rest",
usages : 1,
action : ["bonus action", ""],
description : desc([
"As a bonus action, I gain a magically majestic presence for 1 min or until incapacitated",
"During this, the first time a creature attacks me each turn they must make a Cha save",
"If failed, it can't attack me this turn and must choose another target or lose its attack",
"If successful, it can attack, but has disadv. on all saves against my spells on my next turn"
])
}
}
});
AddSubClass("cleric", "entropy domain", {
regExpSearch : /^(?=.*(cleric|priest|clergy|acolyte))(?=.*\b(entropy|void|disruption)\b).*$/i,
subname : "Entropy Domain",
source : ["XLNtEE", 14],
spellcastingExtra : ["detect magic", "inflict wounds", "gentle repose", "spiritual weapon", "dispel magic", "protection from energy", "blight", "death ward", "circle of power", "hallow"],
features : {
"subclassfeature1" : {
name : "Sanctity of Body",
source : ["XLNtEE", 14],
minlevel : 1,
description : desc([
"I can perform a ritual to anchor my soul to the Material Plane.",
"I have advantage on death saving throws.",
]),
savetxt : {
adv_vs : ["death saves"],
},
},
"subclassfeature2" : {
name : "Channel Divinity: Arcane Disruption",
source : ["XLNtEE", 14],
minlevel : 2,
description : desc([
"[Action] I conjure an aura of disruptive energy that radiates in a 15ft radius.",
" Lasting until the end of my next turn. It moves with me, centered on me.",
" Creatures inside the area must make a Constitution save while casting a spell,",
" On a fail, the casting fails and wastes the spell slot.",
]),
action : ["action", ""],
},
"subclassfeature6" : {
name : "Channel Divinity: Entropic Retaliation",
source : ["XLNtEE", 14],
minlevel : 6,
description : desc([
"When I succeed on a save against a spell or disrupt a spell with my Arcane",
" Disruption feature, I can force the caster to make a Constitution Save.",
"On a failure, the caster loses an additional spell slot of the same level,",
" If they have no more slots of that level, they gain a level of exhaustion.",
]),
},
"subclassfeature8" : {
name : "Potent Spellcasting",
source : ["XLNtEE", 14],
minlevel : 8,
description : desc([
"I can add my Wisdom modifier to the damage I deal with my cleric cantrips",
]),
calcChanges : {
atkCalc : ["if (classes.known.cleric && classes.known.cleric.level > 7 && thisWeapon[4].indexOf('cleric') !== -1 && thisWeapon[3] && SpellsList[thisWeapon[3]].level === 0) { output.extraDmg += What('Wis Mod'); }; ", "My cleric cantrips get my Wisdom modifier added to their damage."]
},
},
"subclassfeature17" : {
name : "Emissary of Entropy",
source : ["XLNtEE", 14],
minlevel : 17,
description : desc([
"I have advantage on saving throws versus spells.",
"When I succeed vs a spell, I gain 5 temp HP per spell slot of the spell.",
]),
savetxt : {
adv_vs : ["spells"],
},
},
},
});
AddSubClass("cleric", "survival domain", {
regExpSearch : /^(?=.*(cleric|priest|clergy|acolyte))(?=.*\b(entropy|void|disruption)\b).*$/i,
subname : "Entropy Domain",
source : ["XLNtEE", 14],
spellcastingExtra : ["create or destroy water", "false life", "locate animals or plants", "prayer of healing", "fear", "protection from energy", "death ward", "dominate beast", "antilife shell", "greater restoration"],
features : {
"subclassfeature1" : {
name : "Bonus Proficiency",
source : ["XLNtEE", 15],
minlevel : 1,
description : desc([
"I gain proficiency in Survival and Nature Skills.",
"My proficiency bonus is doubled for any Survival and Nature skills.",
]),
eval : "AddSkillProf('Survival', true, true); AddSkillProf('Nature', true, true);",
removeeval : "AddSkillProf('Survival', false, false); AddSkillProf('Nature', false, false);",
},
"subclassfeature1.1" : {
name : "Stand the Fallen",
source : ["XLNtEE", 15],
minlevel : 1,
description : desc([
"When I cast Spare the Dying cantrip, I can change the range from touch ",
" to 30 ft, and the creature gains 1 HP instead of becoming stable.",
]),
usages : "Wisdom Mod",
usagescalc : "event.value = Math.round(1, tDoc.getField(\"Wis Mod\").value);",
recovery : "short rest",
},
"subclassfeature2" : {
name : "Channel Divinity: Encourage the Troops",
source : ["XLNtEE", 15],
minlevel : 2,
description : desc([
"I can use my Channel Divinity to bolster the fighting of my allies.",
"[Action] I present my holy symbol and invoke survival instincts.",
" Each allied creature that I see gains advantage on their next melee ",
" or ranged weapon attack before the start of my next turn.",
"If the attack hits, the allied creature also regains hit points ",
" equal to my cleric level.",
]),
action : ["action", ""],
},
"subclassfeature6" : {
name : "Channel Divinity: Push the Limits",
source : ["XLNtEE", 15],
minlevel : 6,
description : desc([
"I can use my Channel Divinity to strengthen the resolve of my allies.",
"All allies within 30 ft gain temp hit points equal to my cleric level.",
]),
action : ["action", ""],
},
"subclassfeature8" : {
name : "Potent Spellcasting",
source : ["XLNtEE", 15],
minlevel : 8,
description : desc([
"I can add my Wisdom modifier to the damage I deal with my cleric cantrips",
]),
calcChanges : {
atkCalc : ["if (classes.known.cleric && classes.known.cleric.level > 7 && thisWeapon[4].indexOf('cleric') !== -1 && thisWeapon[3] && SpellsList[thisWeapon[3]].level === 0) { output.extraDmg += What('Wis Mod'); }; ", "My cleric cantrips get my Wisdom modifier added to their damage."]
},
},
"subclassfeature17" : {
name : "Protection of the Tribe",
source : ["XLNtEE", 15],
minlevel : 17,
description : desc([
"[Bonus Action] I make one ally who I can see immune to damage for a time.",
" The chosen ally is immune to all damage until the start of my next turn.",
]),
action : ["bonus action", ""],
usages : 1,
recovery : "long rest",
},
},
});
AddSubClass( "druid", "circle of seasons", {
regExpSearch : /^(?=.*druid)(?=.*seasons).*$/i,
subname : "Circle of Season",
source : ["XLNtEE", 16],
features : {
"subclassfeature2" : {
name : "Bonus Cantrip",
source : ["XLNtEE", 16],
minlevel : 2,
description : desc([
"I learn one additional druid cantrip of my choice.",
]),
spellcastingBonus : {
name : "Bonus Cantrip",
class : "druid",
level : [0, 0],
},
},
"subclassfeature2.1" : {
name : "Shroud of Seasons",
source : ["XLNtEE", 16],
minlevel : 2,
description : desc([
"[Action] I expand a Wild Shape use choosing one creature within 60 ft.",
" The creature makes a Constitution save, choosing to fail if it wishes.",
" If the creature fails it's save, choose one of the following effects",
" that takes effect at the start of the creatures next turn for up to 1 min",
"[Bonus Action] I cause nature to greatly effect the creature directly.",
"\u2022 Deep Winters Freeze: Speed reduced by 10ft. Bonus Action causes it",
" to take cold damage equal to 1d4 + Wisdom Mod.",
"\u2022 Fade Rot: Suffer 1 level of exhaustion and only regain half the ",
" normal healing from spells and effects. Bonus Action causes it to take",
" take necrotic damage equal to my Wisdom Mod.",
"\u2022 Harvestide: Creature under the shroud can use its bonus action to ",
" be showered in radiant energy, regaining 1d4 + Wisdom Mod in hit points.",
"\u2022 Wildflame: As a bonus action, I cause flames on the target dealing",
" 1d6 Fire Damage, and igniting target. At the start of each of its turns",
" the target takes fire damage equal to my Wisdom Mod. and sheds bright",
" light in a 10 ft radius, dim light for additional 10 ft.",
" Flames last until the shroud ends or an action used to douse the flames.",
]),
action : ["action", ""],
eval : "AddAction(\"bonus action\", \"Shroud Focus\", \"Druid of the Seasons\")",
removeeval : "RemoveAction(\"bonus action\", \"Shroud Focus\", \"Druid of the Seasons\"));)",
},
"subclassfeature6" : {
name : "Ashes of Life",
source : ["XLNtEE", 16],
minlevel : 6,
description : desc([
"When the target of my shroud dies, I can use my reaction to reclaim some",
" of its life force and instantly heal myself or another creature within",
" 60 ft of me a number of hit points equal to my druid level.",
]),
action : ["reaction", ""],
},
"subclassfeature10" : {
name : "Child of Change",
source : ["XLNtEE", 17],
minlevel : 10,
description : desc([
"When I use my Shroud of Seasons, I can instead descend a 10 ft cube on a ",
" point within range that I choose instead of a single creature.",
"Each creature that starts of moves into the area must make a Constitution",
" save or be affected by its season.",
"While I concentrate on the shroud, I have damage resistance to the season.",
]),
},
"subclassfeature14" : {
name : "Natural Duality",
source : ["XLNtEE", 17],
minlevel : 14,
description : desc([
"My Shroud size swells to 20 ft and the season effects and damage double.",
"While I concentrate on my shroud, I can cast another concentration spell",
" at the same time. The first failed concentration save ends the spell",
" and the shroud remains.",
]),
},
},
});
AddSubClass( "druid", "circle of the spiritlords", {
regExpSearch : /^(?=.*druid)(?=.*spiritlords).*$/i,
subname : "Circle of the Spiritlords",
source : ["XLNtEE", 17],
features : {
"subclassfeature2" : {
name : "Spirit Bond",
source : ["XLNtEE", 17],
minlevel : 2,
description : desc([
"I choose one spirit element to bond with my mask from the Spirit table.",
"I learn the Cantrip associated with my spirit's Fledgling Conduit.",
" This counts as a druid Cantrip, not counting against max known.",
" I gain an additional spirit-elemental at 6th and 10th.",
"I can cast the Find Familiar spell, bearing features similar to ",
" my chosen spirit-element: Glowing skin, fiery eyes, thorny tails, etc.",
"I can only have one mask at a time, unable to change the spirit within.",
"Creating a new mask takes 8 uninterrupted hours, during a long rest.",
]),
spellcastingBonus : {
name : "Spirit Bond Familiar",
class : "wizard",
level : [1, 1],
spells : ["find familiar"],
prepared : true,
oncelr : true,
},
choices : ["Earth", "Fire", "Water", "Wind", "Light", "Shadow"],
"earth" : {
name : "Earth Bond",
spellcastingBonus : {
name : "Earth Bond",
class : "druid",
level : [0, 0],
spells : ["mold earth"],
},
},
"fire" : {
name : "Fire Bond",
spellcastingBonus : {
name : "Fire Bond",
class : "druid",
level : [0, 0],
spells : ["control flames"],
},
},
"water" : {
name : "Water Bond",
spellcastingBonus : {
name : "Water Bond",
class : "druid",
level : [0, 0],
spells : ["shape water"],
},
},
"wind" : {
name : "Wind Bond",
spellcastingBonus : {
name : "Wind Bond",
class : "druid",
level : [0, 0],
spells : ["gust"],
},
},
"light" : {
name : "Light Bond",
spellcastingBonus : {
name : "Light Bond",
class : "wizard",
level : [0, 0],
spells : ["dancing lights"],
},
},
"shadow" : {
name : "Shadow Bond",
spellcastingBonus : {
name : "Shadow Bond",
class : "wizard",
level : [0, 0],
spells : ["minor illusion"],
},
},
action : ["action", " (Find Familiar)"],
usages : 1,
recovery : "long rest",
},
"subclassfeature6" : {
name : "Empowered Conduit",
source : ["XLNtEE", 17],
minlevel : 6,
description : desc([
"I gain the Cantrip in the Spirit Bond Table",
"[Action] I can switch between Spirit Elements",
]),
choices : ["earth", "fire", "water", "wind", "light", "shadow"],
choicesNotInMenu : true,
"earth" : {
name : "Earth Empowered Bond",
spellcastingBonus : {
name : "Earth Empowered Bond",
class : "druid",
level : [0, 0],
spells : ["magic stone"],
},
},
"fire" : {
name : "Fire Empowered Bond",
spellcastingBonus : {
name : "Fire Empowered Bond",
class : "druid",
level : [0, 0],
spells : ["create bonfire"],
},
},
"water" : {
name : "Water Empowered Bond",
spellcastingBonus : {
name : "Water Empowered Bond",
class : "wizard",
level : [0, 0],
spells : ["frostbite"],
},
},
"wind" : {
name : "Wind Empowered Bond",
spellcastingBonus : {
name : "Wind Empowered Bond",
class : "druid",
level : [0, 0],
spells : ["thunderclap"],
},
},
"light" : {
name : "Light Empowered Bond",
spellcastingBonus : {
name : "Light Empowered Bond",
class : "cleric",
level : [0, 0],
spells : ["sacred flame"],
},
},
"shadow" : {
name : "Shadow Bond",
spellcastingBonus : {
name : "Shadow Empowered Bond",
class : "wizard",
level : [0, 0],
spells : ["chill touch"],
},
},
action : ["action", " (Switch)"],
eval : "if (FeaChoice === '') {var CFrem = What('Class Features Remember'); var tReg = /.*?druid,subclassfeature2,(earth|fire|water|wind|light|shadow).*/i; if ((tReg).test(CFrem)) {FeaChoice = CFrem.replace(tReg, '$1'); AddString('Class Features Remember', 'druid,subclassfeature6,' + FeaChoice, false);};};"
},
"subclassfeature10" : {
name : "Vigilant Spirits",
source : ["XLNtEE", 17],
minlevel : 10,
description : desc([
"I can add my Wisdom Mod to the damage of any Druid Cantrip I cast.",
"Each time I switch to a Spirit-Element, I gain resistance to that type.",
]),
calcChanges : {
atkCalc : ["if (classes.known.druid && classes.known.druid.level > 9 && thisWeapon[4].indexOf('druid') !== -1 && thisWeapon[3] && SpellsList[thisWeapon[3]].level === 0) { output.extraDmg += What('Wis Mod'); }; ", "My druid cantrips get my Wisdom modifier added to their damage."]
},
},
"subclassfeature14" : {
name : "Honored Host",
source : ["XLNtEE", 17],
minlevel : 14,
description : desc([
"I gain access to all spirit-elements listed on the Spirit Bond Table.",
"[Bonus Action] I can switch between my Spirit Elements.",
"My spells ignore resistance and immunity to that damage type.",
]),
action : ["bonus action", " (Switch)"],
},
},
});
AddSubClass( "fighter", "dragoon", {
regExpSearch : /^(?=.*dragoon)(?=.*fighter).*$/i,
subname : "Dragoon",
fullname : "Dragoon",
source : ["XLNtEE", 18],
abilitySave : 1,
features : {
"subclassfeature3" : {
name : "Cavalry Weapons: Haft or Hilt",
source : ["XLNtEE", 18],
minlevel : 3,
description : desc([
"I receive training with Cavalry Weapons, designed to be one handed.",
"My cavalry weapon deals 1d8 damage, regardless of its damage die. Deals ",
" bludgeoning, piercing, or slashing. Can't be Light or Finesse.",
]),
weapons : ["cavalry weapon"],
},
"subclassfeature3.1" : {
name : "Elevated Control",
source : ["XLNtEE", 18],
minlevel : 3,
description : desc([
"I have advantage on Animal Handling(Wis) and Persuasion(Cha) checks made to ",
" influence a beast with the capacity to be used as a mount.",
]),
savetxt : {
text : ["Adv on Animal Handling/Persuasion to mount Beasts"],
},
},
"subclassfeature3.2" : {
name : "Versatile Combatant",
source : ["XLNtEE", 19],
minlevel : 3,
description : desc([
"While wearing medium armor, I double my Strength Mod to damage rolls with my",
" cavalry weapon, my speed, and mounted speed increases by 5 ft.",
"While unarmored, or light armored, my proficiency bonus is doubled for any attack",
" roll I make with my cavalry weapon, in addition to the benefits of wearing medium",
" armor. My speed and mount speed increases by an additional 5 ft.",
"[Bonus Action] When I use the Attack action with my cavalry weapon, I can attack ",
" with a loaded one handed ranged weapon I am holding. Being within 5 ft. of a ",
" hostile creature does not impose disadvantage on this attack.",
]),
action : ["bonus action", " Ranged Attack"],
},
"subclassfeature7" : {
name : "Line Breaker",
source : ["XLNtEE", 19],
minlevel : 7,
description : desc([
"When I take the Attack action, I can forgo one of my attacks and use my Move action",
" to move at least 20 ft in a straight line. Each creature in the path must make a",
" Strength save with a DC equal to 8 + Proficiency + Strength Mod.",
"On failed save, the creature is pushed 5 ft in a direction of my choice falling prone.",
" Creatures have disadvantage on the save if I am mounted during this movement.",
]),
},
"subclassfeature10" : {
name : "Flanking Maneuvers",
source : ["XLNtEE", 19],
minlevel : 10,
description : desc([
"When I hit with an opportunity attack, I can move half my speed immediately after the",
" attack as part of the reaction. This movement doesn't provoke opportunity attacks",
"[18th Level] When I make a melee attack against a creature, that creature can not",
" make an opportunity attack against me for the rest of my turn.",
]),
},
"subclassfeature15" : {
name : "Strategic Stride",
source : ["XLNtEE", 19],
minlevel : 15,
description : desc([
"Moving over difficult terrain costs myself and my mount no extra movement.",
"I can pass through nonmagical plants without being slowed or taking damage.",
"While traveling for an hour or more while mounted, I gain the following:",
"\u2022 Difficult terrain doesn't slow my group's travel.",
"\u2022 My group can not become lost except by magical means.",
"\u2022 I remain alert to danger even when engaged in another activity while ",
" traveling. (foraging, navigating, or tracking)",
"\u2022 If I travel alone, or with nine other mounted creatures, we can move ",
" stealthily at a normal pace.",
"\u2022 While tracking other creatures, I learn their exact numbers, their ",
" sizes and how long ago they passed through the area.",
]),
},
},
});
AddSubClass( "fighter", "runeguard-xlntee", {
regExpSearch : /^(?=.*\brune)(?=.*guard\b).*$/i,
subname : "Runeguard",
fullname : "Runeguard",
source : ["XLNtEE", 18],
abilitySave : 3,
features : {
"subclassfeature3" : {
name : "Master Runes",
source : ["XLNtEE", 19],
minlevel : 3,
description : "\n " + "I know the Ild (fire), Kalt (frost), Ond (spirit), Stein (Stone), and Vind (wind) runes"
},
"subclassfeature3.1" : {
name : "Runecraft",
source : ["XLNtEE", 19],
minlevel : 3,
description : desc([
"Use the \"Choose Feature\" button above to add Runic Augmentations to the third page",
"I know a number of runic augmentations that I can inscribe onto me or my equipment",
"Hagr runes only work on my body, Sokn only on weapons, Vald only on armor or shields",
"Inscribing is done during a long rest; If moved 100 ft away from me, the rune fades",
"Activating a rune takes an action (Hagr), bonus action (Sokn), or reaction (Vald)",
"After activating a rune, I can't use it again until I finish a short rest",
"An active rune requires concentration just like a spell does, with the same limits",
"Concentration can last up to proficiency bonus + Constitution modifier in rounds (min 3)",
"When I gain a new augmentation, I can replace an augmentation I know with another",
"From 10th level onwards, I can concentrate on two runes at the same time"
]),
additional : levels.map(function (n) {
if (n < 3) return "";
return (n < 7 ? 3 : n < 10 ? 5 : n < 15 ? 7 : n < 18 ? 9 : 11) + (n < 10 ? " augmentations known" : n < 18 ? " augmentations known; concentrate on 2" : " known; up to 3 active, no concentration");
}),
extraname : "Runic Augmentation",
extrachoices : ["Hagr - Ild", "Hagr - Kalt", "Hagr - Ond", "Hagr - Stein", "Hagr - Vind", "Sokn - Ild", "Sokn - Kalt", "Sokn - Ond", "Sokn - Stein", "Sokn - Vind", "Vard - Ild", "Vard - Kalt", "Vard - Ond", "Vard - Stein", "Vard - Vind"],
"hagr - ild" : {
name : "Hagr - Ild",
source : ["XLNtEE", 20],
description : "\n " + "While active, I can add my Con mod to my Str (Athletics) and Dex (Acrobatics) checks",
usages : 1,
recovery : "short rest",
action : ["action", ""]
},
"hagr - kalt" : {
name : "Hagr - Kalt",
source : ["XLNtEE", 20],
description : "\n " + "While active, I ignore difficult terrain and can walk on still or gently flowing water",
usages : 1,
recovery : "short rest",
action : ["action", ""]
},
"hagr - ond" : {
name : "Hagr - Ond",
source : ["XLNtEE", 20],
description : "\n " + "While active, any healing I receive also gives me 5 + my proficiency bonus temporary HP",
usages : 1,
recovery : "short rest",
action : ["action", ""]
},
"hagr - stein" : {
name : "Hagr - Stein",
source : ["XLNtEE", 20],
description : "\n " + "While active, any healing I receive also gives me 5 + my proficiency bonus temporary HP",
usages : 1,
recovery : "short rest",
action : ["action", ""]
},
"hagr - vind" : {
name : "Hagr - Vind",
source : ["XLNtEE", 20],
description : "\n " + "While active, I gain 5 ft + my Constitution mod in ft extra movement speed (min 5 ft)",
usages : 1,
recovery : "short rest",
action : ["action", ""]
},
"sokn - ild" : {
name : "Sokn - Ild",
source : ["XLNtEE", 20],
description : desc([
"While active, I can ignite a target that I hit with the rune-inscribed weapon once per turn",
"At each of its turn, it takes 1d4 fire damage, after which it can make a Con save to end",
"Alternatively, it or a creature within 5 ft of it can use an action to extinguish the flames",
"Extinguishing the flames requires a Wis (Medicine) check against my runic save DC"
]),
usages : 1,
recovery : "short rest",
action : ["bonus action", ""]
},
"sokn - kalt" : {
name : "Sokn - Kalt",
source : ["XLNtEE", 20],
description : "\n " + "While active, targets I hit with the rune-inscribed weapon can't take reactions until its turn",
usages : 1,
recovery : "short rest",
action : ["bonus action", ""]
},
"sokn - ond" : {
name : "Sokn - Ond",
source : ["XLNtEE", 20],
description : desc([
"While active, I deal extra damage once per turn when hit with the rune-inscribed weapon",
"It does 1d4 necrotic extra damage and I recover HP for the same amount"
]),
usages : 1,
recovery : "short rest",
action : ["bonus action", ""]
},
"sokn - stein" : {
name : "Sokn - Stein",
source : ["XLNtEE", 20],
description : desc([
"While active, Large or smaller targets I hit with the rune-inscribed weapon must save",
"On a failed Strength saving throw, the target is knocked prone"
]),
usages : 1,
recovery : "short rest",
action : ["bonus action", ""]
},
"sokn - vind" : {
name : "Sokn - Vind",
source : ["XLNtEE", 20],
description : desc([
"While active, I can use my reaction when hit by a melee attack to make an attack back",
"I can make a melee attack with the rune-inscribed weapon at the target who attacked me"
]),
usages : 1,
recovery : "short rest",
action : ["bonus action", ""],
eval : "AddAction('reaction', 'Sokn - Vind (when hit \u0026 active)', 'Sokn - Vind');",
removeeval : "RemoveAction('reaction', 'Sokn - Vind (when hit \u0026 active)', 'Sokn - Vind');"
},
"vard - ild" : {
name : "Vard - Ild",
source : ["XLNtEE", 20],
description : "\n " + "While active, when hit by a melee attack, the attacker gets my prof bonus in fire damage",
usages : 1,
recovery : "short rest",
action : ["reaction", ""]
},
"vard - kalt" : {
name : "Vard - Kalt",
source : ["XLNtEE", 20],
description : "\n " + "While active, when hit by a melee attack, I reduce the damage by my proficiency bonus",
usages : 1,
recovery : "short rest",
action : ["reaction", ""]
},
"vard - ond" : {
name : "Vard - Ond",
source : ["XLNtEE", 20],
description : "\n " + "While active, I add my Constitution modifier to saving throws to resist being frightened",
usages : 1,
recovery : "short rest",
action : ["reaction", ""]
},
"vard - stein" : {
name : "Vard - Stein",
source : ["XLNtEE", 20],
description : "\n " + "While active, I have advantage on saving throws to resist being moved against my will",
usages : 1,
recovery : "short rest",
action : ["reaction", ""]
},
"vard - vind" : {
name : "Vard - Vind",
source : ["XLNtEE", 20],
description : "\n " + "While active, ranged attacks against me have disadvantage",
usages : 1,
recovery : "short rest",
action : ["reaction", ""]
}
},
"subclassfeature3.2" : {
name : "Runescript",
source : ["XLNtEE", 19],
minlevel : 3,
description : desc([
"I gain proficiency with the Arcana and Religion skills",
"I double my proficiency bonus, if any, with Intelligence check to identify magical writing"
]),
skills : ["Arcana", "Religion"],
skillstxt : "\n\n" + toUni("Runeguard") + ": Arcana and Religion.",
},
"subclassfeature7" : {
name : "Eyes of the Arcanist",
source : ["XLNtEE", 19],
minlevel : 7,
description : desc([
"By spending 1 min observing, I know the general location of magical writing in 60 ft",
"This writing has to be used in a rite or ritual and I know its type (arcane, divine, other)"
]),
usages : "Proficiency bonus per ",
usagescalc : "event.value = How('Proficiency Bonus');",
recovery : "long rest"
},
"subclassfeature10" : {
name : "Sentinel's Reckoning",
source : ["XLNtEE", 19],
minlevel : 10,
description : desc([
"As an action, I can use the Tal effect of an active rune, stopping all active augmentations",
"The augmentations that were stopped can be used again after a short rest as normal",
"\u2022 Ild: All within 5 ft of me take fire damage equal to 2d6 \u00D7 number of active runes",
" They can make a Dexterity saving throw to halve the damage",
"\u2022 Kalt: All chosen within 10 ft \u00D7 number of active runes of me must make a Str save",
" On fail, restrained for number of active runes in rounds; Save again at end of each turn",
"\u2022 Ond: All chosen creatures within 5 ft of me heal 1d6 \u00D7 number of active runes in HP",
"\u2022 Stein: A cone of 5 ft \u00D7 number of active runes turns to difficult terrain",
" Any creature entering this area or starting its turn there takes 2d4 slashing damage",
"\u2022 Vind: All within 10 ft \u00D7 number of active runes of me must make a Strength save",
" On fail, pushed back 5 ft \u00D7 number of active runes (min 5 ft) and knocked prone",
" Additionally, they take 1d10 bludgeoning damage, or halve on a successful save"
]),
usages : levels.map(function (n) { return n < 10 ? "" : n < 15 ? 1 : 2; }),
recovery : "short rest",
action : ["action", ""]
},
"subclassfeature18" : {
name : "Runic Mastery",
source : ["XLNtEE", 19],
minlevel : 18,
description : "\n " + "I no longer need to concentrate on runic augmentations and can have three active"
}
}
});
AddSubClass( "monk", "way of atonement", {
regExpSearch : /^(?=.*atonement)((?=.*(monk|monastic))|(((?=.*martial)(?=.*(artist|arts)))|((?=.*spiritual)(?=.*warrior)))).*$/i,
subname : "Way of Atonement",
source : ["XLNtEE", 22],
features : {
"subclassfeature3" : {
name : "Atonement",
source : ["XLNtEE", 22],
minlevel : 3,
description : desc([
"I gain a number of Atonement dice that I can empower my Way of Atonement Features",
"I gain my monk level in d8 dice regaining dice after an atonement and short rest.",
"To atone, roll all spent Atonement Dice dealing bludgeoning, piercing, or slashing",
" to myself equal to the total of all dice. This damage is dealt after regaining",
" health from Hit Dice during a short rest, or during a long rest.",
]),
usages : "classes.known.monk.level",
recovery : "short rest"
},
"subclassfeature3.1" : {
name : "Penance",
source : ["XLNtEE", 23],
minlevel : 3,
description : desc([
"I perform a ritual prayer over the course of an hour, can be done during short rest.",
"During the ritual, carve notches into the club representing any additional sins.",
"While the penance is paid, my weapon is bonded, counts as a monk weapon, and ",
" can not be disarmed unless I am incapacitated.",
]),
},
"subclassfeature3.2" : {
name : "Strength of Faith",
source : ["XLNtEE", 23],
minlevel : 3,
description : desc([
"I can channel my zeal through my unarmed strikes and club when I hit.",
"I add an additional 2d8 force damage for each Atonement Die spent.",
"I expend 1 Ki point and can spend a number of Dice equal to half my monk level.",
]),
usages : [0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10],
recovery : "long rest",
},
"subclassfeature6" : {
name : "Armament of Atonement",
source : ["XLNtEE", 23],
minlevel : 6,
description : desc([
"While wielding Penance in one hand and nothing in the other, I gain a +1 to attack ",
" and damage rolls made by Penance and unarmed strikes. These attacks count as magical.",
" I gain a +1 to AC and Saving Throws increasing to +2 (8th), +3 (13th), and +4 (18th)",
"I lose 1 Atonement Die for each permanent magic item I own, except for my Penance.",
"These Atonement Dice can not be regained until I no longer possess the magic item.",
]),
},
"subclassfeature11" : {
name : "Labor of the Gods",
source : ["XLNtEE", 23],
minlevel : 11,
description : desc([
"[Reaction] When I am reduced to 0 hitpoints but not killed outright, I can spend",
" an Atonement Die to recover hit points equal to the roll plus my Constitution mod.",
"I gain an additional use at 17th Level.",
]),
action : ["reaction", " (On 0 HP)"],
usages : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
recovery : "short rest",
},
"subclassfeature17" : {
name : "Enlightened Voice",
source : ["XLNtEE", 23],
minlevel : 17,
description : desc([
"When making an ability or skill check that I'm not proficient in, spend 1 Ki point ",
" to gain proficiency and use my Wisdom modifier instead of the Skill's ability modifier.",
"Additionally, while in counsel with any creature that I'm able to speak with, and understand me",
" I can spend a number of Atonement Dice equal to half my monk level rounded down, adding the ",
" result to any one Charisma, Intelligence, or Wisdom check or saving throw. ",
]),
usages : 1,
recovery : "short rest",
}
}
});
AddSubClass( "monk", "way of empathy", {
regExpSearch : /^(?=.*empathy)((?=.*(monk|monastic))|(((?=.*martial)(?=.*(artist|arts)))|((?=.*spiritual)(?=.*warrior)))).*$/i,
subname : "Way of Empathy",
source : ["XLNtEE", 23],
features : {
"subclassfeature3" : {
name : "Healing Chakra",
source : ["XLNtEE", 24],
minlevel : 3,
description : desc([
"During a short rest, when I roll hit dice to regain hit points, I regain twice the",
" number of hit points rolled before adding my Constitution modifier. ",
]),
},
"subclassfeature3.1" : {
name : "Empathy",
source : ["XLNtEE", 24],
minlevel : 3,
description : desc([
"[Action] Expend 1 Ki point to touch a creature and heal a number of hit points up ",
" to 5 times my monk level. I take damage equal to the amount the creature healed.",
"This feature doesn't transfer any effects and the damage can not be reduced in any way.",
]),
},
"subclassfeature6" : {
name : "Sense Emotion",
source : ["XLNtEE", 24],
minlevel : 6,
description : desc([
"I learn the Friends cantrip",
"I can spend 2 Ki points to cast Calm Emotions or Detect Thoughts",
]),
spellcastingBonus : {
name : "Sense Emotions [Friends]",
spells : ["friends"],
selection : ["friends"],
atwill : true
},
extraname : "Sense Emotions",
eval : "ClassFeatureOptions([\"monk\", \"subclassfeature6\", \"calm emotions\", \"extra\"]); ClassFeatureOptions([\"monk\", \"subclassfeature6\", \"detect thoughts\", \"extra\"]);",
removeeval : "ClassFeatureOptions([\"monk\", \"subclassfeature6\", \"calm emotions\", \"extra\"], \"remove\"); ClassFeatureOptions([\"monk\", \"subclassfeature6\", \"detect thoughts\", \"extra\"], \"remove\");",
"calm emotions" : {
name : "Calm Emotions",
source : ["XLNtEE", 24],
description : " [2 ki points]" + "\n " + "As an action, I can cast Calm Emotions.",
action : ["action", ""],
spellcastingBonus : {
name : "Sense Emotions [Calm Emotions]",
spells : ["calm emotions"],
selection : ["calm emotions"],
firstCol : 2
},
spellFirstColTitle : "Ki"
},
"detect thoughts" : {
name : "Detect Thoughts",
source : ["XLNtEE", 24],
description : " [2 ki points]" + "\n " + "As an action, I can cast Detect Thoughts.",
action : ["action", ""],
spellcastingBonus : {
name : "Sense Emotions [Detect Thoughts]",
spells : ["detect thoughts"],
selection : ["detect thoughts"],
firstCol : 2
},
spellFirstColTitle : "Ki"
},
},
"subclassfeature6.1" : {
name : "Empathetic Bond",
source : ["XLNtEE", 24],
minlevel : 3,
description : desc([
"I create a metaphysical link between myself and a creature at the end of a short/long rest.",
"While the creature is within 60 ft of me, it has resistance to all damage. When the creature is ",
" damaged, I take the same amount of damage which can not be reduced in any way.",
"If the creature is reduced to 0 hit points and not killed outright, it becomes stabilized and ",
" any excess damage carries over to me, severing the bond. I can also end it as a bonus action.",
]),
},
"subclassfeature11" : {
name : "Adrenal Surge",
source : ["XLNtEE", 24],
minlevel : 11,
description : desc([
"[Bonus Action] [5 Ki] Up to five creatures within 30 ft that I can see gain advantage",
" on their next Constitution, Dexterity, or Strength ability check, attack roll,",
" or saving throw. The creatures gain temporary hit points equal to my monk level.",
]),
action : ["bonus action", " (5 Ki)"],
},
"subclassfeature17" : {
name : "Improved Empathetic Bond",
source : ["XLNtEE", 24],
minlevel : 17,
description : desc([
"I can use my Empathetic Bond to create two bonds instead of one.",
"I can use my Empathy feature as an action targeting a bonded creature within 30 ft.",
"While both links are active, I have resistance to all damage, including damage from ",
" my Empathy and Empathic Bond features. I loss the resistance if either link is lost.",
"[Bonus Action] I can end one or both links as a bonus action on my turn.",
]),
action : ["action", ""],
usages : 1,
recovery : "long rest",
},
}
});
AddSubClass( "paladin", "oath of predation", {
regExpSearch : /^(?=.*predation)(?=.*paladin).*$/i,
subname : "Oath of Predation",
source : ["XLNtEE", 25],
spellcastingExtra : ["command", "protection from evil and good", "enthrall", "pass without trace", "hypnotic pattern", "nondetection", "compulsion", "mordenkainen’s private sanctum", "dominate person", "teleportation circle"],
features : {
"subclassfeature3" : {
name : "Bonus Proficiencies",
source : ["XLNtEE", 26],
minlevel : 3,
description : desc([
"I gain proficiency in Thieves' Tools and my choice of Sleight of Hand or Stealth.",
"I gain expertise in Deception, Intimidation, or Persuasion if proficient.",
]),
toolProfs : ["Thieves' tools", "Dex"],
skillstxt : "\n\n" + toUni("Oath of Predation") + ": Choose either Sleight of Hand or Stealth. Gain expertise in Deception, Intimidation, or Persuasion if already proficient.",
},
"subclassfeature3.1" : {
name : "Channel Divinity: Predatory Instincts",
source : ["XLNtEE", 26],
minlevel : 3,
description : desc([
"I can use my Channel Divinity to add my Charisma Modifier to my Initiative roll.",
" Advantage on attack rolls against creatures that have not taken a turn in combat, ",
" Additional 1d6 Necrotic. Increase at CL7(2d6), CL11(3d6), CL15(4d6), CL19(5d6)",
]),
},
"subclassfeature3.2" : {
name : "Channel Divinity: Fell Suggestion",
source : ["XLNtEE", 26],
minlevel : 3,
description : desc([
"Cause a creature within 5 ft to make a Wisdom Save or become Charmed for 1 min.",
"[Bonus Action] Issue simple commands to the charmed creature within 60 ft of me.",
" I decide what action and movement the creature will take during its next turn.",
"The save may be attempted again, when a command is issued and at the end of its turn.",
" If failed, the creature will continue to carry out instructions to the best of its ability.",
"Feature can't be used on the same creature once the effect ends until I finish a long rest.",
]),
action : ["action", ""],
},
"subclassfeature7" : {
name : "Perfect Domination",
source : ["XLNtEE", 26],
minlevel : 7,
description : desc([
"When using my Fell Suggestion feature, I can force a creature to fail its save, ",
" if its Challenge Rating is equal to or below a certain threshold",
" When the creature would make a save to break the effect, it makes it at disadvantage",
"A creature effected by my Perfect Domination is charmed for 1 hr instead of 1 min.",
"At 15th, creatures of CR 1/2 or lower are charmed indefinitely until charm is broken.",
"At 19th, the Indefinite charm extends to creatures of CR 1 or lower.",
]),
action : ["action", ""],
additional : ["", "", "", "", "", "", "CR 1/2 or lower", "CR 1/2 or lower", "CR 1/2 or lower", "CR 1/2 or lower", "CR 1 or lower", "CR 1 or lower", "CR 1 or lower", "CR 1 or lower", "CR 2 or lower", "CR 2 or lower", "CR 2 or lower", "CR 2 or lower", "CR 3 or lower", "CR 3 or lower"],
},
"subclassfeature15" : {
name : "Shroud of the Illrigger",
source : ["XLNtEE", 26],
minlevel : 15,
description : desc([
"I am always under the effects of the Pass Without Trace spell.",
]),
addMod : { type : "skill", field : "Stealth", mod : 10, text : "I have a +10 bonus to Stealth from Pass Without Trace." },
},
"subclassfeature20" : {
name : "Hand of Manipulation",
source : ["XLNtEE", 26],
minlevel : 20,
description : desc([
"As an action, I magically become an avatar of deception and subterfuge for 1 min:",
" I gain the effects of the 'Greater Invisibility Spell'. ",
" Once per turn, If I hit with adv. on an attack roll, deal an additional 5d6 Necrotic",
" My allies have adv. on melee attacks against hostile creatures within 5 ft from me.",
" Allies deal extra damage to these creatures equal to my Charisma Mod (minimum 1)",
" Me and each creature I see and choose within 30 ft are immune to being charmed.",
]),
recovery : "long rest",
usages : 1,
action : ["action", ""],
}
}
});
AddSubClass( "paladin", "oath of providence", {
regExpSearch : /^(((?=.*(providence|fated|fate|destined|destiny))((?=.*paladin)|((?=.*(exalted|sacred|holy|divine))(?=.*(knight|fighter|warrior|warlord|trooper)))))|((?=.*(providence|fated|destined|chosen))(?=.*(knight|fighter|warrior|warlord|trooper)))).*$/i,
subname : "Oath of Providence",
source : ["XLNtEE", 26],
spellcastingExtra : ["bless", "divine favor", "aid", "augury", "bestow curse", "clairvoyance", "death ward", "divination", "commune", "legend lore"],
features : {
"subclassfeature3" : {
name : "Channel Divinity: Predestination",
source : ["XLNtEE", 26],
minlevel : 3,
description : desc([
"As a reaction, a creature I can see within 60 ft can make a saving throw with advantage",
"If it would take half-damage on a success, it takes none, and half-damage on a failure.",
]),
action : ["reaction", ""]
},
"subclassfeature3.1" : {
name : "Channel Divinity: Kiss of Calamity",
source : ["XLNtEE", 26],
minlevel : 3,
description : desc([
"As an action, all unfriendly creatures within 30 ft that can see or hear me must make a",
"Charisma saving throw, gaining disadvantage on all saving throws for 1 min on a failure.",
]),
action : ["action", ""]
},
"subclassfeature7" : {
name : "Favor the Bold",
source : ["XLNtEE", 26],
minlevel : 7,
description : desc([
"I can turn a miss with a weapon attack into a hit. When I use this feature, my target takes",
"extra radiant damage equal to my Charisma modifier (minimum of 1)",
]),
recovery : "long rest",
usages : "Charisma modifier per ",
usagescalc : "event.value = Math.max(1, tDoc.getField('Cha Mod').value);",
},
"subclassfeature15" : {
name : "Gift of Foresight",
source : ["XLNtEE", 26],
minlevel : 15,
description : desc([
"When I finish a short or long rest, I roll a d20 and record the prophetic roll number.",
"I can replace any attack roll, saving throw, or ability check made by me or a creature I can see",
"with my prophetic roll. I must choose to do so before the roll, and I can use the roll in this",
"way only once. When I finish a short or long rest, I lose any unused prophetic roll",
]),
recovery : "short rest",
usages : 1
},
"subclassfeature20" : {
name : "Hand of Fate",
source : ["XLNtEE", 26],
minlevel : 20,
description : desc([
"For 1 min, I project an aura of dim, silver light in a 10-foot radius.",
"Whenever an enemy creature starts its turn in my aura, it has disadvantage on attacks and",
"saving throws, while I and friendly creatures have advantage on attack rolls and saving",
"throws. When the aura fades away, I regain all expended uses of my Favor the Bold feature.",
]),
recovery : "long rest",
usages : 1,
action : ["action", ""]
}
}
});
AddSubClass( "ranger", "burghal explorer", {
regExpSearch : /^(?=.*burghal)(?=.*explorer)(?=.*ranger).*$/i,
subname : "Burghal Explorer",
source : ["XLNtEE", 28],
features : {
"subclassfeature3" : {
name : "Burghal Explorer Magic",
source : ["XLNtEE", 28],
minlevel : 3,
description : desc([
"I learn an additional spell at certain Ranger levels.",
"This spell counts as a Ranger spell, and does not count against my spells known.",
]),
spellcastingExtra : ["find familiar", "misty step", "tongues", "mordenkainen's faithful hound", "animate objects"],
},
"subclassfeature3.1" : {
name : "Grazing Strike",
source : ["XLNtEE", 28],
minlevel : 3,
description : desc([
"When I hit a creature with a weapon attack, I can graze a target's appendage.",
"The creature takes an additional 1d4 damage, and one of these effects.",
" Head : Disadv. on next save before end of its next turn.",
" Arm : Disadv. on next Strength Check/Attack before end of its next turn.",
" Leg : Movement speed reduced by 10 ft until the end of its next turn.",
" Chest: Strength Save or pushed 5ft away. If against a wall, take 1d6 bludgeoning.",
]),
},
"subclassfeature7" : {
name : "Above and Below",
source : ["XLNtEE", 28],
minlevel : 7,
description : desc([
"I can identity the fastest routes across cityscapes or crumbling ruins.",
"Climbing and Swimming no longer cost extra movement.",
"I am able to hold breath for twice as long as normal.",
"I increase the distance of a running jump a number of ft equal to my Dex Mod.",
]),
},
"subclassfeature11" : {
name : "Streetwise",
source : ["XLNtEE", 28],
minlevel : 11,
description : desc([
"I can disappear into crowds without hesitation.",
"While hidden, moving through non hostile crowds, I can disguise if prepared.",
"I need one hand free, and Insight checks against my disguise are made at disadv.",
"I can take the Disengage action as a bonus action on my turn.",
" When disengaging, I can move through the space of any Medium or larger creature",
" and ignore half cover when attacking a creature.",
]),
},
"subclassfeature15" : {
name : "Close Quarters",
source : ["XLNtEE", 29],
minlevel : 15,
description : desc([
"I gain half cover when two or more creatures are within 5 ft of me.",
"[Bonus Action] While wielding a shield, I can grant the benefit to an adjacent",
" creature until the start of my next turn or it moves 10 ft away from me.",
]),
action : ["bonus action", " Blocking"],
},
}
});
AddSubClass( "ranger", "wasteland wanderer", {
regExpSearch : /^(?=.*wasteland)(?=.*wanderer)(?=.*ranger).*$/i,
subname : "Wasteland Wanderer",
source : ["XLNtEE", 29],
features : {
"subclassfeature3" : {
name : "Wasteland Wanderer Magic",
source : ["XLNtEE", 29],
minlevel : 3,
description : desc([
"I learn an additional spell at certain Ranger levels.",
"Counts as a Ranger spell, and does not count against the total spells known.",
]),
spellcastingExtra : ["purify food and drink", "aid", "mass healing word", "death ward", "mass cure wounds"],
},
"subclassfeature3.1" : {
name : "Vigilant Guardian",
source : ["XLNtEE", 30],
minlevel : 3,
description : desc([
"I become harder to ambush and can't be surprised while in my favored terrain.",
"If my party is surprised at the start of combat, I have adv. on initiative rolls.",
"[Bonus Action] Make a Perception or Investigation Check to notice hidden enemies.",
"If an enemy is noticed, I may immediately move half my speed and make one weapon attack ",
" with advantage as part of the bonus action, dealing 2d8 additional damage.",
]),
action : ["bonus action", " Survey and Strike"],
},
"subclassfeature7" : {
name : "Trail of Trouble",
source : ["XLNtEE", 30],
minlevel : 7,
description : desc([
"I gain a +5 bonus to passive Perception and Investigation while traveling.",
" in my favored terrain even while traveling at a normal pace.",
"I can use my Primeval Awareness to sense unnatural disturbances nearby.",
" For 1 min per spell level, I can divine the types of traps within 60 ft",
" Learning how they trigger, and the kind of damage they deal.",
" I have resistance to traps I identify until the end of a short rest.",
]),
},
"subclassfeature11" : {
name : "Shared Succor",
source : ["XLNtEE", 30],
minlevel : 11,
description : desc([
"When casting a ranger spell that restores hit points to a creature other ",
" than myself, treat any dice rolled as having rolled their maximum value.",
"I regain the same amount plus my Wisdom Modifier.",
"[15th] Choose one additional creature within range of the spell to benefit.",
]),
usages : 1,
recovery : "long rest",
},
"subclassfeature15" : {
name : "Safety in Numbers",
source : ["XLNtEE", 30],
minlevel : 15,
description : desc([
"I gain the ability to use the enemy's momentum against them",
"When a creature within 30 ft of me deals damage to a creature other than me, ",
" I can use my reaction to grant the target resistance to the attack's damage.",
"As part of the reaction, I make a single weapon attack against the attacker, ",
" made at advantage. If it hits, the attacker has disadv. on its next ",
" attack roll until the end of its next turn.",
]),
action : ["reaction", " Gang Up"],
usages : "Wisdom mod per ",
usagescalc : "event.value = Math.max(1, Math.ceil(What('Wis Mod')));",
recovery : "long rest",
},
}
});
AddSubClass( "rogue", "divine herald", {
regExpSearch : /^(?=.*rogue)(?=.*divine)(?=.*herald).*$/i,
subname : "Divine Herald",
source : ["XLNtEE", 31],
abilitySave : 5,
spellcastingFactor : 3,
spellcastingList : {
class : "cleric",
level : [0, 4],
},
spellcastingKnown : {
cantrips : [0, 0, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
spells : [0, 0, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11, 11, 11, 12, 13],
},
features : {
"subclassfeature3" : {
name : "Spellcasting",
source : ["XLNtEE", 31],
minlevel : 3,
description : desc([
"I can cast known cleric cantrips/spells, using Wisdom as my spellcasting ability",
]),
additional : ["", "", "3 cantrips \u0026 3 spells known", "3 cantrips \u0026 4 spells known", "3 cantrips \u0026 4 spells known", "3 cantrips \u0026 4 spells known", "3 cantrips \u0026 5 spells known", "cantrips \u0026 6 spells known", "3 cantrips \u0026 6 spells known", "4 cantrips \u0026 7 spells known", "4 cantrips \u0026 8 spells known", "4 cantrips \u0026 8 spells known", "4 cantrips \u0026 9 spells known", "4 cantrips \u0026 10 spells known", "4 cantrips \u0026 10 spells known", "4 cantrips \u0026 11 spells known", "4 cantrips \u0026 11 spells known", "4 cantrips \u0026 11 spells known", "4 cantrips \u0026 12 spells known", "4 cantrips \u0026 13 spells known"],
},
"subclassfeature3.1" : {
name : "Harbinger of Faith",
source : ["XLNtEE", 32],
minlevel : 3,
description : desc([
"My Sneak Attack deals radiant damage instead of dealing weapon type damage.",
"If I follow an evil god, this damage type is necrotic instead.",
"When I hit a creature with a weapon attack on my turn, I can instill doubt in it",
"Wisdom save or suffer disadv. on next attack within 1 min.",
]),
usages : "Wisdom mod per ",
usagescalc : "event.value = Math.max(1, Math.ceil(What('Wis Mod')));",
recovery : "long rest",
},
"subclassfeature3.2" : {
name : "Dogma Votary",
source : ["XLNtEE", 32],
minlevel : 3,
description : desc([
"When making a History or Religion check to recall information about gods or worshipers",
"I am considered proficient and add double my proficiency bonus to the check.",
]),
},
"subclassfeature9" : {
name : "Guise of the Believer",
source : ["XLNtEE", 32],
minlevel : 9,
description : desc([
"When posing as a member of a religious organization, my identity is unquestioned.",
"I have adv. on Deception checks against a discerning creature to expose my guise.",
"Additionally, I can instill further doubt, granting disadv. in contest of my posturing.",
]),
usages : 1,
recovery : "short rest",
},
"subclassfeature13" : {
name : "Crosier of Penance",
source : ["XLNtEE", 32],
minlevel : 13,
description : desc([
"When reduced to 0 hit points and don't die outright, I make a DC 10 Wisdom Save",
"If I succeed, I can immediately roll any number of Hit Dice and regain that amount.",
"After the save succeeds, I can't cast a spell or use this feature until a long rest.",
]),
usages : 1,
recovery : "long rest",
},
"subclassfeature17" : {
name : "Last Rites",
source : ["XLNtEE", 32],
minlevel : 17,
description : desc([
"When I hit a creature that is below their hit point maximum, I can use my ",
" Sneak Attack feature on that creature, even if I am at disadv..",
"This damage increases by 1d6 if the target is Undead, Fiend, or Celestial.",
]),
},
}
});
AddSubClass( "sorcerer", "fey magic", {
regExpSearch : /^(?=.*(sorcerer))(?=.*(fey)).*$/i,
subname : "Fey Magic",
source : ["XLNtEE", 33],
features : {
"subclassfeature1" : {
name : "Wild Knowledge",
source : ["XLNtEE", 33],
minlevel : 1,
description : desc([
"I can speak, understand, and write Sylvan",
"I gain proficiency in the Nature Skill",
]),
languageProfs : ["Sylvan"],
skills : ["Nature"],
},
"subclassfeature1.1" : {
name : "Fey Magic",
source : ["XLNtEE", 33],
minlevel : 1,
description : desc([
"I can learn spells from the Druid Spell List.",
"When I learn/replace a Sorcerer spell or cantrip, I may choose from the Druid Spell List.",
]),
},
"subclassfeature6" : {
name : "Nature's Armor",
source : ["XLNtEE", 33],
minlevel : 6,
description : desc([
"I can cover my skin in thorny vines for 1 hour. See Barkskin spell",
"While the vines last, my AC can not be less than 16, regardless of armor or Dex.",
"Creatures that hit me take piercing damage equal to half my Sorcerer level (min 1)",
"This damage counts as magical for the purposes of overcoming resistance/immunity",
]),
usages : 1,
recovery : "short rest",
action : ["bonus action", ""],
},
"subclassfeature10" : {
name : "Sylvan Embrace",
source : ["XLNtEE", 33],
minlevel : 10,
description : desc([
"I can not be charmed, frightened, or put to sleep by fey.",
"I can speak, understand, and write Druidic.",
"[1 sorcery point] When casting a sorcerer spell of 1st level or higher, ",
" I expend 1 sorcery point to make myself and equipment I possess invisible,",
" until the end of my next turn. Ends early if I attack or cast a spell",
]),
languageProfs : ["Druidic"],
savetxt : {
text : ["Fey can't charm, sleep, or frighten me"],
},
},
"subclassfeature18" : {
name : "Untamed Champion",
source : ["XLNtEE", 33],
minlevel : 18,
description : desc([
"Whenever I cast a spell or cantrip that deals a damage type from the following list:",
" Acid, Cold, Fire, Lightning, Poison, or Thunder. I can expend a number of ",
" sorcery points to change the damage type to another on the list. The cost",
" equals the spell level. Cantrips cost 1 sorcery point.",
"Additionally, when I cast a spell of 1st level or higher, I can spend my all",
" my movement to teleport up to 15ft to an unoccupied space I can see.",
]),
},
},
});
// Code by Fourleafclov. WIP. gifts wip
AddSubClass("warlock", "the chaos", {
regExpSearch : /^(?=.*(warlock))(?=.*(chaos)).*$/i,
subname : "of the Chaos",
source : ["XLNtEE", 34],
spellcastingExtra : ["chaos bolt", "color spray", "alter self", "blindness/deafness", "bestow curse", "blink", "confusion", "phantasmal killer", "destructive wave", "mislead"],
features : {
"subclassfeature1" : {
name : "Strings Attached",
source : ["XLNtEE", 34],
minlevel : 1,
description : desc([
"Each night, denizens from the chaotic planes visit in my sleep and play tricks",
" on me but reward me with the sweetest of treats. When I finish a long rest, ",
" roll a 1d6 to determine the 'gift' bestowed on me. New rolls replace the old.",
]),
extraname : "Chaos Patron Gifts",
extrachoices : ["ChaosGift1", "ChaosGift2", "ChaosGift3", "ChaosGift4", "ChaosGift5", "ChaosGift6"],
"chaosgift1" : {
name : "Clouded Vision",
source : ["XLNtEE", 35],
description : desc([
"[Trick] My eyes become fogged over, blinding me beyond 5 ft.",
"[Treat] I can see invisible creatures and objects out to a range of 120 ft. ",
]),
vision : [["Blind", 5],["See Invisibility", 120]],
},
"chaosgift2" : {
name : "Wailing Cry (Thunderwave)",
source : ["XLNtEE", 35],
description : desc([
"[Trick] I can only speak in screams audible to 300 ft. Disadvantage on ",
" Stealth (Dex) checks whether my mouth is open or closed.",
"[Treat] I can cast Thunderwave at my warlock spell slot level once a short rest.",
]),
usages : 1,
recovery : "short rest",
spellcastingBonus : {
name : "Wailing Cry",
spells : ["thunderwave"],
selection : ["thunderwave"],
oncesr : true,
},
},
"chaosgift3" : {
name : "ChaosGift3",
source : ["XLNtEE", 35],
description : desc([
"[Trick] I can not tell a lie, I have disadvantage on Deception(Cha) checks.",
"[Treat] People find me trustworthy, I have advantage on Persuasion(Cha) checks.",
]),
eval : "Checkbox('Pers Adv', true, 'ChaosGift D3'); Checkbox('Dec Dis', true, 'ChaosGift D3');",
removeeval : "Checkbox('Pers Adv', false, ''); Checkbox('Dec Dis', false, '');"
},
"chaosgift4" : {
name : "Blood of the Chaos",
source : ["XLNtEE", 35],
description : desc([
"[Trick] The bloodlust fills me. Attacks rolls against me are rolled with advantage.",
"[Treat] I lash-out randomly and aggressively. I have advantage on attack rolls.",
]),
},
"chaosgift5" : { // change size and speed
name : "Diminishing Mass",
source : ["XLNtEE", 35],
description : desc([
"[Trick] I have shrank. I have become Tiny with a base walking speed of 20 ft.",
"[Treat] I gain Advantage of Stealth(Dex) checks and can Hide as a bonus action.",
]),
eval : "Checkbox('Ste Adv', true, 'Dimishing Mass');",
removeeval : "Checkbox('Ste Adv', false, '');",
action : ["bonus action", " (Hide)"],
},
"chaosgift6" : {
name : "Masochistic Tendencies",
source : ["XLNtEE", 35],
description : desc([
"[Trick] When rolling an attack, I miss on a 1 or 2, and hit myself instead.",
"[Treat] My attack rolls score a critical on a roll of 19 or 20.",
]),
},
},
"subclassfeature6" : {
name : "Tumble Through Chaos",
source : ["XLNtEE", 35],
minlevel : 6,
description : desc([
"I conjure a portal to travel through the Planes of Chaos",
"I can cast Dimension Door without expending a spell slot or material components.",
" When cast this way, roll a d6 to determine how the denizens intervene.",
" When bringing a willing creature with me, that creature arrives unharmed.",
"[14th] I gain the chance to recharge the ability on a d6 roll (6) on the turn it's used.",
]),
extraname : "Chaotic Intervention",
"chaotic intervention" : {
name : "Chaotic Intervention",
source : ["XLNtEE", 35],
description : desc([
"[1] Ysgard calls. I reappear at the end of my next turn, aged 7 days with a new scar.",
"[2] Disorientating tadpoles around me. I reappear by myself 5 x 1d6 short of destination.",
"[3] Howling rakes my senses. 2d4 psychic dmg and deafened for equal amount of Rnds.",
"[4] I arrive at the destination unscathed.",
"[5] Denizens aid my travel. I gain temporary hit equal to 1d6 + my Warlock Level.",
"[6] My patron blesses my travel. I gain the Bless spell effects for the next hour.",
]),
},
eval : "ClassFeatureOptions([\"warlock\", \"subclassfeature6\", \"chaotic intervention\", \"extra\"]);",
removeeval : "ClassFeatureOptions([\"warlock\", \"subclassfeature6\", \"chaotic intervention\", \"extra\"], \"remove\");",
usages : 1,
action : ["action", " (Dimension Door)"],
recovery : "short rest",
},
"subclassfeature10" : {
name : "Chaos Walker",
source : ["XLNtEE", 35],
minlevel : 10,
description : desc([
"My senses have dulled to the madness of my dreams that would drive others insane.",
"I gain advantage on saves against being frightened and madness checks.",
"My physical form begins to reflect the chaos in my mind. Roll a d6 when",
" finishing a short or long rest to determine my current chaotic features.",
]),
savetxt : {
adv_vs : ["frightened", "madness"],
},
extraname : "chaos walker features",
"chaos walker features" : {
name : "Chaos Walker Features",
source : ["XLNtEE", 36],
description : desc([
"[1] Horns of magenta energy grow from my head. If I already have horns, ",
" magenta energy wraps around them and writhe like tendrils behind me.",
"[2] Massive, muscular clawed arms of jet black energy ovelap my arms.",
"[3] My eyes bulge to twice their size, and my pupils narrow like a slaad.",
"[4] Shimmering wings of indigo energy sprout from my back, can not fly.",
"[5] Seemingly unchanged, my shadow reflects a different demon shape.",
"[6] When others look at me, my nose seems to drift slowly to one side ",
" of my face, returning to normal position when they blink.",
]),
},
eval : "ClassFeatureOptions([\"warlock\", \"subclassfeature10\", \"chaos walker features\", \"extra\"]);",
removeeval : "ClassFeatureOptions([\"warlock\", \"subclassfeature10\", \"chaos walker features\", \"extra\"], \"remove\");",
},
"subclassfeature14" : {
name : "Planar Vertigo",
source : ["XLNtEE", 36],
minlevel : 14,
description : desc([
"I can launch myself and all creatures within 30 ft of me into the air.",
"Each affected creature must make an Intelligence save or be launched 10 ft",
" in a d6 direction and suspended in midair for 1 minute, incapacitated.",
" (1)North, (2)South, (3)West, (4)East, (5)Skyward, (6)Earthward",
"Creature incapacitated by this repeat the save at the end of each of its turns,",
" On failure, they are launched again in another random direction.",
" Impacting a surface deals 2d6 bludgeoning, ends effect, and falls to the ground.",
"I can grant advantage to a number of creatures equal to my Charisma Mod.",
" On Success, the creature gains a fly speed equal to its walking speed.",
"The effect ends 1 minute after using the feature, falling to the ground.",
]),
usages : 1,
recovery : "long rest",
action : ["action", ""],
},
},
});
// Code by Fourleafclov. WIP. genie patron references
AddSubClass("warlock", "the noble genie", {
regExpSearch : /^(?=.*noble)(?=.*genie)(?=.*warlock).*$/i,
subname : "the Noble Genie",
source : ["XLNtEE", 36],
spellcastingExtra : ["chromatic orb", "shield", "flaming sphere", "maximilian's earthen grasp", "lightning bolt", "sleet storm", "conjure minor elementals", "elemental bane", "far step", "planar binding"],
features : {
"subclassfeature1" : {
name : "Noble Patronage",
source : ["XLNtEE", 36],
minlevel : 1,
description : desc([
"I gain the ability to speak Primordial from my patron. I have advantage on ",
" Arcana (Int) checks to identify elemental plane portals, magical inscriptions",
" or items created by other sha'irs, their patrons, or other genie-kind.",
"Additionally, I choose one type of Noble Genie, affecting later abilities",
]),
},
"subclassfeature1.1" : {
name : "Noble Patronage Genie",
source : ["XLNtEE", 36],
minlevel : 1,
choices : ["Dao", "Djinni", "Efreeti", "Marid"],
"dao" : {
name : "Noble Genie Dao [Poison]",
},
"djinni" : {
name : "Noble Genie Djinni [Lightning]",
},
"efreeti" : {
name : "Noble Genie Efreeti [Fire]",
},
"marid" : {
name : "Noble Genie Marid [Cold]",
},
},
"subclassfeature1.2" : {
name : "Gen Vizier",
source : ["XLNtEE", 37],
minlevel : 1,
description : desc([
"I acquire a Gen, lesser genie(non combat), to accompany me in my travels.",
"It is not required to obey my commands, but tries to the best of its ability.",
"[Bonus Action] I can request a spell for my Gen to retrieve. It returns after ",
" 1dX rounds minus my Charisma Mod. I must not know the spell, must be of ",
" a level I can cast, and can be from any class spell list.",
"When the Gen returns, I can use the spell at the beginning of that turn ",
" expending a spell slot. The knowledge disappears if not used in two rounds.",
"If I take Pact of the Chain, I may use my Gen as my Familiar.",
]),
recovery : "long rest",
usages : [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3],
action : ["bonus action", " (Spell Fetch)"]
},
"subclassfeature6" : {
name : "Bargain of Power",
source : ["XLNtEE", 37],
minlevel : 6,
description : desc([
"My dice for the Spell Fetching feature turn into a d10 and d8(14th)",
"I can expend a die to gain advantage on an Intimidation or Persuasion check.",
]),
},
"subclassfeature10" : {
name : "Elemental Attunement",
source : ["XLNtEE", 37],
minlevel : 10,
description : "\n " + "Use the \"Choose Features\" button above to select the effect",
choices : ["dao", "djinni", "efreeti", "marid"],
choicesNotInMenu : true,
"dao" : {
name : "Noble Genie Dao [Poison]",
description : desc([
"I gain resistance to Poison damage.",
"I add my Charisma Mod to any spell that deals Poison damage.",
]),
dmgres : ["Poison"],
},
"djinni" : {
name : "Noble Genie Djinni [Lightning]",
description : desc([
"I gain resistance to Lightning damage.",
"I add my Charisma Mod to any spell that deals Lightning damage.",
]),
dmgres : ["Lightning"],
},
"efreeti" : {
name : "Noble Genie Efreeti [Fire]",
description : desc([
"I gain resistance to Fire damage.",
"I add my Charisma Mod to any spell that deals Fire damage.",
]),
dmgres : ["Fire"],
},
"marid" : {
name : "Noble Genie Marid [Cold]",
description : desc([
"I gain resistance to Cold damage.",
"I add my Charisma Mod to any spell that deals Cold damage.",
]),
dmgres : ["Cold"],
},
eval : "if (FeaChoice === '') {var CFrem = What('Class Features Remember'); var tReg = /.*?warlock,subclassfeature1.1,(dao|djinni|efreeti|marid).*/i; if ((tReg).test(CFrem)) {FeaChoice = CFrem.replace(tReg, '$1'); AddString('Class Features Remember', 'warlock,subclassfeature10,' + FeaChoice, false);};};"
},
"subclassfeature14" : {
name : "Genie Form",
source : ["XLNtEE", 37],
minlevel : 14,
description : desc([
"I merge with my Gen to form an aspect of my Genie Patron lasting 1 minute.",
"\u2022 Gain a flying speed equal to my walking speed.",
"\u2022 Gain resistance to non-magical slashing, bludgeoning, and piercing damage.",
"\u2022 Advantage on saving throws vs magical spells and effects.",
"\u2022 The damage dealt by Eldritch Blast changes to my Genie damage type, and ",
" this damage can not be reduced by resistances or immunities.",
]),
recovery : "long rest",
usages : 1,
action : ["action", ""]
},
},
});
AddSubClass("wizard", "beguiler", {// Code by Fourleafclov. NEED FIXING on NEXT SHEET - add mod issue
regExpSearch : /(beguile|beguiler)/i,
subname : "School of the Beguiler",
fullname : "Beguiler",
source : ["XLNtEE", 38],
features : {
"subclassfeature2" : {
name : "Bonus Proficiencies",
source : ["XLNtEE", 38],
minlevel : 2,
description : desc([
"I gain proficiency in light armor and my choice of the Deception, Persuasion, ",
" or Stealth Skills. I learn one additional language of my choice.",
]),
armor : [true, false, false, false],
skillstxt : "\n\n" + toUni("Beguiler") + ": Choose one from Deception, Persuasion, and Stealth.",
languageProfs : 1,
},
"subclassfeature2.1" : {
name : "Erudite Elucidation",
source : ["XLNtEE", 38],
minlevel : 2,
description : desc([
"When I make a Charisma check or save, I can add my Intelligence modifier.",
]),
addMod : {type : "save",field : "Cha",mod : "Int",text : "I can add my Intelligence modifier to Charisma Saves."},
},
"subclassfeature2.2" : {
name : "Temp Fix for Erudite Elucidation1",
source : ["XLNtEE", 38],
minlevel : 2,
addMod : {type : "skill",field : "Dec",mod : "Int",text : "I can add my Intelligence modifier to Deception rolls."},
},
"subclassfeature2.3" : {
name : "Temp Fix for Erudite Elucidation2",
source : ["XLNtEE", 38],
minlevel : 2,
addMod : {type : "skill",field : "Inti",mod : "Int",text : "I can add my Intelligence modifier to Intimidation rolls."},
},
"subclassfeature2.4" : {
name : "Temp Fix for Erudite Elucidation3",
source : ["XLNtEE", 38],
minlevel : 2,
addMod : {type : "skill",field : "Perf",mod : "Int",text : "I can add my Intelligence modifier to Performance rolls."},
},
"subclassfeature2.5" : {
name : "Temp Fix for Erudite Elucidation4",
source : ["XLNtEE", 38],
minlevel : 2,
addMod : {type : "skill",field : "Pers",mod : "Int",text : "I can add my Intelligence modifier to Persuasion rolls."},
},
/* TEMPORARY FIX UNTIL CORE SHEET WORKS
addMod : [{
type : "save",
field : "Cha",
mod : "Int",
text : "I can add my Intelligence modifier to Charisma Saves."
},{
type : "skill",
field : "Dec",
mod : "Int",
text : "I can add my Intelligence modifier to Deception rolls."
},{
type : "skill",
field : "Inti",
mod : "Int",
text : "I can add my Intelligence modifier to Intimidation rolls."
},{
type : "skill",
field : "Perf",
mod : "Int",
text : "I can add my Intelligence modifier to Performance rolls."
},{
type : "skill",
field : "Pers",
mod : "Int",
text : "I can add my Intelligence modifier to Persuasion rolls."
}],
*/
"subclassfeature6" : {
name : "Sneak Spell",
source : ["XLNtEE", 38],
minlevel : 6,
description : desc([
"Once a turn, I can deal extra damage equal to my Intelligence Modifier to a creature",
" that I hit with a spell attack from a Wizard cantrip, if I had advantage on the attack",
" roll. I do not need advantage if another enemy of the target is within 5 ft, the enemy",
" isn't incapacitated, I don't have disadvantage, or the target has made a saving throw",
" against one of my enchantment or illusion spell since the beginning of my last turn.",
"Amount of extra damage increases at: 11th(2x Int Mod) and 17th(3x Int Mod)",
]),
},
"subclassfeature10" : {
name : "Mind Ambush",
source : ["XLNtEE", 39],
minlevel : 10,
description : desc([
"If I am hidden from a creature when I cast an enchantment or illusion spell that ",
" affects it, that creature has disadvantage on any save against that spell.",
]),
},
"subclassfeature14" : {
name : "Master Deceiver",
source : ["XLNtEE", 39],
minlevel : 14,
description : desc([
"I am now immune to the charmed condition.",
"When concentrating on an enchantment or illusion spell that affects one creature ",
" and that creature dies or falls unconscious, I can use my reaction to target ",
" a new creature with the spell for the remainder of the duration, until I lose ",
" concentration or become incapacitated by any means.",
" If the spell requires a saving throw, the new target attempts the saving throw",
" before the spell's condition takes effect.",
]),
savetxt : {
immune : ["charmed"],
},
},
},
});
AddSubClass("wizard", "mage hunter", {
regExpSearch : /^(?=.*mage)(?=.*hunter).*$/i,
subname : "School of the Mage Hunter",
fullname : "Mage Hunter",
source : ["XLNtEE", 39],
features : {
"subclassfeature2" : {
name : "Arcanist Investigator",
source : ["XLNtEE", 40],
minlevel : 2,
description : desc([
"I gain proficiency in light armor and my choice of one simple melee weapon.",
"I gain proficiency in the Perception skill if I do not already have it.",
]),
armor : [true, false, false, false],
weapons : [false, false, ['choice of simple melee']],
skills : ["Perception"],
},
"subclassfeature2.1" : {
name : "Counter-Weave",
source : ["XLNtEE", 40],
minlevel : 2,
description : desc([
"[Bonus Action] I can place a Counter-Weave on a creature I see within 30 ft lasting for",
" 1 minute, ending early if the creature dies, I die, or am incapacitated.",
"Until the Counter-Weave ends, the following conditions apply :",
"\u2022 Bonus to saves against that creature's spells equal to my Intelligence Mod.",
"\u2022 Double my Ability Score Mod to Survival(Wis) Skill checks to track my quarry ",
" as well as Intelligence checks to identify or recall information about my target.",
"\u2022 Creature's spell ranges are reduced by 10 ft or to touch, whichever is greater.",
"\u2022 Creature's constitution saves to maintain concentration on a spell are ",
" reduced by my Intelligence Mod",
]),
action : ["bonus action", ""],
usages : 2,
recovery : "long rest",
},
"subclassfeature6" : {
name : "Hunter's Armament",
source : ["XLNtEE", 40],
minlevel : 6,
description : desc([
"I forge a magical bond with my choice of weapon that I am proficient with. 1 Hour",
"I can't be disarmed of a bonded weapon and I can summon it as a bonus action",
"I can use my Spellcasting Ability for melee attack and damage instead of Strength.",
"The weapon becomes magical if it isn't, and becomes a +1 (10th) and +2 (14th)",
]),
action : ["bonus action", " (Summon)"],
},
"subclassfeature10" : {
name : "Arcane Sanctum",
source : ["XLNtEE", 40],
minlevel : 10,
description : desc([
"I have learned the Magic Circle spell, having it always prepared and not counting ",
" against the total number of prepared spells for the day.",
"[Action] Cast Magic Circle instantly, range self, without expending a spell slot.",
"[Bonus Action] When I hit a creature affected by my Counter-Weave, I can cast this",
" spell as a bonus action, centered on my target.",
]),
action : ["action", " (Magic Circle)"],
usages : 1,
recovery : "long rest",
eval : "AddAction('bonus action', 'Arcane Sanctum (Magic Encasement)', 'Mage Hunter')",
removeeval : "RemoveAction('bonus action', 'Arcane Sanctum (Magic Encasement)', 'Mage Hunter')",
},
"subclassfeature14" : {
name : "Eyes of the Master",
source : ["XLNtEE", 40],
minlevel : 14,
description : desc([
"My Arcana(Int) skill proficiency is doubled with checks made to identify persistent",
" magic, magical items, or the presence of magical and otherworldly creatures.",
]),
},
},
});
AddSubClass("wizard", "reconstruction", {
regExpSearch : /^(?=.*reconstruction)(?=.*constructor).*$/i,
subname : "School of Reconstruction",
fullname : "Constructor",
source : ["XLNtEE", 41],
features : {
"subclassfeature2" : {
name : "Creation Savant",
source : ["XLNtEE", 41],
minlevel : 2,
description : desc([
"I halve the gp and time needed to copy evocation spells into my spellbook",
"Additionally, I learn two cantrips and add one 1st level spell to my spellbook",
" from the cleric spell list. These count as wizard spells for me.",
"Other wizards are not able to copy these spells from my spellbook into theirs",
]),
spellcastingBonus : [{
name : "1st Cleric Cantrip",
"class" : "cleric",
level : [0,0]
},{
name : "2nd Cleric Cantrip",
"class" : "cleric",
level : [0,0]
},{
name : "1st-Level Cleric Spell",
"class" : "cleric",
level : [2,2]
}],
},
"subclassfeature2.1" : {
name : "Applied Reconstruction",
source : ["XLNtEE", 41],
minlevel : 2,
description : desc([
"When I cast an evocation spell of 1st level or higher that targets only one",
" creature, with an instantaneous duration, and does not require concentration,",
" the target creature takes no damage and instead regains hit points equal to ",
" half the total damage.",
"If the spell requires an attack roll or saving throw, they creature can choose",
" to be hit or fail the saving throw. The spell does not impose any conditions.",
"Undead and constructs can not regain hit points in this way.",
]),
},
"subclassfeature6" : {
name : "Prolonged Regeneration",
source : ["XLNtEE", 41],
minlevel : 6,
description : desc([
"When I cast a wizard spell that restores hit points, living creatures affected",
" by the spell continue to regenerate over the next 1d4 rounds. The creature",
" regains hit points equal to my Intelligence Mod at the start of its turns, ",
" provided the creature has at least 1 hit point remaining.",
"Additionally, while regenerating, the creature is immune to disease and poison.",
" All current diseases or poison effects are suspended for the duration.",
]),
},
"subclassfeature10" : {
name : "Blossom of Life",
source : ["XLNtEE", 41],
minlevel : 10,
description : desc([
"When I cast an evocation spell that affect other creatures that I can see, I ",
" choose a number of creatures equal to 1 + Spell Level to impose an effect",
" that uses my wizard spell save DC.",
"Chosen creatures auto succeed on their saves and take no damage from the spell",
" They regain hit points equal to half the damage the spell would deal.",
"Undead and constructs can not regain hit points in this way.",
]),
},
"subclassfeature14" : {
name : "Overheal",
source : ["XLNtEE", 41],
minlevel : 14,
description : desc([
"When I cast a wizard spell of 5th or lower spell level that restores hit points",
" I can maximize the healing power of the spell.",
"If I use the feature again before finishing a long rest, I take 1d12 necrotic",
" damage for each level of the spell, immediately after the healing occurs.",
"Each use of the feature again before finishing a long rest increases the ",
" necrotic damage per spell level by 1d12 ignoring resistance and immunity.",
"Additionally, I can choose four spells from the cleric spell list to add to my",
" spellbook. One from each 2nd, 3rd, 4th, 5th and count as wizard spells.",
"Other wizards are not able to copy these spells from my spellbook into theirs",
]),
spellcastingBonus : [{
name : "2nd-Level Cleric Spell",
"class" : "cleric",
level : [2,2]
}, {
name : "3rd-Level Cleric Spell",
"class" : "cleric",
level : [3,3]
}, {
name : "4th-Level Cleric Spell",
"class" : "cleric",
level : [4,4]
}, {
name : "5th-Level Cleric Spell",
"class" : "cleric",
level : [5,5]
}],
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment