From 606914ec04a06b6cebe7918245aa8026fda731c8 Mon Sep 17 00:00:00 2001
From: Matt Smith
Date: Tue, 20 Jan 2026 17:14:22 -0600
Subject: [PATCH 1/3] Improve harm handling in chat, add wild surges
- Refactored harm handling in chat to better support the optional harm
pools homebrew rule.
- Updated harm buttons in chat to not disable them on click. This allows
multiple harm to be applied to a single character, or applying the
harm from a single roll to multiple characters (such as on an assist)
- Added wild surge compendiums for the sorcerer
---
src/module/apps/roll-dialog.mjs | 9 +
src/module/data/actor-character.mjs | 3 +-
src/module/dice/rolls.mjs | 1 +
src/module/documents/chat-message.mjs | 15 +-
...Wild_Surge_Crucible_1_o9zE97tH5RUpn9GP.yml | 747 ++++++++++++++++++
...Wild_Surge_Crucible_2_7IpCiKXDnmcjS7lf.yml | 747 ++++++++++++++++++
.../Wild_Surge_Crucible_t7JcgdArgs4HGDQB.yml | 20 +
.../Wildsurge_Crucible_T61vQHWAc1MN4LDB.yml | 87 ++
.../talents/Maelstrom_FoCmkVYg9QUQYXg5.yml | 12 +-
.../talents/Sorcery_MnncHMBYzPHIQJWG.yml | 14 +-
.../talents/Spelleater_w989kCy4tafGs3ys.yml | 13 +-
src/packs/talents/Wisps_nZD44qEavwjX2gY0.yml | 9 +-
src/templates/chat/roll-action.hbs | 2 +-
13 files changed, 1648 insertions(+), 31 deletions(-)
create mode 100644 src/packs/crucibles/Wild_Surge_Crucible_1_o9zE97tH5RUpn9GP.yml
create mode 100644 src/packs/crucibles/Wild_Surge_Crucible_2_7IpCiKXDnmcjS7lf.yml
create mode 100644 src/packs/crucibles/Wild_Surge_Crucible_t7JcgdArgs4HGDQB.yml
create mode 100644 src/packs/rules/Wildsurge_Crucible_T61vQHWAc1MN4LDB.yml
diff --git a/src/module/apps/roll-dialog.mjs b/src/module/apps/roll-dialog.mjs
index 4c05c41..398f338 100644
--- a/src/module/apps/roll-dialog.mjs
+++ b/src/module/apps/roll-dialog.mjs
@@ -153,6 +153,15 @@ export class GrimwildRollDialog extends foundry.applications.api.DialogV2 {
rollData.hasSpark = rollData.spark > 0;
rollData.sparkArray = Array.from({ length: rollData.spark }, (_, i) => i);
rollData.assistants = game.actors.filter((a) => a.type === "character" && a.name !== rollData.name).map((a) => a.name);
+ // Add weapon mastery as an assistant.
+ if (rollData.actor) {
+ const path = rollData.actor.system.path;
+ const weaponMastery = rollData.actor.itemTypes.talent.filter(t => t.name.trim().toLowerCase().includes('weapon mastery'));
+
+ if (path.trim().toLowerCase() === 'fighter' || weaponMastery.length > 0) {
+ rollData.assistants.push('Weapon Mastery');
+ }
+ }
options.content = await foundry.applications.handlebars.renderTemplate("systems/grimwild/templates/dialog/stat-roll.hbs", rollData);
options.render = this._render;
diff --git a/src/module/data/actor-character.mjs b/src/module/data/actor-character.mjs
index e705535..de77cac 100644
--- a/src/module/data/actor-character.mjs
+++ b/src/module/data/actor-character.mjs
@@ -303,7 +303,8 @@ export default class GrimwildCharacter extends GrimwildActorBase {
diceDefault: rollData?.stats?.[options.stat].value,
isBloodied: rollData?.isBloodied,
isRattled: rollData?.isRattled,
- isMarked: rollData?.stats?.[options.stat].marked
+ isMarked: rollData?.stats?.[options.stat].marked,
+ actor: this.parent,
}
});
// bail out if they closed the dialog
diff --git a/src/module/dice/rolls.mjs b/src/module/dice/rolls.mjs
index bda0f5c..ed7cd47 100644
--- a/src/module/dice/rolls.mjs
+++ b/src/module/dice/rolls.mjs
@@ -21,6 +21,7 @@ export default class GrimwildRoll extends Roll {
total: isPrivate ? "?" : this.total,
dice: this.dice[0].results,
thorns: this.dice[1].results,
+ stat: this.options?.stat ?? null,
assists: {},
crit: false,
success: 0,
diff --git a/src/module/documents/chat-message.mjs b/src/module/documents/chat-message.mjs
index 8b7f346..ca1503e 100644
--- a/src/module/documents/chat-message.mjs
+++ b/src/module/documents/chat-message.mjs
@@ -75,9 +75,9 @@ export class GrimwildChatMessage extends ChatMessage {
// Handle event listeners.
const click = this.#onClick.bind(this);
const sparkTakenArray = this.getFlag("grimwild", "sparkTaken") ?? [];
- const damageTakenArray = this.getFlag("grimwild", "damageTaken") ?? [];
+ // const damageTakenArray = this.getFlag("grimwild", "damageTaken") ?? [];
const sparkTaken = sparkTakenArray.includes(game.user.id);
- const damageTaken = damageTakenArray.includes(game.user.id);
+ // const damageTaken = damageTakenArray.includes(game.user.id);
html.querySelectorAll("[data-action]")?.forEach((element) => {
const { action } = element.dataset;
if (action === "updateSpark") {
@@ -87,10 +87,10 @@ export class GrimwildChatMessage extends ChatMessage {
}
}
else if (["applyMark", "applyHarm"].includes(action)) {
- if (damageTaken) {
- element.setAttribute("disabled", true);
- return;
- }
+ // if (damageTaken) {
+ // element.setAttribute("disabled", true);
+ // return;
+ // }
}
element.addEventListener("click", click);
});
@@ -256,7 +256,8 @@ export class GrimwildChatMessage extends ChatMessage {
if (!actor.system[harm === "bloodied" ? "isBloodied" : "isRattled"]) {
update[`system.${harm}.marked`] = true;
if (harmPools) {
- update[`system.${harm}.pool.diceNum`] = 1;
+ const newHarmPool = Math.min(actor.system[harm].pool.diceNum + 1, maxHarm);
+ update[`system.${harm}.pool.diceNum`] = newHarmPool;
}
}
else if (!harmPools || actor.system[harm].pool.diceNum >= maxHarm) {
diff --git a/src/packs/crucibles/Wild_Surge_Crucible_1_o9zE97tH5RUpn9GP.yml b/src/packs/crucibles/Wild_Surge_Crucible_1_o9zE97tH5RUpn9GP.yml
new file mode 100644
index 0000000..2f4dd97
--- /dev/null
+++ b/src/packs/crucibles/Wild_Surge_Crucible_1_o9zE97tH5RUpn9GP.yml
@@ -0,0 +1,747 @@
+name: Wild Surge Crucible 1
+formula: 1d36
+results:
+ - name: skin
+ range:
+ - 1
+ - 1
+ weight: 1
+ type: text
+ _id: mgnotonb9h1GR2sx
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.mgnotonb9h1GR2sx'
+ - name: temperature
+ range:
+ - 2
+ - 2
+ weight: 1
+ type: text
+ _id: aKttu4GOgMbmMv2P
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.aKttu4GOgMbmMv2P'
+ - name: icy
+ range:
+ - 3
+ - 3
+ weight: 1
+ type: text
+ _id: quTEe9wuFPFiMBKt
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.quTEe9wuFPFiMBKt'
+ - name: smoke
+ range:
+ - 4
+ - 4
+ weight: 1
+ type: text
+ _id: YvtsGqZq0M22tVxr
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.YvtsGqZq0M22tVxr'
+ - name: rain
+ range:
+ - 5
+ - 5
+ weight: 1
+ type: text
+ _id: p7zUfUR8zIOQDcH8
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.p7zUfUR8zIOQDcH8'
+ - name: lightning
+ range:
+ - 6
+ - 6
+ weight: 1
+ type: text
+ _id: tenVbVgYot91kVVR
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.tenVbVgYot91kVVR'
+ - name: gust
+ range:
+ - 7
+ - 7
+ weight: 1
+ type: text
+ _id: IOoviF0wtZzgbtj8
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.IOoviF0wtZzgbtj8'
+ - name: sparks
+ range:
+ - 8
+ - 8
+ weight: 1
+ type: text
+ _id: opxvPPDfRSykqB6Z
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.opxvPPDfRSykqB6Z'
+ - name: rattle
+ range:
+ - 9
+ - 9
+ weight: 1
+ type: text
+ _id: 6NqtM1HFMYFLAlsx
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.6NqtM1HFMYFLAlsx'
+ - name: tremor
+ range:
+ - 10
+ - 10
+ weight: 1
+ type: text
+ _id: i6gZOcbvd8Z6u8V7
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.i6gZOcbvd8Z6u8V7'
+ - name: color
+ range:
+ - 11
+ - 11
+ weight: 1
+ type: text
+ _id: s2Cf2G2gCjdQcbmN
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.s2Cf2G2gCjdQcbmN'
+ - name: scent
+ range:
+ - 12
+ - 12
+ weight: 1
+ type: text
+ _id: dd4Lb1EPnyulrERO
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.dd4Lb1EPnyulrERO'
+ - name: ground
+ range:
+ - 13
+ - 13
+ weight: 1
+ type: text
+ _id: rAHsev2vMZMyAS2V
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.rAHsev2vMZMyAS2V'
+ - name: fire
+ range:
+ - 14
+ - 14
+ weight: 1
+ type: text
+ _id: ZZJzqUecSK2mOdcV
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.ZZJzqUecSK2mOdcV'
+ - name: water
+ range:
+ - 15
+ - 15
+ weight: 1
+ type: text
+ _id: V8wnGelfK8Sf52xS
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.V8wnGelfK8Sf52xS'
+ - name: light
+ range:
+ - 16
+ - 16
+ weight: 1
+ type: text
+ _id: KhXYY0j8bN7OmATD
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.KhXYY0j8bN7OmATD'
+ - name: debris
+ range:
+ - 17
+ - 17
+ weight: 1
+ type: text
+ _id: eZNvMaxzChgxMcUq
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.eZNvMaxzChgxMcUq'
+ - name: flicker
+ range:
+ - 18
+ - 18
+ weight: 1
+ type: text
+ _id: uIVBhtqWwJffPKwb
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.uIVBhtqWwJffPKwb'
+ - name: creatures
+ range:
+ - 19
+ - 19
+ weight: 1
+ type: text
+ _id: LAw3qlaREqzXjgS3
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.LAw3qlaREqzXjgS3'
+ - name: growth
+ range:
+ - 20
+ - 20
+ weight: 1
+ type: text
+ _id: vjP31oFwxE4xOzke
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.vjP31oFwxE4xOzke'
+ - name: boom
+ range:
+ - 21
+ - 21
+ weight: 1
+ type: text
+ _id: 6q22bscqKFpZrdWy
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.6q22bscqKFpZrdWy'
+ - name: effect
+ range:
+ - 22
+ - 22
+ weight: 1
+ type: text
+ _id: ItDuK8mnXBdvKrhU
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.ItDuK8mnXBdvKrhU'
+ - name: steps
+ range:
+ - 23
+ - 23
+ weight: 1
+ type: text
+ _id: pB1foL9k6GiFByCF
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.pB1foL9k6GiFByCF'
+ - name: levitation
+ range:
+ - 24
+ - 24
+ weight: 1
+ type: text
+ _id: PXGMjPIB3YmjEZ01
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.PXGMjPIB3YmjEZ01'
+ - name: cloud
+ range:
+ - 25
+ - 25
+ weight: 1
+ type: text
+ _id: 7kV6THdzbNLr5HXN
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.7kV6THdzbNLr5HXN'
+ - name: invisibility
+ range:
+ - 26
+ - 26
+ weight: 1
+ type: text
+ _id: 0RaiPo3jf30GOkLo
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.0RaiPo3jf30GOkLo'
+ - name: gloom
+ range:
+ - 27
+ - 27
+ weight: 1
+ type: text
+ _id: 8OqslTBetG7iFEpR
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.8OqslTBetG7iFEpR'
+ - name: distortion
+ range:
+ - 28
+ - 28
+ weight: 1
+ type: text
+ _id: T9DCXvPg56LWLLPe
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.T9DCXvPg56LWLLPe'
+ - name: metal
+ range:
+ - 29
+ - 29
+ weight: 1
+ type: text
+ _id: lViQhq7ykyliAvCC
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.lViQhq7ykyliAvCC'
+ - name: eye
+ range:
+ - 30
+ - 30
+ weight: 1
+ type: text
+ _id: qjNOXKESLAGcieJ2
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.qjNOXKESLAGcieJ2'
+ - name: shadow
+ range:
+ - 31
+ - 31
+ weight: 1
+ type: text
+ _id: DWBLZOFlWch9ACsG
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.DWBLZOFlWch9ACsG'
+ - name: clock
+ range:
+ - 32
+ - 32
+ weight: 1
+ type: text
+ _id: DlNxTKNgFDf6GfxK
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.DlNxTKNgFDf6GfxK'
+ - name: twist
+ range:
+ - 33
+ - 33
+ weight: 1
+ type: text
+ _id: IisKh7LSMqoSns0O
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.IisKh7LSMqoSns0O'
+ - name: laughter
+ range:
+ - 34
+ - 34
+ weight: 1
+ type: text
+ _id: wiuULfB9vNasyBdY
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.wiuULfB9vNasyBdY'
+ - name: breath
+ range:
+ - 35
+ - 35
+ weight: 1
+ type: text
+ _id: 3THh6U7O2mDy1e98
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.3THh6U7O2mDy1e98'
+ - name: hum
+ range:
+ - 36
+ - 36
+ weight: 1
+ type: text
+ _id: tOrQy9sgmqUfAa34
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!o9zE97tH5RUpn9GP.tOrQy9sgmqUfAa34'
+flags:
+ core:
+ sheetClass: grimwild.GrimwildRollTableCrucibleSheet
+img: icons/magic/symbols/rune-sigil-red-orange.webp
+description: ''
+replacement: true
+displayRoll: true
+folder: t7JcgdArgs4HGDQB
+ownership:
+ default: 0
+ UV77mtxQgW7KpS6B: 3
+_stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ createdTime: 1768923334002
+ modifiedTime: 1768923337826
+ lastModifiedBy: UV77mtxQgW7KpS6B
+_id: o9zE97tH5RUpn9GP
+sort: 100000
+_key: '!tables!o9zE97tH5RUpn9GP'
diff --git a/src/packs/crucibles/Wild_Surge_Crucible_2_7IpCiKXDnmcjS7lf.yml b/src/packs/crucibles/Wild_Surge_Crucible_2_7IpCiKXDnmcjS7lf.yml
new file mode 100644
index 0000000..63fa31a
--- /dev/null
+++ b/src/packs/crucibles/Wild_Surge_Crucible_2_7IpCiKXDnmcjS7lf.yml
@@ -0,0 +1,747 @@
+name: Wild Surge Crucible 2
+formula: 1d36
+results:
+ - name: birds
+ range:
+ - 1
+ - 1
+ weight: 1
+ type: text
+ _id: SDCatrAiIO9OWcig
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.SDCatrAiIO9OWcig'
+ - name: whispers
+ range:
+ - 2
+ - 2
+ weight: 1
+ type: text
+ _id: wcl8LgfF7imq17Mq
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.wcl8LgfF7imq17Mq'
+ - name: glowing
+ range:
+ - 3
+ - 3
+ weight: 1
+ type: text
+ _id: R72hsFTKCoWbPBtc
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.R72hsFTKCoWbPBtc'
+ - name: illusion
+ range:
+ - 4
+ - 4
+ weight: 1
+ type: text
+ _id: GRJ9FUX8u0h6saPp
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.GRJ9FUX8u0h6saPp'
+ - name: rapid
+ range:
+ - 5
+ - 5
+ weight: 1
+ type: text
+ _id: UJm3wHoIDnKG4OCb
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.UJm3wHoIDnKG4OCb'
+ - name: whirlwind
+ range:
+ - 6
+ - 6
+ weight: 1
+ type: text
+ _id: LzXvHdMlQ7x2Do1I
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.LzXvHdMlQ7x2Do1I'
+ - name: smell
+ range:
+ - 7
+ - 7
+ weight: 1
+ type: text
+ _id: ncwmWdTMSPHsOqrS
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.ncwmWdTMSPHsOqrS'
+ - name: static
+ range:
+ - 8
+ - 8
+ weight: 1
+ type: text
+ _id: IniIArzJdyST8T0i
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.IniIArzJdyST8T0i'
+ - name: hunger
+ range:
+ - 9
+ - 9
+ weight: 1
+ type: text
+ _id: CTIUvRwUS2tkB5Vs
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.CTIUvRwUS2tkB5Vs'
+ - name: image
+ range:
+ - 10
+ - 10
+ weight: 1
+ type: text
+ _id: 9I5CkqfM2F8W9Qs5
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.9I5CkqfM2F8W9Qs5'
+ - name: emotion
+ range:
+ - 11
+ - 11
+ weight: 1
+ type: text
+ _id: tqOHnmWywTWJZ6E5
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.tqOHnmWywTWJZ6E5'
+ - name: glimmer
+ range:
+ - 12
+ - 12
+ weight: 1
+ type: text
+ _id: Q6wsSn7ztP9XlgAj
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.Q6wsSn7ztP9XlgAj'
+ - name: lifted
+ range:
+ - 13
+ - 13
+ weight: 1
+ type: text
+ _id: hxeZ1wmXSAmiBLDK
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.hxeZ1wmXSAmiBLDK'
+ - name: change
+ range:
+ - 14
+ - 14
+ weight: 1
+ type: text
+ _id: MY7grgOzurAbkX39
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.MY7grgOzurAbkX39'
+ - name: phrase
+ range:
+ - 15
+ - 15
+ weight: 1
+ type: text
+ _id: 8IHaPsuL9DFUPWbc
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.8IHaPsuL9DFUPWbc'
+ - name: shock
+ range:
+ - 16
+ - 16
+ weight: 1
+ type: text
+ _id: 26zl2Qd9h1kL7Q3l
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.26zl2Qd9h1kL7Q3l'
+ - name: sound
+ range:
+ - 17
+ - 17
+ weight: 1
+ type: text
+ _id: ezM4mUvLt1e7NIf3
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.ezM4mUvLt1e7NIf3'
+ - name: echo
+ range:
+ - 18
+ - 18
+ weight: 1
+ type: text
+ _id: ITBSfebLiV3Ug9m9
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.ITBSfebLiV3Ug9m9'
+ - name: shattering
+ range:
+ - 19
+ - 19
+ weight: 1
+ type: text
+ _id: IQf3FZ5Rw97xu3da
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.IQf3FZ5Rw97xu3da'
+ - name: scatter
+ range:
+ - 20
+ - 20
+ weight: 1
+ type: text
+ _id: hqkas96hTUdpxHTR
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.hqkas96hTUdpxHTR'
+ - name: feeling
+ range:
+ - 21
+ - 21
+ weight: 1
+ type: text
+ _id: bqmIo0knyZVnPE5c
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.bqmIo0knyZVnPE5c'
+ - name: pop
+ range:
+ - 22
+ - 22
+ weight: 1
+ type: text
+ _id: nu1ZoxiPIAUMKOsg
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.nu1ZoxiPIAUMKOsg'
+ - name: brief
+ range:
+ - 23
+ - 23
+ weight: 1
+ type: text
+ _id: n6GsczpSa2MpYG9J
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.n6GsczpSa2MpYG9J'
+ - name: shimmer
+ range:
+ - 24
+ - 24
+ weight: 1
+ type: text
+ _id: McKZUJ29dEkl4qFs
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.McKZUJ29dEkl4qFs'
+ - name: shift
+ range:
+ - 25
+ - 25
+ weight: 1
+ type: text
+ _id: iMkbyLmXC9KPdlr3
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.iMkbyLmXC9KPdlr3'
+ - name: size
+ range:
+ - 26
+ - 26
+ weight: 1
+ type: text
+ _id: cItWT9gs8VsKW447
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.cItWT9gs8VsKW447'
+ - name: surface
+ range:
+ - 27
+ - 27
+ weight: 1
+ type: text
+ _id: Gd0qe4S7GyHUGSxk
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.Gd0qe4S7GyHUGSxk'
+ - name: agitation
+ range:
+ - 28
+ - 28
+ weight: 1
+ type: text
+ _id: 3vGa8SunPhR24V6e
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.3vGa8SunPhR24V6e'
+ - name: apparition
+ range:
+ - 29
+ - 29
+ weight: 1
+ type: text
+ _id: ll5BZF6dpVFVZdsL
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.ll5BZF6dpVFVZdsL'
+ - name: sparkle
+ range:
+ - 30
+ - 30
+ weight: 1
+ type: text
+ _id: xCy3QuVxsrmJTt8f
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.xCy3QuVxsrmJTt8f'
+ - name: notes
+ range:
+ - 31
+ - 31
+ weight: 1
+ type: text
+ _id: uAHkG6C98bbiLLpg
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.uAHkG6C98bbiLLpg'
+ - name: vision
+ range:
+ - 32
+ - 32
+ weight: 1
+ type: text
+ _id: 0epytsOn1eevH4qz
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.0epytsOn1eevH4qz'
+ - name: voice
+ range:
+ - 33
+ - 33
+ weight: 1
+ type: text
+ _id: xFA0T5K1FhMHB0Ku
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.xFA0T5K1FhMHB0Ku'
+ - name: mark
+ range:
+ - 34
+ - 34
+ weight: 1
+ type: text
+ _id: 1LcHMPR3Bmson7zp
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.1LcHMPR3Bmson7zp'
+ - name: glow
+ range:
+ - 35
+ - 35
+ weight: 1
+ type: text
+ _id: kWGqMW26qbiplYKd
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.kWGqMW26qbiplYKd'
+ - name: dazzle
+ range:
+ - 36
+ - 36
+ weight: 1
+ type: text
+ _id: DPVpPYblt6Zrx7qO
+ img: null
+ description: ''
+ drawn: false
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ lastModifiedBy: null
+ _key: '!tables.results!7IpCiKXDnmcjS7lf.DPVpPYblt6Zrx7qO'
+flags:
+ core:
+ sheetClass: grimwild.GrimwildRollTableCrucibleSheet
+img: icons/magic/symbols/rune-sigil-rough-white-teal.webp
+description: ''
+replacement: true
+displayRoll: true
+folder: t7JcgdArgs4HGDQB
+ownership:
+ default: 0
+ UV77mtxQgW7KpS6B: 3
+_stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ createdTime: 1768923336510
+ modifiedTime: 1768923336510
+ lastModifiedBy: UV77mtxQgW7KpS6B
+_id: 7IpCiKXDnmcjS7lf
+sort: 0
+_key: '!tables!7IpCiKXDnmcjS7lf'
diff --git a/src/packs/crucibles/Wild_Surge_Crucible_t7JcgdArgs4HGDQB.yml b/src/packs/crucibles/Wild_Surge_Crucible_t7JcgdArgs4HGDQB.yml
new file mode 100644
index 0000000..91aba07
--- /dev/null
+++ b/src/packs/crucibles/Wild_Surge_Crucible_t7JcgdArgs4HGDQB.yml
@@ -0,0 +1,20 @@
+type: RollTable
+folder: null
+name: Wild Surge Crucible
+color: '#347472'
+sorting: a
+_id: t7JcgdArgs4HGDQB
+description: ''
+sort: 0
+flags: {}
+_stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ createdTime: 1768923256978
+ modifiedTime: 1768923265174
+ lastModifiedBy: UV77mtxQgW7KpS6B
+_key: '!folders!t7JcgdArgs4HGDQB'
diff --git a/src/packs/rules/Wildsurge_Crucible_T61vQHWAc1MN4LDB.yml b/src/packs/rules/Wildsurge_Crucible_T61vQHWAc1MN4LDB.yml
new file mode 100644
index 0000000..71b2336
--- /dev/null
+++ b/src/packs/rules/Wildsurge_Crucible_T61vQHWAc1MN4LDB.yml
@@ -0,0 +1,87 @@
+folder: vUGdoKGy7PZ2fdfW
+name: Wildsurge Crucible
+_id: T61vQHWAc1MN4LDB
+pages:
+ - sort: 100000
+ name: Wildsurge Crucible
+ type: text
+ _id: 1XlO2O0wK4WGzkld
+ system: {}
+ title:
+ show: false
+ level: 1
+ image: {}
+ text:
+ format: 1
+ content: >-
+ For
+ truly wild surges, you can let it be completely random instead of
+ deciding as a group. Roll these all at once: [[/r 2d]]{2d story roll},
+ wild surge crucible below, and [[/r 2d8]]. The d8 determine a sorcery
+ path and sorcery technique. To
+ randomly select a target, roll an additional [[/r 2d]]. Assign numbers
+ to each PC and use remaining numbers for NPCs or the environment. On
+ doubles, it targets that thing as if a critical or disaster. On an
+ actual critical, it targets everything.
@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.o9zE97tH5RUpn9GP]{Wild
+ Surge Crucible 1}
@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.7IpCiKXDnmcjS7lf]{Wild
+ Surge Crucible 2}
+ video:
+ controls: true
+ volume: 0.5
+ src: null
+ category: null
+ ownership:
+ default: -1
+ UV77mtxQgW7KpS6B: 3
+ flags: {}
+ _stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ createdTime: 1768923372430
+ modifiedTime: 1768923452531
+ lastModifiedBy: UV77mtxQgW7KpS6B
+ _key: '!journal.pages!T61vQHWAc1MN4LDB.1XlO2O0wK4WGzkld'
+categories: []
+sort: 0
+ownership:
+ default: 0
+ UV77mtxQgW7KpS6B: 3
+flags: {}
+_stats:
+ compendiumSource: null
+ duplicateSource: null
+ exportSource: null
+ coreVersion: '13.351'
+ systemId: grimwild
+ systemVersion: 0.5.0
+ createdTime: 1768923364487
+ modifiedTime: 1768923364487
+ lastModifiedBy: UV77mtxQgW7KpS6B
+_key: '!journal!T61vQHWAc1MN4LDB'
diff --git a/src/packs/talents/Maelstrom_FoCmkVYg9QUQYXg5.yml b/src/packs/talents/Maelstrom_FoCmkVYg9QUQYXg5.yml
index a7c7e74..58f4313 100644
--- a/src/packs/talents/Maelstrom_FoCmkVYg9QUQYXg5.yml
+++ b/src/packs/talents/Maelstrom_FoCmkVYg9QUQYXg5.yml
@@ -7,7 +7,9 @@ system:
description: >-
You open yourself fully to the maelstrom of raw magic. When you cast a
potent spell , 5s count as 6s, but 4s count as 1s.
- These 4s also count as 1s towards wild surge.
+ These 4s also count as 1s towards
+ @UUID[Compendium.grimwild.rules.JournalEntry.T61vQHWAc1MN4LDB]{wild
+ surge}.
core: false
notes:
description: ''
@@ -23,11 +25,11 @@ flags: {}
_stats:
compendiumSource: null
duplicateSource: null
- coreVersion: '13.345'
+ coreVersion: '13.351'
systemId: grimwild
- systemVersion: 0.1.0
+ systemVersion: 0.5.0
createdTime: 1739139357959
- modifiedTime: 1739139357959
- lastModifiedBy: Dl5Tvf37OuEHwdAh
+ modifiedTime: 1768923550235
+ lastModifiedBy: UV77mtxQgW7KpS6B
exportSource: null
_key: '!items!FoCmkVYg9QUQYXg5'
diff --git a/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml b/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml
index ff20eb7..d787130 100644
--- a/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml
+++ b/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml
@@ -16,10 +16,12 @@ system:
technique as touch- stones. You can push yourself to cast a
potent spell , but gain no free activation of
it.When casting, rolling two or more 1s (including thorns) triggers a
- secondary wild surge —raw magic spirals out of your control.
- Make a 2d story roll to see what happens. The
- effect might stem from your touchstones, raw magical essence, or something
- chaotically random. Use the
+ secondary
+ @UUID[Compendium.grimwild.rules.JournalEntry.T61vQHWAc1MN4LDB]{wild
+ surge} —raw magic spirals out of your control. Make a
+ [[/r 2d]]{2d story roll} to see what happens. The effect might
+ stem from your touchstones, raw magical essence, or something chaotically
+ random. Use the
@UUID[Compendium.grimwild.gm_toolkit.JournalEntry.czz9p07Cxj5KiIQu]{GM
Crucibles} or ask around your group for ideas.
GROWTH : Every 2 levels, gain a new technique or magic
@@ -41,9 +43,9 @@ _stats:
duplicateSource: null
coreVersion: '13.351'
systemId: grimwild
- systemVersion: 0.4.0
+ systemVersion: 0.5.0
createdTime: 1739139357959
- modifiedTime: 1768769887601
+ modifiedTime: 1768923519685
lastModifiedBy: UV77mtxQgW7KpS6B
exportSource: null
_key: '!items!MnncHMBYzPHIQJWG'
diff --git a/src/packs/talents/Spelleater_w989kCy4tafGs3ys.yml b/src/packs/talents/Spelleater_w989kCy4tafGs3ys.yml
index 6d454b8..c5c663d 100644
--- a/src/packs/talents/Spelleater_w989kCy4tafGs3ys.yml
+++ b/src/packs/talents/Spelleater_w989kCy4tafGs3ys.yml
@@ -9,7 +9,9 @@ system:
pool. When you suffer from magic, roll the pool. If dice remain, ignore the
effect and bank essence (max 2). You can spend
essence to increase a spellcasting die result by
- 1, but it triggers wild surge .
+ 1, but it triggers
+ @UUID[Compendium.grimwild.rules.JournalEntry.T61vQHWAc1MN4LDB]{wild
+ surge} .
core: false
notes:
description: ''
@@ -32,7 +34,6 @@ system:
showSteps: true
pool:
diceNum: 0
- max: null
path: sorcerer
effects: []
sort: 0
@@ -43,11 +44,11 @@ flags: {}
_stats:
compendiumSource: null
duplicateSource: null
- coreVersion: '13.345'
+ coreVersion: '13.351'
systemId: grimwild
- systemVersion: 0.1.0
+ systemVersion: 0.5.0
createdTime: 1739139357959
- modifiedTime: 1739139357959
- lastModifiedBy: Dl5Tvf37OuEHwdAh
+ modifiedTime: 1768923575363
+ lastModifiedBy: UV77mtxQgW7KpS6B
exportSource: null
_key: '!items!w989kCy4tafGs3ys'
diff --git a/src/packs/talents/Wisps_nZD44qEavwjX2gY0.yml b/src/packs/talents/Wisps_nZD44qEavwjX2gY0.yml
index 79fc98a..06ae9f7 100644
--- a/src/packs/talents/Wisps_nZD44qEavwjX2gY0.yml
+++ b/src/packs/talents/Wisps_nZD44qEavwjX2gY0.yml
@@ -24,7 +24,6 @@ system:
showSteps: true
pool:
diceNum: 0
- max: null
path: sorcerer
effects: []
sort: 0
@@ -35,11 +34,11 @@ flags: {}
_stats:
compendiumSource: null
duplicateSource: null
- coreVersion: '13.345'
+ coreVersion: '13.351'
systemId: grimwild
- systemVersion: 0.1.0
+ systemVersion: 0.5.0
createdTime: 1739139357959
- modifiedTime: 1739747232925
- lastModifiedBy: Dl5Tvf37OuEHwdAh
+ modifiedTime: 1768923586280
+ lastModifiedBy: UV77mtxQgW7KpS6B
exportSource: null
_key: '!items!nZD44qEavwjX2gY0'
diff --git a/src/templates/chat/roll-action.hbs b/src/templates/chat/roll-action.hbs
index 4a9b720..9f28a20 100644
--- a/src/templates/chat/roll-action.hbs
+++ b/src/templates/chat/roll-action.hbs
@@ -5,7 +5,7 @@
{{localize (concat "GRIMWILD.Dice.results." rawResult)}} →
{{/if}}
{{localize (concat "GRIMWILD.Dice.results." result)}}
- {{stat}}
+ {{#if stat}}{{localize (concat "GRIMWILD.Stat." stat ".long")}} {{/if}}
- {{#if hasActions}}
{{#if isFail }}
@@ -47,12 +46,12 @@
Rattled
{{/if}}
- {{#if (eq result "disaster")}}
-
+
Take spark
+ {{#if (eq result "disaster")}}
+
+ {{/if}}
- {{/if}}
- {{/if}}
{{/unless}}
\ No newline at end of file
From f3877e3a6840d194f957a55674862264f34dc382 Mon Sep 17 00:00:00 2001
From: Matt Smith
Date: Tue, 20 Jan 2026 18:14:35 -0600
Subject: [PATCH 3/3] Fix linter warnings
---
src/module/apps/roll-dialog.mjs | 7 ++++---
src/module/data/actor-character.mjs | 4 ++--
src/module/documents/chat-message.mjs | 4 ++--
src/module/documents/combat.mjs | 6 +++---
src/module/grimwild.mjs | 10 +++++-----
src/module/sheets/item-sheet-vue.mjs | 2 +-
6 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/src/module/apps/roll-dialog.mjs b/src/module/apps/roll-dialog.mjs
index 398f338..45453b6 100644
--- a/src/module/apps/roll-dialog.mjs
+++ b/src/module/apps/roll-dialog.mjs
@@ -156,10 +156,11 @@ export class GrimwildRollDialog extends foundry.applications.api.DialogV2 {
// Add weapon mastery as an assistant.
if (rollData.actor) {
const path = rollData.actor.system.path;
- const weaponMastery = rollData.actor.itemTypes.talent.filter(t => t.name.trim().toLowerCase().includes('weapon mastery'));
+ const weaponMastery = rollData.actor.itemTypes.talent.filter((t) => t.name.trim().toLowerCase()
+ .includes("weapon mastery"));
- if (path.trim().toLowerCase() === 'fighter' || weaponMastery.length > 0) {
- rollData.assistants.push('Weapon Mastery');
+ if (path.trim().toLowerCase() === "fighter" || weaponMastery.length > 0) {
+ rollData.assistants.push("Weapon Mastery");
}
}
diff --git a/src/module/data/actor-character.mjs b/src/module/data/actor-character.mjs
index de77cac..3db4967 100644
--- a/src/module/data/actor-character.mjs
+++ b/src/module/data/actor-character.mjs
@@ -304,7 +304,7 @@ export default class GrimwildCharacter extends GrimwildActorBase {
isBloodied: rollData?.isBloodied,
isRattled: rollData?.isRattled,
isMarked: rollData?.stats?.[options.stat].marked,
- actor: this.parent,
+ actor: this.parent
}
});
// bail out if they closed the dialog
@@ -370,7 +370,7 @@ export default class GrimwildCharacter extends GrimwildActorBase {
await combatant.setFlag("grimwild", "actionCount", actionCount + 1);
const actor = combatant.actor;
- await actor.update({"system.tokenActions.value": Math.max(actor.system.tokenActions.value - 1, 0)});
+ await actor.update({ "system.tokenActions.value": Math.max(actor.system.tokenActions.value - 1, 0) });
// Update the active turn.
const combatantTurn = combat.turns.findIndex((c) => c.id === combatant.id);
diff --git a/src/module/documents/chat-message.mjs b/src/module/documents/chat-message.mjs
index ca1503e..4e7c1ca 100644
--- a/src/module/documents/chat-message.mjs
+++ b/src/module/documents/chat-message.mjs
@@ -88,8 +88,8 @@ export class GrimwildChatMessage extends ChatMessage {
}
else if (["applyMark", "applyHarm"].includes(action)) {
// if (damageTaken) {
- // element.setAttribute("disabled", true);
- // return;
+ // element.setAttribute("disabled", true);
+ // return;
// }
}
element.addEventListener("click", click);
diff --git a/src/module/documents/combat.mjs b/src/module/documents/combat.mjs
index f4baf6c..ace32ac 100644
--- a/src/module/documents/combat.mjs
+++ b/src/module/documents/combat.mjs
@@ -48,7 +48,7 @@ export class GrimwildCombat extends foundry.documents.Combat {
resetActions() {
for (let combatant of this.combatants) {
combatant.setFlag("grimwild", "actionCount", 0);
- combatant.actor.update({"system.tokenActions.value": 2});
+ combatant.actor.update({ "system.tokenActions.value": 2 });
}
}
@@ -185,8 +185,8 @@ export class GrimwildCombatTracker extends foundry.applications.sidebar.tabs.Com
callback: (li) => {
const combatant = getCombatant(li);
if (combatant) {
- combatant?.setFlag("grimwild", "actionCount", 0)
- combatant?.actor.update({"system.tokenActions.value": 2});
+ combatant?.setFlag("grimwild", "actionCount", 0);
+ combatant?.actor.update({ "system.tokenActions.value": 2 });
}
}
}, {
diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs
index 1c5578a..d70add3 100644
--- a/src/module/grimwild.mjs
+++ b/src/module/grimwild.mjs
@@ -325,7 +325,7 @@ Hooks.once("ready", function () {
if (event.target?.classList.contains("create-crucible")) {
event.preventDefault();
- const label = game.i18n.format("DOCUMENT.Create", {type: "Crucible Table"});
+ const label = game.i18n.format("DOCUMENT.Create", { type: "Crucible Table" });
try {
const crucibleName = await foundry.applications.api.DialogV2.prompt({
window: { title: label },
@@ -339,7 +339,7 @@ Hooks.once("ready", function () {
callback: (event, button, dialog) => button.form.elements.name.value
}
});
- const defaultData = Array.fromRange(36,1).map(result => {
+ const defaultData = Array.fromRange(36, 1).map((result) => {
return {
name: "",
range: [result, result],
@@ -358,9 +358,9 @@ Hooks.once("ready", function () {
}
});
}
- catch (error) {
+ catch(error) {
console.error(error);
- return;
+
}
}
});
@@ -383,7 +383,7 @@ Hooks.on("renderSceneControls", (application, html, data) => {
Hooks.on("renderDocumentDirectory", (application, html, data) => {
if (data.documentName === "RollTable") {
html.querySelector(".header-actions").insertAdjacentHTML("afterbegin", `
- ${game.i18n.format("DOCUMENT.Create", {type: "Crucible"})}
+ ${game.i18n.format("DOCUMENT.Create", { type: "Crucible" })}
`);
}
});
diff --git a/src/module/sheets/item-sheet-vue.mjs b/src/module/sheets/item-sheet-vue.mjs
index 00de776..875b257 100644
--- a/src/module/sheets/item-sheet-vue.mjs
+++ b/src/module/sheets/item-sheet-vue.mjs
@@ -40,7 +40,7 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS
deleteTracker: this._deleteTracker,
createArrayEntry: this._createArrayEntry,
deleteArrayEntry: this._deleteArrayEntry,
- rollPool: this._rollPool,
+ rollPool: this._rollPool
// @TODO restore when crucibles are added back to talents.
// rollCrucible: this._rollCrucible
},