mysurvive / pf2e-thaum-vuln

Improvement for Thaumaturge Exploit Vulnerability
MIT License
10 stars 11 forks source link

Macro not working #30

Closed Kras-Mazov closed 1 year ago

Kras-Mazov commented 1 year ago

Running with no modules other than pf2e thaum-vuln. Still works when rolling back to 0.9.8 Error in console:

helpers.js:186 Uncaught (in promise) TypeError: a.items is not iterable at getActorEVEffect (helpers.js:186:26) at preDeleteEffect$1 (exploitVulnerability.js:206:18) at exploitVuln (exploitVulnerability.js:41:29) at executeAction (chatCard.js:39:7) at HTMLButtonElement.click (chatCard.js:28:13) at HTMLButtonElement.dispatch (jquery.min.js:2:43064) at y.handle (jquery.min.js:2:41048)

mysurvive commented 1 year ago

It looks like you're using the chat card, is that correct? If you run the macro from the macro compendium does it work on the latest version? I had no problems with it last night but we use the macro. I can take a look at the chat card this evening.

Kras-Mazov commented 1 year ago

Error with executing from compendium as well. Have tried with a fresh actor with the class applied same issue. Tried with different targets, same issue. Using forge if that's likely to be causing any issues.

helpers.js:186 Uncaught (in promise) TypeError: a.items is not iterable at getActorEVEffect (helpers.js:186:26) at preDeleteEffect$1 (exploitVulnerability.js:206:18) at Object.exploitVuln (exploitVulnerability.js:41:29) at MacroPF2e.eval (eval at _executeScript (pf2e.mjs:36:7), :4:20) at MacroPF2e._executeScript (pf2e.mjs:36:86) at MacroPF2e.execute (foundry.js:20037:21) at MacroConfig._onExecute (foundry.js:65604:17) getActorEVEffect @ helpers.js:186 preDeleteEffect$1 @ exploitVulnerability.js:206 exploitVuln @ exploitVulnerability.js:41 eval @ VM2959:4 _executeScript @ pf2e.mjs:36 execute @ foundry.js:20037 _onExecute @ foundry.js:65604 await in _onExecute (async)
dispatch @ jquery.min.js:2 y.handle @ jquery.min.js:2

mysurvive commented 1 year ago

Export one of the actors and paste the json in here. I'll try to replicate it. I just tried and it worked fine for me so I'd like to see what's different about your actor.

Kras-Mazov commented 1 year ago

{ "prototypeToken": { "displayName": 20, "displayBars": 20, "flags": { "pf2e": { "linkToActorSize": true, "autoscale": true } }, "height": 1, "width": 1, "actorLink": true, "sight": { "enabled": true, "range": null, "angle": 360, "visionMode": "basic", "color": null, "attenuation": 0.1, "brightness": 0, "saturation": 0, "contrast": 0 }, "name": "test", "texture": { "src": "systems/pf2e/icons/default-icons/character.svg", "scaleX": 1, "scaleY": 1, "offsetX": 0, "offsetY": 0, "rotation": 0, "tint": null }, "lockRotation": false, "rotation": 0, "alpha": 1, "disposition": -1, "bar1": { "attribute": "attributes.hp" }, "bar2": { "attribute": null }, "light": { "alpha": 0.5, "angle": 360, "bright": 0, "color": null, "coloration": 1, "dim": 0, "attenuation": 0.5, "luminosity": 0.5, "saturation": 0, "contrast": 0, "shadows": 0, "animation": { "type": null, "speed": 5, "intensity": 5, "reverse": false }, "darkness": { "min": 0, "max": 1 } }, "detectionModes": [], "randomImg": false }, "name": "test", "type": "character", "effects": [], "system": { "attributes": { "hp": { "value": 6, "temp": 0 }, "initiative": { "statistic": "perception" }, "speed": { "value": 25, "otherSpeeds": [] }, "bonusLimitBulk": 0, "bonusEncumbranceBulk": 0, "sp": { "value": 0, "max": 0, "details": "" }, "resolve": { "value": 0, "max": 0 } }, "details": { "alignment": { "value": "N" }, "level": { "value": 1 }, "biography": { "appearance": "", "backstory": "", "birthPlace": "", "attitude": "", "beliefs": "", "likes": "", "dislikes": "", "catchphrases": "", "campaignNotes": "", "allies": "", "enemies": "", "organaizations": "" }, "keyability": { "value": "str" }, "xp": { "value": 0, "min": 0, "max": 1000, "pct": 0 }, "age": { "value": "" }, "height": { "value": "" }, "weight": { "value": "" }, "gender": { "value": "" }, "ethnicity": { "value": "" }, "nationality": { "value": "" } }, "traits": { "value": [], "senses": [], "languages": { "value": [], "selected": [], "custom": "" } }, "resources": { "heroPoints": { "value": 1, "max": 3 } }, "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "abilities": {}, "saves": {}, "skills": { "acr": { "rank": 0 }, "arc": { "rank": 0 }, "ath": { "rank": 0 }, "cra": { "rank": 0 }, "dec": { "rank": 0 }, "dip": { "rank": 0 }, "itm": { "rank": 0 }, "med": { "rank": 0 }, "nat": { "rank": 0 }, "occ": { "rank": 0 }, "prf": { "rank": 0 }, "rel": { "rank": 0 }, "soc": { "rank": 0 }, "ste": { "rank": 0 }, "sur": { "rank": 0 }, "thi": { "rank": 0 } }, "martial": {}, "crafting": { "formulas": [] }, "pfs": { "playerNumber": null, "characterNumber": null, "levelBump": false, "currentFaction": "EA", "school": null, "reputation": { "EA": null, "GA": null, "HH": null, "VS": null, "RO": null, "VW": null } } }, "img": "systems/pf2e/icons/default-icons/character.svg", "items": [ { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/classes/wizard.webp", "name": "Wizard", "system": { "description": { "gm": "", "value": "

You are an eternal student of the arcane secrets of the universe, using your mastery of magic to cast powerful and devastating spells. You treat magic like a science, cross-referencing the latest texts on practical spellcraft with ancient esoteric tomes to discover and understand how magic works. Yet magical theory is vast, and there's no way you can study it all. You either specialize in one of the eight schools of magic, gaining deeper understanding of the nuances of those spells above all others, or favor a broader approach that emphasizes the way all magic comes together at the expense of depth.

\n

Key Ability: INTELLIGENCE

\n

At 1st level, your class gives you an ability boost to Intelligence.

\n

Hit Points: 6 plus your Constitution modifier

\n

You increase your maximum number of HP by this number at 1st level and every level thereafter.

\n

Roleplaying the Wizard

\n

During Combat Encounters...

\n

You likely try to stay out of the fray, carefully judging when to use your spells. You save your most powerful magic to incapacitate threatening foes and use your cantrips when only weaker foes remain. When enemies pull out tricks like em>@UUID[Compendium.pf2e.spells-srd.XXqE1eY3w3z6xJCB]{Invisibility}</em or em>@UUID[Compendium.pf2e.spells-srd.A2JfEKe6BZcTG1S8]{Fly}</em, you answer with spells like em>@UUID[Compendium.pf2e.spells-srd.0qaqksrGGDj74HXE]{Glitterdust}</em or em>@UUID[Compendium.pf2e.spells-srd.gPvtmKMRpg9I9D7H]{Earthbind}</em, leveling the field for your allies.

\n

During Social Encounters...

\n

You provide a well of knowledge about arcane matters and solve arguments with logic.

\n

While Exploring...

\n

You locate magical auras and determine the arcane significance of magical writing or phenomena you uncover. When you run across an unusual obstacle to further exploration, you probably have a scroll that will make it easier to overcome.

\n

In Downtime...

\n

You learn new spells, craft magic items, or scribe scrolls for your party, and seek out new and exciting formulas in addition to spells. You might even forge scholarly connections and establish a school or guild of your own.

\n

You Might...

\n\n

Others Probably...

\n\n

Initial Proficiencies

\n

At 1st level, you gain the listed proficiency ranks in the following statistics. You are untrained in anything not listed unless you gain a better proficiency rank in some other way.

\n

Perception

\n

Trained in Perception

\n

Saving Throws

\n

Trained in Fortitude

\n

Trained in Reflex

\n

Expert in Will

\n

Skills

\n

Trained in Arcana

\n

Trained in a number of additional skills equal to 2 plus your Intelligence modifier

\n

Attacks

\n

Trained in the club, crossbow, dagger, heavy crossbow, and staff

\n

Trained in unarmed attacks

\n

Defenses

\n

Untrained in all armor

\n

Trained in unarmored defense

\n

Spells

\n

Trained in arcane spell attacks

\n

Trained in arcane spell DCs

\n

Class Features

\n

You gain these features as a Wizard. Abilities gained at higher levels list the levels at which you gain them next to the features' names.

\n<table class=\"pf2-table\">\n\n\nYour Level\nClass Features\n\n\n\n\n1\nAncestry and background, initial proficiencies, arcane spellcasting, arcane school, arcane bond, arcane thesis\n\n\n2\nSkill feat, wizard feat\n\n\n3\n2nd-level spells, general feat, skill increase\n\n\n4\nSkill feat, wizard feat\n\n\n5\n3rd-level spells, ability boosts, ancestry feat, lightning reflexes, skill increase\n\n\n6\nSkill feat, wizard feat\n\n\n7\n4th-level spells, expert spellcaster, general feat, skill increase\n\n\n8\nSkill feat, wizard feat\n\n\n9\n5th-level spells, ancestry feat, magical fortitude, skill increase\n\n\n10\nAbility boosts, skill feat, wizard feat\n\n\n11\n6th-level spells, alertness, general feat, skill increase, wizard weapon expertise\n\n\n12\nSkill feat, wizard feat\n\n\n13\n7th-level spells, ancestry feat, defensive robes, skill increase, weapon specialization\n\n\n14\nSkill feat, wizard feat\n\n\n15\n8th-level spells, ability boosts, general feat, master spellcaster, skill increase\n\n\n16\nSkill feat, wizard feat\n\n\n17\n9th-level spells, ancestry feat, resolve, skill increase\n\n\n18\nSkill feat, wizard feat\n\n\n19\nArchwizard's spellcraft, general feat, legendary archwizard, skill increase\n\n\n20\nAbility boosts, skill feat, wizard feat\n\n\n\n

Ancestry and Background

\n

In addition to the abilities provided by your class at 1st level, you have the benefits of your selected ancestry and background.

\n

Arcane Bond

\n

You place some of your magical power in a bonded item. Each day when you prepare your spells, you can designate a single item you own as your bonded item. This is typically an item associated with spellcasting, such as a wand, ring, or staff, but you are free to designate a weapon or other item. You gain the Drain Bonded Item free action.

\n

@UUID[Compendium.pf2e.actionspf2e.v82XtjAVN4ffgVVR]{Drain Bonded Item} <span class=\"pf2-icon\">F

\n

Frequency once per day

\n

Requirements You haven't acted yet on your turn

\n
\n

You expend the power stored in your bonded item. During your turn, you gain the ability to cast one spell you prepared today and already cast, without spending a spell slot. You must still Cast the Spell and meet the spell's other requirements.

\n

Arcane School

\n

Many arcane spellcasters delve deeply into a single school of magic in an attempt to master its secrets. If you want to be a specialist wizard, choose a school in which to specialize. You gain additional spells and spell slots for spells of your school.

\n

If you don't choose a school, you're a universalist, a wizard who believes that the path to true knowledge of magic requires a multidisciplinary understanding of all eight schools working together. Though a universalist lacks the focus of a specialist wizard, they have greater fiexibility.

\n

Arcane schools can be found here (@UUID[Compendium.pf2e.classfeatures.gCwcys8CnS102tji]{Arcane School: Abjuration}, @UUID[Compendium.pf2e.classfeatures.SNeVaUBTHwvoO6kr]{Arcane School: Conjuration}, @UUID[Compendium.pf2e.classfeatures.yobGgrHdgjs5QW5o]{Arcane School: Divination}, @UUID[Compendium.pf2e.classfeatures.ZHwGACWQEy6kTzcP]{Arcane School: Enchantment}, @UUID[Compendium.pf2e.classfeatures.ibhml5y20g5M3Vgd]{Arcane School: Evocation}, @UUID[Compendium.pf2e.classfeatures.K6hG7nH8yjmbA0Q9]{Arcane School: Illusion}, @UUID[Compendium.pf2e.classfeatures.uNM7qZQokRKAEd7k]{Arcane School: Necromancy}, @UUID[Compendium.pf2e.classfeatures.rHxkPijLnQ9O9AGV]{Arcane School: Transmutation} and @UUID[Compendium.pf2e.classfeatures.qczCKdg47eAmCOUD]{Arcane School: Universalist})

\n

Arcane Spellcasting

\n

Through dedicated study and practice, you can harness arcane power to cast spells. You can cast arcane spells using the Cast a Spell activity, and you can supply material, somatic, and verbal components when casting spells.

\n

At 1st level, you can prepare up to two 1st-level spells and five cantrips each morning from the spells in your spellbook (see below), plus one extra cantrip and spell of your chosen school of each level you can cast if you are a specialist wizard. Prepared spells remain available to you until you cast them or until you prepare your spells again. The number of spells you can prepare is called your spell slots.

\n

As you increase in level as a wizard, your number of spell slots and the highest level of spells you can cast from spell slots increase, shown in Table 3-19: Wizard Spells per Day.

\n

Some of your spells require you to attempt a spell attack roll to see how effective they are, or have your enemies roll against your spell DC (typically by attempting a saving throw). Since your key ability is Intelligence, your spell attack rolls and spell DCs use your Intelligence modifier.

\n

Heightening Spells

\n

When you get spell slots of 2nd level and higher, you can fill those slots with stronger versions of lower-level spells. This increases the spell's level, heightening it to match the spell slot. Many spells have specific improvements when they are heightened to certain levels.

\n

Cantrips

\n

A cantrip is a special type of spell that doesn't use spell slots. You can cast a cantrip at will, any number of times per day. A cantrip is always automatically heightened to half your level rounded up-this is usually equal to the highest level of spell you can cast as a wizard. For example, as a 1st-level wizard, your cantrips are 1st-level spells, and as a 5th-level wizard, your cantrips are 3rd-level spells.

\n

Spellbook

\n

Every arcane spell has a written version, usually recorded in a spellbook. You start with a spellbook worth 10 sp or less, which you receive for free and must study to prepare your spells each day. The spellbook contains your choice of 10 arcane cantrips and five 1st-level arcane spells. You choose these from the common spells on the arcane spell list or from other arcane spells you gain access to. Your spellbook's form and name are up to you. It might be a musty, leather-bound tome or an assortment of thin metal disks connected to a brass ring; its name might be esoteric, like The Crimson Libram, or something more academic, like A Field Study in Practical Transmutation.

\n

Each time you gain a level, you add two arcane spells to your spellbook, of any level for which you have spell slots. You can also use the Arcana skill to add other spells that you find in your adventures.

\n<table class=\"pf2-table\">\n\n\nYour Level\nCantrips\n1st\n2nd\n3rd\n4th\n5th\n6th\n7th\n8th\n9th\n10th\n\n\n\n\n1\n5\n2\n-\n-\n-\n-\n-\n-\n-\n-\n-\n\n\n2\n5\n3\n-\n-\n-\n-\n-\n-\n-\n-\n-\n\n\n3\n5\n3\n2\n-\n-\n-\n-\n-\n-\n-\n-\n\n\n4\n5\n3\n3\n-\n-\n-\n-\n-\n-\n-\n-\n\n\n5\n5\n3\n3\n2\n-\n-\n-\n-\n-\n-\n-\n\n\n6\n5\n3\n3\n3\n-\n-\n-\n-\n-\n-\n-\n\n\n7\n5\n3\n3\n3\n2\n-\n-\n-\n-\n-\n-\n\n\n8\n5\n3\n3\n3\n3\n-\n-\n-\n-\n-\n-\n\n\n9\n5\n3\n3\n3\n3\n2\n-\n-\n-\n-\n-\n\n\n10\n5\n3\n3\n3\n3\n3\n-\n-\n-\n-\n-\n\n\n11\n5\n3\n3\n3\n3\n3\n2\n-\n-\n-\n-\n\n\n12\n5\n3\n3\n3\n3\n3\n3\n-\n-\n-\n-\n\n\n13\n5\n3\n3\n3\n3\n3\n3\n2\n-\n-\n-\n\n\n14\n5\n3\n3\n3\n3\n3\n3\n3\n-\n-\n-\n\n\n15\n5\n3\n3\n3\n3\n3\n3\n3\n2\n-\n-\n\n\n16\n5\n3\n3\n3\n3\n3\n3\n3\n3\n-\n-\n\n\n17\n5\n3\n3\n3\n3\n3\n3\n3\n3\n2\n-\n\n\n18\n5\n3\n3\n3\n3\n3\n3\n3\n3\n3\n-\n\n\n19\n5\n3\n3\n3\n3\n3\n3\n3\n3\n3\n1\n\n\n20\n5\n3\n3\n3\n3\n3\n3\n3\n3\n3\n1\n\n\n<td style=\"color:white;width:120px;background-color:#522e2c;text-align:center;height:25px\" colspan=\"12\">* The Archwizard's Spellcraft class feature gives you a 10th-level spell slot that works a bit differently from other spell slots.\n\n\n\n

Arcane Thesis

\n

During your studies to become a full-fledged wizard, you produced a thesis of unique magical research on one of a variety of topics. You gain a special benefit depending on the topic of your thesis research. The arcane thesis topics presented in this book are below; your specific thesis probably has a much longer and more technical title like \"On the Methods of Spell Interpolation and the Genesis of a New Understanding of the Building Blocks of Magic.\"

\n

Arcane thesis can be found here @UUID[Compendium.pf2e.classfeatures.M89l9FOnjHe63wD7]{Arcane Thesis}.

\n

Initial Proficiencies

\n

At 1st level, you gain a number of proficiencies that represent your basic training. These proficiencies are noted at the start of this class.

\n

Skill Feats<span style=\"float:right\">Level 2

\n

At 2nd level and every 2 levels thereafter, you gain a skill feat. You must be trained or better in the corresponding skill to select a skill feat.

\n

Wizard Feats<span style=\"float:right\">Level 2

\n

At 2nd level and every even-numbered level thereafter, you gain a wizard class feat.

\n

General Feats<span style=\"float:right\">Level 3

\n

At 3rd level and every 4 levels thereafter, you gain a general feat.

\n

Skill Increases<span style=\"float:right\">Level 3

\n

At 3rd level and every 2 levels thereafter, you gain a skill increase. You can use this increase either to increase your proficiency rank to trained in one skill you're untrained in, or to increase your proficiency rank in one skill in which you're already trained to expert.

\n

At 7th level, you can use skill increases to increase your proficiency rank to master in a skill in which you're already an expert, and at 15th level, you can use them to increase your proficiency rank to legendary in a skill in which you're already a master.

\n

Ability Boosts<span style=\"float:right\">Level 5

\n

At 5th level and every 5 levels thereafter, you boost four different ability scores. You can use these ability boosts to increase your ability scores above 18. Boosting an ability score increases it by 1 if it's already 18 or above, or by 2 if it starts out below 18.

\n

Ancestry Feats<span style=\"float:right\">Level 5

\n

In addition to the ancestry feat you started with, you gain an ancestry feat at 5th level and every 4 levels thereafter.

\n

Lightning Reflexes<span style=\"float:right\">Level 5

\n

Your reflexes are lightning fast. Your proficiency rank for Reflex saves increases to expert.

\n

Expert Spellcaster<span style=\"float:right\">Level 7

\n

Extended practice of the arcane has improved your capabilities. Your proficiency ranks for arcane spell attack rolls and spell DCs increase to expert.

\n

Magical Fortitude<span style=\"float:right\">Level 9

\n

Magical power has improved your body's resiliency. Your proficiency rank for Fortitude saves increases to expert.

\n

Alertness<span style=\"float:right\">Level 11

\n

You remain alert to threats around you. Your proficiency rank for Perception increases to expert.

\n

Wizard Weapon Expertise<span style=\"float:right\">Level 11

\n

Through a combination of magic and training, you've learned how to wield wizard weapons more effectively. You gain expert proficiency in the club, crossbow, dagger, heavy crossbow, staff, and unarmed attacks.

\n

Defensive Robes<span style=\"float:right\">Level 13

\n

The flow of magic and your training combine to help you avoid attacks. Your proficiency rank in unarmored defense increases to expert.

\n

Weapon Specialization<span style=\"float:right\">Level 13

\n

You've learned how to inflict greater injuries with the weapons you know best. You deal an additional 2 damage with weapons and unarmed attacks in which you are an expert. This damage increases to 3 if you're a master, and 4 if you're legendary.

\n

Master Spellcaster<span style=\"float:right\">Level 15

\n

You command superlative spellcasting ability. Your proficiency ranks for arcane spell attack rolls and spell DCs increase to master.

\n

Resolve<span style=\"float:right\">Level 17

\n

You've steeled your mind with resolve. Your proficiency rank for Will saves increases to master. When you roll a success at a Will save, you get a critical success instead.

\n

Archwizard's Spellcraft<span style=\"float:right\">Level 19

\n

You command the most potent arcane magic and can cast a spell of truly incredible power. You gain a single 10th-level spell slot and can prepare a spell in that slot using arcane spellcasting. You can't use this spell slot for abilities that let you cast spells without expending spell slots or that give you more spell slots. Unlike with other spell slots, you don't gain more 10th-level spells as you level up, though you can take the @UUID[Compendium.pf2e.feats-srd.tP26mgaFPpr6df1i]{Archwizard's Might} feat to gain a second slot.

\n

Legendary Spellcaster<span style=\"float:right\">Level 19

\n

You are a consummate spellcaster, with a comprehensive understanding of both arcane theory and practical spellcraft. Your proficiency ranks for arcane spell attack rolls and spell DCs increase to legendary.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.martial.weapon-base-club.rank", "value": 1 }, { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.martial.weapon-base-crossbow.rank", "value": 1 }, { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.martial.weapon-base-dagger.rank", "value": 1 }, { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.martial.weapon-base-heavy-crossbow.rank", "value": 1 }, { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.martial.weapon-base-staff.rank", "value": 1 }, { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.proficiencies.traditions.arcane.rank", "value": { "brackets": [ { "end": 6, "start": 1, "value": 1 }, { "end": 14, "start": 7, "value": 2 }, { "end": 18, "start": 15, "value": 3 }, { "start": 19, "value": 4 } ], "field": "actor|system.details.level.value" } } ], "slug": "wizard", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "traits": { "value": [], "rarity": "common" }, "keyAbility": { "value": [ "int" ] }, "items": { "4x1uf": { "img": "systems/pf2e/icons/features/classes/weapon-specialization.webp", "level": 13, "name": "Weapon Specialization", "uuid": "Compendium.pf2e.classfeatures.9EqIasqfI8YIM3Pt" }, "55liz": { "img": "systems/pf2e/icons/features/classes/resolve.webp", "level": 17, "name": "Resolve", "uuid": "Compendium.pf2e.classfeatures.JQAujUXjczVnYDEI" }, "7bbgv": { "img": "systems/pf2e/icons/features/classes/expert-spellcaster.webp", "level": 7, "name": "Expert Spellcaster", "uuid": "Compendium.pf2e.classfeatures.cD3nSupdCvONuHiE" }, "7hdxh": { "img": "systems/pf2e/icons/features/classes/archwizards-spellcraft.webp", "level": 1, "name": "Arcane Spellcasting (Wizard)", "uuid": "Compendium.pf2e.classfeatures.S6WW4Yyg4XonXGHD" }, "93v1o": { "img": "systems/pf2e/icons/features/classes/choice-feature.webp", "level": 1, "name": "Arcane School", "uuid": "Compendium.pf2e.classfeatures.7nbKDBGvwSx9T27G" }, "c3blc": { "img": "systems/pf2e/icons/features/classes/legendary-spellcaster.webp", "level": 19, "name": "Legendary Spellcaster", "uuid": "Compendium.pf2e.classfeatures.Hfaa7TuLn3nE8lr3" }, "djzu5": { "img": "systems/pf2e/icons/features/classes/archwizards-spellcraft.webp", "level": 19, "name": "Archwizard's Spellcraft", "uuid": "Compendium.pf2e.classfeatures.ZjwJHmjPrSs6VDez" }, "fqsfu": { "img": "systems/pf2e/icons/features/classes/master-spellcaster.webp", "level": 15, "name": "Master Spellcaster", "uuid": "Compendium.pf2e.classfeatures.l1InYvhnQSz6Ucxc" }, "hbsn6": { "img": "systems/pf2e/icons/features/classes/arcane-thesis.webp", "level": 1, "name": "Arcane Thesis", "uuid": "Compendium.pf2e.classfeatures.M89l9FOnjHe63wD7" }, "mqstv": { "img": "systems/pf2e/icons/features/classes/lightning-reflexes.webp", "level": 5, "name": "Lightning Reflexes", "uuid": "Compendium.pf2e.classfeatures.TUOeATt52P43r5W0" }, "p9c01": { "img": "systems/pf2e/icons/features/classes/magical-fortitude.webp", "level": 9, "name": "Magical Fortitude", "uuid": "Compendium.pf2e.classfeatures.70jqXP2eS4tRZ0Ok" }, "phtt9": { "img": "systems/pf2e/icons/features/classes/alertness.webp", "level": 11, "name": "Alertness", "uuid": "Compendium.pf2e.classfeatures.D8CSi8c9XiRpVc5M" }, "v5yt7": { "img": "systems/pf2e/icons/features/classes/arcane-bond.webp", "level": 1, "name": "Arcane Bond", "uuid": "Compendium.pf2e.classfeatures.au0lwQ1nAcNQwcGh" }, "yp2vs": { "img": "systems/pf2e/icons/features/classes/wizard-weapon-expertise.webp", "level": 11, "name": "Wizard Weapon Expertise", "uuid": "Compendium.pf2e.classfeatures.GBsC2cARoFiqMi9V" }, "ytft4": { "img": "systems/pf2e/icons/features/classes/defensive-robes.webp", "level": 13, "name": "Defensive Robes", "uuid": "Compendium.pf2e.classfeatures.gU7epgcPSm0TD1UK" } }, "hp": 6, "trainedSkills": { "value": [ "arc" ], "additional": 2 }, "perception": 1, "savingThrows": { "fortitude": 1, "reflex": 1, "will": 2 }, "attacks": { "simple": 0, "martial": 0, "advanced": 0, "unarmed": 1, "other": { "name": "club, crossbow, dagger, heavy crossbow and staff", "rank": 1 } }, "defenses": { "unarmored": 1, "light": 0, "medium": 0, "heavy": 0 }, "classDC": 0, "ancestryFeatLevels": { "value": [ 1, 5, 9, 13, 17 ] }, "classFeatLevels": { "value": [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ] }, "generalFeatLevels": { "value": [ 3, 7, 11, 15, 19 ] }, "skillFeatLevels": { "value": [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ] }, "skillIncreaseLevels": { "value": [ 3, 5, 7, 9, 11, 13, 15, 17, 19 ] } }, "type": "class", "flags": { "core": { "sourceId": "Compendium.pf2e.classes.RwjIZzIxzPpUglnK" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858890, "modifiedTime": 1681735858890, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "0AJXZgXCVs90jMmZ" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/choice-feature.webp", "name": "Arcane School", "system": { "description": { "gm": "", "value": "

Many arcane spellcasters delve deeply into a single school of magic in an attempt to master its secrets. If you want to be a specialist wizard, choose a school in which to specialize. You gain additional spells and spell slots for spells of your school.

\n

If you don't choose a school, you're a universalist, a wizard who believes the path to true knowledge of magic requires a multidisciplinary understanding of all eight schools working together. Though a universalist lacks the focus of a specialist wizard, they have greater flexibility.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.resources.focus.max", "predicate": [ { "not": "feature:universalist" } ], "priority": 9, "value": 1 }, { "adjustName": false, "allowedDrops": { "label": "level 1 Wizard class feature", "predicate": [ "item:level:1", "item:trait:wizard", "item:type:feature" ] }, "choices": [ { "value": "Compendium.pf2e.classfeatures.gCwcys8CnS102tji" }, { "value": "Compendium.pf2e.classfeatures.SNeVaUBTHwvoO6kr" }, { "value": "Compendium.pf2e.classfeatures.yobGgrHdgjs5QW5o" }, { "value": "Compendium.pf2e.classfeatures.ZHwGACWQEy6kTzcP" }, { "value": "Compendium.pf2e.classfeatures.ibhml5y20g5M3Vgd" }, { "value": "Compendium.pf2e.classfeatures.K6hG7nH8yjmbA0Q9" }, { "value": "Compendium.pf2e.classfeatures.uNM7qZQokRKAEd7k" }, { "value": "Compendium.pf2e.classfeatures.rHxkPijLnQ9O9AGV" }, { "value": "Compendium.pf2e.classfeatures.qczCKdg47eAmCOUD" } ], "flag": "arcaneSchool", "key": "ChoiceSet", "prompt": "PF2E.SpecificRule.Wizard.ArcaneSchool.Prompt", "selection": "Compendium.pf2e.classfeatures.gCwcys8CnS102tji" }, { "key": "GrantItem", "uuid": "{item|flags.pf2e.rulesSelections.arcaneSchool}", "flag": "abjuration" } ], "slug": "arcane-school", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "0AJXZgXCVs90jMmZ" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.7nbKDBGvwSx9T27G" }, "pf2e": { "itemGrants": { "abjuration": { "id": "NomAY0xxMV0a3JEz", "onDelete": "detach" } } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858893, "modifiedTime": 1681735858893, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "31X9Ll8KxFfdo5XF" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/arcane-thesis.webp", "name": "Arcane Thesis", "system": { "description": { "gm": "", "value": "

During your studies to become a full-fledged wizard, you produced a thesis of unique magical research on one of a variety of topics. You gain a special benefit depending on the topic of your thesis research. The arcane thesis topics presented in this book are below; your specific thesis probably has a much longer and more technical title like \"On the Methods of Spell Interpolation and the Genesis of a New Understanding of the Building Blocks of Magic.\"

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "adjustName": false, "allowedDrops": { "label": "level 1 Wizard class feature", "predicate": [ "item:level:1", "item:trait:wizard", "item:type:feature" ] }, "choices": [ { "value": "Compendium.pf2e.classfeatures.SNZ46g3u7U6x0XJj" }, { "value": "Compendium.pf2e.classfeatures.89zWKD2CN7nRu2xp" }, { "value": "Compendium.pf2e.classfeatures.OAcxS625AXSGrQIC" }, { "value": "Compendium.pf2e.classfeatures.QzWXMCSGNfvvpYgF" }, { "value": "Compendium.pf2e.classfeatures.Klb35AwlkNrq1gpB" } ], "flag": "arcaneThesis", "key": "ChoiceSet", "prompt": "PF2E.SpecificRule.Wizard.ArcaneThesis.Prompt", "selection": "Compendium.pf2e.classfeatures.SNZ46g3u7U6x0XJj" }, { "key": "GrantItem", "uuid": "{item|flags.pf2e.rulesSelections.arcaneThesis}", "flag": "improvedFamiliarAttunement" } ], "slug": "arcane-thesis", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "0AJXZgXCVs90jMmZ" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.M89l9FOnjHe63wD7" }, "pf2e": { "itemGrants": { "improvedFamiliarAttunement": { "id": "FXNMESdKhSidYFZx", "onDelete": "detach" } } } }, "effects": [], "folder": null, "sort": 100, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858894, "modifiedTime": 1681735858894, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "TdOHFNFYFMINtpbo" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/arcane-bond.webp", "name": "Arcane Bond", "system": { "description": { "gm": "", "value": "

You place some of your magical power in a bonded item. Each day when you prepare your spells, you can designate a single item you own as your bonded item. This is typically an item associated with spellcasting, such as a wand, ring, or staff, but you are free to designate a weapon or other item. You gain the @UUID[Compendium.pf2e.actionspf2e.v82XtjAVN4ffgVVR]{Drain Bonded Item} free action.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "GrantItem", "uuid": "Compendium.pf2e.actionspf2e.v82XtjAVN4ffgVVR", "flag": "drainBondedItem" } ], "slug": "arcane-bond", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "0AJXZgXCVs90jMmZ" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.au0lwQ1nAcNQwcGh" }, "pf2e": { "itemGrants": { "drainBondedItem": { "id": "oaNygSWOYCTqbSwn", "onDelete": "detach" } } } }, "effects": [], "folder": null, "sort": 200, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858897, "modifiedTime": 1681735858897, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "80ASqW18woS517UM" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/archwizards-spellcraft.webp", "name": "Arcane Spellcasting (Wizard)", "system": { "description": { "gm": "", "value": "

Through dedicated study and practice, you can harness arcane power to cast spells. You can cast arcane spells using the @UUID[Compendium.pf2e.actionspf2e.aBQ8ajvEBByv45yz]{Cast a Spell} activity, and you can supply material, somatic, and verbal components when casting spells.

\n

At 1st level, you can prepare up to two 1st-level spells and five cantrips each morning from the spells in your spellbook, plus one extra cantrip and spell of your chosen school of each level you can cast if you are a specialist wizard. Prepared spells remain available to you until you cast them or until you prepare your spells again. The number of spells you can prepare is called your spell slots.

\n

As you increase in level as a wizard, your number of spell slots and the highest level of spells you can cast from spell slots increase.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "GrantItem", "uuid": "Compendium.pf2e.actionspf2e.aBQ8ajvEBByv45yz", "flag": "castASpell" } ], "slug": "arcane-spellcasting-wizard", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common", "selected": {} }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "0AJXZgXCVs90jMmZ" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.S6WW4Yyg4XonXGHD" }, "pf2e": { "itemGrants": { "castASpell": { "id": "1F7cZyBLvp8v6WaQ", "onDelete": "detach" } } } }, "effects": [], "folder": null, "sort": 300, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858898, "modifiedTime": 1681735858898, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "sLwzalnv0EFq8kVR" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/abjuration.webp", "name": "Abjuration", "system": { "description": { "gm": "", "value": "

As an abjurer, you master the art of protection, strengthening defenses, preventing attacks, and even turning magic against itself. You understand that an ounce of prevention is worth a pound of cure. You add one 1st-level abjuration spell (such as @UUID[Compendium.pf2e.spells-srd.TTwOKGqmZeKSyNMH]{Feather Fall}) to your spellbook. You learn the @UUID[Compendium.pf2e.spells-srd.lY9fOk1qBDDhBT8s]{Protective Ward} school spell.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [], "slug": "abjuration", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": null }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.gCwcys8CnS102tji" }, "pf2e": { "grantedBy": { "id": "31X9Ll8KxFfdo5XF", "onDelete": "cascade" } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858898, "modifiedTime": 1681735858898, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "NomAY0xxMV0a3JEz" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/feats/feats.webp", "name": "Familiar", "system": { "description": { "gm": "", "value": "

(Magus, Sorcerer, Wizard) An animal serves you and assists your spellcasting. You gain a familiar.

\n

(Thaumaturge) Whether by following occult rituals, piecing together scraps of arcane theory, or some other method, you've called forth a creature that now serves as your constant companion in your studies of the supernatural. You gain a familiar.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "ActiveEffectLike", "mode": "upgrade", "path": "system.attributes.familiarAbilities.value", "priority": 9, "value": 2 } ], "slug": "familiar", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "magus", "sorcerer", "thaumaturge", "wizard" ], "rarity": "common" }, "category": "class", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": null }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.feats-srd.bcxIg7wi8ZAhvhOD" }, "pf2e": { "grantedBy": { "id": "FXNMESdKhSidYFZx", "onDelete": "cascade" } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858899, "modifiedTime": 1681735858899, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "ntNDza6vQWzYNVfd" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/improved-familiar-attunement.webp", "name": "Improved Familiar Attunement", "system": { "description": { "gm": "", "value": "

You've long held that fine-tuning the magic that bonds wizard and familiar can improve the mystic connection, compared to the safe yet generic bond most wizards currently use. You've formed such a pact with your familiar, gaining more advantages from it than most wizards. You gain the @UUID[Compendium.pf2e.feats-srd.bcxIg7wi8ZAhvhOD]{Familiar} wizard feat. Your familiar gains an extra ability, and it gains an additional extra ability when you reach 6th, 12th, and 18th levels. Your connection with your familiar alters your arcane bond class feature so that you store your magical energy in your familiar, rather than an item you own; you also gain the Drain Familiar free action instead of Drain Bonded Item. Drain Familiar can be used any time an ability would allow you to use Drain Bonded Item and functions identically, except that you draw magic from your familiar instead of an item.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "ActiveEffectLike", "mode": "add", "path": "system.attributes.familiarAbilities.value", "value": { "brackets": [ { "end": 5, "value": 1 }, { "end": 11, "start": 6, "value": 2 }, { "end": 17, "start": 12, "value": 3 }, { "start": 18, "value": 4 } ] } }, { "key": "GrantItem", "uuid": "Compendium.pf2e.feats-srd.bcxIg7wi8ZAhvhOD", "flag": "familiar" } ], "slug": "improved-familiar-attunement", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "level": { "value": 1 }, "traits": { "value": [ "wizard" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": null }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.SNZ46g3u7U6x0XJj" }, "pf2e": { "grantedBy": { "id": "TdOHFNFYFMINtpbo", "onDelete": "cascade" }, "itemGrants": { "familiar": { "id": "ntNDza6vQWzYNVfd", "onDelete": "detach" } } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858899, "modifiedTime": 1681735858899, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "FXNMESdKhSidYFZx" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/actions/FreeAction.webp", "name": "Drain Bonded Item", "system": { "description": { "gm": "", "value": "

Frequency once per day

\n
\n

You expend the power stored in your bonded item, as long as the item is on your person. During your turn, you gain the ability to cast one spell you prepared today and already cast, without spending a spell slot. You must still @UUID[Compendium.pf2e.actionspf2e.aBQ8ajvEBByv45yz]{Cast the Spell} and meet the spell's other requirements.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [], "slug": "drain-bonded-item", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "traits": { "value": [ "wizard", "arcane" ], "rarity": "common" }, "actionType": { "value": "free" }, "category": null, "actions": { "value": null }, "requirements": { "value": "" }, "trigger": { "value": "" }, "deathNote": false, "weapon": { "value": "" } }, "type": "action", "flags": { "core": { "sourceId": "Compendium.pf2e.actionspf2e.v82XtjAVN4ffgVVR" }, "pf2e": { "grantedBy": { "id": "80ASqW18woS517UM", "onDelete": "cascade" } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858904, "modifiedTime": 1681735858904, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "oaNygSWOYCTqbSwn" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/actions/Passive.webp", "name": "Cast a Spell", "system": { "description": { "gm": "", "value": "

You cast a spell you have prepared or in your repertoire. Casting a Spell is a special activity that takes a variable number of actions depending on the spell, as listed in each spell's stat block. As soon as the spellcasting actions are complete, the spell effect occurs.

\n

Some spells are cast as a reaction or free action. In those cases, you Cast the Spell as a reaction or free action (as appropriate) instead of as an activity. Such cases will be noted in the spell's stat block-for example, \"[reaction] verbal.\"

\n

Long Casting Times Some spells take minutes or hours to cast. The Cast a Spell activity for these spells includes a mix of the listed spell components, but it's not necessary to break down which one you're providing at a given time. You can't use other actions or reactions while casting such a spell, though at the GM's discretion, you might be able to speak a few sentences. As with other activities that take a long time, these spells have the exploration trait, and you can't cast them in an encounter. If combat breaks out while you're casting one, your spell is disrupted.

\n

Spell Components Each spell lists the spell components required to cast it after the action icons or text, such as \"[three-actions] material, somatic, verbal.\" The spell components, described in detail below, add traits and requirements to the Cast a Spell activity. If you can't provide the components, you fail to Cast the Spell.

\n\n

Disrupted and Lost Spells Some abilities and spells can disrupt a spell, causing it to have no effect and be lost. When you lose a spell, you've already expended the spell slot, spent the spell's costs and actions, and used the Cast a Spell activity. If a spell is disrupted during a @UUID[Compendium.pf2e.actionspf2e.3f5DMFu8fPiqHpRg]{Sustain a Spell} action, the spell immediately ends.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [], "slug": "cast-a-spell", "schema": { "version": 0.84, "lastMigration": { "datetime": "2023-05-30T19:09:08.782+01:00", "version": { "schema": 0.839, "foundry": "10.291", "system": "4.12.6" } } }, "traits": { "value": [ "general" ], "rarity": "common" }, "actionType": { "value": "passive" }, "category": null, "actions": { "value": null }, "requirements": { "value": "" }, "trigger": { "value": "" }, "deathNote": false, "weapon": { "value": "" } }, "type": "action", "flags": { "core": { "sourceId": "Compendium.pf2e.actionspf2e.aBQ8ajvEBByv45yz" }, "pf2e": { "grantedBy": { "id": "sLwzalnv0EFq8kVR", "onDelete": "cascade" } } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.10.4", "coreVersion": "10.291", "createdTime": 1681735858905, "modifiedTime": 1681735858905, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "1F7cZyBLvp8v6WaQ" } ], "flags": { "pf2e": { "freeCrafting": false }, "scene-packer": { "sourceId": "Actor.NgVC6vHIrhhUNxKP" }, "exportSource": { "world": "blood-lords", "system": "pf2e", "coreVersion": "10.291", "systemVersion": "4.12.6" } }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1681735846532, "modifiedTime": 1685535592814, "lastModifiedBy": "V90hANYz70v1Bb7s" } }

mysurvive commented 1 year ago

This is a Wizard?

mysurvive commented 1 year ago

I just changed this actor's class to Thaumaturge and added the Esoteric Lore skill and it works fine.

Kras-Mazov commented 1 year ago

Sorry exported the wrong actor called test...

Kras-Mazov commented 1 year ago

{ "prototypeToken": { "displayName": 20, "displayBars": 20, "flags": { "pf2e": { "linkToActorSize": true, "autoscale": true } }, "height": 1, "width": 1, "actorLink": true, "sight": { "enabled": true, "range": null, "angle": 360, "visionMode": "basic", "color": null, "attenuation": 0.1, "brightness": 0, "saturation": 0, "contrast": 0 }, "name": "test", "texture": { "src": "systems/pf2e/icons/default-icons/character.svg", "scaleX": 1, "scaleY": 1, "offsetX": 0, "offsetY": 0, "rotation": 0, "tint": null }, "lockRotation": false, "rotation": 0, "alpha": 1, "disposition": -1, "bar1": { "attribute": "attributes.hp" }, "bar2": { "attribute": null }, "light": { "alpha": 0.5, "angle": 360, "bright": 0, "color": null, "coloration": 1, "dim": 0, "attenuation": 0.5, "luminosity": 0.5, "saturation": 0, "contrast": 0, "shadows": 0, "animation": { "type": null, "speed": 5, "intensity": 5, "reverse": false }, "darkness": { "min": 0, "max": 1 } }, "detectionModes": [], "randomImg": false }, "name": "test", "type": "character", "effects": [], "system": { "attributes": { "hp": { "value": 8, "temp": 0 }, "initiative": { "statistic": "perception" }, "speed": { "value": 25, "otherSpeeds": [] }, "bonusLimitBulk": 0, "bonusEncumbranceBulk": 0, "sp": { "value": 0, "max": 0, "details": "" }, "resolve": { "value": 0, "max": 0 } }, "details": { "alignment": { "value": "N" }, "level": { "value": 1 }, "biography": { "appearance": "", "backstory": "", "birthPlace": "", "attitude": "", "beliefs": "", "likes": "", "dislikes": "", "catchphrases": "", "campaignNotes": "", "allies": "", "enemies": "", "organaizations": "" }, "keyability": { "value": "str" }, "xp": { "value": 0, "min": 0, "max": 1000, "pct": 0 }, "age": { "value": "" }, "height": { "value": "" }, "weight": { "value": "" }, "gender": { "value": "" }, "ethnicity": { "value": "" }, "nationality": { "value": "" } }, "traits": { "value": [], "senses": [], "languages": { "value": [], "selected": [], "custom": "" } }, "resources": { "heroPoints": { "value": 1, "max": 3 } }, "schema": { "version": 0.84, "lastMigration": null }, "abilities": {}, "saves": {}, "skills": { "acr": { "rank": 0 }, "arc": { "rank": 0 }, "ath": { "rank": 0 }, "cra": { "rank": 0 }, "dec": { "rank": 0 }, "dip": { "rank": 0 }, "itm": { "rank": 0 }, "med": { "rank": 0 }, "nat": { "rank": 0 }, "occ": { "rank": 0 }, "prf": { "rank": 0 }, "rel": { "rank": 0 }, "soc": { "rank": 0 }, "ste": { "rank": 0 }, "sur": { "rank": 0 }, "thi": { "rank": 0 } }, "martial": {}, "crafting": { "formulas": [] }, "pfs": { "playerNumber": null, "characterNumber": null, "levelBump": false, "currentFaction": "EA", "school": null, "reputation": { "EA": null, "GA": null, "HH": null, "VS": null, "RO": null, "VW": null } } }, "img": "systems/pf2e/icons/default-icons/character.svg", "items": [ { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/default-icons/class.svg", "name": "Thaumaturge", "system": { "description": { "gm": "", "value": "

The world is full of the unexplainable: ancient magic, dead gods, and even stranger things. In response, you've scavenged the best parts of every magical tradition and built up a collection of esoterica—a broken holy relic here, a sprig of mistletoe there—that you can use to best any creature by exploiting their weaknesses and vulnerabilities. The mystic implement you carry is both badge and weapon, its symbolic weight helping you bargain with and subdue the supernatural. Every path to power has its restrictions and costs, but you turn them all to your advantage. You're a thaumaturge, and you work wonders.

\n

Key Ability: CHARISMA

\n

At 1st level, your class gives you an ability boost to Charisma

\n

Hit Points: 8 plus your Constitution modifier

\n

You increase your maximum number of HP by this number at 1st level and every level thereafter.

\n

Roleplaying the Thaumaturge

\n

During Combat Encounters...

\n

You use your implements and diverse arsenal of mystic tools and tricks to assist in combat, always presenting the right bane to exploit enemies' weaknesses or shield your allies against the supernatural.

\n

During Social Encounters...

\n

You understand and nudge the social connections between people, much as you strive to understand the larger ties between mysteries and concepts. This helps you to find common ground when negotiating between the mundane and supernatural or even to play one side against the other.

\n

While Exploring...

\n

You investigate unexplainable phenomena around you, taking appropriate precautions to ward yourself and your allies against paranormal threats. Where necessary, you create your own path through the unknown.

\n

In Downtime...

\n

You research deeper into the supernatural mysteries you discovered on your last adventure to see how they can be applied in the future. You dust off relics, cultivate herbs, or forge trinkets, updating your collection of scavenged supernatural tools after each new threat you encounter. You return or call in favors with other people, strange creatures, and mystical forces.

\n

You Might...

\n\n

Others Probably...

\n\n

Initial Proficiencies

\n

At 1st level, you gain the listed proficiency ranks in the following statistics. You are untrained in anything not listed unless you gain a better proficiency rank in some other way.

\n

Perception

\n

Expert in Perception

\n

Saving Throws

\n

Expert in Fortitude

\n

Trained in Reflex

\n

Expert in Will

\n

Skills

\n

Trained in Arcana, Nature, Occultism, and Religion

\n

Trained in a number of additional skills equal to 3 plus your Intelligence modifier

\n

Attacks

\n

Trained in simple weapons

\n

Trained in martial weapons

\n

Trained in unarmed attacks

\n

Defenses

\n

Trained in light armor

\n

Trained in medium armor

\n

Trained in unarmored defense

\n

Class DC

\n

Trained in Thaumaturge class DC

\n

Class Features

\n

You gain these features as a Thaumaturge. Abilities gained at higher levels list the levels at which you gain them next to the features' names.

\n<table class=\"pf2-table\">\n\n\nYour Level\nClass Features\n\n\n\n\n1\nAncestry and background, initial proficiencies, esoteric lore, first implement and esoterica, implement's empowerment, thaumaturge feat\n\n\n2\nSkill feat, thaumaturge feat\n\n\n3\nGeneral feat, lightning reflexes, skill increase\n\n\n4\nSkill feat, thaumaturge feat\n\n\n5\nAbility boosts, ancestry feat, second implement, skill increase, thaumaturge weapon expertise\n\n\n6\nSkill feat, thaumaturge feat\n\n\n7\nGeneral feat, implement adept, resolve, skill increase, weapon specialization\n\n\n8\nSkill feat, thaumaturge feat\n\n\n9\nAncestry feat, intensify vulnerability, skill increase, thaumaturgic expertise, vigilant senses\n\n\n10\nAbility boosts, skill feat, thaumaturge feat\n\n\n11\nGeneral feat, medium armor expertise, second adept, skill increase\n\n\n12\nSkill feat, thaumaturge feat\n\n\n13\nAncestry feat, greater resolve, skill increase, weapon mastery\n\n\n14\nSkill feat, thaumaturge feat\n\n\n15\nAbility boosts, general feat, greater weapon specialization, juggernaut, skill increase, third implement\n\n\n16\nSkill feat, thaumaturge feat\n\n\n17\nAncestry feat, implement paragon, skill increase, thaumaturgic mastery\n\n\n18\nSkill feat, thaumaturge feat\n\n\n19\nGeneral feat, medium armor mastery, skill increase, unlimited esoterica\n\n\n20\nAbility boosts, skill feat, thaumaturge feat\n\n\n\n

Ancestry and Background

\n

In addition to the abilities provided by your class at 1st level, you have the benefits of your selected ancestry and background.

\n

Initial Proficiencies

\n

At 1st level, you gain a number of proficiencies that represent your basic training. These proficiencies are noted at the start of this class.

\n

Esoteric Lore

\n

Your experience with the unknown, as well as the tales you've exchanged with other thaumaturges, has taught you about strange phenomena of every kind. You become trained in Esoteric Lore, a special lore skill that can be used to Recall Knowledge regarding haunts, curses, and creatures of any type, but that can't be used to Recall Knowledge of other topics. Unlike a normal Lore skill, you use Charisma as your modifier on Esoteric Lore checks. You also gain the Dubious Knowledge skill feat.

\n

At 3rd level, you become an expert in Esoteric Lore; at 7th level, you become a master in Esoteric Lore; and at 15th level, you become legendary in Esoteric Lore.

\n

First Implement And Esoterica

\n

Your implement is a special object of symbolic importance: your badge as you treat with the supernatural and a powerful tool if things turn violent. Choose an implement from the options presented on page 36 (amulet, bell, chalice, lantern, mirror, regalia, tome, wand, and weapon). You begin play with a mundane item of that type, and you gain the initiate benefit for that implement. While an implement is useful to you, it typically has no value if sold. If you acquire a new object of the same general implement type, you can switch your implement to the new object by spending 1 day of downtime with the new item. As you advance as a thaumaturge, you will collect up to three implements and unlock the hidden potential stored within each, so you can mix and match their benefits to suit your situation.

\n

While your implements are your primary tools in your dealings with the supernatural, you know the value of always being prepared. You constantly collect and carry various smaller mystic objects, bits of materials with paranormal affinities, and items used in folk practices: your esoterica. These might include cold-iron nails, scraps of scrolls and scriptures, fragments of bones purportedly from a saint, and other similar objects. You keep your esoterica in easy-to-access places on your person and are well practiced in brandishing your implement and esoterica together, so you can draw and use esoterica with the same hand you're using to wield an implement.

\n

Exploit Vulnerability

\n

Exploit Vulnerability

\n

You gain the Exploit Vulnerability action.

\n

Implement's Empowerment

\n

The power of your implement can also be turned to the more common task of combat, its power adding to and amplifying the effects of runes and other magical empowerments. When you Strike, you can trace mystic patterns with an implement you're holding to empower the Strike, causing it to deal 2 additional damage per weapon damage die. Channeling the power requires full use of your hands. You don't gain the benefit of implement's empowerment if you are holding anything in either hand other than a single one-handed weapon, other implements, or esoterica, and you must be holding at least one implement to gain the benefit.

\n

Thaumaturge Feats

\n

At 1st level and every even-numbered level, you gain a thaumaturge class feat.

\n

Skill Feats<span style=\"float:right\">Level 2

\n

At 2nd level and every 2 levels thereafter, you gain a skill feat. You must be trained or better in the corresponding skill to select a skill feat.

\n

General Feats<span style=\"float:right\">Level 3

\n

At 3rd level and every 4 levels thereafter, you gain a general feat.

\n

Lightning Reflexes<span style=\"float:right\">Level 3

\n

Your reflexes are lightning fast. Your proficiency rank for Reflex saves increases to expert.

\n

Skill Increases<span style=\"float:right\">Level 3

\n

At 3rd level and every 2 levels thereafter, you gain a skill increase. You can use this increase either to increase your proficiency rank to trained in one skill you're untrained in, or to increase your proficiency rank in one skill in which you're already trained to expert.

\n

At 7th level, you can use skill increases to increase your proficiency rank to master in a skill in which you're already an expert, and at 15th level, you can use them to increase your proficiency rank to legendary in a skill in which you're already a master.

\n

Ability Boosts<span style=\"float:right\">Level 5

\n

At 5th level and every 5 levels thereafter, you boost four different ability scores. You can use these ability boosts to increase your ability scores above 18. Boosting an ability score increases it by 1 if it's already 18 or above, or by 2 if it starts out below 18.

\n

Ancestry Feats<span style=\"float:right\">Level 5

\n

In addition to the ancestry feat you started with, you gain an ancestry feat at 5th level and every 4 levels thereafter.

\n

Second Implement<span style=\"float:right\">Level 5

\n

You've added another implement of power to your toolkit. You choose a second implement, which must be a different type of implement than your first. You gain the initiate benefit of your new implement.

\n

While you're holding an implement in one hand, you can quickly switch it with another implement you're wearing to use an action from the implement you're switching to. To do so, you can Interact as a free action immediately before executing the implement's action. This allows you to meet requirements of having an implement in hand to use its action. For example, if you had your lantern implement in one hand, a weapon in the other, and a chalice implement you were wearing, you could swap your lantern for your chalice to use its reaction.

\n

Thaumaturge Weapon Expertise<span style=\"float:right\">Level 5

\n

You've learned the secret ways your weapons work most effectively. Your proficiency ranks for simple weapons and martial weapons increase to expert.

\n

Implement Adept<span style=\"float:right\">Level 7

\n

You have deepened your connection to one of your implements, unlocking its adept power. Choose one of your implements and gain the adept benefit for that implement.

\n

Resolve<span style=\"float:right\">Level 7

\n

You've steeled your mind with resolve. Your proficiency rank for Will saves increases to master. When you roll a success on a Will save, you get a critical success instead.

\n

Weapon Specialization<span style=\"float:right\">Level 7

\n

You've learned how to inflict greater injuries with the weapons you know best. You deal 2 additional damage with weapons and unarmed attacks in which you are an expert. This damage increases to 3 if you're a master, and 4 if you're legendary.

\n

Intensify Vulnerability<span style=\"float:right\">Level 9

\n

You've learned to use your implement to further assault a creature whose vulnerabilities you're exploiting. You gain the intensify vulnerability benefit of all of your implements, as well as the Intensify Vulnerability action.

\n

Thaumaturgic Expertise<span style=\"float:right\">Level 9

\n

You've learned deeper secrets of the supernatural, and your abilities are harder to resist. Your proficiency rank for your thaumaturge class DC increases to expert.

\n

You also gain an additional skill increase, which you can apply only to Arcana, Nature, Occultism, or Religion.

\n

Vigilant Senses<span style=\"float:right\">Level 9

\n

Through your adventures, you've developed keen awareness and attention to detail. Your proficiency rank for Perception increases to master.

\n

Medium Armor Expertise<span style=\"float:right\">Level 11

\n

You've learned to defend yourself better against attacks. Your proficiency ranks for light armor, medium armor, and unarmored defense increase to expert.

\n

Second Adept<span style=\"float:right\">Level 11

\n

You've improved your link to your second implement. You gain the adept benefit of your second implement.

\n

Greater Resolve<span style=\"float:right\">Level 13

\n

Your unbelievable training grants you mental resiliency. Your proficiency rank for Will saves increases to legendary. When you roll a critical failure on a Will save, you get a failure instead. When you roll a failure on a Will save against a damaging effect, you take half damage.

\n

Weapon Mastery<span style=\"float:right\">Level 13

\n

You fully understand your weapons. Your proficiency ranks for simple and martial weapons increase to master.

\n

Greater Weapon Specialization<span style=\"float:right\">Level 15

\n

Your damage from weapon specialization increases to 4 with weapons and unarmed attacks in which you're an expert, 6 if you're a master, and 8 if you're legendary.

\n

Juggernaut<span style=\"float:right\">Level 15

\n

Your body is accustomed to physical hardship and resistant to a wide range of ailments. Your proficiency rank for Fortitude saves increases to master. When you roll a success on a Fortitude save, you get a critical success instead.

\n

Third Implement<span style=\"float:right\">Level 15

\n

As you come closer to the culmination of your journey, you gain your final implement, completing your set of three. It must be a different type of implement than your first and second implements. You gain the initiate benefit and intensify vulnerability benefit of your new implement.

\n

Implement Paragon<span style=\"float:right\">Level 17

\n

You have unlocked the last secrets of an implement. Choose one of your implements that already gained the adept benefit; you gain the paragon benefit for that implement.

\n

Thaumaturgic Mastery<span style=\"float:right\">Level 17

\n

You've become a master in paranormal phenomena, and your esoterica grow in power. Your proficiency rank for your thaumaturge class DC increases to master.

\n

You also gain an additional skill increase, which you can apply only to Arcana, Nature, Occultism, or Religion.

\n

Medium Armor Mastery<span style=\"float:right\">Level 19

\n

Your skill with light and medium armor improves, increasing your ability to avoid blows. Your proficiency ranks for light and medium armor, as well as for unarmed defense, increase to master.

\n

Unlimited Esoterica<span style=\"float:right\">Level 19

\n

Your understanding of your esoterica becomes so complete that you can access your mystic tools without even thinking. You can use Exploit Vulnerability or Intensify Vulnerability as a free action, rather than a single action, though still with a frequency of only once per round.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [], "slug": "thaumaturge", "schema": { "version": 0.84, "lastMigration": null }, "traits": { "value": [], "rarity": "common" }, "keyAbility": { "value": [ "cha" ] }, "items": { "1LMTz": { "img": "systems/pf2e/icons/features/classes/unlimited-esoterica.webp", "level": 19, "name": "Unlimited Esoterica", "uuid": "Compendium.pf2e.classfeatures.9ItMYxEkvxqBHrV1" }, "1a61p": { "img": "systems/pf2e/icons/features/classes/juggerenaut.webp", "level": 15, "name": "Juggernaut", "uuid": "Compendium.pf2e.classfeatures.OMZs5y16jZRW9KQK" }, "2waut": { "img": "systems/pf2e/icons/features/classes/lightning-reflexes.webp", "level": 3, "name": "Lightning Reflexes", "uuid": "Compendium.pf2e.classfeatures.TUOeATt52P43r5W0" }, "3rn78": { "img": "systems/pf2e/icons/features/classes/first-implement-and-esoterica.webp", "level": 1, "name": "First Implement and Esoterica", "uuid": "Compendium.pf2e.classfeatures.VSQJtzQE6ikKdsnP" }, "4h2t7": { "img": "systems/pf2e/icons/features/classes/greater-weapon-specialization.webp", "level": 15, "name": "Greater Weapon Specialization", "uuid": "Compendium.pf2e.classfeatures.Z7HX6TeFsaup7Dx9" }, "59mfg": { "img": "systems/pf2e/icons/features/classes/medium-armor-expertise.webp", "level": 11, "name": "Medium Armor Expertise", "uuid": "Compendium.pf2e.classfeatures.FCEp9jjxxgRJDJV3" }, "63BEI": { "img": "systems/pf2e/icons/features/classes/second-adept.webp", "level": 11, "name": "Second Adept", "uuid": "Compendium.pf2e.classfeatures.ZEUxZ4Ta1kDPHiq5" }, "7qJbx": { "img": "systems/pf2e/icons/features/classes/esoteric-lore.webp", "level": 1, "name": "Esoteric Lore", "uuid": "Compendium.pf2e.classfeatures.cvQmPkJtybMcHinK" }, "91CWx": { "img": "systems/pf2e/icons/features/classes/third-implement.webp", "level": 15, "name": "Third Implement", "uuid": "Compendium.pf2e.classfeatures.zxZzjN2T53wnH4vU" }, "94AW8": { "img": "systems/pf2e/icons/features/classes/implements-empowerment.webp", "level": 1, "name": "Implement's Empowerment", "uuid": "Compendium.pf2e.classfeatures.PbNS8d3w3pYQYcVN" }, "EeAOX": { "img": "systems/pf2e/icons/features/classes/implement-paragon.webp", "level": 17, "name": "Implement Paragon", "uuid": "Compendium.pf2e.classfeatures.QEtgbY8N2V4wTbsI" }, "HFk1R": { "img": "systems/pf2e/icons/features/classes/intensify-vulnerability.webp", "level": 9, "name": "Intensify Vulnerability", "uuid": "Compendium.pf2e.classfeatures.VdwNvQwq9sHflEwe" }, "Pr5fe": { "img": "systems/pf2e/icons/features/classes/weapon-expertise.webp", "level": 5, "name": "Thaumaturge Weapon Expertise", "uuid": "Compendium.pf2e.classfeatures.ABYmUcLdxDFXEtzu" }, "VjdCa": { "img": "systems/pf2e/icons/features/classes/thaumaturgic-expertise.webp", "level": 9, "name": "Thaumaturgic Expertise", "uuid": "Compendium.pf2e.classfeatures.yvdSUIRU5uLr5eF2" }, "anx17": { "img": "systems/pf2e/icons/features/classes/second-implement.webp", "level": 5, "name": "Second Implement", "uuid": "Compendium.pf2e.classfeatures.Z8WpDAdAXyefLB7Q" }, "etPSx": { "img": "systems/pf2e/icons/features/classes/implement-adept.webp", "level": 7, "name": "Implement Adept", "uuid": "Compendium.pf2e.classfeatures.Obm4ItMIIr0whYeO" }, "f5coc": { "img": "systems/pf2e/icons/features/classes/weapon-specialization.webp", "level": 7, "name": "Weapon Specialization", "uuid": "Compendium.pf2e.classfeatures.9EqIasqfI8YIM3Pt" }, "fdT0O": { "img": "systems/pf2e/icons/features/classes/thaumaturgic-mastery.webp", "level": 17, "name": "Thaumaturgic Mastery", "uuid": "Compendium.pf2e.classfeatures.VywXtJCa0Y9fdGVH" }, "gjFwy": { "img": "systems/pf2e/icons/features/classes/exploit-vulnerability.webp", "level": 1, "name": "Exploit Vulnerability", "uuid": "Compendium.pf2e.classfeatures.uwLNfBprqZw2osTb" }, "ifvk8": { "img": "systems/pf2e/icons/features/classes/resolve.webp", "level": 7, "name": "Resolve", "uuid": "Compendium.pf2e.classfeatures.JQAujUXjczVnYDEI" }, "le5cj": { "img": "systems/pf2e/icons/features/classes/medium-armor-mastery.webp", "level": 19, "name": "Medium Armor Mastery", "uuid": "Compendium.pf2e.classfeatures.cGMSYAErbUG5E8X2" }, "oa3vk": { "img": "systems/pf2e/icons/features/classes/greater-resolve.webp", "level": 13, "name": "Greater Resolve", "uuid": "Compendium.pf2e.classfeatures.5LOARurr4qWkfS9K" }, "vd7eu": { "img": "systems/pf2e/icons/features/classes/vigilant-senses.webp", "level": 9, "name": "Vigilant Senses", "uuid": "Compendium.pf2e.classfeatures.0npO4rPscGm0dX13" }, "z3br4": { "img": "systems/pf2e/icons/features/classes/weapon-mastery.webp", "level": 13, "name": "Weapon Mastery", "uuid": "Compendium.pf2e.classfeatures.i6563IU7x4L9oRgC" } }, "hp": 8, "trainedSkills": { "value": [ "arc", "nat", "occ", "rel" ], "additional": 3, "custom": "Esoteric Lore" }, "perception": 2, "savingThrows": { "fortitude": 2, "reflex": 1, "will": 2 }, "attacks": { "simple": 1, "martial": 1, "advanced": 0, "unarmed": 1, "other": { "name": "", "rank": 0 } }, "defenses": { "unarmored": 1, "light": 1, "medium": 1, "heavy": 0 }, "classDC": 1, "ancestryFeatLevels": { "value": [ 1, 5, 9, 13, 17 ] }, "classFeatLevels": { "value": [ 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ] }, "generalFeatLevels": { "value": [ 3, 7, 11, 15, 19 ] }, "skillFeatLevels": { "value": [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ] }, "skillIncreaseLevels": { "value": [ 3, 5, 7, 9, 11, 13, 15, 17, 19 ] } }, "type": "class", "flags": { "core": { "sourceId": "Compendium.pf2e.classes.Y5GsHqzCzJlKka6x" }, "scene-packer": { "hash": "317238c6247d5cdef65a2fc25a8cf411acf344e3" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332437, "modifiedTime": 1685640332437, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "Rs7ic9O8ZxDSCY2I" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/first-implement-and-esoterica.webp", "name": "First Implement and Esoterica", "system": { "description": { "gm": "", "value": "

Your implement is a special object of symbolic importance: your badge as you treat with the supernatural and a powerful tool if things turn violent. Choose an implement from the options presented below:/p>\n<ul>\n<li>@UUID[Compendium.pf2e.classfeatures.PoclGJ7BCEyIuqJe]{Amulet}</li\nli>@UUID[Compendium.pf2e.classfeatures.DK1LCE5pd0YCY11c]{Bell}</li\nli>@UUID[Compendium.pf2e.classfeatures.1vgFGSnn0DIBmK7j]{Chalice}</li\nli>@UUID[Compendium.pf2e.classfeatures.AltwHU7hCqTwpn48]{Lantern}</li\nli>@UUID[Compendium.pf2e.classfeatures.N6KvTbaRsphc0Ymb]{Mirror}</li\nli>@UUID[Compendium.pf2e.classfeatures.DhdLzrcMvB93Rjmt]{Regalia}</li\nli>@UUID[Compendium.pf2e.classfeatures.MyN1cQgE0HsLF20e]{Tome}</li\nli>@UUID[Compendium.pf2e.classfeatures.pDxdE8S8QJV2PGiB]{Wand}</li\nli>@UUID[Compendium.pf2e.classfeatures.YiDkrwaxiF7Gao7y]{Weapon}</li\n\n

You begin play with a mundane item of that type, and you gain the initiate benefit for that implement. While an implement is useful to you, it typically has no value if sold. If you acquire a new object of the same general implement type, you can switch your implement to the new object by spending 1 day of downtime with the new item. As you advance as a thaumaturge, you will collect up to three implements and unlock the hidden potential stored within each, so you can mix and match their benefits to suit your situation.

\n

While your implements are your primary tools in your dealings with the supernatural, you know the value of always being prepared. You constantly collect and carry various smaller mystic objects, bits of materials with paranormal affinities, and items used in folk practices: your esoterica. These might include cold-iron nails, scraps of scrolls and scriptures, fragments of bones purportedly from a saint, and other similar objects. You keep your esoterica in easy-to-access places on your person and are well practiced in brandishing your implement and esoterica together, so you can draw and use esoterica with the same hand you're using to wield an implement.

\n

Exploit Vulnerability

\n

You know that every creature, no matter how obscure, has a weakness. By identifying and empowering the right object, you can strike down even the most resilient of monsters. You gain the Exploit Vulnerability action.

\n

You can attempt to Exploit Vulnerabilities in one of two ways: either by invoking properties that repel that type of creature, or by attempting a more improvisational, ad-hoc method with your esoterica that can impose a custom weakness on any creature, albeit one that usually isn't as dire as a creature's existing weakness.

\n" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [ { "adjustName": false, "choices": [ { "value": "Compendium.pf2e.classfeatures.PoclGJ7BCEyIuqJe" }, { "value": "Compendium.pf2e.classfeatures.DK1LCE5pd0YCY11c" }, { "value": "Compendium.pf2e.classfeatures.1vgFGSnn0DIBmK7j" }, { "value": "Compendium.pf2e.classfeatures.AltwHU7hCqTwpn48" }, { "value": "Compendium.pf2e.classfeatures.N6KvTbaRsphc0Ymb" }, { "value": "Compendium.pf2e.classfeatures.DhdLzrcMvB93Rjmt" }, { "value": "Compendium.pf2e.classfeatures.MyN1cQgE0HsLF20e" }, { "value": "Compendium.pf2e.classfeatures.pDxdE8S8QJV2PGiB" }, { "value": "Compendium.pf2e.classfeatures.YiDkrwaxiF7Gao7y" } ], "flag": "implement", "key": "ChoiceSet", "prompt": "PF2E.SpecificRule.Prompt.FirstImplement", "selection": "Compendium.pf2e.classfeatures.MyN1cQgE0HsLF20e" }, { "key": "GrantItem", "uuid": "{item|flags.pf2e.rulesSelections.implement}", "flag": "tome" } ], "slug": "first-implement-and-esoterica", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "thaumaturge" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "Rs7ic9O8ZxDSCY2I" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.VSQJtzQE6ikKdsnP" }, "pf2e": { "itemGrants": { "tome": { "id": "wjBEHPyOvSoRp3in", "onDelete": "detach" } } }, "scene-packer": { "hash": "419c46b67bc9b50271467b9fed64b8d828921b05" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332438, "modifiedTime": 1685640332438, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "sSrVSS1ywsiFeSor" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/esoteric-lore.webp", "name": "Esoteric Lore", "system": { "description": { "gm": "", "value": "

Your experience with the unknown, as well as the tales you've exchanged with other thaumaturges, has taught you about strange phenomena of every kind. You become trained in Esoteric Lore, a special lore skill that can be used to Recall Knowledge regarding haunts, curses, and creatures of any type, but that can't be used to Recall Knowledge of other topics. Unlike a normal Lore skill, you use Charisma as your modifier on Esoteric Lore checks. You also gain the @UUID[Compendium.pf2e.feats-srd.1Bt7uCW2WI4sM84P]{Dubious Knowledge} skill feat.

\n

At 3rd level, you become an expert in Esoteric Lore; at 7th level, you become a master in Esoteric Lore; and at 15th level, you become legendary in Esoteric Lore.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [ { "ability": "cha", "force": true, "key": "FlatModifier", "selector": [ "esoteric", "esoteric-lore", "lore-esoteric" ], "type": "ability" }, { "key": "GrantItem", "uuid": "Compendium.pf2e.feats-srd.1Bt7uCW2WI4sM84P", "flag": "dubiousKnowledge" } ], "slug": "esoteric-lore", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "thaumaturge" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "Rs7ic9O8ZxDSCY2I" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.cvQmPkJtybMcHinK" }, "pf2e": { "itemGrants": { "dubiousKnowledge": { "id": "DuT6eYVfn7E9BZNP", "onDelete": "detach" } } }, "scene-packer": { "hash": "9a570635dd3a01553bf082e9719ec374a0d1e75e" } }, "effects": [], "folder": null, "sort": 100, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332440, "modifiedTime": 1685640332440, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "JL71NNNMfvZmKwNY" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/exploit-vulnerability.webp", "name": "Exploit Vulnerability", "system": { "description": { "gm": "", "value": "

You know that every creature, no matter how obscure, has a weakness. By identifying and empowering the right object, you can strike down even the most resilient of monsters.

\n

You gain the @UUID[Compendium.pf2e.actionspf2e.fodJ3zuwQsYnBbtk]{Exploit Vulnerability} action.

\n

You can attempt to Exploit Vulnerabilities in one of two ways: either by invoking properties that repel that type of creature, or by attempting a more improvisational, ad-hoc method with your esoterica that can impose a custom weakness on any creature, albeit one that usually isn't as dire as a creature's existing weakness.

\n

Mortal Weakness After identifying a creature's weakness, you use a thematically resonant bit of esoterica to attune your attacks to your discovery. Your unarmed and weapon Strikes activate the highest weakness you discovered with Exploit Vulnerability, even though the damage type your weapon deals doesn't change. This damage affects the target of your Exploit Vulnerability, as well as any other creatures of the exact same type, but not other creatures with the same weakness. For example, when fighting a pack of werewolves, you might use silver shavings or crushed moonstone to deal damage that applies their weakness to silver to your attacks against any of the werewolves, but you wouldn't apply this damage to any other monsters with a weakness to silver.

\n

Personal Antithesis You improvise a custom weakness on a creature by forcefully presenting and empowering a piece of esoterica that repels it on an individual level; for instance, against a tyrant, you might procure a broken chain that once held a captive. This causes the target creature, and only the target creature, to gain a weakness against your unarmed and weapon Strikes equal to 2 + half your level.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [ { "key": "GrantItem", "uuid": "Compendium.pf2e.actionspf2e.fodJ3zuwQsYnBbtk", "flag": "exploitVulnerability" } ], "slug": "exploit-vulnerability", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "thaumaturge" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "Rs7ic9O8ZxDSCY2I" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.uwLNfBprqZw2osTb" }, "pf2e": { "itemGrants": { "exploitVulnerability": { "id": "srCqDbrtISUEuFFp", "onDelete": "detach" } } }, "scene-packer": { "hash": "9ea4fad7939d90af5952e67801e54ec6416b5556" } }, "effects": [], "folder": null, "sort": 200, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332440, "modifiedTime": 1685640332440, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "0HPRx58yTOWdqchp" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/implements-empowerment.webp", "name": "Implement's Empowerment", "system": { "description": { "gm": "", "value": "

The power of your implement can also be turned to the more common task of combat, its power adding to and amplifying the effects of runes and other magical empowerments. When you Strike, you can trace mystic patterns with an implement you're holding to empower the Strike, causing it to deal 2 additional Damage per weapon damage die. Channeling the power requires full use of your hands. You don't gain the benefit of implement's empowerment if you are holding anything in either hand other than a single one-handed weapon, other implements, or esoterica, and you must be holding at least one implement to gain the benefit.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [ { "domain": "all", "key": "RollOption", "option": "implements-empowerment", "toggleable": true }, { "key": "FlatModifier", "predicate": [ "implements-empowerment" ], "selector": "strike-damage", "value": "@weapon.system.damage.dice * 2" } ], "slug": "implements-empowerment", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "thaumaturge" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": "Rs7ic9O8ZxDSCY2I" }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.PbNS8d3w3pYQYcVN" }, "scene-packer": { "hash": "3d28278ac5a01bf6f7f51f4aa30b349cd5c25632" } }, "effects": [], "folder": null, "sort": 300, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332441, "modifiedTime": 1685640332441, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "3MMLaTgD0xvk7vVl" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/classes/tome.webp", "name": "Tome", "system": { "description": { "gm": "", "value": "

Tome implements embody lost knowledge and otherworldly insights. While a weathered book is most common, tome implements can have as many different form factors as there are ways to store knowledge, from carved clay tablets to bundles of knotted cords. Tome implements are associated with the harrow suit of books and the astrological signs of the stargazer and the underworld dragon.

\n

Initiate Benefit

\n

While you hold your tome, lines of text appear on the open pages, revealing useful information. While you hold your tome, you gain a +1 circumstance bonus to all skill checks to Recall Knowledge.

\n

During your daily preparations, you can gain the trained proficiency rank in two skills of your choice until you prepare again. You retain the benefit as long as the tome is on your person, even if you aren't holding it. At 3rd level, you're an expert in one of the skills and trained in the other, and at 5th level, you're an expert in both skills. Since these proficiencies are temporary, you can't use them as a prerequisite for a skill increase or a permanent character option like a feat.

\n

Adept Benefit

\n

In addition to the initiate benefits, your tome inscribes insights into creatures that you can use to strike them down. While holding your tome, at the start of your turn each round, attempt a check to Recall Knowledge about a creature of your choice that you're observing. If this check succeeds, you gain a +1 circumstance bonus to your next attack roll against that creature before the start of your next turn.

\n

When you gain temporary skill proficiencies during your daily preparations, one is at expert proficiency and the other at master proficiency. At 9th level, you have master proficiency in both.

\n

Intensify Vulnerability

\n

Your tome's power not only reads a creature's present but even records its future actions. When you use Intensify Vulnerability, roll a d20 and set the result aside. At any time until the start of your next turn, you can use the d20 result you set aside for an attack roll to Strike the target of your Exploit Vulnerability, instead of rolling a new d20; this is a fortune effect.

\n

Paragon Benefit

\n

In addition to the other benefits, your tome's information alerts you to ambushes and attacks from your foes. While holding your tome, you can always roll a skill check for initiative against creatures or haunts using Esoteric Lore. If you do, you gain a +3 circumstance bonus to your initiative roll.

\n

The initiate benefit's circumstance bonus to Recall Archive Knowledge from holding your tome increases from +1 to +2. When you succeed at the Recall Knowledge check granted by the tome's adept benefit, the bonus applies to all attack rolls you make before the start of your next turn, not just your next one. Lastly, when you gain temporary skill proficiencies, both are legendary.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [], "slug": "tome", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "thaumaturge" ], "rarity": "common" }, "category": "classfeature", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [] }, "location": null }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.classfeatures.MyN1cQgE0HsLF20e" }, "pf2e": { "grantedBy": { "id": "sSrVSS1ywsiFeSor", "onDelete": "cascade" } }, "scene-packer": { "hash": "9998be42ddeadaa4e0f926b46de3323641eaee9f" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332442, "modifiedTime": 1685640332442, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "wjBEHPyOvSoRp3in" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/features/feats/feats.webp", "name": "Dubious Knowledge", "system": { "description": { "gm": "", "value": "

You're a treasure trove of information, but not all of it comes from reputable sources. When you fail (but don't critically fail) a Recall Knowledge check using any skill, you learn a bit of true knowledge and a bit of erroneous knowledge, but you don't have any way to differentiate which is which.

" }, "source": { "value": "Pathfinder Core Rulebook" }, "rules": [ { "key": "Note", "predicate": [ "action:recall-knowledge" ], "selector": "skill-check", "text": "When you fail (but don't critically fail) a Recall Knowledge check using any skill, you learn a bit of true knowledge and a bit of erroneous knowledge.", "title": "{item|name}" } ], "slug": "dubious-knowledge", "schema": { "version": 0.84, "lastMigration": null }, "level": { "value": 1 }, "traits": { "value": [ "general", "skill" ], "rarity": "common" }, "category": "skill", "onlyLevel1": false, "maxTakable": 1, "actionType": { "value": "passive" }, "actions": { "value": null }, "prerequisites": { "value": [ { "value": "trained in a skill with the Recall Knowledge action" } ] }, "location": null }, "type": "feat", "flags": { "core": { "sourceId": "Compendium.pf2e.feats-srd.1Bt7uCW2WI4sM84P" }, "pf2e": { "grantedBy": { "id": "JL71NNNMfvZmKwNY", "onDelete": "cascade" } }, "scene-packer": { "hash": "8903f1fad00716d4661ca80e23c8a095af0feefd" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332445, "modifiedTime": 1685640332445, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "DuT6eYVfn7E9BZNP" }, { "img": "https://assets.forge-vtt.com/bazaar/systems/pf2e/assets/icons/actions/OneAction.webp", "name": "Exploit Vulnerability", "system": { "description": { "gm": "", "value": "

Frequency once per round

\n

Requirements You are holding your implement.

\n
\n

You scour your experiences and learning to identify something that might repel your foe. You retrieve an object from your esoterica with the appropriate supernatural qualities, then use your implement to stoke the remnants of its power into a blaze. Select a creature you can see and attempt an Esoteric Lore check against a standard DC for its level, as you retrieve the right object from your esoterica and use your implement to empower it. You gain the following effects until you Exploit Vulnerabilities again.

\n
\n

Critical Success You remember the creature's weaknesses, and as you empower your esoterica, you have a flash of insight that grants even more knowledge about the creature. You learn all of the creature's resistances, weaknesses, and immunities, including the amounts of the resistances and weaknesses and any unusual weaknesses or vulnerabilities, such as what spells will pass through a golem's antimagic. You can exploit either the creature's mortal weakness or personal antithesis (see the Exploit Vulnerability class feature). Your unarmed and weapon Strikes against the creature also become magical if they weren't already.

\n

Success You recall an important fact about the creature, learning its highest weakness (or one of its highest weaknesses, if it has multiple with the same value) but not its other weaknesses, resistances, or immunities. You can exploit either the creature's mortal weakness or personal antithesis. Your unarmed and weapon Strikes against the creature also become magical if they weren't already.

\n

Failure Failing to recall a salient weakness about the creature, you instead attempt to exploit a more personal vulnerability. You can exploit only the creature's personal antithesis. Your unarmed and weapon Strikes against the creature also become magical if they weren't already.

\n

Critical Failure You couldn't remember the right object to use and become distracted while you rummage through your esoterica. You become flat-footed until the beginning of your next turn.

" }, "source": { "value": "Pathfinder Dark Archive" }, "rules": [], "slug": "exploit-vulnerability", "schema": { "version": 0.84, "lastMigration": null }, "traits": { "value": [ "esoterica", "manipulate", "thaumaturge" ], "rarity": "common" }, "actionType": { "value": "action" }, "category": "interaction", "actions": { "value": 1 }, "requirements": { "value": "" }, "trigger": { "value": "" }, "deathNote": false }, "type": "action", "flags": { "core": { "sourceId": "Compendium.pf2e.actionspf2e.fodJ3zuwQsYnBbtk" }, "pf2e": { "grantedBy": { "id": "0HPRx58yTOWdqchp", "onDelete": "cascade" } }, "scene-packer": { "hash": "c31b45c31498fa03deafd61d3806b94949fc9150" } }, "effects": [], "folder": null, "sort": 0, "ownership": { "default": 0, "V90hANYz70v1Bb7s": 3 }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640332445, "modifiedTime": 1685640332445, "lastModifiedBy": "V90hANYz70v1Bb7s" }, "_id": "srCqDbrtISUEuFFp" } ], "flags": { "scene-packer": { "hash": "d29901a25eeee6f3b048e45d414e2871b36810ee", "sourceId": "Actor.CxWmtmGwXuLxMOpb", "defaultPermission": 1 }, "pf2e": { "freeCrafting": false }, "core": { "sourceId": "Actor.CxWmtmGwXuLxMOpb" }, "exportSource": { "world": "blood-lords", "system": "pf2e", "coreVersion": "10.291", "systemVersion": "4.12.6" } }, "_stats": { "systemId": "pf2e", "systemVersion": "4.12.6", "coreVersion": "10.291", "createdTime": 1685640324059, "modifiedTime": 1685640333359, "lastModifiedBy": "V90hANYz70v1Bb7s" } }

Kras-Mazov commented 1 year ago

image

mysurvive commented 1 year ago

Delete the module completely, then check to make sure the module folder is gone, then reinstall it. I think I see what's wrong but I'm not sure if it's your installation or the package since it's working for me.

Kras-Mazov commented 1 year ago

Doesnt appear to have resolved. Works on a fresh world though.

mysurvive commented 1 year ago

Try disabling everything except socketlib and pf2e-thaum-vuln and try again.

Kras-Mazov commented 1 year ago

Still throwing up errors. Have deleted and reinstalled pf2e system as well. Occuring errors on my game world and a copy. Have deleted my thaum player's actor on the copy in case that was a source of issue. Still errors.

helpers.js:186 Uncaught (in promise) TypeError: a.items is not iterable at getActorEVEffect (helpers.js:186:26) at preDeleteEffect$1 (exploitVulnerability.js:206:18) at Object.exploitVuln (exploitVulnerability.js:41:29) at MacroPF2e.eval (eval at _executeScript (pf2e.mjs:36:7), :4:20) at MacroPF2e._executeScript (pf2e.mjs:36:86) at MacroPF2e.execute (foundry.js:20037:21) at MacroConfig._onExecute (foundry.js:65604:17) getActorEVEffect @ helpers.js:186 preDeleteEffect$1 @ exploitVulnerability.js:206 exploitVuln @ exploitVulnerability.js:41 eval @ VM18824:4 _executeScript @ pf2e.mjs:36 execute @ foundry.js:20037 _onExecute @ foundry.js:65604 await in _onExecute (async)
dispatch @ jquery.min.js:2 y.handle @ jquery.min.js:2

mysurvive commented 1 year ago

You're saying it's working in a clean world though?

Kras-Mazov commented 1 year ago

Yeah. Happy to accept it's an issue with my world. Will just revert to earlier version and try and migrate campaign to a clean world when I can be bothered.

ervwalter commented 1 year ago

Same error happening for me as a player (I am not the GM) in my weekly Forge-hosted game.

ervwalter commented 1 year ago

Correction to my previous comment. I set a breakpoint. This is the 'a' that crashes. It has no .items property. Let me know if you want me to look at some other properties of that object to figure out what it is.

image image

ervwalter commented 1 year ago

Also, it only fails on one specific scene so far (probably because that's where the mysterious token is). If you have it, we're playing the official Abomination Vaults AP and this fails on the C - Library scene.

117Dios commented 1 year ago

Hi, chiming in to say I have the same problem and, as @ervwalter said, it only happens on a specific scene. This is the error: image

Kras-Mazov commented 1 year ago

Yeah looks like error is only happening on certain scenes for me. Running bloodlords. Looks to be only on blood lords maps

uniwars commented 1 year ago

Hi, same problem with AV, when I try on the landing page it works (when I'm logged as gm) but when I play my thaum as player it doesn't work image

mysurvive commented 1 year ago

I have a suspicion as to what is causing this but I'm going to need to test it later.

mysurvive commented 1 year ago

Try updating to the latest release of the module and let me know if it's been fixed please. I still can't reproduce the error, no matter what I try, so I'm kind of flying blind.

ervwalter commented 1 year ago

Will do. I am not the GM of my game, but I will ask the him to upgrade so we can retest.

If you don't mind, some speculation...

The latest commit doesn't seem like it will fix the issue since that commit seems to be related to the "Force EV" macro code. At least in my case, it was the normal player "Exploit Vulnerability" macro that is failing.

These are the lines of code that fail: https://github.com/mysurvive/pf2e-thaum-vuln/blob/main/src/module/utils/helpers.js#L186-L190

That gets called from here as part of the normal EV macro: https://github.com/mysurvive/pf2e-thaum-vuln/blob/main/src/module/feats/exploit-vulnerability/exploitVulnerability.js#L206

And that version of preDeleteEffect gets called for a bunch of tokens on the scene by this line: https://github.com/mysurvive/pf2e-thaum-vuln/blob/main/src/module/feats/exploit-vulnerability/exploitVulnerability.js#L41

In the failure case, at least one of the tokens doesn't have an items property at all.

I suspect that this kind of undefined check would prevent the error, but I don't know if you are comfortable with that without understanding why the token has no items property in the first place (I'm not an expert in the Foundry data model).

    if (a.items !== undefined) {
      for (const item of a.items) {
        if (item.flags["pf2e-thaum-vuln"]?.EffectOrigin === targetID) {
          effects.push(item);
        }
      }
    }
mysurvive commented 1 year ago

The reason it doesn't have an items array is because it's grabbing the token instead of the token's actor. Tokens don't have items arrays. I'll do some more digging in a little bit. It's strange that it's pulling the proper object on my end but not yours.

mysurvive commented 1 year ago

This line should force everything else to look at the actor object if it has one https://github.com/mysurvive/pf2e-thaum-vuln/blob/main/src/module/feats/exploit-vulnerability/exploitVulnerability.js#L205

I wonder, in your questionable token, is _token.actor coming up as undefined?

117Dios commented 1 year ago

Still not working for me :( I'm getting this, which I think is the same error as before image

I wonder, in your questionable token, is _token.actor coming up as undefined?

How do I check that out?

mysurvive commented 1 year ago

Press f12 to open the console, and paste the following in the console, then press enter. Take a screenshot of the results and paste them in here

https://pastebin.com/EXqMEBjs

Github markdown won't let me paste the code without screwing it up....

117Dios commented 1 year ago

image

Ok I did it, Darcy is the thaumaturge. I deleted the loot token which was not attached to any actor and replaced with a new one, and now it works!

mysurvive commented 1 year ago

aha! Wonderful!

I will add some more error checking in the next release which will hopefully cause this not to happen anymore.

ervwalter commented 1 year ago

For what it's worth, I found an easy way to reproduce this.

image

I have no idea how this happens accidentally, but that's what the situation is in the scene we're on in my game.

But hopefully this lets you create this situation on a scene of your own.

In any case, the latest commit still has a minor problem. Now when a token has no actor, getActorEVEffect returns undefined which means this line crashes. It should probably return an empty array when there is no actor.

https://github.com/mysurvive/pf2e-thaum-vuln/blob/main/src/module/feats/exploit-vulnerability/exploitVulnerability.js#LL207C2-L207C2

mysurvive commented 1 year ago

Got it! New patch coming out in just a few minutes. Thank you for that by the way, I didn't even know you could set a foundry token actor to "None." Made it a lot easier to test that the new code works :)

mysurvive commented 1 year ago

I threw in a console warning also, just in case this update causes any issues with removing effects, so it's easier to troubleshoot in the future :)

I'll wait to close this until I hear back from a few of you.

uniwars commented 1 year ago

I'll play my thaumaturge again saturday, I'll let you know if it worked fine

Kras-Mazov commented 1 year ago

Everything looks fine to me. I assume this will happen when you delete the actor when the token is still on map.

mysurvive commented 1 year ago

It's most likely broken or old tokens in the APs. That's where pretty much all of the reports have come from.

117Dios commented 1 year ago

We had game night and everything was pretty smooth

uniwars commented 1 year ago

it worked fine, except one time where the champion in my group got my personnal weakness applied to his damage it may be linked to a change in the turn order : I passed my turn to delay after the monster (my exploit was already on it), champion's turn but I asked to be before him, champion make an attack and roll damage but the gm doesn't apply the damage, the GM change the turn order to make me play after the monster and before the champion and give me the turn, I play as normal and end turn, gm applies champion damage that was rolled before and my weakness is applied, champion make a second attack, hit but my weakness is not applied as normal

the only thing I'm not sure is if the GM applied the first champion damage just before I end turn or after.