diff --git a/Patchnotes.md b/Patchnotes.md
index 6b28d9c..8336b40 100644
--- a/Patchnotes.md
+++ b/Patchnotes.md
@@ -1,3 +1,6 @@
+#v0.5.0
+- Fixed: Issue #17 (error in filtering NPCs by Creature Type)
+
#v0.4.5
- Fixed: [Suggestion] Show compendium source in results; Issue #11
- Fixed: Spells from non-system compendium show up in items tab. Issue#10
diff --git a/README.md b/README.md
index 79bb309..0d2adfb 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,20 @@
# Compendium Browser
+**NEW in 0.5** Support for Foundry 0.8.x
Tired of scrolling compendia? Easily brows and filter for spells, feats, items, and NPCs using Compendium Browser.
-**NEW** Compendium Browser is faster and better-behaved; **it no longer loads all the compendia into memory on start-up** (which sometimes hung servers because of memory or CPU requirements). Instead, it filters and loads on-demand, as well as giving you a Module Setting to control how many rows are loaded at a time.
+Compendium Browser is faster and better-behaved; **it no longer loads all the compendia into memory on start-up** (which sometimes hung servers because of memory or CPU requirements). Instead, it filters and loads on-demand, as well as giving you a Module Setting to control how many rows are loaded at a time.
## Summary
* **Authors**: Discord: Spetzel#0103; Felix (felix.mueller.86@web.de)
-* **Version**: 0.4.5
-* **Foundry VTT Compatibility**: 0.7.2-0.7.9
+* **Version**: 0.5.0
+* **Foundry VTT Compatibility**: 0.7.2-0.8.6
* **System Compatibility (If applicable)**: dnd5e
* **Translation Support**: en
## Installation
1. Go to the Add-on Modules tab in Foundry Setup
-2. Click Install Module and search for **Compendium Browser** OR paste this link: `https://github.com/League-of-Foundry-Developers/compendium-browser/releases/download/latest/module.json`
+2. Click Install Module and search for **Compendium Browser** OR paste this link: `https://github.com/League-of-Foundry-Developers/compendium-browser/releases/latest/download/module.json`
3. Open your world and go to Settings>Manage Modules and enable Compendium Browser
diff --git a/compendium-browser.js b/compendium-browser.js
index bcaed5c..2ec0486 100644
--- a/compendium-browser.js
+++ b/compendium-browser.js
@@ -40,6 +40,7 @@
loadAndFilterItems(): Changed tests to switch + more explicit tests
0.4.5b Show compendium source in results issue#11
Try showing compendium in the image mouseover
+12-Jun-2021 0.5.0 Test for Foundry 0.8.x in which creature type is now data.details.type.value
*/
const CMPBrowser = {
@@ -1405,6 +1406,7 @@ class CompendiumBrowser extends Application {
}
async addNpcFilters() {
+ const isFoundryV8 = game.data.version.startsWith("0.8");
// NPC Filters
this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("DND5E.Source"), 'data.details.source', 'text');
@@ -1413,7 +1415,16 @@ class CompendiumBrowser extends Application {
this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.hasLegAct"), 'data.resources.legact.max', 'bool');
this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.hasLegRes"), 'data.resources.legres.max', 'bool');
this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.cr"), 'data.details.cr', 'numberCompare');
- this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.creatureType"), 'data.details.type', 'text', {
+
+ //Foundry 0.8.x: Creature type (data.details.type) is now a structure, so we check data.details.types.value instead
+ let npcDetailsPath;
+ if (isFoundryV8) {
+ npcDetailsPath = "data.details.type.value";
+ } else {//0.7.x
+ npcDetailsPath = "data.details.type";
+ }
+
+ this.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.creatureType"), npcDetailsPath, 'text', {
aberration: game.i18n.localize("CMPBrowser.aberration"),
beast: game.i18n.localize("CMPBrowser.beast"),
celestial: game.i18n.localize("CMPBrowser.celestial"),
diff --git a/module.json b/module.json
index ffcf7cd..f967cca 100644
--- a/module.json
+++ b/module.json
@@ -1,8 +1,8 @@
{
"name": "compendium-browser",
"title": "Compendium Browser",
- "description": "
Easily browse and filter spells, feats, items, and npcs loaded from compendia!
NEW! Compendium Browser is faster and better-behaved; it no longer loads all the compendia into memory on start-up (which sometimes hung servers because of memory or CPU requirements). Instead, it filters and loads on-demand, as well as giving you a Module Setting to control how many rows are loaded at a time.
Changes in v0.4.5:- Fixed: Spells from non-system compendium show up in items tab.(Issue #10)
- Added: Show compendium source in results (Issue #11)
",
- "version": "0.4.5",
+ "description": "Easily browse and filter spells, feats, items, and npcs loaded from compendia!
NEW! Compendium Browser is faster and better-behaved; it no longer loads all the compendia into memory on start-up (which sometimes hung servers because of memory or CPU requirements). Instead, it filters and loads on-demand, as well as giving you a Module Setting to control how many rows are loaded at a time.
Changes in 0.6.0: Added languages (German, Spanish)",
+ "version": "0.6.0",
"author": "Spetzel#0103",
"authors": [
{
@@ -40,10 +40,10 @@
}
],
"url": "https://github.com/League-of-Foundry-Developers/compendium-browser",
- "manifest": "https://github.com/League-of-Foundry-Developers/compendium-browser/releases/download/latest/module.json",
- "download": "https://github.com/League-of-Foundry-Developers/compendium-browser/releases/download/latest/compendium-browser.zip",
+ "manifest": "https://github.com/League-of-Foundry-Developers/compendium-browser/releases/latest/download/module.json",
+ "download": "https://github.com/League-of-Foundry-Developers/compendium-browser/releases/download/v0.6.0/compendium-browser.zip",
"minimumCoreVersion": "0.6.2",
- "compatibleCoreVersion": "0.7.9",
+ "compatibleCoreVersion": "0.8.9",
"allowBugReporter": true,
"bugs": "https://github.com/League-of-Foundry-Developers/compendium-browser/issues",
"readme": "https://github.com/League-of-Foundry-Developers/compendium-browser/blob/master/README.md",
diff --git a/spell-classes.json b/spell-classes.json
index 00bd93a..ad7c86c 100644
--- a/spell-classes.json
+++ b/spell-classes.json
@@ -1,484 +1,504 @@
-
-{
- "abidalzimshorridwilting": "sorcerer,wizard",
- "absorbelements": "artificer,druid,ranger,sorcerer,wizard",
- "arcaneweapon": "artificerrevisited",
- "acidsplash": "artificer,sorcerer,wizard,artificerrevisited",
- "aganazzarsscorcher": "sorcerer,wizard",
- "aid": "artificer,bard,cleric,paladin,artificer,artificerrevisited",
- "alarm": "artificer,ranger,wizard,artificer,artificerrevisited",
- "alterself": "artificer,sorcerer,wizard,artificer,artificerrevisited",
- "animalfriendship": "bard,druid,ranger",
- "animalmessenger": "bard,druid,ranger",
- "animalshapes": "druid",
- "animatedead": "cleric,wizard",
- "animateobjects": "artificer,bard,sorcerer,wizard,artificerrevisited",
- "antilifeshell": "druid",
- "antimagicfield": "cleric,wizard",
- "antipathysympathy": "bard,druid,wizard",
- "arcaneeye": "artificer,wizard,artificer,artificerrevisited",
- "arcanegate": "sorcerer,warlock,wizard",
- "arcanelock": "artificer,wizard,artificer,artificerrevisited",
- "armorofagathys": "warlock",
- "armsofhadar": "warlock",
- "astralprojection": "cleric,warlock,wizard",
- "augury": "cleric",
- "auraoflife": "paladin",
- "auraofpurity": "paladin",
- "auraofvitality": "paladin",
- "awaken": "bard,druid",
- "bane": "bard,cleric",
- "banishingsmite": "paladin",
- "banishment": "cleric,paladin,sorcerer,warlock,wizard",
- "barkskin": "druid,ranger",
- "beaconofhope": "cleric",
- "beastbond": "druid,ranger",
- "beastsense": "druid,ranger",
- "bestowcurse": "bard,cleric,wizard",
- "bigbyshand": "artificer,wizard,artificerrevisited",
- "arcanehand": "wizard,artificerrevisited",
- "bladebarrier": "cleric",
- "bladeward": "bard,sorcerer,warlock,wizard",
- "bless": "cleric,paladin",
- "blight": "druid,sorcerer,warlock,wizard",
- "blindingsmite": "paladin",
- "blindnessdeafness": "bard,cleric,sorcerer,wizard",
- "blink": "artificer,sorcerer,wizard,artificer,artificerrevisited",
- "blur": "artificer,sorcerer,wizard,artificer,artificerrevisited",
- "bonesoftheearth": "druid",
- "boomingblade": "sorcerer,warlock,wizard",
- "brandingsmite": "paladin",
- "burninghands": "sorcerer,wizard",
- "calllightning": "druid",
- "calmemotions": "bard,cleric",
- "catapult": "artificer,sorcerer,wizard",
- "catnap": "artificer,bard,sorcerer,wizard",
- "causefear": "warlock,wizard",
- "ceremony": "cleric,paladin",
- "chainlightning": "sorcerer,wizard",
- "chaosbolt": "sorcerer",
- "charmmonster": "bard,druid,sorcerer,warlock,wizard",
- "charmperson": "bard,druid,sorcerer,warlock,wizard",
- "chilltouch": "sorcerer,warlock,wizard",
- "chromaticorb": "sorcerer,wizard",
- "circleofdeath": "sorcerer,warlock,wizard",
- "circleofpower": "paladin",
- "clairvoyance": "bard,cleric,sorcerer,wizard",
- "clone": "wizard",
- "cloudofdaggers": "bard,sorcerer,warlock,wizard",
- "cloudkill": "sorcerer,wizard",
- "colorspray": "bard,sorcerer,wizard",
- "command": "bard,cleric,paladin",
- "commune": "cleric",
- "communewithnature": "druid,ranger",
- "compelledduel": "paladin",
- "comprehendlanguages": "bard,sorcerer,warlock,wizard",
- "compulsion": "bard",
- "coneofcold": "sorcerer,wizard",
- "confusion": "bard,druid,sorcerer,wizard",
- "conjureanimals": "druid,ranger",
- "conjurebarrage": "ranger",
- "conjurecelestial": "cleric",
- "conjureelemental": "druid,wizard",
- "conjurefey": "druid,warlock",
- "conjureminorelementals": "druid,wizard",
- "conjurevolley": "ranger",
- "conjurewoodlandbeings": "druid,ranger",
- "contactotherplane": "warlock,wizard",
- "contagion": "cleric,druid",
- "contingency": "wizard",
- "continualflame": "artificer,cleric,wizard,artificer,artificerrevisited",
- "controlflames": "druid,sorcerer,wizard",
- "controlwater": "cleric,druid,wizard",
- "controlweather": "cleric,druid,wizard",
- "controlwinds": "druid,sorcerer,wizard",
- "cordonofarrows": "ranger",
- "counterspell": "sorcerer,warlock,wizard",
- "createbonfire": "artificer,druid,sorcerer,warlock,wizard",
- "createfoodandwater": "artificer,cleric,paladin",
- "createhomunculus": "wizard",
- "createundead": "cleric,warlock,wizard",
- "createordestroywater": "cleric,druid",
- "creation": "artificer,sorcerer,wizard,artificerrevisited",
- "crownofmadness": "bard,sorcerer,warlock,wizard",
- "crownofstars": "sorcerer,warlock,wizard",
- "crusadersmantle": "paladin",
- "curewounds": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited",
- "dancinglights": "artificer,bard,sorcerer,wizard,artificerrevisited",
- "dansemacabre": "warlock,wizard",
- "darkness": "sorcerer,warlock,wizard",
- "darkvision": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
- "dawn": "cleric,wizard",
- "daylight": "cleric,druid,paladin,ranger,sorcerer",
- "deathward": "cleric,paladin,artificer",
- "delayedblastfireball": "sorcerer,wizard",
- "demiplane": "warlock,wizard",
- "destructivewave": "paladin",
- "detectevilandgood": "cleric,paladin",
- "detectmagic": "artificer,bard,cleric,druid,paladin,ranger,sorcerer,wizard,artificerrevisited",
- "detectpoisonanddisease": "cleric,druid,paladin,ranger",
- "detectthoughts": "bard,sorcerer,wizard",
- "dimensiondoor": "bard,sorcerer,warlock,wizard",
- "disguiseself": "artificer,bard,sorcerer,wizard,artificer,artificerrevisited",
- "disintegrate": "sorcerer,wizard",
- "dispelevilandgood": "cleric,paladin",
- "dispelmagic": "artificer,bard,cleric,druid,paladin,sorcerer,warlock,wizard,artificerrevisited",
- "dissonantwhispers": "bard",
- "distortvalue": "bard,sorcerer,warlock,wizard",
- "divination": "cleric",
- "divinefavor": "paladin",
- "divineword": "cleric",
- "dominatebeast": "druid,sorcerer",
- "dominatemonster": "bard,sorcerer,warlock,wizard",
- "dominateperson": "bard,sorcerer,wizard",
- "dragonsbreath": "sorcerer,wizard",
- "drawmijsinstantsummons": "wizard",
- "dream": "bard,warlock,wizard",
- "dreamoftheblueveil": "bard",
- "druidgrove": "druid",
- "druidcraft": "druid",
- "dustdevil": "druid,sorcerer,wizard",
- "earthtremor": "bard,druid,sorcerer,wizard",
- "earthbind": "druid,sorcerer,warlock,wizard",
- "earthquake": "cleric,druid,sorcerer",
- "eldritchblast": "warlock",
- "elementalbane": "artificer,druid,warlock,wizard",
- "elementalweapon": "artificer,paladin,artificerrevisited",
- "enemiesabound": "bard,sorcerer,warlock,wizard",
- "enervation": "sorcerer,warlock,wizard",
- "enhanceability": "artificer,bard,cleric,druid,sorcerer,artificer,artificerrevisited",
- "enlargereduce": "artificer,bard,sorcerer,wizard,artificer,artificerrevisited",
- "ensnaringstrike": "ranger",
- "entangle": "druid",
- "enthrall": "bard,warlock",
- "eruptingearth": "druid,sorcerer,wizard",
- "etherealness": "bard,cleric,sorcerer,warlock,wizard",
- "evardsblacktentacles": "wizard",
- "blacktentacles": "wizard",
- "expeditiousretreat": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
- "eyebite": "bard,sorcerer,warlock,wizard",
- "fabricate": "artificer,wizard,artificer,artificerrevisited",
- "faeriefire": "artificer,bard,druid",
- "falselife": "artificer,sorcerer,wizard,artificer,artificerrevisited",
- "farstep": "sorcerer,warlock,wizard",
- "fastfriends": "bard,cleric,wizard",
- "fear": "bard,sorcerer,warlock,wizard",
- "featherfall": "artificer,bard,sorcerer,wizard",
- "feeblemind": "bard,druid,warlock,wizard",
- "feigndeath": "bard,cleric,druid,wizard",
- "findfamiliar": "wizard",
- "findgreatersteed": "paladin",
- "findsteed": "paladin",
- "findtraps": "cleric,druid,ranger",
- "findthepath": "bard,cleric,druid",
- "fingerofdeath": "sorcerer,warlock,wizard",
- "firebolt": "artificer,sorcerer,wizard,artificerrevisited",
- "fireshield": "wizard",
- "firestorm": "cleric,druid,sorcerer",
- "fireball": "sorcerer,wizard",
- "flamearrows": "artificer,druid,ranger,sorcerer,wizard",
- "flameblade": "druid",
- "flamestrike": "cleric",
- "flamingsphere": "druid,wizard",
- "fleshtostone": "warlock,wizard",
- "fly": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
- "fogcloud": "druid,ranger,sorcerer,wizard",
- "forbiddance": "cleric",
- "forcecage": "bard,warlock,wizard",
- "foresight": "bard,druid,warlock,wizard",
- "freedomofmovement": "artificer,bard,cleric,druid,ranger,artificer,artificerrevisited",
- "friends": "bard,sorcerer,warlock,wizard",
- "frostbite": "artificer,druid,sorcerer,warlock,wizard",
- "gaseousform": "sorcerer,warlock,wizard,artificer,artificerrevisited",
- "gate": "cleric,sorcerer,wizard",
- "geas": "bard,cleric,druid,paladin,wizard",
- "gentlerepose": "cleric,wizard",
- "giantinsect": "druid",
- "giftofgab": "bard,wizard",
- "glibness": "bard,warlock",
- "globeofinvulnerability": "sorcerer,wizard",
- "glyphofwarding": "artificer,bard,cleric,wizard,artificer,artificerrevisited",
- "goodberry": "druid,ranger",
- "graspingvine": "druid,ranger",
- "grease": "artificer,wizard,artificerrevisited",
- "greaterinvisibility": "bard,sorcerer,wizard",
- "greaterrestoration": "artificer,bard,cleric,druid,artificerrevisited",
- "greenflameblade": "sorcerer,warlock,wizard",
- "guardianoffaith": "cleric",
- "guardianofnature": "druid,ranger",
- "guardsandwards": "bard,wizard",
- "guidance": "artificer,cleric,druid,artificerrevisited",
- "guidingbolt": "cleric",
- "gust": "druid,sorcerer,wizard",
- "gustofwind": "druid,sorcerer,wizard",
- "hailofthorns": "ranger",
- "hallow": "cleric",
- "hallucinatoryterrain": "bard,druid,warlock,wizard",
- "harm": "cleric",
- "haste": "artificer,sorcerer,wizard,artificer,artificerrevisited",
- "heal": "cleric,druid",
- "healingspirit": "druid,ranger",
- "healingword": "bard,cleric,druid",
- "heatmetal": "artificer,bard,druid,artificerrevisited",
- "hellishrebuke": "warlock",
- "heroesfeast": "bard,cleric,druid",
- "heroism": "bard,paladin",
- "hex": "warlock",
- "holdmonster": "bard,sorcerer,warlock,wizard",
- "holdperson": "bard,cleric,druid,sorcerer,warlock,wizard",
- "holyaura": "cleric",
- "holyweapon": "cleric,paladin",
- "hungerofhadar": "warlock",
- "huntersmark": "ranger",
- "hypnoticpattern": "bard,sorcerer,warlock,wizard",
- "iceknife": "druid,sorcerer,wizard",
- "icestorm": "druid,sorcerer,wizard",
- "identify": "artificer,bard,wizard,artificerrevisited",
- "illusorydragon": "wizard",
- "illusoryscript": "bard,warlock,wizard",
- "immolation": "sorcerer,wizard",
- "imprisonment": "warlock,wizard",
- "incendiarycloud": "sorcerer,wizard",
- "incitegreed": "cleric,warlock,wizard",
- "infernalcalling": "warlock,wizard",
- "infestation": "druid,sorcerer,warlock,wizard",
- "inflictwounds": "cleric",
- "insectplague": "cleric,druid,sorcerer",
- "instantsummons": "wizard",
- "intellectfortress": "bard",
- "investitureofflame": "druid,sorcerer,warlock,wizard",
- "investitureofice": "druid,sorcerer,warlock,wizard",
- "investitureofstone": "druid,sorcerer,warlock,wizard",
- "investitureofwind": "druid,sorcerer,warlock,wizard",
- "invisibility": "artificer,bard,sorcerer,warlock,wizard,artificer,artificerrevisited",
- "invulnerability": "wizard",
- "jimsglowingcoin": "wizard",
- "jimsmagicmissile": "wizard",
- "jump": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
- "knock": "bard,sorcerer,wizard",
- "legendlore": "bard,cleric,wizard",
- "leomundssecretchest": "artificer,wizard,artificer,artificerrevisited",
- "leomundstinyhut": "bard,wizard",
- "lesserrestoration": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited",
- "levitate": "artificer,sorcerer,wizard,artificerrevisited",
- "lifetransference": "cleric,wizard",
- "light": "artificer,bard,cleric,sorcerer,wizard,artificerrevisited",
- "lightningarrow": "ranger",
- "lightningbolt": "sorcerer,wizard",
- "lightninglure": "sorcerer,warlock,wizard",
- "locateanimalsorplants": "bard,druid,ranger",
- "locatecreature": "bard,cleric,druid,paladin,ranger,wizard",
- "locateobject": "bard,cleric,druid,paladin,ranger,wizard",
- "longstrider": "artificer,bard,druid,ranger,wizard,artificer,artificerrevisited",
- "maddeningdarkness": "warlock,wizard",
- "maelstrom": "druid",
- "magearmor": "sorcerer,wizard",
- "magehand": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited",
- "magiccircle": "cleric,paladin,warlock,wizard",
- "magicjar": "wizard",
- "magicmissile": "sorcerer,wizard",
- "magicmouth": "artificer,bard,wizard,artificerrevisited",
- "magicstone": "artificer,druid,warlock",
- "magicweapon": "artificer,paladin,wizard,artificer,artificerrevisited",
- "majorimage": "bard,sorcerer,warlock,wizard",
- "masscurewounds": "bard,cleric,druid",
- "massheal": "cleric",
- "masshealingword": "bard,cleric",
- "masspolymorph": "bard,sorcerer,wizard",
- "masssuggestion": "bard,sorcerer,warlock,wizard",
- "maximiliansearthengrasp": "sorcerer,wizard",
- "maze": "wizard",
- "meldintostone": "cleric,druid",
- "melfsacidarrow": "wizard",
- "melfsminutemeteors": "sorcerer,wizard",
- "acidarrow": "wizard",
- "mending": "artificer,bard,cleric,druid,sorcerer,wizard,artificerrevisited",
- "mentalprison": "sorcerer,warlock,wizard",
- "message": "artificer,bard,sorcerer,wizard,artificerrevisited",
- "meteorswarm": "sorcerer,wizard",
- "mightyfortress": "wizard",
- "mindblank": "bard,wizard",
- "mindspike": "sorcerer,warlock,wizard",
- "minorillusion": "bard,sorcerer,warlock,wizard",
- "miragearcane": "bard,druid,wizard",
- "mirrorimage": "bard,sorcerer,warlock,wizard",
- "mislead": "bard,wizard",
- "mistystep": "sorcerer,warlock,wizard",
- "modifymemory": "bard,wizard",
- "moldearth": "druid,sorcerer,wizard",
- "moonbeam": "druid",
- "mordenkainensfaithfulhound": "artificer,wizard,artificer,artificerrevisited",
- "motivationalspeech": "bard,cleric",
- "faithfulhound": "wizard,artificer,artificerrevisited",
- "mordenkainensmagnificentmansion": "bard,wizard",
- "magnificentmansion": "bard,wizard",
- "mordenkainensprivatesanctum": "artificer,wizard,artificer,artificerrevisited",
- "mordenkainenssword": "bard,wizard",
- "arcanesword": "bard,wizard",
- "moveearth": "druid,sorcerer,wizard",
- "negativeenergyflood": "warlock,wizard",
- "nondetection": "bard,ranger,wizard",
- "nystulsmagicaura": "wizard",
- "arcanistsmagicaura": "wizard",
- "otilukesfreezingsphere": "wizard",
- "otilukesresilientsphere": "artificer,wizard,artificer,artificerrevisited",
- "ottosirresistibledance": "bard,wizard",
- "passwithouttrace": "druid,ranger",
- "passwall": "wizard",
- "phantasmalforce": "bard,sorcerer,wizard",
- "phantasmalkiller": "bard,wizard",
- "phantomsteed": "wizard",
- "planarally": "cleric",
- "planarbinding": "bard,cleric,druid,wizard",
- "planeshift": "cleric,druid,sorcerer,warlock,wizard",
- "plantgrowth": "bard,druid,ranger",
- "poisonspray": "artificer,druid,sorcerer,warlock,wizard,artificerrevisited",
- "polymorph": "bard,druid,sorcerer,wizard",
- "powerwordheal": "bard",
- "powerwordkill": "bard,sorcerer,warlock,wizard",
- "powerwordpain": "sorcerer,warlock,wizard",
- "powerwordstun": "bard,sorcerer,warlock,wizard",
- "prayerofhealing": "cleric",
- "prestidigitation": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited",
- "primalsavagery": "druid",
- "primordialward": "druid",
- "prismaticspray": "bard,sorcerer,wizard",
- "prismaticwall": "bard,wizard",
- "produceflame": "druid",
- "programmedillusion": "bard,wizard",
- "projectimage": "bard,wizard",
- "protectionfromenergy": "artificer,cleric,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
- "protectionfromevilandgood": "cleric,paladin,warlock,wizard",
- "protectionfrompoison": "artificer,cleric,druid,paladin,ranger,artificer,artificerrevisited",
- "psychicscream": "bard,sorcerer,warlock,wizard",
- "purifyfoodanddrink": "artificer,cleric,druid,paladin",
- "pyrotechnics": "artificer,bard,sorcerer,wizard",
- "raisedead": "bard,cleric,paladin",
- "rarystelepathicbond": "bard,wizard",
- "rayofenfeeblement": "warlock,wizard",
- "rayoffrost": "artificer,sorcerer,wizard,artificerrevisited",
- "rayofsickness": "sorcerer,wizard",
- "regenerate": "bard,cleric,druid",
- "reincarnate": "druid",
- "removecurse": "cleric,paladin,warlock,wizard",
- "resistance": "artificer,cleric,druid,artificerrevisited",
- "resurrection": "bard,cleric",
- "reversegravity": "druid,sorcerer,wizard",
- "revivify": "artificer,cleric,paladin,artificer,artificerrevisited",
- "ropetrick": "artificer,wizard,artificer,artificerrevisited",
- "sacredflame": "cleric",
- "sanctuary": "artificer,cleric,artificer,artificerrevisited",
- "scatter": "sorcerer,warlock,wizard",
- "scorchingray": "sorcerer,wizard",
- "scrying": "bard,cleric,druid,warlock,wizard",
- "searingsmite": "paladin",
- "seeinvisibility": "artificer,bard,sorcerer,wizard,artificerrevisited",
- "seeming": "bard,sorcerer,wizard",
- "sending": "bard,cleric,wizard",
- "sequester": "wizard",
- "shadowblade": "sorcerer,warlock,wizard",
- "shadowofmoil": "warlock",
- "shapewater": "druid,sorcerer,wizard",
- "shapechange": "druid,wizard",
- "shatter": "bard,sorcerer,warlock,wizard",
- "shield": "sorcerer,wizard",
- "shieldoffaith": "cleric,paladin,artificer,artificerrevisited",
- "shillelagh": "druid",
- "shockinggrasp": "artificer,sorcerer,wizard,artificerrevisited",
- "sickeningradiance": "sorcerer,warlock,wizard",
- "silence": "bard,cleric,ranger",
- "silentimage": "bard,sorcerer,wizard",
- "simulacrum": "wizard",
- "skillempowerment": "artificer,bard,sorcerer,wizard",
- "skywrite": "artificer,bard,druid,wizard",
- "sleep": "bard,sorcerer,wizard",
- "sleetstorm": "druid,sorcerer,wizard",
- "slow": "bard,sorcerer,wizard",
- "snare": "artificer,druid,ranger,wizard",
- "snillocssnowballswarm": "sorcerer,wizard",
- "soulcage": "warlock,wizard",
- "sparethedying": "artificer,cleric,artificerrevisited",
- "speakwithanimals": "bard,druid,ranger",
- "speakwithdead": "bard,cleric",
- "speakwithplants": "bard,druid,ranger",
- "spiderclimb": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
- "spikegrowth": "druid,ranger",
- "spiritguardians": "cleric",
- "spiritualweapon": "cleric",
- "staggeringsmite": "paladin",
- "steelwindstrike": "ranger,wizard",
- "stinkingcloud": "bard,sorcerer,wizard",
- "stoneshape": "artificer,cleric,druid,wizard,artificer,artificerrevisited",
- "stoneskin": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
- "stormofvengeance": "druid",
- "stormsphere": "sorcerer,wizard",
- "suggestion": "bard,sorcerer,warlock,wizard",
- "summongreaterdemon": "warlock,wizard",
- "summonlesserdemons": "warlock,wizard",
- "sunbeam": "druid,sorcerer,wizard",
- "sunburst": "druid,sorcerer,wizard",
- "swiftquiver": "ranger",
- "swordburst": "sorcerer,warlock,wizard",
- "synapticstatic": "bard,sorcerer,warlock,wizard",
- "symbol": "bard,cleric,wizard",
- "tashashideouslaughter": "bard,wizard",
- "hideouslaughter": "bard,wizard",
- "telekinesis": "sorcerer,wizard",
- "telepathy": "wizard",
- "teleport": "bard,sorcerer,wizard",
- "teleportationcircle": "bard,sorcerer,wizard",
- "templeofthegods": "cleric",
- "tensersfloatingdisk": "wizard",
- "tensersfloatingdisc": "wizard",
- "tenserstransformation": "wizard",
- "floatingdisc": "wizard",
- "thaumaturgy": "cleric",
- "thornwhip": "artificer,druid,artificerrevisited",
- "thunderstep": "sorcerer,warlock,wizard",
- "thunderclap": "artificer,bard,druid,sorcerer,warlock,wizard",
- "thunderoussmite": "paladin",
- "thunderwave": "bard,druid,sorcerer,wizard",
- "tidalwave": "druid,sorcerer,wizard",
- "timestop": "sorcerer,wizard",
- "tinyservant": "artificer,wizard",
- "tollthedead": "cleric,warlock,wizard",
- "tongues": "bard,cleric,sorcerer,warlock,wizard",
- "transmuterock": "artificer,druid,wizard",
- "transportviaplants": "druid",
- "treestride": "druid,ranger",
- "truepolymorph": "bard,warlock,wizard",
- "trueresurrection": "cleric,druid",
- "trueseeing": "bard,cleric,sorcerer,warlock,wizard",
- "truestrike": "bard,sorcerer,warlock,wizard",
- "tsunami": "druid",
- "unseenservant": "bard,warlock,wizard",
- "vampirictouch": "warlock,wizard",
- "viciousmockery": "bard",
- "vitriolicsphere": "sorcerer,wizard",
- "walloffire": "druid,sorcerer,wizard",
- "wallofforce": "wizard",
- "wallofice": "wizard",
- "walloflight": "sorcerer,warlock,wizard",
- "wallofsand": "wizard",
- "wallofstone": "artificer,druid,sorcerer,wizard,artificerrevisited",
- "wallofthorns": "druid",
- "wallofwater": "druid,sorcerer,wizard",
- "wardingbond": "cleric",
- "wardingwind": "bard,druid,sorcerer,wizard",
- "waterbreathing": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
- "waterwalk": "artificer,cleric,druid,ranger,sorcerer,artificer,artificerrevisited",
- "waterysphere": "druid,sorcerer,wizard",
- "web": "artificer,sorcerer,wizard",
- "weird": "wizard",
- "whirlwind": "druid,sorcerer,wizard",
- "windwalk": "druid",
- "windwall": "druid,ranger",
- "wish": "sorcerer,wizard",
- "witchbolt": "sorcerer,warlock,wizard",
- "wordofradiance": "cleric",
- "wordofrecall": "cleric",
- "wrathofnature": "druid,ranger",
- "wrathfulsmite": "paladin",
- "zephyrstrike": "ranger",
- "zoneoftruth": "bard,cleric,paladin"
-}
+
+{
+ "abidalzimshorridwilting": "sorcerer,wizard",
+ "absorbelements": "artificer,druid,ranger,sorcerer,wizard",
+ "arcaneweapon": "artificerrevisited",
+ "acidsplash": "artificer,sorcerer,wizard,artificerrevisited",
+ "aganazzarsscorcher": "sorcerer,wizard",
+ "aid": "artificer,bard,cleric,paladin,artificer,artificerrevisited",
+ "alarm": "artificer,ranger,wizard,artificer,artificerrevisited",
+ "alterself": "artificer,sorcerer,wizard,artificer,artificerrevisited",
+ "animalfriendship": "bard,druid,ranger",
+ "animalmessenger": "bard,druid,ranger",
+ "animalshapes": "druid",
+ "animatedead": "cleric,wizard",
+ "animateobjects": "artificer,bard,sorcerer,wizard,artificerrevisited",
+ "antilifeshell": "druid",
+ "antimagicfield": "cleric,wizard",
+ "antipathysympathy": "bard,druid,wizard",
+ "arcaneeye": "artificer,wizard,artificer,artificerrevisited",
+ "arcanegate": "sorcerer,warlock,wizard",
+ "arcanelock": "artificer,wizard,artificer,artificerrevisited",
+ "armorofagathys": "warlock",
+ "armsofhadar": "warlock",
+ "astralprojection": "cleric,warlock,wizard",
+ "augury": "cleric",
+ "auraoflife": "paladin",
+ "auraofpurity": "paladin",
+ "auraofvitality": "paladin",
+ "awaken": "bard,druid",
+ "bane": "bard,cleric",
+ "banishingsmite": "paladin",
+ "banishment": "cleric,paladin,sorcerer,warlock,wizard",
+ "barkskin": "druid,ranger",
+ "beaconofhope": "cleric",
+ "beastbond": "druid,ranger",
+ "beastsense": "druid,ranger",
+ "bestowcurse": "bard,cleric,wizard",
+ "bigbyshand": "artificer,wizard,artificerrevisited",
+ "arcanehand": "wizard,artificerrevisited",
+ "bladebarrier": "cleric",
+ "bladeward": "bard,sorcerer,warlock,wizard",
+ "bless": "cleric,paladin",
+ "bladeofdisaster": "sorcerer,warlock,wizard",
+ "blight": "druid,sorcerer,warlock,wizard",
+ "blindingsmite": "paladin",
+ "blindnessdeafness": "bard,cleric,sorcerer,wizard",
+ "blink": "artificer,sorcerer,wizard,artificer,artificerrevisited",
+ "blur": "artificer,sorcerer,wizard,artificer,artificerrevisited",
+ "bonesoftheearth": "druid",
+ "boomingblade": "artificer,sorcerer,warlock,wizard",
+ "brandingsmite": "paladin",
+ "burninghands": "sorcerer,wizard",
+ "calllightning": "druid",
+ "calmemotions": "bard,cleric",
+ "catapult": "artificer,sorcerer,wizard",
+ "catnap": "artificer,bard,sorcerer,wizard",
+ "causefear": "warlock,wizard",
+ "ceremony": "cleric,paladin",
+ "chainlightning": "sorcerer,wizard",
+ "chaosbolt": "sorcerer",
+ "charmmonster": "bard,druid,sorcerer,warlock,wizard",
+ "charmperson": "bard,druid,sorcerer,warlock,wizard",
+ "chilltouch": "sorcerer,warlock,wizard",
+ "chromaticorb": "sorcerer,wizard",
+ "circleofdeath": "sorcerer,warlock,wizard",
+ "circleofpower": "paladin",
+ "clairvoyance": "bard,cleric,sorcerer,wizard",
+ "clone": "wizard",
+ "cloudofdaggers": "bard,sorcerer,warlock,wizard",
+ "cloudkill": "sorcerer,wizard",
+ "colorspray": "bard,sorcerer,wizard",
+ "command": "bard,cleric,paladin",
+ "commune": "cleric",
+ "communewithnature": "druid,ranger",
+ "compelledduel": "paladin",
+ "comprehendlanguages": "bard,sorcerer,warlock,wizard",
+ "compulsion": "bard",
+ "coneofcold": "sorcerer,wizard",
+ "confusion": "bard,druid,sorcerer,wizard",
+ "conjureanimals": "druid,ranger",
+ "conjurebarrage": "ranger",
+ "conjurecelestial": "cleric",
+ "conjureelemental": "druid,wizard",
+ "conjurefey": "druid,warlock",
+ "conjureminorelementals": "druid,wizard",
+ "conjurevolley": "ranger",
+ "conjurewoodlandbeings": "druid,ranger",
+ "contactotherplane": "warlock,wizard",
+ "contagion": "cleric,druid",
+ "contingency": "wizard",
+ "continualflame": "artificer,cleric,wizard,artificer,artificerrevisited",
+ "controlflames": "druid,sorcerer,wizard",
+ "controlwater": "cleric,druid,wizard",
+ "controlweather": "cleric,druid,wizard",
+ "controlwinds": "druid,sorcerer,wizard",
+ "cordonofarrows": "ranger",
+ "counterspell": "sorcerer,warlock,wizard",
+ "createbonfire": "artificer,druid,sorcerer,warlock,wizard",
+ "createfoodandwater": "artificer,cleric,paladin",
+ "createhomunculus": "wizard",
+ "createmagen": "wizard",
+ "createundead": "cleric,warlock,wizard",
+ "createordestroywater": "cleric,druid",
+ "creation": "artificer,sorcerer,wizard,artificerrevisited",
+ "crownofmadness": "bard,sorcerer,warlock,wizard",
+ "crownofstars": "sorcerer,warlock,wizard",
+ "crusadersmantle": "paladin",
+ "curewounds": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited",
+ "dancinglights": "artificer,bard,sorcerer,wizard,artificerrevisited",
+ "dansemacabre": "warlock,wizard",
+ "darkness": "sorcerer,warlock,wizard",
+ "darkvision": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
+ "dawn": "cleric,wizard",
+ "daylight": "cleric,druid,paladin,ranger,sorcerer",
+ "deathward": "cleric,paladin,artificer",
+ "delayedblastfireball": "sorcerer,wizard",
+ "demiplane": "warlock,wizard",
+ "destructivewave": "paladin",
+ "detectevilandgood": "cleric,paladin",
+ "detectmagic": "artificer,bard,cleric,druid,paladin,ranger,sorcerer,wizard,artificerrevisited",
+ "detectpoisonanddisease": "cleric,druid,paladin,ranger",
+ "detectthoughts": "bard,sorcerer,wizard",
+ "dimensiondoor": "bard,sorcerer,warlock,wizard",
+ "disguiseself": "artificer,bard,sorcerer,wizard,artificer,artificerrevisited",
+ "disintegrate": "sorcerer,wizard",
+ "dispelevilandgood": "cleric,paladin",
+ "dispelmagic": "artificer,bard,cleric,druid,paladin,sorcerer,warlock,wizard,artificerrevisited",
+ "dissonantwhispers": "bard",
+ "distortvalue": "bard,sorcerer,warlock,wizard",
+ "divination": "cleric",
+ "divinefavor": "paladin",
+ "divineword": "cleric",
+ "dominatebeast": "druid,sorcerer",
+ "dominatemonster": "bard,sorcerer,warlock,wizard",
+ "dominateperson": "bard,sorcerer,wizard",
+ "dragonsbreath": "sorcerer,wizard",
+ "drawmijsinstantsummons": "wizard",
+ "dreamoftheblueveil": "bard,sorcerer,warlock,wizard",
+ "instantsummons": "wizard",
+ "dream": "bard,warlock,wizard",
+ "dreamoftheblueveil": "bard",
+ "druidgrove": "druid",
+ "druidcraft": "druid",
+ "dustdevil": "druid,sorcerer,wizard",
+ "earthtremor": "bard,druid,sorcerer,wizard",
+ "earthbind": "druid,sorcerer,warlock,wizard",
+ "earthquake": "cleric,druid,sorcerer",
+ "eldritchblast": "warlock",
+ "elementalbane": "artificer,druid,warlock,wizard",
+ "elementalweapon": "artificer,paladin,artificerrevisited",
+ "enemiesabound": "bard,sorcerer,warlock,wizard",
+ "enervation": "sorcerer,warlock,wizard",
+ "enhanceability": "artificer,bard,cleric,druid,sorcerer,artificer,artificerrevisited",
+ "enlargereduce": "artificer,bard,sorcerer,wizard,artificer,artificerrevisited",
+ "ensnaringstrike": "ranger",
+ "entangle": "druid",
+ "enthrall": "bard,warlock",
+ "eruptingearth": "druid,sorcerer,wizard",
+ "etherealness": "bard,cleric,sorcerer,warlock,wizard",
+ "evardsblacktentacles": "wizard",
+ "blacktentacles": "wizard",
+ "expeditiousretreat": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
+ "eyebite": "bard,sorcerer,warlock,wizard",
+ "fabricate": "artificer,wizard,artificer,artificerrevisited",
+ "faeriefire": "artificer,bard,druid",
+ "falselife": "artificer,sorcerer,wizard,artificer,artificerrevisited",
+ "farstep": "sorcerer,warlock,wizard",
+ "fastfriends": "bard,cleric,wizard",
+ "fear": "bard,sorcerer,warlock,wizard",
+ "featherfall": "artificer,bard,sorcerer,wizard",
+ "feeblemind": "bard,druid,warlock,wizard",
+ "feigndeath": "bard,cleric,druid,wizard",
+ "findfamiliar": "wizard",
+ "findgreatersteed": "paladin",
+ "findsteed": "paladin",
+ "findtraps": "cleric,druid,ranger",
+ "findthepath": "bard,cleric,druid",
+ "fingerofdeath": "sorcerer,warlock,wizard",
+ "firebolt": "artificer,sorcerer,wizard,artificerrevisited",
+ "fireshield": "wizard",
+ "firestorm": "cleric,druid,sorcerer",
+ "fireball": "sorcerer,wizard",
+ "flamearrows": "artificer,druid,ranger,sorcerer,wizard",
+ "flameblade": "druid",
+ "flamestrike": "cleric",
+ "flamingsphere": "druid,wizard",
+ "fleshtostone": "warlock,wizard",
+ "fly": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
+ "fogcloud": "druid,ranger,sorcerer,wizard",
+ "forbiddance": "cleric",
+ "forcecage": "bard,warlock,wizard",
+ "foresight": "bard,druid,warlock,wizard",
+ "freedomofmovement": "artificer,bard,cleric,druid,ranger,artificer,artificerrevisited",
+ "friends": "bard,sorcerer,warlock,wizard",
+ "frostbite": "artificer,druid,sorcerer,warlock,wizard",
+ "frostfingers": "wizard",
+ "gaseousform": "sorcerer,warlock,wizard,artificer,artificerrevisited",
+ "gate": "cleric,sorcerer,wizard",
+ "geas": "bard,cleric,druid,paladin,wizard",
+ "gentlerepose": "cleric,wizard",
+ "giantinsect": "druid",
+ "giftofgab": "bard,wizard",
+ "glibness": "bard,warlock",
+ "globeofinvulnerability": "sorcerer,wizard",
+ "glyphofwarding": "artificer,bard,cleric,wizard,artificer,artificerrevisited",
+ "goodberry": "druid,ranger",
+ "graspingvine": "druid,ranger",
+ "grease": "artificer,wizard,artificerrevisited",
+ "greaterinvisibility": "bard,sorcerer,wizard",
+ "greaterrestoration": "artificer,bard,cleric,druid,artificerrevisited",
+ "greenflameblade": "artificer,sorcerer,warlock,wizard",
+ "guardianoffaith": "cleric",
+ "guardianofnature": "druid,ranger",
+ "guardsandwards": "bard,wizard",
+ "guidance": "artificer,cleric,druid,artificerrevisited",
+ "guidingbolt": "cleric",
+ "gust": "druid,sorcerer,wizard",
+ "gustofwind": "druid,sorcerer,wizard",
+ "hailofthorns": "ranger",
+ "hallow": "cleric",
+ "hallucinatoryterrain": "bard,druid,warlock,wizard",
+ "harm": "cleric",
+ "haste": "artificer,sorcerer,wizard,artificer,artificerrevisited",
+ "heal": "cleric,druid",
+ "healingspirit": "druid,ranger",
+ "healingword": "bard,cleric,druid",
+ "heatmetal": "artificer,bard,druid,artificerrevisited",
+ "hellishrebuke": "warlock",
+ "heroesfeast": "bard,cleric,druid",
+ "heroism": "bard,paladin",
+ "hex": "warlock",
+ "holdmonster": "bard,sorcerer,warlock,wizard",
+ "holdperson": "bard,cleric,druid,sorcerer,warlock,wizard",
+ "holyaura": "cleric",
+ "holyweapon": "cleric,paladin",
+ "hungerofhadar": "warlock",
+ "huntersmark": "ranger",
+ "hypnoticpattern": "bard,sorcerer,warlock,wizard",
+ "iceknife": "druid,sorcerer,wizard",
+ "icestorm": "druid,sorcerer,wizard",
+ "identify": "artificer,bard,wizard,artificerrevisited",
+ "illusorydragon": "wizard",
+ "illusoryscript": "bard,warlock,wizard",
+ "immolation": "sorcerer,wizard",
+ "imprisonment": "warlock,wizard",
+ "incendiarycloud": "sorcerer,wizard",
+ "incitegreed": "cleric,warlock,wizard",
+ "infernalcalling": "warlock,wizard",
+ "infestation": "druid,sorcerer,warlock,wizard",
+ "inflictwounds": "cleric",
+ "insectplague": "cleric,druid,sorcerer",
+ "instantsummons": "wizard",
+ "intellectfortress": "bard",
+ "investitureofflame": "druid,sorcerer,warlock,wizard",
+ "investitureofice": "druid,sorcerer,warlock,wizard",
+ "investitureofstone": "druid,sorcerer,warlock,wizard",
+ "investitureofwind": "druid,sorcerer,warlock,wizard",
+ "invisibility": "artificer,bard,sorcerer,warlock,wizard,artificer,artificerrevisited",
+ "invulnerability": "wizard",
+ "intellectfortress": "artificer,bard,sorcerer,warlock,wizard",
+ "jimsglowingcoin": "wizard",
+ "jimsmagicmissile": "wizard",
+ "jump": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
+ "knock": "bard,sorcerer,wizard",
+ "legendlore": "bard,cleric,wizard",
+ "leomundssecretchest": "artificer,wizard,artificer,artificerrevisited",
+ "leomundstinyhut": "bard,wizard",
+ "lesserrestoration": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited",
+ "levitate": "artificer,sorcerer,wizard,artificerrevisited",
+ "lifetransference": "cleric,wizard",
+ "light": "artificer,bard,cleric,sorcerer,wizard,artificerrevisited",
+ "lightningarrow": "ranger",
+ "lightningbolt": "sorcerer,wizard",
+ "lightninglure": "artificer,sorcerer,warlock,wizard",
+ "locateanimalsorplants": "bard,druid,ranger",
+ "locatecreature": "bard,cleric,druid,paladin,ranger,wizard",
+ "locateobject": "bard,cleric,druid,paladin,ranger,wizard",
+ "longstrider": "artificer,bard,druid,ranger,wizard,artificer,artificerrevisited",
+ "maddeningdarkness": "warlock,wizard",
+ "maelstrom": "druid",
+ "magearmor": "sorcerer,wizard",
+ "magehand": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited",
+ "magiccircle": "cleric,paladin,warlock,wizard",
+ "magicjar": "wizard",
+ "magicmissile": "sorcerer,wizard",
+ "magicmouth": "artificer,bard,wizard,artificerrevisited",
+ "magicstone": "artificer,druid,warlock",
+ "magicweapon": "artificer,paladin,wizard,artificer,artificerrevisited",
+ "majorimage": "bard,sorcerer,warlock,wizard",
+ "masscurewounds": "bard,cleric,druid",
+ "massheal": "cleric",
+ "masshealingword": "bard,cleric",
+ "masspolymorph": "bard,sorcerer,wizard",
+ "masssuggestion": "bard,sorcerer,warlock,wizard",
+ "maximiliansearthengrasp": "sorcerer,wizard",
+ "maze": "wizard",
+ "meldintostone": "cleric,druid",
+ "melfsacidarrow": "wizard",
+ "melfsminutemeteors": "sorcerer,wizard",
+ "acidarrow": "wizard",
+ "mending": "artificer,bard,cleric,druid,sorcerer,wizard,artificerrevisited",
+ "mentalprison": "sorcerer,warlock,wizard",
+ "message": "artificer,bard,sorcerer,wizard,artificerrevisited",
+ "meteorswarm": "sorcerer,wizard",
+ "mightyfortress": "wizard",
+ "mindblank": "bard,wizard",
+ "mindsliver": "sorcerer,warlock,wizard",
+ "mindspike": "sorcerer,warlock,wizard",
+ "minorillusion": "bard,sorcerer,warlock,wizard",
+ "miragearcane": "bard,druid,wizard",
+ "mirrorimage": "bard,sorcerer,warlock,wizard",
+ "mislead": "bard,wizard",
+ "mistystep": "sorcerer,warlock,wizard",
+ "modifymemory": "bard,wizard",
+ "moldearth": "druid,sorcerer,wizard",
+ "moonbeam": "druid",
+ "mordenkainensfaithfulhound": "artificer,wizard,artificer,artificerrevisited",
+ "motivationalspeech": "bard,cleric",
+ "faithfulhound": "wizard,artificer,artificerrevisited",
+ "mordenkainensmagnificentmansion": "bard,wizard",
+ "magnificentmansion": "bard,wizard",
+ "mordenkainensprivatesanctum": "artificer,wizard,artificer,artificerrevisited",
+ "mordenkainenssword": "bard,wizard",
+ "arcanesword": "bard,wizard",
+ "moveearth": "druid,sorcerer,wizard",
+ "negativeenergyflood": "warlock,wizard",
+ "nondetection": "bard,ranger,wizard",
+ "nystulsmagicaura": "wizard",
+ "arcanistsmagicaura": "wizard",
+ "otilukesfreezingsphere": "wizard",
+ "otilukesresilientsphere": "artificer,wizard,artificer,artificerrevisited",
+ "ottosirresistibledance": "bard,wizard",
+ "passwithouttrace": "druid,ranger",
+ "passwall": "wizard",
+ "phantasmalforce": "bard,sorcerer,wizard",
+ "phantasmalkiller": "bard,wizard",
+ "phantomsteed": "wizard",
+ "planarally": "cleric",
+ "planarbinding": "bard,cleric,druid,wizard",
+ "planeshift": "cleric,druid,sorcerer,warlock,wizard",
+ "plantgrowth": "bard,druid,ranger",
+ "poisonspray": "artificer,druid,sorcerer,warlock,wizard,artificerrevisited",
+ "polymorph": "bard,druid,sorcerer,wizard",
+ "powerwordheal": "bard",
+ "powerwordkill": "bard,sorcerer,warlock,wizard",
+ "powerwordpain": "sorcerer,warlock,wizard",
+ "powerwordstun": "bard,sorcerer,warlock,wizard",
+ "prayerofhealing": "cleric",
+ "prestidigitation": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited",
+ "primalsavagery": "druid",
+ "primordialward": "druid",
+ "prismaticspray": "bard,sorcerer,wizard",
+ "prismaticwall": "bard,wizard",
+ "produceflame": "druid",
+ "programmedillusion": "bard,wizard",
+ "projectimage": "bard,wizard",
+ "protectionfromenergy": "artificer,cleric,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
+ "protectionfromevilandgood": "cleric,paladin,warlock,wizard",
+ "protectionfrompoison": "artificer,cleric,druid,paladin,ranger,artificer,artificerrevisited",
+ "psychicscream": "bard,sorcerer,warlock,wizard",
+ "purifyfoodanddrink": "artificer,cleric,druid,paladin",
+ "pyrotechnics": "artificer,bard,sorcerer,wizard",
+ "raisedead": "bard,cleric,paladin",
+ "rarystelepathicbond": "bard,wizard",
+ "rayofenfeeblement": "warlock,wizard",
+ "rayoffrost": "artificer,sorcerer,wizard,artificerrevisited",
+ "rayofsickness": "sorcerer,wizard",
+ "regenerate": "bard,cleric,druid",
+ "reincarnate": "druid",
+ "removecurse": "cleric,paladin,warlock,wizard",
+ "resistance": "artificer,cleric,druid,artificerrevisited",
+ "resurrection": "bard,cleric",
+ "reversegravity": "druid,sorcerer,wizard",
+ "revivify": "artificer,cleric,paladin,artificer,artificerrevisited",
+ "ropetrick": "artificer,wizard,artificer,artificerrevisited",
+ "sacredflame": "cleric",
+ "sanctuary": "artificer,cleric,artificer,artificerrevisited",
+ "scatter": "sorcerer,warlock,wizard",
+ "scorchingray": "sorcerer,wizard",
+ "scrying": "bard,cleric,druid,warlock,wizard",
+ "searingsmite": "paladin",
+ "seeinvisibility": "artificer,bard,sorcerer,wizard,artificerrevisited",
+ "seeming": "bard,sorcerer,wizard",
+ "sending": "bard,cleric,wizard",
+ "sequester": "wizard",
+ "shadowblade": "sorcerer,warlock,wizard",
+ "shadowofmoil": "warlock",
+ "shapewater": "druid,sorcerer,wizard",
+ "shapechange": "druid,wizard",
+ "shatter": "bard,sorcerer,warlock,wizard",
+ "shield": "sorcerer,wizard",
+ "shieldoffaith": "cleric,paladin,artificer,artificerrevisited",
+ "shillelagh": "druid",
+ "shockinggrasp": "artificer,sorcerer,wizard,artificerrevisited",
+ "sickeningradiance": "sorcerer,warlock,wizard",
+ "silence": "bard,cleric,ranger",
+ "silentimage": "bard,sorcerer,wizard",
+ "simulacrum": "wizard",
+ "skillempowerment": "artificer,bard,sorcerer,wizard",
+ "skywrite": "artificer,bard,druid,wizard",
+ "sleep": "bard,sorcerer,wizard",
+ "sleetstorm": "druid,sorcerer,wizard",
+ "slow": "bard,sorcerer,wizard",
+ "snare": "artificer,druid,ranger,wizard",
+ "snillocssnowballswarm": "sorcerer,wizard",
+ "soulcage": "warlock,wizard",
+ "sparethedying": "artificer,cleric,artificerrevisited",
+ "speakwithanimals": "bard,druid,ranger",
+ "speakwithdead": "bard,cleric",
+ "speakwithplants": "bard,druid,ranger",
+ "spiderclimb": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited",
+ "spikegrowth": "druid,ranger",
+ "spiritguardians": "cleric",
+ "spiritualweapon": "cleric",
+ "spiritshroud": "cleric,paladin,warlock,wizard",
+ "staggeringsmite": "paladin",
+ "steelwindstrike": "ranger,wizard",
+ "stinkingcloud": "bard,sorcerer,wizard",
+ "stoneshape": "artificer,cleric,druid,wizard,artificer,artificerrevisited",
+ "stoneskin": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
+ "stormofvengeance": "druid",
+ "stormsphere": "sorcerer,wizard",
+ "suggestion": "bard,sorcerer,warlock,wizard",
+ "summonaberration": "warlock,wizard",
+ "summonbeast": "druid,ranger",
+ "summoncelestial": "cleric,paladin",
+ "summonconstruct": "artificer,wizard",
+ "summonelemental": "druid,ranger,wizard",
+ "summonfey": "druid,ranger,warlock,wizard",
+ "summonfiend": "warlock,wizard",
+ "summongreaterdemon": "warlock,wizard",
+ "summonlesserdemons": "warlock,wizard",
+ "summonshadowpawn": "warlock,wizard",
+ "summonundead": "warlock,wizard",
+ "sunbeam": "druid,sorcerer,wizard",
+ "sunburst": "druid,sorcerer,wizard",
+ "swiftquiver": "ranger",
+ "swordburst": "artificer,sorcerer,warlock,wizard",
+ "synapticstatic": "bard,sorcerer,warlock,wizard",
+ "symbol": "bard,cleric,wizard",
+ "tashascausticbrew": "artificer",
+ "tashashideouslaughter": "bard,wizard",
+ "hideouslaughter": "bard,wizard",
+ "tashasmindwhip": "sorcerer,wizard",
+ "tashasotherworldlyguise": "sorcerer,warlock,wizard",
+ "telekinesis": "sorcerer,wizard",
+ "telepathy": "wizard",
+ "teleport": "bard,sorcerer,wizard",
+ "teleportationcircle": "bard,sorcerer,wizard",
+ "templeofthegods": "cleric",
+ "tensersfloatingdisk": "wizard",
+ "tensersfloatingdisc": "wizard",
+ "tenserstransformation": "wizard",
+ "floatingdisc": "wizard",
+ "thaumaturgy": "cleric",
+ "thornwhip": "artificer,druid,artificerrevisited",
+ "thunderstep": "sorcerer,warlock,wizard",
+ "thunderclap": "artificer,bard,druid,sorcerer,warlock,wizard",
+ "thunderoussmite": "paladin",
+ "thunderwave": "bard,druid,sorcerer,wizard",
+ "tidalwave": "druid,sorcerer,wizard",
+ "timestop": "sorcerer,wizard",
+ "tinyservant": "artificer,wizard",
+ "tollthedead": "cleric,warlock,wizard",
+ "tongues": "bard,cleric,sorcerer,warlock,wizard",
+ "transmuterock": "artificer,druid,wizard",
+ "transportviaplants": "druid",
+ "treestride": "druid,ranger",
+ "truepolymorph": "bard,warlock,wizard",
+ "trueresurrection": "cleric,druid",
+ "trueseeing": "bard,cleric,sorcerer,warlock,wizard",
+ "truestrike": "bard,sorcerer,warlock,wizard",
+ "tsunami": "druid",
+ "unseenservant": "bard,warlock,wizard",
+ "vampirictouch": "warlock,wizard",
+ "viciousmockery": "bard",
+ "vitriolicsphere": "sorcerer,wizard",
+ "walloffire": "druid,sorcerer,wizard",
+ "wallofforce": "wizard",
+ "wallofice": "wizard",
+ "walloflight": "sorcerer,warlock,wizard",
+ "wallofsand": "wizard",
+ "wallofstone": "artificer,druid,sorcerer,wizard,artificerrevisited",
+ "wallofthorns": "druid",
+ "wallofwater": "druid,sorcerer,wizard",
+ "wardingbond": "cleric",
+ "wardingwind": "bard,druid,sorcerer,wizard",
+ "waterbreathing": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited",
+ "waterwalk": "artificer,cleric,druid,ranger,sorcerer,artificer,artificerrevisited",
+ "waterysphere": "druid,sorcerer,wizard",
+ "web": "artificer,sorcerer,wizard",
+ "weird": "wizard",
+ "whirlwind": "druid,sorcerer,wizard",
+ "windwalk": "druid",
+ "windwall": "druid,ranger",
+ "wish": "sorcerer,wizard",
+ "witchbolt": "sorcerer,warlock,wizard",
+ "wordofradiance": "cleric",
+ "wordofrecall": "cleric",
+ "wrathofnature": "druid,ranger",
+ "wrathfulsmite": "paladin",
+ "zephyrstrike": "ranger",
+ "zoneoftruth": "bard,cleric,paladin"
+}