Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AelarTheElfRogue/9e060011fea80970406133665bd99308 to your computer and use it in GitHub Desktop.
Save AelarTheElfRogue/9e060011fea80970406133665bd99308 to your computer and use it in GitHub Desktop.
Compendium of Forgotten Secrets - Awakening - Blackthorn Grove
var iFileName = "Compendium of Forgotten Secrets - Awakening - Blackthorn Grove.js";
SourceList.CoFSA={
name : "Compendium of Forgotten Secrets - Awakening",
abbreviation : "CoFSA",
group : "Homebrew",
url : "https://www.genfantasypress.com/",
date : "2019/03/07"
};
//The Blackthorn Grove - Warlock
AddSubClass("warlock", "the blackthorn grove", {
regExpSearch : /^(?=.*blackthorn)(?=.*grove)(?=.*warlock).*$/i,
subname : "the Blackthorn Grove",
source : ["CoFSA", 23],
spellcastingExtra : ["entangle", "hunter's pace", "heartripper", "replenish", "plant growth", "skewering vines", "bloodthorn", "cage of briars", "overwhelming emotion", "tree stride"],
features : {
"subclassfeature1" : {
name : "Blackthorn Heart",
source : ["CoFSA", 23],
minlevel : 1,
description : desc ([
"I ignore nonmagical difficult terrain. Whenever I fail a death saving throw, I make a",
"melee spell attack against an enemy within 15 feet of me. On a hit, the creature takes",
"magical piercing damage equal to my warlock level, and I regain hit points equal to the",
"damage dealt.",
]),
recovery : "short rest",
usages : 1,
},
"subclassfeature6" : {
name : "Apathy is Death",
source : ["CoFSA", 23],
minlevel : 6,
description : desc ([
"I can use my reaction to gain advantage on an Intelligence, Wisdom, or Charsima saving",
"throw, and then I can move up to half my speed and make a single weapon attack",
"before the result of the roll is revealed."
]),
action : ["reaction", ""],
recovery : "short rest",
usages : 1
},
"subclassfeature10" : {
name : "Arboreal Guardian",
source : ["CoFSA", 23],
minlevel : 10,
description :desc ([
"Whenever a creature within 5 feet of me would take damage, I can choose to redirect",
"half of the damage to me by shielding them with vines from my Blackthorn heart.",
"Only the original target suffers any additional effects of the damage. If this damage",
"reduces me to 0 hit points, you gain advantage on the first attack made by your",
"Blackthorn Heart feature."
]),
},
"subclassfeature14" : {
name : "Seeds of Destruction",
source : ["CoFSA", 23],
minlevel : 14,
description : desc ([
"As an action, or whenever you fail to recover hit points using your Blackthorn Heart",
"feature, I can make the area within a 30-foot radius of me difficult terrain. A creature",
"within the radius at the start of its turn must make a Constitution saving throw against",
"my warlock spell save DC. A target takes 4d6 magical slashing damage on a failed save,",
"or half that on a success. Allies make this saving throw with advantage. If summoned as",
"an action, it lasts until the start of my next turn. If summoned when I am at 0 hit",
"points, it lasts until I recover 1 hit point, or becomes permanent if I die.I can summon it",
"once per long rest as an action, and once per long rest when I fall to 0 hit points."
]),
recovery : "long rest",
usages : 1,
action : ["action", ""]
}
}
});
AddWarlockInvocation("Awakened Blade (prereq: the Blackthorn Grove patron, Pact of the Blade)", {
name : "Awakened Blade",
source : ["CoFSA", 23],
description : desc([
"I can create a weapon of polished black wood and wicked spines as my pact blade. While",
"maintaining concentration on a spell cast using a Warlock spell slot while wielding",
"this weapon, my AC is a 17 unless it would normally be higher.",
]),
prereqeval : "(/blackthorn/).test(classes.known.warlock.subclass) && What('Class Features Remember').indexOf('warlock,pact boon,pact of the blade') !== -1",
});
AddWarlockInvocation("Book of the Blackthorn (prereq: the Blackthorn Grove patron, Pact of the Tome)", {
name : "Book of the Blackthorn",
source : ["CoFSA", 23],
description : desc([
"During a short or long rest, I can create an effigy, and spend 1 minute placing it into",
"a dead creature, causing it to become a zombie with 1 HP. It will travel to a destination",
"of my choosing, ignoring all creatures and will not stop unless destroyed. When it reaches",
"the destination, it crumbles and a sapling sprouts from the corpse. Creating a new effigy",
"will cause the previous one to cease to function, and the zombie turns back into a corpse."
]),
usages : 1,
recovery : "short rest",
prereqeval : "(/blackthorn/).test(classes.known.warlock.subclass) && What('Class Features Remember').indexOf('warlock,pact boon,pact of the tome') !== -1",
});
AddWarlockInvocation("Nightshade's Embrace (prereq: the Blackthorn Grove patron, level 7 warlock)", {
name : "Nightshade's Embrace",
source : ["CoFSA", 23],
description : desc([
"When I deal damage with a cantrip or weapon attack, I can use a bonus action to try to ",
"poison the target. The next time the target takes piercing, slashing, or bludgeoning damage",
"It must succeed on a Con save against my warlock spell DC or be poisoned and blinded until",
"the end of my next turn."
]),
action: ["bonus action"],
prereqeval : "(/blackthorn/).test(classes.known.warlock.subclass) && classes.known.warlock.level >= 7",
});
AddWarlockInvocation("United Survival (prereq: the Blackthorn Grove patron, Pact of the Chain)", {
name : "United Survival",
source : ["CoFSA", 23],
description : desc([
"While I have a bloodless wanderer as my familiar, it gains additional maximum hit points",
"equal to my warlock level. I can transfer a number of my own hit points up to my warlock",
"level to another creature by touching the target as an action."
]),
action : ["action", ""],
prereqeval : "(/blackthorn/).test(classes.known.warlock.subclass) && What('Class Features Remember').indexOf('warlock,pact boon,pact of the chain') !== -1",
});
SpellsList["bloodthorn"] = {
name : "Bloodthorn",
regExpSearch : /^(?=.*bloodthorn).*$/i,
classes : ["druid", "ranger"],
source : ["CoFSA", 162],
ritual : false,
level : 4,
school : "Necro",
time : "1 a",
range : "60 ft",
components : "V,S,M",
compMaterial : "A thorn",
duration : "Instantaneous",
description : "On hit, 5d10+1d10/SL piercing, and make new attack w/n range, up to 3 times or miss. No repeats",
descriptionFull : "You imbue a single thorn with a deadly enchantment, hurling it out towards a creature that you can see within range. Make a ranged spell attack roll. If you hit, the target takes 5d10 piercing damage. If you hit, you can choose an additional target for the bloodthorn to seek, repeating the attack against a different target within 60 feet of the previous one and using the thorn’s new position to determine if a target would gain the benefits of cover. You can repeat this process up to three times or until the attack misses. A creature cannot be targeted more than once." + AtHigherLevels + "When you cast this spell using a spell slot of 5th level or higher, the piercing damage increases by 1d10 per spell slot level above 4th.",
};
SpellsList["cage of briars"] = {
name : "Cage of Briars",
regExpSearch : /^(?=.*cage)(?=.*briars).*$/i,
classes : ["druid", "ranger"],
source : ["CoFSA", 163],
ritual : false,
level : 4,
school : "Conj",
time : "1 min",
range : "30 ft",
components : "V,S,M",
compMaterial : "A small woven basket",
duration : "8 h",
description : "Create 10x10x10ft cube, AC 10, 200+20/SL HP, vuln. fire.",
descriptionFull : "You imbue a single thorn with a deadly enchantment, hurling it out towards a creature that you can see within range. Make a ranged spell attack roll. If you hit, the target takes 5d10 piercing damage. If you hit, you can choose an additional target for the bloodthorn to seek, repeating the attack against a different target within 60 feet of the previous one and using the thorn’s new position to determine if a target would gain the benefits of cover. You can repeat this process up to three times or until the attack misses. A creature cannot be targeted more than once." + AtHigherLevels + "When you cast this spell using a spell slot of 5th level or higher, the piercing damage increases by 1d10 per spell slot level above 4th.",
};
SpellsList["heartripper"] = {
name : "Heartripper",
regExpSearch : /^(?=.*heartripper).*$/i,
classes : ["druid", "ranger", "sorcerer"],
source : ["CoFSA", 169],
ritual : false,
level : 2,
school : "Necro",
time : "1 a",
range : "Touch",
components : "S",
duration : "Instantaneous",
description : "Spell atk 1d10 piercing dmg. target Con save or take 3d10+1d0/SL piercing dmg and stunned",
descriptionFull : "When you cast this spell, barbed thorns sprout from your fingertips. Make a melee spell attack roll against a creature within range. If you hit, the target takes 1d10 piercing damage and must make a Constitution saving throw. If they fail, you grasp a vital part of their anatomy and squeeze, inflicting an additional 3d10 piercing damage and stunning the target until the start of their next turn. If the spell attack roll resulted in a critical hit, the target has disadvantage on their saving throw." + AtHigherLevels + "When you cast this spell using a slot of 3rd level or higher, the piercing damage of the second phase of the spell increases 1d10 per slot above 2nd.",
};
SpellsList["hunter's pace"] = {
name : "Hunter's Pace",
regExpSearch : /^(?=.*hunter's)(?=.*pace).*$/i,
classes : ["druid", "ranger"],
source : ["CoFSA", 170],
ritual : false,
level : 1,
school : "Trans",
time : "1 bns",
range : "Self",
components : "V",
duration : "Conc, 1 h",
description : "Adv. on Str. checks to jump, climb, swim, move, saving throws for exhaustion, dif. ter. 0+5ft/SL spd",
descriptionFull : "You let out a hunting cry, empowering your body with speed and tirelessness. While you maintain concentration on this spell, you gain advantage on Athletics checks to jump, climb, swim, or move. You also gain advantage on saving throws against exhaustion and on checks to mitigate the effects of difficult terrain." + AtHigherLevels + "When you cast this spell using a slot of 2nd level or higher, your movement speed also increases by 5 feet per slot level above 1st.",
};
SpellsList["overwhelming emotion"] = {
name : "Overwhelming Emotion",
regExpSearch : /^(?=.*overwhelming)(?=.*emotion).*$/i,
classes : ["bard", "sorcerer", "wizard"],
source : ["CoFSA", 172],
ritual : false,
level : 5,
school : "Ench",
time : "1 a",
range : "30 ft",
components : "V,S,M\u0192",
compMaterial : "a gemstone worth at least 50 gp",
duration : "Conc, 1 min",
description : "Up to 3 crea save or consumed with emotion (Wrath, Sorrow, Joy) for duration, see book",
descriptionFull : "You beguile the mind of up to three creatures that you can see, assailing them with an all-consuming emotion. Each creature must make a Wisdom saving throw. Choose one of the effects below when you cast the spell. A creature that fails their saving throw is subject to the effects for the duration. A creature that is immune to the charmed condition is immune to the effects of this spell." + "\n " + toUni("Wrath") + ": The target must attempt to move closer to a hostile creature and try to damage them during their turn. If there are no hostile creatures present, the target will choose an ally instead." + "\n " + toUni("Sorrow") + ": The target suffers disadvantage on Charisma and Wisdom saving throws." + "\n " + toUni("Joy") + ": The target cries tears of joy, becoming incapable of speaking coherently or casting spells with verbal components.",
};
SpellsList["replenish"] = {
name : "Replenish",
regExpSearch : /^(?=.*replenish).*$/i,
classes : ["bard", "druid", "ranger", "sorcerer"],
source : ["CoFSA", 173],
ritual : false,
level : 2,
school : "Evoc",
time : "1 a",
range : "Touch",
components : "V,S",
duration : "Instantaneous",
description : "Target regains 2d6+1d6/SL temp HP, cured of poisoned condition. Temp. HP lost on short or long rest",
descriptionFull : "When you cast this spell, you touch an allied creature that you can see. The target surges with vital force, gaining 2d6 temporary hit points. These temporary hit points are lost whenever the target finishes a short or long rest. The target is also cured of the poisoned condition." + AtHigherLevels + "When you cast this spell using a slot of 3rd level or higher, the temporary hit points gained increases by 1d6 per slot level above 2nd.",
};
SpellsList["skewering vines"] = {
name : "Skewering Vines",
regExpSearch : /^(?=.*skewering)(?=.*vines).*$/i,
classes : ["druid"],
source : ["CoFSA", 176],
ritual : false,
level : 3,
school : "Conj",
time : "1 a",
range : "Self",
components : "V,S",
duration : "Conc, 1 min",
description : "3d10+1d10/SL piercing dmg, ignore 3/4 cover, and target lifted 5ft into the air",
descriptionFull : "When you cast this spell, a mass of vines coils forth from the ground around you. When you cast this spell, and as an action on each of your turns while it remains, you can make a ranged spell attack against a target you can see within 30 feet of you. This attack ignores half and three-quarters cover. If you hit, the target takes 3d10 piercing damage and is lifted 5 feet into the air until the end of their next turn. They can use half their movement during their turn to free themselves of the skewering vines, returning to the ground." + AtHigherLevels + "When you cast this spell using a spell slot of 4th level or higher, the piercing damage increases by 1d10 per slot level above 3rd.",
};
CreatureList["bloodless wanderer"] = {
name : "Bloodless Wanderer",
source : ["CoFSA", 142],
size : 4,
type : "Plant",
subtype : "",
companion : "familiar",
alignment : "Neutral",
ac : 16,
hp : 31,
hd : [6, 6],
speed : "30 ft, climb 30 ft",
scores : [16, 12, 14, 10, 12, 10],
saves : ["", "", "4", "", "", ""],
damage_resistances : "cold; poison; radiant; bludgeoning, piercing, and slashing from nonmagical attacks",
condition_immunities : "frightened, exhausted",
senses : "Blindsight 10 ft, Darkvision 60 ft",
languages : "understands languages known by its master, but can't speak or write",
passiveperception: 11,
challengeRating : "1",
proficiencyBonus : 2,
attacksAction : 1,
attacks : [{
name : "Vine Lash",
ability : 1,
damage : [1, 10, "slashing"],
range : "Reach (15 ft)",
description : "Target also takes an additional 1d4 piercing dmg.",
modifiers : ["", "", ""],
tooltip : "Vine Lash.\n\nMelee Weapon Attack: +5 to hit, reach 15 ft., one target. Hit: 8 (1d10 + 3) slashing damage plus 5 (1d4 +3) piercing damage."
}
],
traits : [{
name : "Bloodsucking Vines",
description : "Whenever the bloodless wanderer deals slashing or piercing damage, it recovers hit points equal to the damage dealt. This does not apply if the target is a construct."
}, {
name : "Corpse Thief",
description : "When the wanderer is touching the corpse of a beast or humanoid with a CR of 2 or less, it can use an action to enter and animate the body like a puppet. While inside, it gains temporary hit points equal to half the maximum hit points of the dead creature. When these temporary hit points are reduced to zero, the corpse is destroyed and the wanderer is ejected. The wanderer can choose to leave as a bonus action."
}, {
name: "Grim Mask",
description: "Melee attacks targeting the bloodless wanderer are made with disadvantage. When a creature makes a melee attack targeting it and misses, it takes 1d6 slashing damage."
},
{
name: "Magic Resistance",
description : "The bloodless wanderer has advantage on saving throws against spells and other magical effects."
}, {
name : "Natural Visage",
description : "The bloodless wanderer has advantage on saving throws against spells and other magical effects. Natural Visage. When the bloodless wanderer is still, it is indistinguishable from an ordinary plant. The wanderer is unimpeded by difficult terrain caused by plants, and can take the Hide action as a bonus action. It can hide while only lightly obscured."
}
],
features : [{
name : "United Survival",
description : "My bloodless wanderer gains HP equal to my warlock level if i have the United Survival Invocation."
},
]
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment