From fccfe5d5439ffdb61040ff0b36955803cf5696d7 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Mon, 12 Jan 2026 21:06:52 -0600 Subject: [PATCH 01/11] First pass at crucibles - Added crucible schema to talents - Added logic to roll crucibles - Added logic to render crucibles to chat - Added vue templates for editing crucibles --- src/module/data/item-talent.mjs | 47 +++++++++++++++- src/module/helpers/schema.mjs | 32 ++++++++--- src/module/sheets/item-sheet-vue.mjs | 22 ++++++-- src/styles/components/_crucible.scss | 31 +++++++++++ src/styles/global/_window.scss | 1 + src/styles/grimwild.scss | 1 + src/vue/components/index.mjs | 1 + src/vue/components/item/ItemAttributes.vue | 4 +- src/vue/components/item/ItemCrucible.vue | 62 ++++++++++++++++++++++ 9 files changed, 188 insertions(+), 13 deletions(-) create mode 100644 src/styles/components/_crucible.scss create mode 100644 src/vue/components/item/ItemCrucible.vue diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index cef854e..83a9052 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -1,4 +1,4 @@ -import { DicePoolField } from "../helpers/schema.mjs"; +import { DicePoolField, CrucibleTableField } from "../helpers/schema.mjs"; import GrimwildItemBase from "./base-item.mjs"; export default class GrimwildTalent extends GrimwildItemBase { @@ -51,9 +51,54 @@ export default class GrimwildTalent extends GrimwildItemBase { }) })); + // Crucible. + schema.crucible = new CrucibleTableField(); + return schema; } + async rollCrucible(options = {}) { + const row = new Roll('d6'); + const col = new Roll('d6'); + + await row.roll(); + await col.roll(); + + const result = [ + this.crucible.table[row.result][col.result], + this.crucible.table[col.result][row.result], + ]; + + if (options?.toMessage) { + ChatMessage.create({ + speaker: ChatMessage.getSpeaker({ actor: this.parent }), + content: ` +
+
+

${this.crucible.name ?? 'Crucible'}

+
+ ${result[0]} + ${result[1]} +
+
+
+
+
+
    +
  • ${row.result}
  • +
  • ${col.result}
  • +
+
+
+
+
+ `, + }) + } + + return result; + } + /** * Migrate source data from prior format to the new specification. * diff --git a/src/module/helpers/schema.mjs b/src/module/helpers/schema.mjs index 9a8c815..ccd3756 100644 --- a/src/module/helpers/schema.mjs +++ b/src/module/helpers/schema.mjs @@ -1,4 +1,3 @@ - const fields = foundry.data.fields; const requiredInteger = { required: true, nullable: false, integer: true }; const requiredString = { required: true, blank: true }; @@ -22,17 +21,36 @@ export class DicePoolField extends fields.SchemaField { export class CrucibleTableField extends fields.SchemaField { constructor(options, context = {}) { + + /* ------------------------------------------------- */ + // Build our table structure with nested schema fields. + /* ------------------------------------------------- */ + // Build the outer columns. + const cols = {}; + const d66 = Array.fromRange(6, 1); + d66.forEach((col) => { + // Build the inner rows. + const rows = {}; + d66.forEach((row) => { + // Inner string for the actual value. + rows[row] = new fields.StringField(requiredString); + }); + // Inner schema for rows. + cols[col] = new fields.SchemaField(rows); + }); + // Outer schema for cols. + const tableSchema = new fields.SchemaField(cols); + + /* ------------------------------------------------- */ + + // Prepare the table fields for the data model. const tableFields = { // Table name. name: new fields.StringField(requiredString), // Table roll instructions. instructions: new fields.StringField(optionalString), - // Table results. - table: new fields.ArrayField( // Column. - new fields.ArrayField( // Row. - new fields.StringField(requiredString) // Value. - ) - ) + // Table results. Outer schema is columns, inner schema is rows. + table: tableSchema, }; super(tableFields, options, context); diff --git a/src/module/sheets/item-sheet-vue.mjs b/src/module/sheets/item-sheet-vue.mjs index 2db4080..6a293c0 100644 --- a/src/module/sheets/item-sheet-vue.mjs +++ b/src/module/sheets/item-sheet-vue.mjs @@ -23,7 +23,7 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS viewPermission: DOCUMENT_OWNERSHIP_LEVELS.LIMITED, editPermission: DOCUMENT_OWNERSHIP_LEVELS.OWNER, position: { - width: 478 + width: 600, // height: 720, }, window: { @@ -40,7 +40,8 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS deleteTracker: this._deleteTracker, createArrayEntry: this._createArrayEntry, deleteArrayEntry: this._deleteArrayEntry, - rollPool: this._rollPool + rollPool: this._rollPool, + rollCrucible: this._rollCrucible, }, // Custom property that's merged into `this.options` dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }], @@ -346,8 +347,8 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS } /** - * Handle rolling pools on the character sheet. - * @todo abstract this to the actor itself. + * Handle rolling pools on the item sheet. + * @todo abstract this to the item itself. * * @param {PointerEvent} event The originating click event * @param {HTMLElement} target The capturing HTML element which defined a [data-action] @@ -411,4 +412,17 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS } } } + + /** + * Handle rolling crucibles on the item sheet. + * @todo abstract this to the item itself. + * + * @param {PointerEvent} event The originating click event + * @param {HTMLElement} target The capturing HTML element which defined a [data-action] + * @private + */ + static async _rollCrucible(event, target) { + event.preventDefault(); + const result = await this.document.system.rollCrucible({toMessage: true}); + } } diff --git a/src/styles/components/_crucible.scss b/src/styles/components/_crucible.scss new file mode 100644 index 0000000..0aabc6a --- /dev/null +++ b/src/styles/components/_crucible.scss @@ -0,0 +1,31 @@ +.crucible { + .form-group { + max-width: 100%; + } + + .responsive-table { + // Arbitrary number, it will be expanded by flexbox. + width: 300px; + } + + table { + margin: 0; + display: block; + overflow-x: auto; + white-space: nowrap; + + tbody { + display: table; + width: 100%; + } + + tr:nth-child(even) { + background-color: #ffffff0a; + } + + td { + padding: 4px; + border: 1px dashed #ffffff33; + } + } +} \ No newline at end of file diff --git a/src/styles/global/_window.scss b/src/styles/global/_window.scss index fe8c4bc..13a8f96 100644 --- a/src/styles/global/_window.scss +++ b/src/styles/global/_window.scss @@ -37,6 +37,7 @@ .tab { flex: 1; overflow-y: auto; + overflow-x: hidden; } } diff --git a/src/styles/grimwild.scss b/src/styles/grimwild.scss index ceac97f..2b60af0 100644 --- a/src/styles/grimwild.scss +++ b/src/styles/grimwild.scss @@ -20,6 +20,7 @@ @import 'components/forms'; @import 'components/items'; @import 'components/effects'; + @import 'components/crucible'; @import 'components/stats'; @import 'components/backgrounds'; @import 'components/character'; diff --git a/src/vue/components/index.mjs b/src/vue/components/index.mjs index 108ecd1..577fd23 100644 --- a/src/vue/components/index.mjs +++ b/src/vue/components/index.mjs @@ -16,6 +16,7 @@ export { default as MonsterDesires } from "@/components/actor/monster/MonsterDes export { default as ItemDescription } from "@/components/item/ItemDescription.vue"; export { default as ItemHeader } from "@/components/item/ItemHeader.vue"; export { default as ItemAttributes } from "@/components/item/ItemAttributes.vue"; +export { default as ItemCrucible } from "@/components/item/ItemCrucible.vue"; export { default as TalentTrackers } from "@/components/item/talent/TalentTrackers.vue"; export { default as ArcanaDetails } from "@/components/item/arcana/ArcanaDetails.vue"; export { default as ChallengeTraitsMoves } from "@/components/item/challenge/ChallengeTraitsMoves.vue"; diff --git a/src/vue/components/item/ItemAttributes.vue b/src/vue/components/item/ItemAttributes.vue index 83024e1..1f2de26 100644 --- a/src/vue/components/item/ItemAttributes.vue +++ b/src/vue/components/item/ItemAttributes.vue @@ -1,4 +1,5 @@ @@ -7,7 +8,8 @@ import { inject } from 'vue'; import { TalentTrackers, - ChallengeTraitsMoves + ChallengeTraitsMoves, + ItemCrucible, } from '@/components'; const props = defineProps(['context']); const actor = inject('rawDocument'); diff --git a/src/vue/components/item/ItemCrucible.vue b/src/vue/components/item/ItemCrucible.vue new file mode 100644 index 0000000..6410aae --- /dev/null +++ b/src/vue/components/item/ItemCrucible.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file From 93d471bdb47e9a0f2429f0b4d944b4710f68e971 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Fri, 16 Jan 2026 17:19:01 -0600 Subject: [PATCH 02/11] WIP for an actual crucible roll class --- src/module/data/item-talent.mjs | 1 + src/module/dice/_module.mjs | 1 + src/module/dice/crucible-rolls.mjs | 33 ++++++++++++++++++++++++++++ src/module/grimwild.mjs | 3 ++- src/templates/chat/roll-crucible.hbs | 21 ++++++++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/module/dice/crucible-rolls.mjs create mode 100644 src/templates/chat/roll-crucible.hbs diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index 83a9052..d4b31ff 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -58,6 +58,7 @@ export default class GrimwildTalent extends GrimwildItemBase { } async rollCrucible(options = {}) { + // @TODO use the GrimwildCrucibleRoll class. const row = new Roll('d6'); const col = new Roll('d6'); diff --git a/src/module/dice/_module.mjs b/src/module/dice/_module.mjs index 7c8afbb..a1423e6 100644 --- a/src/module/dice/_module.mjs +++ b/src/module/dice/_module.mjs @@ -1,2 +1,3 @@ export { default as GrimwildRoll } from "./rolls.mjs"; +export { default as GrimwildCrucibleRoll } from "./crucible-rolls.mjs"; export { default as GrimwildDiePoolRoll } from "./die-pools.mjs"; diff --git a/src/module/dice/crucible-rolls.mjs b/src/module/dice/crucible-rolls.mjs new file mode 100644 index 0000000..d4a9cb9 --- /dev/null +++ b/src/module/dice/crucible-rolls.mjs @@ -0,0 +1,33 @@ +// @TODO make this actually work. +export default class GrimwildCrucibleRoll extends Roll { + static CHAT_TEMPLATE = "systems/grimwild/templates/chat/roll-crucible.hbs"; + + constructor(formula, data, options) { + super(formula, data, options); + if (game.dice3d && game.settings.get("grimwild", "diceSoNiceOverride")) { + if (!this.options.appearance) this.options.appearance = {}; + this.options.appearance.system = "grimwild"; + this.options.appearance.colorset = "grimwild-dark"; + } + } + + async render({ flavor, template=this.constructor.CHAT_TEMPLATE, isPrivate=false }={}) { + if (!this._evaluated) await this.evaluate(); + + const chatData = { + formula: isPrivate ? "???" : this._formula, + flavor: isPrivate ? null : flavor ?? this.options.flavor, + user: game.user.id, + tooltip: isPrivate ? "" : await this.getTooltip(), + stat: this.options.stat, + dice: this.dice[0].results, + crucible: { + 0: this.options.crucible.table[this.dice[0].results[0]], + 1: this.options.crucible.table[this.dice[0].results[1]], + }, + isPrivate: isPrivate + }; + + return foundry.applications.handlebars.renderTemplate(template, chatData); + } +} diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index 103445e..0da867d 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -45,7 +45,8 @@ globalThis.grimwild = { }, models, roll: dice.GrimwildRoll, - diePools: dice.GrimwildDiePoolRoll + rollCrucible: dice.GrimwildCrucibleRoll, + diePools: dice.GrimwildDiePoolRoll, }; Hooks.once("init", function () { diff --git a/src/templates/chat/roll-crucible.hbs b/src/templates/chat/roll-crucible.hbs new file mode 100644 index 0000000..2b42037 --- /dev/null +++ b/src/templates/chat/roll-crucible.hbs @@ -0,0 +1,21 @@ +{{#unless isPrivate}} +
+
+

{{ name }}

+
+ {{ crucible.0 }} + {{ crucible.1 }} +
+
+
+
+
+
    +
  • {{ dice.results.0 }}
  • +
  • {{ dice.results.1 }}
  • +
+
+
+
+
+{{/unless}} \ No newline at end of file From 310eed27de16555c8292b2f4536e5e96abefd7d9 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Fri, 16 Jan 2026 17:44:30 -0600 Subject: [PATCH 03/11] Crucible progress --- src/module/data/item-talent.mjs | 7 +++++++ src/module/dice/crucible-rolls.mjs | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index d4b31ff..bd820a1 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -59,6 +59,13 @@ export default class GrimwildTalent extends GrimwildItemBase { async rollCrucible(options = {}) { // @TODO use the GrimwildCrucibleRoll class. + // const r = new grimwild.rollCrucible('{2d6}', {}, {crucible: this.crucible}); + // await r.roll(); + // console.log('crucible', r); + // if (options.toMessage) { + // r.toMessage(); + // } + const row = new Roll('d6'); const col = new Roll('d6'); diff --git a/src/module/dice/crucible-rolls.mjs b/src/module/dice/crucible-rolls.mjs index d4a9cb9..1ff9e33 100644 --- a/src/module/dice/crucible-rolls.mjs +++ b/src/module/dice/crucible-rolls.mjs @@ -4,6 +4,7 @@ export default class GrimwildCrucibleRoll extends Roll { constructor(formula, data, options) { super(formula, data, options); + console.log('crucible', this); if (game.dice3d && game.settings.get("grimwild", "diceSoNiceOverride")) { if (!this.options.appearance) this.options.appearance = {}; this.options.appearance.system = "grimwild"; @@ -12,6 +13,7 @@ export default class GrimwildCrucibleRoll extends Roll { } async render({ flavor, template=this.constructor.CHAT_TEMPLATE, isPrivate=false }={}) { + console.log('crucible', this); if (!this._evaluated) await this.evaluate(); const chatData = { From b3465bcea2cd3236b3e7584c12a1876dc2fc9105 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sat, 17 Jan 2026 10:08:49 -0600 Subject: [PATCH 04/11] Refactor talent crucible rolls --- src/module/data/item-talent.mjs | 48 +++------------------------- src/module/dice/crucible-rolls.mjs | 14 +++++--- src/module/grimwild.mjs | 2 ++ src/module/helpers/utils.js | 4 ++- src/templates/chat/roll-crucible.hbs | 10 +++--- 5 files changed, 24 insertions(+), 54 deletions(-) diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index bd820a1..8e5c9c6 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -58,50 +58,10 @@ export default class GrimwildTalent extends GrimwildItemBase { } async rollCrucible(options = {}) { - // @TODO use the GrimwildCrucibleRoll class. - // const r = new grimwild.rollCrucible('{2d6}', {}, {crucible: this.crucible}); - // await r.roll(); - // console.log('crucible', r); - // if (options.toMessage) { - // r.toMessage(); - // } - - const row = new Roll('d6'); - const col = new Roll('d6'); - - await row.roll(); - await col.roll(); - - const result = [ - this.crucible.table[row.result][col.result], - this.crucible.table[col.result][row.result], - ]; - - if (options?.toMessage) { - ChatMessage.create({ - speaker: ChatMessage.getSpeaker({ actor: this.parent }), - content: ` -
-
-

${this.crucible.name ?? 'Crucible'}

-
- ${result[0]} - ${result[1]} -
-
-
-
-
-
    -
  • ${row.result}
  • -
  • ${col.result}
  • -
-
-
-
-
- `, - }) + const result = new grimwild.rollCrucible('{2d6}', {}, {crucible: this.crucible}); + await result.roll(); + if (options.toMessage) { + result.toMessage(); } return result; diff --git a/src/module/dice/crucible-rolls.mjs b/src/module/dice/crucible-rolls.mjs index 1ff9e33..adf0b9c 100644 --- a/src/module/dice/crucible-rolls.mjs +++ b/src/module/dice/crucible-rolls.mjs @@ -4,17 +4,20 @@ export default class GrimwildCrucibleRoll extends Roll { constructor(formula, data, options) { super(formula, data, options); - console.log('crucible', this); if (game.dice3d && game.settings.get("grimwild", "diceSoNiceOverride")) { if (!this.options.appearance) this.options.appearance = {}; this.options.appearance.system = "grimwild"; this.options.appearance.colorset = "grimwild-dark"; } + + if (!this.options.crucible) { + throw new Error(`A crucible object must be supplied in options.crucible for this roll.`); + } } async render({ flavor, template=this.constructor.CHAT_TEMPLATE, isPrivate=false }={}) { - console.log('crucible', this); if (!this._evaluated) await this.evaluate(); + const dice = this.dice[0].results; const chatData = { formula: isPrivate ? "???" : this._formula, @@ -22,10 +25,11 @@ export default class GrimwildCrucibleRoll extends Roll { user: game.user.id, tooltip: isPrivate ? "" : await this.getTooltip(), stat: this.options.stat, - dice: this.dice[0].results, + dice: dice, + name: this.options.crucible?.name ?? 'Crucible', crucible: { - 0: this.options.crucible.table[this.dice[0].results[0]], - 1: this.options.crucible.table[this.dice[0].results[1]], + 0: this.options.crucible.table[dice[0].result][dice[1].result], + 1: this.options.crucible.table[dice[1].result][dice[0].result], }, isPrivate: isPrivate }; diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index 0da867d..4272171 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -67,6 +67,8 @@ Hooks.once("init", function () { CONFIG.Dice.rolls.push(dice.GrimwildRoll); CONFIG.Dice.GrimwildDicePool = dice.GrimwildDiePoolRoll; CONFIG.Dice.rolls.push(dice.GrimwildDiePoolRoll); + CONFIG.Dice.GrimwildCrucibleRoll = dice.GrimwildCrucibleRoll; + CONFIG.Dice.rolls.push(dice.GrimwildCrucibleRoll); // Define custom Document and DataModel classes CONFIG.Actor.documentClass = GrimwildActor; diff --git a/src/module/helpers/utils.js b/src/module/helpers/utils.js index 14ca742..b89edcf 100644 --- a/src/module/helpers/utils.js +++ b/src/module/helpers/utils.js @@ -10,7 +10,9 @@ export async function preloadHandlebarsTemplates() { // Actor partials "systems/grimwild/templates/actor/parts/character-header.hbs", "systems/grimwild/templates/actor/parts/monster-header.hbs", - "systems/grimwild/templates/chat/roll-action.hbs" + "systems/grimwild/templates/chat/roll-action.hbs", + "systems/grimwild/templates/chat/roll-crucible.hbs", + "systems/grimwild/templates/chat/die-pool-action.hbs" ]; const paths = {}; diff --git a/src/templates/chat/roll-crucible.hbs b/src/templates/chat/roll-crucible.hbs index 2b42037..d2bc9d5 100644 --- a/src/templates/chat/roll-crucible.hbs +++ b/src/templates/chat/roll-crucible.hbs @@ -3,16 +3,18 @@

{{ name }}

- {{ crucible.0 }} - {{ crucible.1 }} + {{#each crucible as |result key|}} + {{ result }} + {{/each}}
    -
  • {{ dice.results.0 }}
  • -
  • {{ dice.results.1 }}
  • + {{#each dice as |die key|}} +
  • {{ die.result }}
  • + {{/each}}
From 3fcb05d21135897093baf3c5b5465ae218ee8d03 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sat, 17 Jan 2026 18:36:49 -0600 Subject: [PATCH 05/11] Add crucible sheet for RollTables --- src/lang/en.yml | 1 + src/module/documents/roll-table.mjs | 80 +++++++ src/module/grimwild.mjs | 65 +++++- src/module/sheets/table-crucible-sheet.mjs | 219 ++++++++++++++++++ src/styles/grimwild.scss | 21 ++ src/templates/roll-table/crucible-view.hbs | 27 +++ .../roll-table/edit/crucible-results.hbs | 19 ++ 7 files changed, 429 insertions(+), 3 deletions(-) create mode 100644 src/module/documents/roll-table.mjs create mode 100644 src/module/sheets/table-crucible-sheet.mjs create mode 100644 src/templates/roll-table/crucible-view.hbs create mode 100644 src/templates/roll-table/edit/crucible-results.hbs diff --git a/src/lang/en.yml b/src/lang/en.yml index dba4e56..50e0303 100644 --- a/src/lang/en.yml +++ b/src/lang/en.yml @@ -98,6 +98,7 @@ GRIMWILD: SheetLabels: Actor: Grimwild Actor Sheet Item: Grimwild Item Sheet + RollTable: Grimwild Crucible Sheet Actor: Plural: character: Characters diff --git a/src/module/documents/roll-table.mjs b/src/module/documents/roll-table.mjs new file mode 100644 index 0000000..0d3c293 --- /dev/null +++ b/src/module/documents/roll-table.mjs @@ -0,0 +1,80 @@ +export class GrimwildRollTable extends foundry.documents.RollTable { + async _preUpdate(changes, options, user) { + await super._preUpdate(changes, options, user); + + if (changes?.flags?.core?.sheetClass === 'grimwild.GrimwildRollTableCrucibleSheet') { + if (this.results && this.results.size < 36) { + const results = Array.fromRange(36 - this.results.size, 1).map(result => { + return { + name: '', + range: [result, result], + weight: 1, + _id: foundry.utils.randomID(), + }; + }); + changes.formula = '1d36'; + changes.results = results; + } + } + } + + async roll({roll, recursive=true, _depth=0}={}) { + if (this.isCrucible()) { + // @todo tie this to the rollCrucible() method. + return super.roll({roll, recursive, _depth}); + } + else { + return super.roll({roll, recursive, _depth}); + } + } + + isCrucible() { + return this.getFlag('core', 'sheetClass') === 'grimwild.GrimwildRollTableCrucibleSheet'; + } + + getCrucibleTable() { + if (this.isCrucible()) { + const grid = { + 1: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 2: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 3: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 4: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 5: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 6: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + }; + let row = 1; + let col = 1; + let count = 0; + this.results.forEach((result) => { + if (count < 36) { + grid[row][col] = result.name; + col++; + if (col === 7) { + row++; + col = 1; + } + count++; + } + }); + + return grid; + } + } + + async rollCrucible({toMessage=true}={}) { + const crucibleRoll = new grimwild.rollCrucible('{2d6}', {}, { + crucible: { + name: this.name, + instructions: '', + table: this.getCrucibleTable(), + }, + }); + + await crucibleRoll.roll(); + if (toMessage) { + crucibleRoll.toMessage(); + } + + return crucibleRoll; + } +} \ No newline at end of file diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index 4272171..447189d 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -3,12 +3,14 @@ import { GrimwildActor } from "./documents/actor.mjs"; import { GrimwildItem } from "./documents/item.mjs"; import { GrimwildChatMessage } from "./documents/chat-message.mjs"; import { GrimwildCombat, GrimwildCombatTracker } from "./documents/combat.mjs"; +import { GrimwildRollTable } from "./documents/roll-table.mjs"; // Import sheet classes. import { GrimwildActorSheet } from "./sheets/actor-sheet.mjs"; import { GrimwildActorSheetVue } from "./sheets/actor-sheet-vue.mjs"; import { GrimwildActorMonsterSheetVue } from "./sheets/actor-monster-sheet-vue.mjs"; import { GrimwildItemSheet } from "./sheets/item-sheet.mjs"; import { GrimwildItemSheetVue } from "./sheets/item-sheet-vue.mjs"; +import { GrimwildRollTableCrucibleSheet } from "./sheets/table-crucible-sheet.mjs"; // Import helper/utility classes and constants. import { GRIMWILD } from "./helpers/config.mjs"; import * as dice from "./dice/_module.mjs"; @@ -30,7 +32,8 @@ globalThis.grimwild = { GrimwildActor, GrimwildItem, GrimwildChatMessage, - GrimwildCombat + GrimwildCombat, + GrimwildRollTable, }, applications: { GrimwildActorSheet, @@ -38,7 +41,8 @@ globalThis.grimwild = { GrimwildActorMonsterSheetVue, GrimwildItemSheet, GrimwildItemSheetVue, - GrimwildCombatTracker + GrimwildCombatTracker, + GrimwildRollTableCrucibleSheet }, utils: { rollItemMacro @@ -94,9 +98,11 @@ Hooks.once("init", function () { // Override combat classes. CONFIG.Combat.documentClass = grimwild.documents.GrimwildCombat; CONFIG.ui.combat = grimwild.applications.GrimwildCombatTracker; - CONFIG.Token.hudClass = GrimwildTokenHud; + // Override the rolltable class. + CONFIG.RollTable.documentClass = grimwild.documents.GrimwildRollTable; + // Register sheet application classes foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); foundry.documents.collections.Actors.registerSheet("grimwild", GrimwildActorMonsterSheetVue, { @@ -119,6 +125,10 @@ Hooks.once("init", function () { label: "Grimwild Vue Sheet", types: ["talent", "challenge", "arcana"] }); + foundry.documents.collections.RollTables.registerSheet("grimwild", GrimwildRollTableCrucibleSheet, { + makeDefault: false, + label: "GRIMWILD.SheetLabels.RollTable", + }); // Handlebars utilities. utils.preloadHandlebarsTemplates(); @@ -230,6 +240,42 @@ Handlebars.registerHelper("toLowerCase", function (str) { return str.toLowerCase(); }); +/* -------------------------------------------- */ +/* Setup Hook */ +/* -------------------------------------------- */ +Hooks.once("setup", function () { + CONFIG.TextEditor.enrichers.push( + { + pattern: /@CRUCIBLE\[([^\]]*)\]{*([^}]*)}*/gim, + enricher: async (match, options) => { + const [fullMatch, uuid, content] = match; + const el = document.createElement("div"); + el.innerHTML = `${content}`; + + const rollTable = await fromUuid(uuid); + if (rollTable && rollTable.isCrucible()) { + el.innerHTML = ` +
+
+ ${rollTable.name} + +
+ + + ${rollTable.results.map((result) => ``).join('')} + +
${result.name}
+
+ `; + return el; + } + + return fullMatch; + } + } + ); +}); + /* -------------------------------------------- */ /* Ready Hook */ /* -------------------------------------------- */ @@ -254,6 +300,19 @@ Hooks.once("ready", function () { } } }); + + document.addEventListener('click', async (event) => { + if (event.target?.classList.contains('enriched-crucible-roll')) { + event.preventDefault(); + const { uuid } = event.target.dataset; + if (uuid) { + const rollTable = await fromUuid(uuid); + if (rollTable.isCrucible()) { + rollTable.rollCrucible({toMessage: true}); + } + } + } + }) }); Hooks.once("renderHotbar", function () { diff --git a/src/module/sheets/table-crucible-sheet.mjs b/src/module/sheets/table-crucible-sheet.mjs new file mode 100644 index 0000000..de89802 --- /dev/null +++ b/src/module/sheets/table-crucible-sheet.mjs @@ -0,0 +1,219 @@ +const { api, sheets } = foundry.applications; + +export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMixin( + sheets.RollTableSheet +) { + /** + * The operational mode in which a newly created instance of this sheet starts + * @type {"edit"|"view"} + */ + static #DEFAULT_MODE = "view"; + + /** @inheritDoc */ + static DEFAULT_OPTIONS = { + classes: ["roll-table-sheet", "grimwild-crucible-sheet"], + window: { + contentClasses: ["standard-form"], + icon: "fa-solid fa-table-list", + resizable: true + }, + position: {width: 720}, + form: { + closeOnSubmit: false + }, + actions: { + drawResult: GrimwildRollTableCrucibleSheet.#onDrawResult, + } + }; + + /** @override */ + static PARTS = { + sheet: { + template: "systems/grimwild/templates/roll-table/crucible-view.hbs", + templates: ["templates/sheets/roll-table/result-details.hbs"], + scrollable: ["table[data-results] tbody"], + root: true + }, + header: {template: "templates/sheets/roll-table/edit/header.hbs"}, + tabs: {template: "templates/generic/tab-navigation.hbs"}, + results: { + template: "systems/grimwild/templates/roll-table/edit/crucible-results.hbs", + templates: ["templates/sheets/roll-table/result-details.hbs"], + scrollable: ["table[data-results] tbody"] + }, + summary: {template: "templates/sheets/roll-table/edit/summary.hbs"}, + footer: {template: "templates/generic/form-footer.hbs"} + }; + + static MODE_PARTS = { + edit: ["header", "results", "footer"], + view: ["sheet", "footer"] + } + + grid = { + 1: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 2: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 3: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 4: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 5: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 6: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + } + + /** @inheritDoc */ + _prepareSubmitData(event, form, formData, updateData) { + const submitData = super._prepareSubmitData(event, form, formData, updateData); + for (const result of submitData.results ?? []) { + sheets.TableResultConfig.prepareResultUpdateData(result); + } + return submitData; + } + + /** @inheritDoc */ + async submit(options) { + if ( !this.isEditMode ) return; + return super.submit(options); + } + + /** @inheritDoc */ + _configureRenderOptions(options) { + if ( !this.isEditable ) this.mode = "view"; + else if ( options.isFirstRender && !this.document.results.size ) this.mode = "edit"; + return super._configureRenderOptions(options); + } + + /* -------------------------------------------- */ + + /** @override */ + _configureRenderParts(options) { + const parts = super._configureRenderParts(options); + const allowedParts = this.constructor.MODE_PARTS[this.mode]; + for ( const partId in parts ) { + if ( !allowedParts.includes(partId) ) delete parts[partId]; + } + return parts; + } + + _prepareTabs(group) { + return {tabs: {}}; + } + + /** @inheritDoc */ + async _preparePartContext(partId, context, options) { + context = await super._preparePartContext(partId, context, options); + const {description, results, isOwner} = context.document; + switch ( partId ) { + case "results": + context.tab = context.tabs.results; + context.resultFields = foundry.documents.TableResult.schema.fields; + await this._prepareCrucibleGrid(context); + break; + // case "summary": + // context.tab = context.tabs.summary; + // context.descriptionHTML = await TextEditor.implementation.enrichHTML(description, {secrets: isOwner}); + // context.formulaPlaceholder = `1d${results.size || 20}`; + // break; + case "sheet": // Lone view-mode part + context.descriptionHTML = await TextEditor.implementation.enrichHTML(description, {secrets: isOwner}); + context.formula = context.source.formula || `1d${results.size || 20}`; + await this._prepareCrucibleGrid(context); + break; + case "footer": + context.buttons = [ + { + type: "button", + action: "resetResults", + icon: "fa-solid fa-arrow-rotate-left", + label: "TABLE.ACTIONS.ResetResults" + }, + { + type: "button", + action: "drawResult", + icon: "fa-solid fa-dice-d20", + label: "TABLE.ACTIONS.DrawResult" + } + ]; + if ( this.isEditMode ) { + context.buttons.unshift({ + type: "submit", + icon: "fa-solid fa-floppy-disk", + label: "TABLE.ACTIONS.Submit" + }); + } + } + return context; + } + + /** + * Prepare sheet data for a single TableResult. + * @param {TableResult} result The result from which to prepare + * @returns {Promise} The sheet data for this result + * @protected + */ + async _prepareResult(result) { + + // Show a single numeric value in view mode for zero-interval ranges + const range = this.isEditMode + ? [...result.range] + : result.range[0] === result.range[1] ? result.range[0] : `${result.range[0]}–${result.range[1]}`; + + return { + id: result.id, + img: result.icon, + name: result.name, + fields: result.schema.fields, + description: await TextEditor.implementation.enrichHTML(result.description, {relativeTo: result, + secrets: result.isOwner}), + documentLink: result.documentToAnchor()?.outerHTML, + weight: result.weight, + range, + drawn: result.drawn + }; + } + + async _prepareCrucibleGrid(context) { + const { results } = context.document; + const getSortedResults = () => results.contents.sort(this._sortResults.bind(this)).slice(0,36); + context.results = await Promise.all(getSortedResults().map(this._prepareResult.bind(this))); + context.grid = this.document.getCrucibleTable(); + } + + /** @inheritDoc */ + async _onRender(context, options) { + await super._onRender(context, options); + + // Drag and Drop + new foundry.applications.ux.DragDrop.implementation({ + dropSelector: ".window-content", + permissions: { + dragstart: () => false, + drop: () => this.isEditMode + }, + callbacks: { + drop: this._onDrop.bind(this) + } + }).bind(this.element); + + // Allow draws with replacement by observers even if the Table is not editable + if ( !options.parts.includes("footer") ) return; + const table = context.document; + const drawButton = this.element.querySelector("button[data-action=drawResult]"); + if ( table.replacement && table.testUserPermission(game.user, "OBSERVER") ) { + drawButton.disabled = false; + } + // Disallow draws without replacement from compendium Tables + else if ( !table.replacement && table.pack ) { + drawButton.disabled = true; + } + } + + static async #onDrawResult(_event, button) { + if ( this.form ) await this.submit({operation: {render: false}}); + button.disabled = true; + + await this.document.rollCrucible({toMessage: true}); + + // Reenable the button if drawing with replacement since the draw won't trigger a sheet re-render + const table = this.document; + if ( table.replacement ) button.disabled = false; + } +} \ No newline at end of file diff --git a/src/styles/grimwild.scss b/src/styles/grimwild.scss index 2b60af0..bf081be 100644 --- a/src/styles/grimwild.scss +++ b/src/styles/grimwild.scss @@ -42,6 +42,27 @@ } } +.grimwild-crucible-sheet { + .crucible-inputs { + label { + display: none; + } + + .form-fields { + flex-direction: column; + } + + tr { + background: transparent; + } + + td { + padding: 0; + background: transparent; + } + } +} + .dialog { @import 'components/dialog'; } diff --git a/src/templates/roll-table/crucible-view.hbs b/src/templates/roll-table/crucible-view.hbs new file mode 100644 index 0000000..327c6d5 --- /dev/null +++ b/src/templates/roll-table/crucible-view.hbs @@ -0,0 +1,27 @@ +
+ {{localize +

{{document.name}}

+

{{formula}}

+ +
+ +{{{descriptionHTML}}} + + + + {{#each results as |result i|}} + + + + + {{/each}} + +
+ {{> "templates/sheets/roll-table/result-details.hbs" result=result}} + + +
diff --git a/src/templates/roll-table/edit/crucible-results.hbs b/src/templates/roll-table/edit/crucible-results.hbs new file mode 100644 index 0000000..de0df29 --- /dev/null +++ b/src/templates/roll-table/edit/crucible-results.hbs @@ -0,0 +1,19 @@ +
+ + + {{#each results as |result i|}} + + + + + + {{/each}} + +
+
+
+ +
+
+
+
From bd16a3858f5f76ff78c4317e01676122bb710a8c Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sat, 17 Jan 2026 19:10:11 -0600 Subject: [PATCH 06/11] Crucible content and cleanup - Added GM crucibles and spell crucibles - Updated arcane training and spellcraft talents - Removed crucible field from talent data model --- src/module/data/item-talent.mjs | 19 +- .../crucibles/Essence_1sh14AQ5dmCICtQZ.yml | 747 ++++++++++++++++ src/packs/crucibles/Form_XO9Fu2nSiTKNTrbM.yml | 747 ++++++++++++++++ .../GM_Crucible_1_KAx8TYWLRm4w3jMW.yml | 747 ++++++++++++++++ .../GM_Crucible_1_hvCswYtYYP63QGyu.yml | 817 ----------------- .../GM_Crucible_2_DFR4rVxJ7RTESsgy.yml | 819 ------------------ .../GM_Crucible_2_L0E7bnZtFjI51p3y.yml | 747 ++++++++++++++++ .../GM_Crucibles_XMWukrtnFwdbpYHy.yml | 20 + .../Magic_Schools_tnEydB0CU9F9LWNI.yml | 209 +++++ .../Spell_Crucible_FgSiOlAfW7ad583I.yml | 20 + .../crucibles/Style_It97TCUGhQfa7I5n.yml | 749 ++++++++++++++++ .../rules/Spell_Crucible_WJWQtGwZcUubnCMj.yml | 74 ++ .../Arcane_Training_KBhSjWUjfwBAlCUq.yml | 16 +- .../talents/Spellcraft_AxZp1G4i81EHnKl3.yml | 31 +- src/styles/global/_journals.scss | 2 +- src/styles/utils/_typography.scss | 4 +- 16 files changed, 4099 insertions(+), 1669 deletions(-) create mode 100644 src/packs/crucibles/Essence_1sh14AQ5dmCICtQZ.yml create mode 100644 src/packs/crucibles/Form_XO9Fu2nSiTKNTrbM.yml create mode 100644 src/packs/crucibles/GM_Crucible_1_KAx8TYWLRm4w3jMW.yml delete mode 100644 src/packs/crucibles/GM_Crucible_1_hvCswYtYYP63QGyu.yml delete mode 100644 src/packs/crucibles/GM_Crucible_2_DFR4rVxJ7RTESsgy.yml create mode 100644 src/packs/crucibles/GM_Crucible_2_L0E7bnZtFjI51p3y.yml create mode 100644 src/packs/crucibles/GM_Crucibles_XMWukrtnFwdbpYHy.yml create mode 100644 src/packs/crucibles/Magic_Schools_tnEydB0CU9F9LWNI.yml create mode 100644 src/packs/crucibles/Spell_Crucible_FgSiOlAfW7ad583I.yml create mode 100644 src/packs/crucibles/Style_It97TCUGhQfa7I5n.yml create mode 100644 src/packs/rules/Spell_Crucible_WJWQtGwZcUubnCMj.yml diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index 8e5c9c6..fa099d7 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -51,21 +51,22 @@ export default class GrimwildTalent extends GrimwildItemBase { }) })); + // @TODO refactor this to use roll tables. // Crucible. - schema.crucible = new CrucibleTableField(); + // schema.crucible = new CrucibleTableField(); return schema; } - async rollCrucible(options = {}) { - const result = new grimwild.rollCrucible('{2d6}', {}, {crucible: this.crucible}); - await result.roll(); - if (options.toMessage) { - result.toMessage(); - } + // async rollCrucible(options = {}) { + // const result = new grimwild.rollCrucible('{2d6}', {}, {crucible: this.crucible}); + // await result.roll(); + // if (options.toMessage) { + // result.toMessage(); + // } - return result; - } + // return result; + // } /** * Migrate source data from prior format to the new specification. diff --git a/src/packs/crucibles/Essence_1sh14AQ5dmCICtQZ.yml b/src/packs/crucibles/Essence_1sh14AQ5dmCICtQZ.yml new file mode 100644 index 0000000..d68a2ca --- /dev/null +++ b/src/packs/crucibles/Essence_1sh14AQ5dmCICtQZ.yml @@ -0,0 +1,747 @@ +name: Essence +img: icons/magic/control/buff-flight-wings-blue.webp +description: '' +results: + - name: Oil + range: + - 1 + - 1 + weight: 1 + _id: oeOj65oid5fjucH9 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.oeOj65oid5fjucH9' + - name: Earth + range: + - 2 + - 2 + weight: 1 + _id: A8AiIV8orgLNRE61 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.A8AiIV8orgLNRE61' + - name: Lore + range: + - 3 + - 3 + weight: 1 + _id: wI1q0r54OatwcGAd + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.wI1q0r54OatwcGAd' + - name: Lightning + range: + - 4 + - 4 + weight: 1 + _id: eVP5GFnmhRehWz87 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.eVP5GFnmhRehWz87' + - name: Ash + range: + - 5 + - 5 + weight: 1 + _id: ywrWaNnyZIAB7gRn + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.ywrWaNnyZIAB7gRn' + - name: Thorn + range: + - 6 + - 6 + weight: 1 + _id: iFWnXy1VUfwbILZm + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.iFWnXy1VUfwbILZm' + - name: Crystal + range: + - 7 + - 7 + weight: 1 + _id: eY8ZnOhGgCQBq1AF + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.eY8ZnOhGgCQBq1AF' + - name: Air + range: + - 8 + - 8 + weight: 1 + _id: SajUBOPRbmQ7i5Ad + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.SajUBOPRbmQ7i5Ad' + - name: Fire + range: + - 9 + - 9 + weight: 1 + _id: Fj7iJgYQfMjISUqh + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.Fj7iJgYQfMjISUqh' + - name: Spirit + range: + - 10 + - 10 + weight: 1 + _id: J8TGkQm5L7o6bJuX + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.J8TGkQm5L7o6bJuX' + - name: Acid + range: + - 11 + - 11 + weight: 1 + _id: YVtMPswaGqcDNsyr + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.YVtMPswaGqcDNsyr' + - name: Vine + range: + - 12 + - 12 + weight: 1 + _id: OuKPTFhR0iuVtNJP + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.OuKPTFhR0iuVtNJP' + - name: Slime + range: + - 13 + - 13 + weight: 1 + _id: qGFz0pSWqw1pdC2G + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.qGFz0pSWqw1pdC2G' + - name: Fungus + range: + - 14 + - 14 + weight: 1 + _id: b5FJa7WmnOsBgLCx + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.b5FJa7WmnOsBgLCx' + - name: Death + range: + - 15 + - 15 + weight: 1 + _id: i65ihaCNYhwErvFC + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.i65ihaCNYhwErvFC' + - name: Stasis + range: + - 16 + - 16 + weight: 1 + _id: mmSGOuh0osX0BM2w + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.mmSGOuh0osX0BM2w' + - name: Sound + range: + - 17 + - 17 + weight: 1 + _id: PpuzJU5qDGyFqt5K + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.PpuzJU5qDGyFqt5K' + - name: Water + range: + - 18 + - 18 + weight: 1 + _id: PP6DlrQCU125le4U + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.PP6DlrQCU125le4U' + - name: Light + range: + - 19 + - 19 + weight: 1 + _id: YAsrVcNTiYDQxjeW + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.YAsrVcNTiYDQxjeW' + - name: Hex + range: + - 20 + - 20 + weight: 1 + _id: 43ZyR3O8oqFzI50Y + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.43ZyR3O8oqFzI50Y' + - name: Blight + range: + - 21 + - 21 + weight: 1 + _id: QJq61RiODLqF0PCL + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.QJq61RiODLqF0PCL' + - name: Terror + range: + - 22 + - 22 + weight: 1 + _id: YrLXpJMuIpyQx72D + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.YrLXpJMuIpyQx72D' + - name: Mind + range: + - 23 + - 23 + weight: 1 + _id: 0JQB1nOpArA0yLBR + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.0JQB1nOpArA0yLBR' + - name: Draught + range: + - 24 + - 24 + weight: 1 + _id: XUOUoVydVrlxA2CD + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.XUOUoVydVrlxA2CD' + - name: Doom + range: + - 25 + - 25 + weight: 1 + _id: dWy5DUEk3lrogigo + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.dWy5DUEk3lrogigo' + - name: Smoke + range: + - 26 + - 26 + weight: 1 + _id: dAJ1uOnsyGVcqUHR + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.dAJ1uOnsyGVcqUHR' + - name: Sight + range: + - 27 + - 27 + weight: 1 + _id: rFu0XqPOpoQ81u45 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.rFu0XqPOpoQ81u45' + - name: Mist + range: + - 28 + - 28 + weight: 1 + _id: TXzCNjRDmtseojFP + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.TXzCNjRDmtseojFP' + - name: Vermin + range: + - 29 + - 29 + weight: 1 + _id: F50BcXLtNVCZaP8i + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.F50BcXLtNVCZaP8i' + - name: Wood + range: + - 30 + - 30 + weight: 1 + _id: cHuBWcvKZxDi2uTf + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.cHuBWcvKZxDi2uTf' + - name: Pain + range: + - 31 + - 31 + weight: 1 + _id: PKAXzppGSfoahDYj + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.PKAXzppGSfoahDYj' + - name: Energy + range: + - 32 + - 32 + weight: 1 + _id: CSVlRrVUykU4XMo8 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.CSVlRrVUykU4XMo8' + - name: Feeling + range: + - 33 + - 33 + weight: 1 + _id: oBooi9F9TGNxDC6M + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.oBooi9F9TGNxDC6M' + - name: Bone + range: + - 34 + - 34 + weight: 1 + _id: Dpsd0DeYmX7vlbQ3 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.Dpsd0DeYmX7vlbQ3' + - name: Flesh + range: + - 35 + - 35 + weight: 1 + _id: M1JPkly5BuEce95w + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.M1JPkly5BuEce95w' + - name: Worm + range: + - 36 + - 36 + weight: 1 + _id: aokpTtioavFzMy8W + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!1sh14AQ5dmCICtQZ.aokpTtioavFzMy8W' +replacement: true +displayRoll: true +folder: FgSiOlAfW7ad583I +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696641295 + modifiedTime: 1768696660759 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d36 +_id: 1sh14AQ5dmCICtQZ +sort: 100000 +_key: '!tables!1sh14AQ5dmCICtQZ' diff --git a/src/packs/crucibles/Form_XO9Fu2nSiTKNTrbM.yml b/src/packs/crucibles/Form_XO9Fu2nSiTKNTrbM.yml new file mode 100644 index 0000000..5288792 --- /dev/null +++ b/src/packs/crucibles/Form_XO9Fu2nSiTKNTrbM.yml @@ -0,0 +1,747 @@ +name: Form +img: icons/magic/control/buff-flight-wings-purple.webp +description: '' +results: + - name: Beacon + range: + - 1 + - 1 + weight: 1 + _id: qpGttcNk7h0ULglX + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.qpGttcNk7h0ULglX' + - name: Servant + range: + - 2 + - 2 + weight: 1 + _id: AkAHxB9qzHcqWB5E + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.AkAHxB9qzHcqWB5E' + - name: Vision + range: + - 3 + - 3 + weight: 1 + _id: 9GCTjTIEO1us0tHB + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.9GCTjTIEO1us0tHB' + - name: Sentinel + range: + - 4 + - 4 + weight: 1 + _id: 8x2VmMbu1CT7yB3V + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.8x2VmMbu1CT7yB3V' + - name: Ray + range: + - 5 + - 5 + weight: 1 + _id: 2ZxeZTGdUtFrv5BH + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.2ZxeZTGdUtFrv5BH' + - name: Poison + range: + - 6 + - 6 + weight: 1 + _id: ChLmhy3dpILEvz44 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.ChLmhy3dpILEvz44' + - name: Ring + range: + - 7 + - 7 + weight: 1 + _id: DCRTCW8zjH5OlCaI + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.DCRTCW8zjH5OlCaI' + - name: Crown + range: + - 8 + - 8 + weight: 1 + _id: ftZGmfUgbPLzDOWi + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.ftZGmfUgbPLzDOWi' + - name: Disk + range: + - 9 + - 9 + weight: 1 + _id: 1TWFoNSaMN07zt43 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.1TWFoNSaMN07zt43' + - name: Web + range: + - 10 + - 10 + weight: 1 + _id: XNpxbFanT66bibTp + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.XNpxbFanT66bibTp' + - name: Guide + range: + - 11 + - 11 + weight: 1 + _id: WxGfxJfwhmkWvejC + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.WxGfxJfwhmkWvejC' + - name: Embers + range: + - 12 + - 12 + weight: 1 + _id: Xrm3Dbioh5xYRA6A + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.Xrm3Dbioh5xYRA6A' + - name: Chains + range: + - 13 + - 13 + weight: 1 + _id: cGjlToYnzPuNJeQM + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.cGjlToYnzPuNJeQM' + - name: Word + range: + - 14 + - 14 + weight: 1 + _id: CV7ISKvsZLPJYp88 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.CV7ISKvsZLPJYp88' + - name: Fang + range: + - 15 + - 15 + weight: 1 + _id: wCEXCvuz8MQYEfNQ + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.wCEXCvuz8MQYEfNQ' + - name: Gate + range: + - 16 + - 16 + weight: 1 + _id: hXHfiL04MHJNotlo + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.hXHfiL04MHJNotlo' + - name: Wall + range: + - 17 + - 17 + weight: 1 + _id: ox7VKwu4ksbXqtZx + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.ox7VKwu4ksbXqtZx' + - name: Dark + range: + - 18 + - 18 + weight: 1 + _id: ub72C5FXnK9ZlP5V + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.ub72C5FXnK9ZlP5V' + - name: Eye + range: + - 19 + - 19 + weight: 1 + _id: QmbKTgYxz91tfPk2 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.QmbKTgYxz91tfPk2' + - name: Aura + range: + - 20 + - 20 + weight: 1 + _id: AqLgkfkBy6uqfOk1 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.AqLgkfkBy6uqfOk1' + - name: Gust + range: + - 21 + - 21 + weight: 1 + _id: HsBPcgCZtUuamUPm + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.HsBPcgCZtUuamUPm' + - name: Whispers + range: + - 22 + - 22 + weight: 1 + _id: pfJgPPTXfTmGwWYQ + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.pfJgPPTXfTmGwWYQ' + - name: Wings + range: + - 23 + - 23 + weight: 1 + _id: Id3hWKIW9GLKUyt4 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.Id3hWKIW9GLKUyt4' + - name: Wave + range: + - 24 + - 24 + weight: 1 + _id: 1IIzc6Y3rHJuKnDc + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.1IIzc6Y3rHJuKnDc' + - name: Cascade + range: + - 25 + - 25 + weight: 1 + _id: sFIUwChbevoCaSdd + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.sFIUwChbevoCaSdd' + - name: Shield + range: + - 26 + - 26 + weight: 1 + _id: nlhFqbae8TZXSGar + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.nlhFqbae8TZXSGar' + - name: Swarm + range: + - 27 + - 27 + weight: 1 + _id: OJtejyHcgmgTkDNj + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.OJtejyHcgmgTkDNj' + - name: Pillar + range: + - 28 + - 28 + weight: 1 + _id: 8mImGfdE1B0bKmNp + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.8mImGfdE1B0bKmNp' + - name: Claw + range: + - 29 + - 29 + weight: 1 + _id: DhFIhvBdLgg4h1Gu + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.DhFIhvBdLgg4h1Gu' + - name: Dream + range: + - 30 + - 30 + weight: 1 + _id: cEsrdwIS6mehPHBq + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.cEsrdwIS6mehPHBq' + - name: Bubble + range: + - 31 + - 31 + weight: 1 + _id: jnVk3Vtq0XaqsT1S + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.jnVk3Vtq0XaqsT1S' + - name: Hand + range: + - 32 + - 32 + weight: 1 + _id: WU3VYDlJdegruTUX + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.WU3VYDlJdegruTUX' + - name: Dance + range: + - 33 + - 33 + weight: 1 + _id: FNxTyLD0h1s0clYP + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.FNxTyLD0h1s0clYP' + - name: Explosion + range: + - 34 + - 34 + weight: 1 + _id: liYMLjx3KGhZVs7k + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.liYMLjx3KGhZVs7k' + - name: Mask + range: + - 35 + - 35 + weight: 1 + _id: 8v3NWPoMikBHHpIE + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.8v3NWPoMikBHHpIE' + - name: Rot + range: + - 36 + - 36 + weight: 1 + _id: 0RrUSTno6kOgQiR5 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!XO9Fu2nSiTKNTrbM.0RrUSTno6kOgQiR5' +replacement: true +displayRoll: true +folder: FgSiOlAfW7ad583I +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696643400 + modifiedTime: 1768696661713 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d36 +_id: XO9Fu2nSiTKNTrbM +sort: 200000 +_key: '!tables!XO9Fu2nSiTKNTrbM' diff --git a/src/packs/crucibles/GM_Crucible_1_KAx8TYWLRm4w3jMW.yml b/src/packs/crucibles/GM_Crucible_1_KAx8TYWLRm4w3jMW.yml new file mode 100644 index 0000000..697dd7f --- /dev/null +++ b/src/packs/crucibles/GM_Crucible_1_KAx8TYWLRm4w3jMW.yml @@ -0,0 +1,747 @@ +folder: XMWukrtnFwdbpYHy +name: GM Crucible 1 +_id: KAx8TYWLRm4w3jMW +img: icons/svg/d20-grey.svg +description: '' +results: + - name: tough + range: + - 1 + - 1 + weight: 1 + _id: k4uVV8ThI0OF5T3d + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.k4uVV8ThI0OF5T3d' + - name: quiet + range: + - 2 + - 2 + weight: 1 + _id: va1yuuY30ZUpI32n + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.va1yuuY30ZUpI32n' + - name: precarious + range: + - 3 + - 3 + weight: 1 + _id: Nbm9HnVMd4DPGGXN + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.Nbm9HnVMd4DPGGXN' + - name: wild + range: + - 4 + - 4 + weight: 1 + _id: YIzzQNkMdvbVgRsn + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.YIzzQNkMdvbVgRsn' + - name: mysterious + range: + - 5 + - 5 + weight: 1 + _id: J4qy3zGW7FiuoJQS + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.J4qy3zGW7FiuoJQS' + - name: rustic + range: + - 6 + - 6 + weight: 1 + _id: Y5E2A7D0saNx6YIA + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.Y5E2A7D0saNx6YIA' + - name: muffled + range: + - 7 + - 7 + weight: 1 + _id: AXVRHZTJeDMe8MoB + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.AXVRHZTJeDMe8MoB' + - name: aged + range: + - 8 + - 8 + weight: 1 + _id: b8ocsQbhLTW4kK7m + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.b8ocsQbhLTW4kK7m' + - name: romantic + range: + - 9 + - 9 + weight: 1 + _id: bTItRyrqyWP5dAuu + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.bTItRyrqyWP5dAuu' + - name: menacing + range: + - 10 + - 10 + weight: 1 + _id: z6QvFKsMG0u9VSL3 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.z6QvFKsMG0u9VSL3' + - name: puzzling + range: + - 11 + - 11 + weight: 1 + _id: 6MjuOdezHT7GLze0 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.6MjuOdezHT7GLze0' + - name: eerie + range: + - 12 + - 12 + weight: 1 + _id: xmLOZMnNLURWeoy3 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.xmLOZMnNLURWeoy3' + - name: broken + range: + - 13 + - 13 + weight: 1 + _id: tWCC1H9SuAi3RcQa + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.tWCC1H9SuAi3RcQa' + - name: dwindling + range: + - 14 + - 14 + weight: 1 + _id: YzXSrzy8cGHRwtbV + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.YzXSrzy8cGHRwtbV' + - name: distant + range: + - 15 + - 15 + weight: 1 + _id: UtCTuOXDP2VIxjMl + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.UtCTuOXDP2VIxjMl' + - name: perilous + range: + - 16 + - 16 + weight: 1 + _id: DyQvj5lvbk1utwJp + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.DyQvj5lvbk1utwJp' + - name: bleak + range: + - 17 + - 17 + weight: 1 + _id: qBydtXpuR9nvTUWG + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.qBydtXpuR9nvTUWG' + - name: tense + range: + - 18 + - 18 + weight: 1 + _id: PMvGyu5mHamyx6yn + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.PMvGyu5mHamyx6yn' + - name: forgotten + range: + - 19 + - 19 + weight: 1 + _id: XN9NAWX8YeYfKpSt + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.XN9NAWX8YeYfKpSt' + - name: abundant + range: + - 20 + - 20 + weight: 1 + _id: 4t9Nz6Q8KtDlfoi8 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.4t9Nz6Q8KtDlfoi8' + - name: hidden + range: + - 21 + - 21 + weight: 1 + _id: r0p9Ms2vinVWg2ZE + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.r0p9Ms2vinVWg2ZE' + - name: withered + range: + - 22 + - 22 + weight: 1 + _id: HhvtHJQM2nMQoAyt + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.HhvtHJQM2nMQoAyt' + - name: chaotic + range: + - 23 + - 23 + weight: 1 + _id: P7q2oFcXCcRmEXQZ + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.P7q2oFcXCcRmEXQZ' + - name: looming + range: + - 24 + - 24 + weight: 1 + _id: 3r8j3yMaFhLQn1kr + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.3r8j3yMaFhLQn1kr' + - name: festive + range: + - 25 + - 25 + weight: 1 + _id: Xe116FDA1wo7iwq9 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.Xe116FDA1wo7iwq9' + - name: lost + range: + - 26 + - 26 + weight: 1 + _id: klIg8k1r6u6sHWbV + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.klIg8k1r6u6sHWbV' + - name: immense + range: + - 27 + - 27 + weight: 1 + _id: 0kmUTSxPEY0rBqke + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.0kmUTSxPEY0rBqke' + - name: serene + range: + - 28 + - 28 + weight: 1 + _id: uTXcH0nQABwqPtoV + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.uTXcH0nQABwqPtoV' + - name: vibrant + range: + - 29 + - 29 + weight: 1 + _id: 2FO7qEK2hMEQLPbN + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.2FO7qEK2hMEQLPbN' + - name: flickering + range: + - 30 + - 30 + weight: 1 + _id: HdaXz8KIopn8fqjW + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.HdaXz8KIopn8fqjW' + - name: rugged + range: + - 31 + - 31 + weight: 1 + _id: As0yALLCOtKonMe1 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.As0yALLCOtKonMe1' + - name: splintered + range: + - 32 + - 32 + weight: 1 + _id: IkwiD2OoRLsYt5CW + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.IkwiD2OoRLsYt5CW' + - name: sacred + range: + - 33 + - 33 + weight: 1 + _id: kv6iv0Fw9uC1ga63 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.kv6iv0Fw9uC1ga63' + - name: relentless + range: + - 34 + - 34 + weight: 1 + _id: bkWdfYoGaEW2kUmR + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.bkWdfYoGaEW2kUmR' + - name: tangled + range: + - 35 + - 35 + weight: 1 + _id: pPhu8sEywMjSKOI3 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.pPhu8sEywMjSKOI3' + - name: twisted + range: + - 36 + - 36 + weight: 1 + _id: xG1ljbVnx2Q3xY5f + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!KAx8TYWLRm4w3jMW.xG1ljbVnx2Q3xY5f' +replacement: true +displayRoll: true +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696740264 + modifiedTime: 1768696836521 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d36 +_key: '!tables!KAx8TYWLRm4w3jMW' diff --git a/src/packs/crucibles/GM_Crucible_1_hvCswYtYYP63QGyu.yml b/src/packs/crucibles/GM_Crucible_1_hvCswYtYYP63QGyu.yml deleted file mode 100644 index fa06507..0000000 --- a/src/packs/crucibles/GM_Crucible_1_hvCswYtYYP63QGyu.yml +++ /dev/null @@ -1,817 +0,0 @@ -name: GM Crucible 1 -img: icons/svg/d20-grey.svg -description:

Roll this along with GM Crucible 2, smash them together and interpret!

-results: - - type: text - weight: 1 - range: - - 1 - - 1 - drawn: false - _id: ma3xIP16AgBhkzH1 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Tough - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.ma3xIP16AgBhkzH1' - - type: text - weight: 1 - range: - - 2 - - 2 - drawn: false - _id: vVC0G7IeYYJQM9JX - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Quiet - Muffled - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.vVC0G7IeYYJQM9JX' - - type: text - weight: 1 - range: - - 3 - - 3 - drawn: false - _id: 5DnMgu4sEIayBt1n - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Precarious - Broken - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.5DnMgu4sEIayBt1n' - - type: text - weight: 1 - range: - - 4 - - 4 - drawn: false - _id: pnnXeOHvD6K1fDZm - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Wild - Forgotten - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.pnnXeOHvD6K1fDZm' - - type: text - weight: 1 - range: - - 5 - - 5 - drawn: false - _id: OJoFZLL6wYR9zF1s - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Mysterious - Festive - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.OJoFZLL6wYR9zF1s' - - type: text - weight: 1 - range: - - 6 - - 6 - drawn: false - _id: aIrlZf51WHl49Xie - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Rustic - Rugged - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.aIrlZf51WHl49Xie' - - type: text - weight: 1 - range: - - 7 - - 7 - drawn: false - _id: QUN7hPfNVccumNgV - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Muffled - Quiet - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.QUN7hPfNVccumNgV' - - type: text - weight: 1 - range: - - 8 - - 8 - drawn: false - _id: d8BJ28moHXv1bj2p - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Aged - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.d8BJ28moHXv1bj2p' - - type: text - weight: 1 - range: - - 9 - - 9 - drawn: false - _id: Glt77TnNcLW3W6b6 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Romantic - Dwindling - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.Glt77TnNcLW3W6b6' - - type: text - weight: 1 - range: - - 10 - - 10 - drawn: false - _id: JZ3lTFHqIGMZjWLJ - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Menacing - Abundant - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.JZ3lTFHqIGMZjWLJ' - - type: text - weight: 1 - range: - - 11 - - 11 - drawn: false - _id: R7YAcfwAi7rxQJEE - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Puzzling - Lost - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.R7YAcfwAi7rxQJEE' - - type: text - weight: 1 - range: - - 12 - - 12 - drawn: false - _id: 0hzXk2PWPdUM2Mkv - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Eerie - Splintered - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.0hzXk2PWPdUM2Mkv' - - type: text - weight: 1 - range: - - 13 - - 13 - drawn: false - _id: RZr8SwNuQnS30pnx - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Broken - Precarious - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.RZr8SwNuQnS30pnx' - - type: text - weight: 1 - range: - - 14 - - 14 - drawn: false - _id: 0mh6RJG8sPwrOtFN - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Dwindling - Romantic - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.0mh6RJG8sPwrOtFN' - - type: text - weight: 1 - range: - - 15 - - 15 - drawn: false - _id: 9KZ1gVTCfdGlythz - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Distant - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.9KZ1gVTCfdGlythz' - - type: text - weight: 1 - range: - - 16 - - 16 - drawn: false - _id: EeuxECk7VhCL0iOT - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Perilous - Hidden - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.EeuxECk7VhCL0iOT' - - type: text - weight: 1 - range: - - 17 - - 17 - drawn: false - _id: 2Q22qm2ihfh5IDWw - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Bleak - Immense - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.2Q22qm2ihfh5IDWw' - - type: text - weight: 1 - range: - - 18 - - 18 - drawn: false - _id: ziSL5P91ZZFEihNK - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Tense - Sacred - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.ziSL5P91ZZFEihNK' - - type: text - weight: 1 - range: - - 19 - - 19 - drawn: false - _id: VHmXYxGj6s973jX8 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Forgotten - Wild - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.VHmXYxGj6s973jX8' - - type: text - weight: 1 - range: - - 20 - - 20 - drawn: false - _id: TbIstJD3UWl1kIXl - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Abundant - Menacing - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.TbIstJD3UWl1kIXl' - - type: text - weight: 1 - range: - - 21 - - 21 - drawn: false - _id: 0HgO6aBhQJ9P6jEO - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Hidden - Perilous - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.0HgO6aBhQJ9P6jEO' - - type: text - weight: 1 - range: - - 22 - - 22 - drawn: false - _id: 8Y7zKweb4hrUD8EI - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Withered - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.8Y7zKweb4hrUD8EI' - - type: text - weight: 1 - range: - - 23 - - 23 - drawn: false - _id: hRLIm4VoUSYR7n9S - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Chaotic - Serene - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.hRLIm4VoUSYR7n9S' - - type: text - weight: 1 - range: - - 24 - - 24 - drawn: false - _id: S1u0MZ9t7WdBmVPq - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Looming - Relentless - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.S1u0MZ9t7WdBmVPq' - - type: text - weight: 1 - range: - - 25 - - 25 - drawn: false - _id: DWaxppQVdUT4aP4i - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Festive - Mysterious - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.DWaxppQVdUT4aP4i' - - type: text - weight: 1 - range: - - 26 - - 26 - drawn: false - _id: uPixZbpQLAqcJhqR - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Lost - Puzzling - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.uPixZbpQLAqcJhqR' - - type: text - weight: 1 - range: - - 27 - - 27 - drawn: false - _id: NIZWKiIxZKAYcHSI - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Immense - Bleak - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.NIZWKiIxZKAYcHSI' - - type: text - weight: 1 - range: - - 28 - - 28 - drawn: false - _id: UwLQas1KBJdx3j4G - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Serene - Chaotic - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.UwLQas1KBJdx3j4G' - - type: text - weight: 1 - range: - - 29 - - 29 - drawn: false - _id: XpKTeKfV6i9AxjoD - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Vibrant - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.XpKTeKfV6i9AxjoD' - - type: text - weight: 1 - range: - - 30 - - 30 - drawn: false - _id: 3u0ejfUnqV6XNNss - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Flickering - Tangled - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.3u0ejfUnqV6XNNss' - - type: text - weight: 1 - range: - - 31 - - 31 - drawn: false - _id: EKzmBgIzqXMB8CnK - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Rugged - Rustic - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.EKzmBgIzqXMB8CnK' - - type: text - weight: 1 - range: - - 32 - - 32 - drawn: false - _id: CKnmaGcgBG9wihDY - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Splintered - Eerie - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.CKnmaGcgBG9wihDY' - - type: text - weight: 1 - range: - - 33 - - 33 - drawn: false - _id: 3GfmS3msIEUZOjpB - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Sacred - Tense - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.3GfmS3msIEUZOjpB' - - type: text - weight: 1 - range: - - 34 - - 34 - drawn: false - _id: QnjZTBRXhiQZCsoR - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Relentless - Looming - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.QnjZTBRXhiQZCsoR' - - type: text - weight: 1 - range: - - 35 - - 35 - drawn: false - _id: JZJIyR6qH0OhqRQ9 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Tangled - Flickering - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.JZJIyR6qH0OhqRQ9' - - type: text - weight: 1 - range: - - 36 - - 36 - drawn: false - _id: JHUC2PsGT8gj6kNV - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Twisted - name: '' - _key: '!tables.results!hvCswYtYYP63QGyu.JHUC2PsGT8gj6kNV' -replacement: true -displayRoll: false -folder: null -flags: {} -_stats: - compendiumSource: null - duplicateSource: null - coreVersion: '13.345' - systemId: grimwild - systemVersion: 0.1.0 - createdTime: 1737150504000 - modifiedTime: 1737150504000 - lastModifiedBy: SzSkbfMxPopuu3Ec - exportSource: null -formula: 1d36 -_id: hvCswYtYYP63QGyu -sort: 0 -ownership: - default: 0 - SzSkbfMxPopuu3Ec: 3 -_key: '!tables!hvCswYtYYP63QGyu' diff --git a/src/packs/crucibles/GM_Crucible_2_DFR4rVxJ7RTESsgy.yml b/src/packs/crucibles/GM_Crucible_2_DFR4rVxJ7RTESsgy.yml deleted file mode 100644 index 61ecf76..0000000 --- a/src/packs/crucibles/GM_Crucible_2_DFR4rVxJ7RTESsgy.yml +++ /dev/null @@ -1,819 +0,0 @@ -name: GM Crucible 2 -img: icons/svg/d20-grey.svg -description: >- -

Roll this along with GM - Crucible 2, smash them together and interpret!

-results: - - type: text - weight: 1 - range: - - 1 - - 1 - drawn: false - _id: DmP0kXskNo3ltQmU - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Journey - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.DmP0kXskNo3ltQmU' - - type: text - weight: 1 - range: - - 2 - - 2 - drawn: false - _id: pvYynvQPQ0m1PRrI - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Juncture - Tremor - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.pvYynvQPQ0m1PRrI' - - type: text - weight: 1 - range: - - 3 - - 3 - drawn: false - _id: 8EYfxGl5fStrVViB - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Rift - Sanctuary - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.8EYfxGl5fStrVViB' - - type: text - weight: 1 - range: - - 4 - - 4 - drawn: false - _id: DjpqRgC0kHBMaEKt - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Scheme - Peak - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.DjpqRgC0kHBMaEKt' - - type: text - weight: 1 - range: - - 5 - - 5 - drawn: false - _id: GmA8lLia8I3KOQxg - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Nexus - Territory - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.GmA8lLia8I3KOQxg' - - type: text - weight: 1 - range: - - 6 - - 6 - drawn: false - _id: 9BbyPyIG4uO3DtlL - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Team - Dilemma - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.9BbyPyIG4uO3DtlL' - - type: text - weight: 1 - range: - - 7 - - 7 - drawn: false - _id: DFW3ZAYz2MXFd4Q6 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Tremor - Journey - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.DFW3ZAYz2MXFd4Q6' - - type: text - weight: 1 - range: - - 8 - - 8 - drawn: false - _id: LFnCUr9VLDOl7508 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Debris - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.LFnCUr9VLDOl7508' - - type: text - weight: 1 - range: - - 9 - - 9 - drawn: false - _id: eY6foV92zNQ2pe2H - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Symbol - Betrayal - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.eY6foV92zNQ2pe2H' - - type: text - weight: 1 - range: - - 10 - - 10 - drawn: false - _id: auosOk3cm47u3utg - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Scar - Threshold - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.auosOk3cm47u3utg' - - type: text - weight: 1 - range: - - 11 - - 11 - drawn: false - _id: ZeRlzkoUB1ZbfSFj - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Archive - Rumor - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.ZeRlzkoUB1ZbfSFj' - - type: text - weight: 1 - range: - - 12 - - 12 - drawn: false - _id: v9BSLLSgie60zk6R - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Chasm - Tradition - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.v9BSLLSgie60zk6R' - - type: text - weight: 1 - range: - - 13 - - 13 - drawn: false - _id: rtpWXnT2pQCCT8dK - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Sanctuary - Rift - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.rtpWXnT2pQCCT8dK' - - type: text - weight: 1 - range: - - 14 - - 14 - drawn: false - _id: N5QYXXhWgVZvq8Ie - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Betrayal - Symbol - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.N5QYXXhWgVZvq8Ie' - - type: text - weight: 1 - range: - - 15 - - 15 - drawn: false - _id: cJ9Y4TlEFj3VlBzy - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Trail - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.cJ9Y4TlEFj3VlBzy' - - type: text - weight: 1 - range: - - 16 - - 16 - drawn: false - _id: l72Bv9IHknfO326X - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Wasteland - Boundary - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.l72Bv9IHknfO326X' - - type: text - weight: 1 - range: - - 17 - - 17 - drawn: false - _id: knCJx2Xr2VdVkBZg - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Help - Standoff - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.knCJx2Xr2VdVkBZg' - - type: text - weight: 1 - range: - - 18 - - 18 - drawn: false - _id: cFO6nTfrmaQaz5bU - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Mystery - Jackpot - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.cFO6nTfrmaQaz5bU' - - type: text - weight: 1 - range: - - 19 - - 19 - drawn: false - _id: goL6VIv0CIPGivSI - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Peak - Scheme - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.goL6VIv0CIPGivSI' - - type: text - weight: 1 - range: - - 20 - - 20 - drawn: false - _id: UndMuRmWd7JqTIaG - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Threshold - Scar - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.UndMuRmWd7JqTIaG' - - type: text - weight: 1 - range: - - 21 - - 21 - drawn: false - _id: Zzap9BgKvHfjIeKn - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Boundary - Wasteland - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.Zzap9BgKvHfjIeKn' - - type: text - weight: 1 - range: - - 22 - - 22 - drawn: false - _id: vfLQR6m306pkp7w8 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Beacon - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.vfLQR6m306pkp7w8' - - type: text - weight: 1 - range: - - 23 - - 23 - drawn: false - _id: tdPMPvrwHwhVE2bo - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Secret - Strife - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.tdPMPvrwHwhVE2bo' - - type: text - weight: 1 - range: - - 24 - - 24 - drawn: false - _id: MqzVo6QEw5Tg6aeO - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Wall - Omen - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.MqzVo6QEw5Tg6aeO' - - type: text - weight: 1 - range: - - 25 - - 25 - drawn: false - _id: RZ18xraTswdGX9cs - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Territory - Nexus - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.RZ18xraTswdGX9cs' - - type: text - weight: 1 - range: - - 26 - - 26 - drawn: false - _id: GcwiAQ40qKWeh3kK - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Rumor - Archive - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.GcwiAQ40qKWeh3kK' - - type: text - weight: 1 - range: - - 27 - - 27 - drawn: false - _id: 4FchA4A21byQ9dWP - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Standoff - Help - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.4FchA4A21byQ9dWP' - - type: text - weight: 1 - range: - - 28 - - 28 - drawn: false - _id: Sk4BReVVYGsNd5B0 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Strife - Secret - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.Sk4BReVVYGsNd5B0' - - type: text - weight: 1 - range: - - 29 - - 29 - drawn: false - _id: zC116gFQ8TBUcRIO - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Maze - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.zC116gFQ8TBUcRIO' - - type: text - weight: 1 - range: - - 30 - - 30 - drawn: false - _id: wd2KbNgelWWhcOYz - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Pact - Deception - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.wd2KbNgelWWhcOYz' - - type: text - weight: 1 - range: - - 31 - - 31 - drawn: false - _id: Ym30XyB7e8wQQusr - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Dilemma - Team - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.Ym30XyB7e8wQQusr' - - type: text - weight: 1 - range: - - 32 - - 32 - drawn: false - _id: Sfohqo4139b9zowN - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Tradition - Chasm - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.Sfohqo4139b9zowN' - - type: text - weight: 1 - range: - - 33 - - 33 - drawn: false - _id: VNPFjHfnEaQ9yqJw - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Jackpot - Mystery - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.VNPFjHfnEaQ9yqJw' - - type: text - weight: 1 - range: - - 34 - - 34 - drawn: false - _id: CII3DskybO87PvM8 - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Omen - Wall - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.CII3DskybO87PvM8' - - type: text - weight: 1 - range: - - 35 - - 35 - drawn: false - _id: puvTQKykLeJPwnoM - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Deception - Pact - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.puvTQKykLeJPwnoM' - - type: text - weight: 1 - range: - - 36 - - 36 - drawn: false - _id: gFVioKGdzvAXQ1PV - img: icons/svg/d20-black.svg - flags: {} - _stats: - coreVersion: '13.345' - systemId: null - systemVersion: null - createdTime: null - modifiedTime: null - lastModifiedBy: null - compendiumSource: null - duplicateSource: null - exportSource: null - description: Illusion - name: '' - _key: '!tables.results!DFR4rVxJ7RTESsgy.gFVioKGdzvAXQ1PV' -replacement: true -displayRoll: false -folder: null -flags: {} -_stats: - compendiumSource: null - duplicateSource: null - coreVersion: '13.345' - systemId: grimwild - systemVersion: 0.1.0 - createdTime: 1737217195349 - modifiedTime: 1737217195349 - lastModifiedBy: Dl5Tvf37OuEHwdAh - exportSource: null -formula: 1d36 -_id: DFR4rVxJ7RTESsgy -sort: 0 -ownership: - default: 0 - Dl5Tvf37OuEHwdAh: 3 -_key: '!tables!DFR4rVxJ7RTESsgy' diff --git a/src/packs/crucibles/GM_Crucible_2_L0E7bnZtFjI51p3y.yml b/src/packs/crucibles/GM_Crucible_2_L0E7bnZtFjI51p3y.yml new file mode 100644 index 0000000..5a819ad --- /dev/null +++ b/src/packs/crucibles/GM_Crucible_2_L0E7bnZtFjI51p3y.yml @@ -0,0 +1,747 @@ +folder: XMWukrtnFwdbpYHy +name: GM Crucible 2 +_id: L0E7bnZtFjI51p3y +img: icons/svg/d20-grey.svg +description: '' +results: + - name: journey + range: + - 1 + - 1 + weight: 1 + _id: TPJnIKucVrTmE5GZ + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.TPJnIKucVrTmE5GZ' + - name: juncture + range: + - 2 + - 2 + weight: 1 + _id: tVnlPQ5QLZPTDFzJ + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.tVnlPQ5QLZPTDFzJ' + - name: rift + range: + - 3 + - 3 + weight: 1 + _id: vTHNAQdjNFK00GsC + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.vTHNAQdjNFK00GsC' + - name: scheme + range: + - 4 + - 4 + weight: 1 + _id: BL8V6697CyRrvUhu + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.BL8V6697CyRrvUhu' + - name: nexus + range: + - 5 + - 5 + weight: 1 + _id: Ws0BF6Mtk93MIU5M + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.Ws0BF6Mtk93MIU5M' + - name: team + range: + - 6 + - 6 + weight: 1 + _id: s4ATGMeLZncOXn60 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.s4ATGMeLZncOXn60' + - name: tremor + range: + - 7 + - 7 + weight: 1 + _id: PnnLZkTIsyzA7nwL + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.PnnLZkTIsyzA7nwL' + - name: debris + range: + - 8 + - 8 + weight: 1 + _id: e0OhYRU2m5mfmEui + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.e0OhYRU2m5mfmEui' + - name: symbol + range: + - 9 + - 9 + weight: 1 + _id: kGn13oTuSoLlDidF + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.kGn13oTuSoLlDidF' + - name: scar + range: + - 10 + - 10 + weight: 1 + _id: GllTSJjzRGCWoXpI + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.GllTSJjzRGCWoXpI' + - name: archive + range: + - 11 + - 11 + weight: 1 + _id: vw95gPx4kyX3YXoc + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.vw95gPx4kyX3YXoc' + - name: chasm + range: + - 12 + - 12 + weight: 1 + _id: ER4CElVzJwfI2mCq + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.ER4CElVzJwfI2mCq' + - name: sanctuary + range: + - 13 + - 13 + weight: 1 + _id: 4Ne141M7Zpftyjcv + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.4Ne141M7Zpftyjcv' + - name: betrayal + range: + - 14 + - 14 + weight: 1 + _id: VsmLokj4MgO3UdNp + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.VsmLokj4MgO3UdNp' + - name: trail + range: + - 15 + - 15 + weight: 1 + _id: KE9IHbNm5RsFgvXW + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.KE9IHbNm5RsFgvXW' + - name: wasteland + range: + - 16 + - 16 + weight: 1 + _id: U8mB7Wbrv3NqHKf8 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.U8mB7Wbrv3NqHKf8' + - name: help + range: + - 17 + - 17 + weight: 1 + _id: mczVFbIj6MZQIg0t + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.mczVFbIj6MZQIg0t' + - name: mystery + range: + - 18 + - 18 + weight: 1 + _id: 8YmKvXlYzYMIsq2W + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.8YmKvXlYzYMIsq2W' + - name: peak + range: + - 19 + - 19 + weight: 1 + _id: YgGC8KJAtDGed0W3 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.YgGC8KJAtDGed0W3' + - name: threshold + range: + - 20 + - 20 + weight: 1 + _id: GvcNPV09UfcTB5L6 + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.GvcNPV09UfcTB5L6' + - name: boundary + range: + - 21 + - 21 + weight: 1 + _id: JCa1vaIAFSdlz7so + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.JCa1vaIAFSdlz7so' + - name: beacon + range: + - 22 + - 22 + weight: 1 + _id: 68pnKrwIZlPelepa + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.68pnKrwIZlPelepa' + - name: secret + range: + - 23 + - 23 + weight: 1 + _id: GzfGESoEgWFBRLTS + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.GzfGESoEgWFBRLTS' + - name: wall + range: + - 24 + - 24 + weight: 1 + _id: YLlbyuuylXTO4i5t + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.YLlbyuuylXTO4i5t' + - name: territory + range: + - 25 + - 25 + weight: 1 + _id: MePbEhQluaLK6krg + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.MePbEhQluaLK6krg' + - name: rumor + range: + - 26 + - 26 + weight: 1 + _id: qwwSjZ0jK60rap7u + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.qwwSjZ0jK60rap7u' + - name: standoff + range: + - 27 + - 27 + weight: 1 + _id: CyzutKndlduSBU4f + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.CyzutKndlduSBU4f' + - name: strife + range: + - 28 + - 28 + weight: 1 + _id: 7DFf68pjOEtO0WPF + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.7DFf68pjOEtO0WPF' + - name: maze + range: + - 29 + - 29 + weight: 1 + _id: o7PvCrwoJ4Kww15l + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.o7PvCrwoJ4Kww15l' + - name: pact + range: + - 30 + - 30 + weight: 1 + _id: 7sk63Oqw8qUh11xU + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.7sk63Oqw8qUh11xU' + - name: dilemma + range: + - 31 + - 31 + weight: 1 + _id: KQ5xWnUFkAmbRtgx + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.KQ5xWnUFkAmbRtgx' + - name: tradition + range: + - 32 + - 32 + weight: 1 + _id: YuBMYIRZ1OJFmZZC + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.YuBMYIRZ1OJFmZZC' + - name: jackpot + range: + - 33 + - 33 + weight: 1 + _id: OD1wDRKfxHd92gGu + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.OD1wDRKfxHd92gGu' + - name: omen + range: + - 34 + - 34 + weight: 1 + _id: FkNR0d2vUgI1LsLx + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.FkNR0d2vUgI1LsLx' + - name: deception + range: + - 35 + - 35 + weight: 1 + _id: W2yufs61kvvXKiMz + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.W2yufs61kvvXKiMz' + - name: illusion + range: + - 36 + - 36 + weight: 1 + _id: T09W7Rv1N4SABunm + type: text + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!L0E7bnZtFjI51p3y.T09W7Rv1N4SABunm' +replacement: true +displayRoll: true +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696844168 + modifiedTime: 1768696932079 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d36 +_key: '!tables!L0E7bnZtFjI51p3y' diff --git a/src/packs/crucibles/GM_Crucibles_XMWukrtnFwdbpYHy.yml b/src/packs/crucibles/GM_Crucibles_XMWukrtnFwdbpYHy.yml new file mode 100644 index 0000000..bb4c5aa --- /dev/null +++ b/src/packs/crucibles/GM_Crucibles_XMWukrtnFwdbpYHy.yml @@ -0,0 +1,20 @@ +type: RollTable +folder: null +name: GM Crucibles +color: '#2f0909' +sorting: a +_id: XMWukrtnFwdbpYHy +description: '' +sort: 0 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696672227 + modifiedTime: 1768696672227 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!folders!XMWukrtnFwdbpYHy' diff --git a/src/packs/crucibles/Magic_Schools_tnEydB0CU9F9LWNI.yml b/src/packs/crucibles/Magic_Schools_tnEydB0CU9F9LWNI.yml new file mode 100644 index 0000000..8cfa5e6 --- /dev/null +++ b/src/packs/crucibles/Magic_Schools_tnEydB0CU9F9LWNI.yml @@ -0,0 +1,209 @@ +folder: FgSiOlAfW7ad583I +name: Magic Schools +_id: tnEydB0CU9F9LWNI +img: icons/sundries/books/book-embossed-gold-red.webp +description: '' +results: + - type: text + weight: 1 + range: + - 1 + - 1 + _id: Qd4rLlbWrKXZjDdh + name: Abjuration + img: icons/svg/d20-black.svg + description:

Protects, blocks, dispels, or banishes.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697543188 + modifiedTime: 1768697676428 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.Qd4rLlbWrKXZjDdh' + - type: text + weight: 1 + range: + - 2 + - 2 + _id: 08lUrDaDwkI6EaIZ + name: Conjuration + img: icons/svg/d20-black.svg + description:

Summons creatures, objects, and teleports.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697565592 + modifiedTime: 1768697671373 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.08lUrDaDwkI6EaIZ' + - type: text + weight: 1 + range: + - 3 + - 3 + _id: Dfhe37EXkShRbBs0 + name: Divination + img: icons/svg/d20-black.svg + description:

Reveals information, predicts the future, and reads minds.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697566341 + modifiedTime: 1768697666351 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.Dfhe37EXkShRbBs0' + - type: text + weight: 1 + range: + - 4 + - 4 + _id: FImDImSWLt6GovzS + name: Enchantment + img: icons/svg/d20-black.svg + description:

Charms, influences, and curses sentient creatures.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697566916 + modifiedTime: 1768697661550 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.FImDImSWLt6GovzS' + - type: text + weight: 1 + range: + - 5 + - 5 + _id: Rj6Zpl4P3iCMYq1X + name: Evocation + img: icons/svg/d20-black.svg + description:

Creates and controls elemental and magical forces.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697611408 + modifiedTime: 1768697656486 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.Rj6Zpl4P3iCMYq1X' + - type: text + weight: 1 + range: + - 6 + - 6 + _id: NAfJP85hYoPUicRJ + name: Illusion + img: icons/svg/d20-black.svg + description:

Generates false images and sensory deceptions.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697611871 + modifiedTime: 1768697650694 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.NAfJP85hYoPUicRJ' + - type: text + weight: 1 + range: + - 7 + - 7 + _id: ON8ck9ZfvQ8IKog4 + name: Necromancy + img: icons/svg/d20-black.svg + description:

Manipulates life, death, and the undead.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697612320 + modifiedTime: 1768697704201 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.ON8ck9ZfvQ8IKog4' + - type: text + weight: 1 + range: + - 8 + - 8 + _id: tujQg3t3cThI1rML + name: Transmutation + img: icons/svg/d20-black.svg + description:

Transforms matter and alters physical properties.

+ drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697612747 + modifiedTime: 1768697722850 + lastModifiedBy: UV77mtxQgW7KpS6B + documentUuid: null + _key: '!tables.results!tnEydB0CU9F9LWNI.tujQg3t3cThI1rML' +replacement: true +displayRoll: true +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697539781 + modifiedTime: 1768697796472 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d8 +_key: '!tables!tnEydB0CU9F9LWNI' diff --git a/src/packs/crucibles/Spell_Crucible_FgSiOlAfW7ad583I.yml b/src/packs/crucibles/Spell_Crucible_FgSiOlAfW7ad583I.yml new file mode 100644 index 0000000..afa43c0 --- /dev/null +++ b/src/packs/crucibles/Spell_Crucible_FgSiOlAfW7ad583I.yml @@ -0,0 +1,20 @@ +type: RollTable +folder: null +name: Spell Crucible +color: '#540877' +sorting: a +_id: FgSiOlAfW7ad583I +description: '' +sort: 0 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696659424 + modifiedTime: 1768696659424 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!folders!FgSiOlAfW7ad583I' diff --git a/src/packs/crucibles/Style_It97TCUGhQfa7I5n.yml b/src/packs/crucibles/Style_It97TCUGhQfa7I5n.yml new file mode 100644 index 0000000..67ff7d4 --- /dev/null +++ b/src/packs/crucibles/Style_It97TCUGhQfa7I5n.yml @@ -0,0 +1,749 @@ +name: Style +img: icons/magic/control/buff-flight-wings-runes-red.webp +description: '' +results: + - type: text + weight: 1 + range: + - 1 + - 1 + _id: 4FJzqBLC18rOWm88 + name: Binding + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + documentUuid: null + _key: '!tables.results!It97TCUGhQfa7I5n.4FJzqBLC18rOWm88' + - type: text + weight: 1 + range: + - 2 + - 2 + _id: lAdH3OG4z94eCcaU + name: Shimmering + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + documentUuid: null + _key: '!tables.results!It97TCUGhQfa7I5n.lAdH3OG4z94eCcaU' + - type: text + weight: 1 + range: + - 3 + - 3 + _id: O8DNeH6b3aSK8oYV + name: Curious + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.O8DNeH6b3aSK8oYV' + - name: Oozing + range: + - 1 + - 1 + weight: 1 + _id: EuzNYwCFVzUkZdmD + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.EuzNYwCFVzUkZdmD' + - name: Shielding + range: + - 2 + - 2 + weight: 1 + _id: K6YZKe7mqbBkyOhs + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.K6YZKe7mqbBkyOhs' + - name: Shadowy + range: + - 3 + - 3 + weight: 1 + _id: mC4clhujDSx54frT + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.mC4clhujDSx54frT' + - name: Flaming + range: + - 4 + - 4 + weight: 1 + _id: 9dsTMQwIB5UH1mrf + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.9dsTMQwIB5UH1mrf' + - name: Slow + range: + - 5 + - 5 + weight: 1 + _id: bkhPAVQx7H1wDQEn + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.bkhPAVQx7H1wDQEn' + - name: Wrathful + range: + - 6 + - 6 + weight: 1 + _id: oxkp1TWHwOQcYUpj + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.oxkp1TWHwOQcYUpj' + - name: Petrifying + range: + - 7 + - 7 + weight: 1 + _id: FmEkIBxmJcD8OYkj + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.FmEkIBxmJcD8OYkj' + - name: Hungry + range: + - 8 + - 8 + weight: 1 + _id: JoHnSxKJpUEOOSSi + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.JoHnSxKJpUEOOSSi' + - name: Majestic + range: + - 9 + - 9 + weight: 1 + _id: 7oDocKDVI9n74xZt + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.7oDocKDVI9n74xZt' + - name: Charming + range: + - 10 + - 10 + weight: 1 + _id: FjvOMKSflm0M1mew + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.FjvOMKSflm0M1mew' + - name: Silent + range: + - 11 + - 11 + weight: 1 + _id: vMQwN3N9jnNqb7h7 + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.vMQwN3N9jnNqb7h7' + - name: Dazzling + range: + - 12 + - 12 + weight: 1 + _id: HOuaEPPrzYHYo7FE + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.HOuaEPPrzYHYo7FE' + - name: Piercing + range: + - 13 + - 13 + weight: 1 + _id: IyzUnZLMh7bS32Fy + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.IyzUnZLMh7bS32Fy' + - name: Jovial + range: + - 14 + - 14 + weight: 1 + _id: 9kA3fH4yaDNDz8dr + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.9kA3fH4yaDNDz8dr' + - name: Frenzied + range: + - 15 + - 15 + weight: 1 + _id: zHczUgzCVZewSFWi + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.zHczUgzCVZewSFWi' + - name: Cryptic + range: + - 16 + - 16 + weight: 1 + _id: pDne0FeAWrGF87io + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.pDne0FeAWrGF87io' + - name: WIthering + range: + - 17 + - 17 + weight: 1 + _id: Z3vkjan1iB7GGqLR + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.Z3vkjan1iB7GGqLR' + - name: Primal + range: + - 18 + - 18 + weight: 1 + _id: LW79D8wEY3M8x5Eb + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.LW79D8wEY3M8x5Eb' + - name: Screaming + range: + - 19 + - 19 + weight: 1 + _id: rP49d4kx8PkOIkE4 + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.rP49d4kx8PkOIkE4' + - name: Thunderous + range: + - 20 + - 20 + weight: 1 + _id: gvMFZeEJPOh6x4gn + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.gvMFZeEJPOh6x4gn' + - name: Prismatic + range: + - 21 + - 21 + weight: 1 + _id: vKnO5EeLxjUQXqiW + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.vKnO5EeLxjUQXqiW' + - name: Freezing + range: + - 22 + - 22 + weight: 1 + _id: ANc79BG024MCloTF + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.ANc79BG024MCloTF' + - name: Seeping + range: + - 23 + - 23 + weight: 1 + _id: T7VVpQC8ILFbr2vj + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.T7VVpQC8ILFbr2vj' + - name: Ferocious + range: + - 24 + - 24 + weight: 1 + _id: WXY1ieLPutsfixwZ + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.WXY1ieLPutsfixwZ' + - name: Grasping + range: + - 25 + - 25 + weight: 1 + _id: N5jirdOc5w4cSJz2 + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.N5jirdOc5w4cSJz2' + - name: Venomous + range: + - 26 + - 26 + weight: 1 + _id: IILcA6Eg5w9rcunU + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.IILcA6Eg5w9rcunU' + - name: Sickening + range: + - 27 + - 27 + weight: 1 + _id: WvDi5Lbk6Z6g1s9w + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.WvDi5Lbk6Z6g1s9w' + - name: Mesmerising + range: + - 28 + - 28 + weight: 1 + _id: mlOthKUPJta2IzbO + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.mlOthKUPJta2IzbO' + - name: Unseen + range: + - 29 + - 29 + weight: 1 + _id: pWHMuGC3q67MEkT4 + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.pWHMuGC3q67MEkT4' + - name: Expanding + range: + - 30 + - 30 + weight: 1 + _id: w2mc0KdQhMeOmJZj + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.w2mc0KdQhMeOmJZj' + - name: Swift + range: + - 31 + - 31 + weight: 1 + _id: 9O7PcC8IhciDw76x + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.9O7PcC8IhciDw76x' + - name: Phantom + range: + - 32 + - 32 + weight: 1 + _id: znTcWYVBZ2s0Hgks + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.znTcWYVBZ2s0Hgks' + - name: Terrible + range: + - 33 + - 33 + weight: 1 + _id: Dd27OudjS7OxiEhj + type: text + img: icons/svg/d20-black.svg + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!It97TCUGhQfa7I5n.Dd27OudjS7OxiEhj' +replacement: true +displayRoll: true +folder: FgSiOlAfW7ad583I +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768696645089 + modifiedTime: 1768697076429 + lastModifiedBy: UV77mtxQgW7KpS6B +formula: 1d36 +_id: It97TCUGhQfa7I5n +sort: 0 +_key: '!tables!It97TCUGhQfa7I5n' diff --git a/src/packs/rules/Spell_Crucible_WJWQtGwZcUubnCMj.yml b/src/packs/rules/Spell_Crucible_WJWQtGwZcUubnCMj.yml new file mode 100644 index 0000000..d717e86 --- /dev/null +++ b/src/packs/rules/Spell_Crucible_WJWQtGwZcUubnCMj.yml @@ -0,0 +1,74 @@ +folder: vUGdoKGy7PZ2fdfW +name: Spell Crucible +_id: WJWQtGwZcUubnCMj +pages: + - sort: 100000 + name: Spell Crucible + type: text + _id: oAUafgvMOjLisdE2 + system: {} + title: + show: false + level: 1 + image: {} + text: + format: 1 + content: >- +

Roll style, esence, and form. Choose 2, then assign a + school.

@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.It97TCUGhQfa7I5n]{Style}


@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.1sh14AQ5dmCICtQZ]{Essence}


@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.XO9Fu2nSiTKNTrbM]{Form}

Magic + Schools

Choose, or roll for it + @UUID[Compendium.grimwild.crucibles.RollTable.tnEydB0CU9F9LWNI]{Magic + Schools}

  • Abjuration: Protects, + blocks, dispels, or banishes.

  • Conjuration: Summons creatures, objects, and + teleports.

  • Divination: Reveals information, predicts + the future, and reads minds.

  • Enchantment: Charms, influences, and + curses sentient creatures.

  • Evocation: Creates and controls elemental + and magical forces.

  • Illusion: + Generates false images and sensory deceptions.

  • Necromancy: Manipulates life, death, and the + undead.

  • Transmutation: + Transforms matter and alters physical properties.

+ 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.4.0 + createdTime: 1768697386279 + modifiedTime: 1768697818710 + lastModifiedBy: UV77mtxQgW7KpS6B + _key: '!journal.pages!WJWQtGwZcUubnCMj.oAUafgvMOjLisdE2' +categories: [] +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768697379136 + modifiedTime: 1768697379136 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!journal!WJWQtGwZcUubnCMj' diff --git a/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml b/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml index 56a6898..8681e49 100644 --- a/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml +++ b/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml @@ -7,7 +7,9 @@ system: description: >-

You have spellcasting as the Spellcraft talent. You roll Wits and can cast 3 spells and 1 potent spell per session. You know 3 spell theorems, - created with the Spell Crucible, and can learn new spells from scrolls.

+ created with the + @UUID[Compendium.grimwild.rules.JournalEntry.WJWQtGwZcUubnCMj.JournalEntryPage.oAUafgvMOjLisdE2]{Spell + Crucible}, and can learn new spells from scrolls.

core: false notes: description:

Write down your spell theorems here.

@@ -21,7 +23,6 @@ system: showSteps: true pool: diceNum: 0 - max: null - type: points label: Potent points: @@ -30,8 +31,9 @@ system: showSteps: true pool: diceNum: 0 - max: null path: fighter + crucible: + instructions: '' effects: [] sort: 0 ownership: @@ -41,11 +43,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.1.0 + systemVersion: 0.4.0 createdTime: 1739111225522 - modifiedTime: 1739111225522 - lastModifiedBy: Dl5Tvf37OuEHwdAh + modifiedTime: 1768698408821 + lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!KBhSjWUjfwBAlCUq' diff --git a/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml b/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml index d457361..4bd256e 100644 --- a/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml +++ b/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml @@ -7,14 +7,17 @@ system: description: >-

You have spellcasting ability. You roll Wits to cast and the spell theorem you are casting serves as its touchstone. You know 4 spell theorems - inscribed in your spellbook, created using the Spell Crucible. Each session, - you can cast 4 spells and 2 potent spells. You choose which spell theorem to - use when you cast.

You can learn new spell theorems from studying and - experimenting with scrolls, which you might find as treasure or obtain from - other wizards. This consumes the scroll.


GROWTH: Every 2 levels, increase the castings of - spells and potent spells per session by 1 and create 1 new theorem with the - Spell Crucible.

+ inscribed in your spellbook, created using the + @UUID[Compendium.grimwild.rules.JournalEntry.WJWQtGwZcUubnCMj.JournalEntryPage.oAUafgvMOjLisdE2]{Spell + Crucible}. Each session, you can cast 4 spells and 2 potent spells. You + choose which spell theorem to use when you cast.

You can learn new + spell theorems from studying and experimenting with scrolls, which you might + find as treasure or obtain from other wizards. This consumes the + scroll.


GROWTH: Every 2 levels, increase the + castings of spells and potent spells per session by 1 and create 1 new + theorem with the + @UUID[Compendium.grimwild.rules.JournalEntry.WJWQtGwZcUubnCMj.JournalEntryPage.oAUafgvMOjLisdE2]{Spell + Crucible}.

core: true notes: description:

Write down your spell theorems here.

@@ -28,7 +31,6 @@ system: showSteps: true pool: diceNum: 0 - max: null - type: points label: Potent Spells points: @@ -37,8 +39,9 @@ system: showSteps: true pool: diceNum: 0 - max: null path: wizard + crucible: + instructions: '' effects: [] sort: 0 ownership: @@ -48,11 +51,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.1.0 + systemVersion: 0.4.0 createdTime: 1739542636102 - modifiedTime: 1739542636102 - lastModifiedBy: Dl5Tvf37OuEHwdAh + modifiedTime: 1768698501780 + lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!AxZp1G4i81EHnKl3' diff --git a/src/styles/global/_journals.scss b/src/styles/global/_journals.scss index 07f8bfb..c4a6529 100644 --- a/src/styles/global/_journals.scss +++ b/src/styles/global/_journals.scss @@ -12,7 +12,7 @@ } .journal-page-content { - font-size: 18px; + font-size: 14px; h1, h2, h3, h4, h5 { line-height: 1.1; diff --git a/src/styles/utils/_typography.scss b/src/styles/utils/_typography.scss index aacb3aa..14a18f5 100644 --- a/src/styles/utils/_typography.scss +++ b/src/styles/utils/_typography.scss @@ -1,9 +1,9 @@ @import url("https://use.typekit.net/cyl8kir.css"); -@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200..900;1,200..900&family=Noticia+Text:ital,wght@0,400;0,700;1,400;1,700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap'); $font-sans: var(--font-body); $font-display: 'tiller', sans-serif; // $font-body: 'Crimson Pro', sans-serif; -$font-body: 'Noticia Text', 'sans-serif'; +$font-body: 'Noto Serif', 'sans-serif'; $font-dice: 'greycliff-cf', sans-serif; \ No newline at end of file From 4ff9b64568d50bdc4375620152206d06aa56ad00 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sun, 18 Jan 2026 14:09:54 -0600 Subject: [PATCH 07/11] Fix lint errors --- src/module/documents/roll-table.mjs | 2 +- src/module/sheets/table-crucible-sheet.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/module/documents/roll-table.mjs b/src/module/documents/roll-table.mjs index 0d3c293..40497c8 100644 --- a/src/module/documents/roll-table.mjs +++ b/src/module/documents/roll-table.mjs @@ -77,4 +77,4 @@ export class GrimwildRollTable extends foundry.documents.RollTable { return crucibleRoll; } -} \ No newline at end of file +} diff --git a/src/module/sheets/table-crucible-sheet.mjs b/src/module/sheets/table-crucible-sheet.mjs index de89802..88b6dae 100644 --- a/src/module/sheets/table-crucible-sheet.mjs +++ b/src/module/sheets/table-crucible-sheet.mjs @@ -216,4 +216,4 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix const table = this.document; if ( table.replacement ) button.disabled = false; } -} \ No newline at end of file +} From 5e5ae03d7a8ded48440e2b8375904612912f71b1 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sun, 18 Jan 2026 14:20:06 -0600 Subject: [PATCH 08/11] Fix warnings --- src/module/controls/suspense.mjs | 2 +- src/module/data/actor-character.mjs | 2 +- src/module/data/item-arcana.mjs | 2 +- src/module/data/item-talent.mjs | 2 +- src/module/dice/crucible-rolls.mjs | 12 ++-- src/module/dice/rolls.mjs | 2 +- src/module/documents/chat-message.mjs | 34 +++++------ src/module/documents/roll-table.mjs | 44 +++++++-------- src/module/grimwild.mjs | 16 +++--- src/module/helpers/schema.mjs | 2 +- src/module/sheets/item-sheet-vue.mjs | 31 +++++----- src/module/sheets/table-crucible-sheet.mjs | 66 +++++++++++----------- src/vue/components/item/ItemAttributes.vue | 3 +- 13 files changed, 108 insertions(+), 110 deletions(-) diff --git a/src/module/controls/suspense.mjs b/src/module/controls/suspense.mjs index 88d4c71..abac327 100644 --- a/src/module/controls/suspense.mjs +++ b/src/module/controls/suspense.mjs @@ -165,7 +165,7 @@ class SuspenseTracker { const quickPoolHtml = isGM || quickPoolsVisibleToPlayers ? getScenePools() : ""; susControl.innerHTML = `${susControlInnerHTML}${quickPoolHtml}`; const susElement = document.querySelector("#sus-control"); - const poolElement = document.querySelector('.quick-pool-inner'); + const poolElement = document.querySelector(".quick-pool-inner"); if (isGM && susElement) { susElement.querySelector("#js-sus-up").onclick = () => setSuspense(getSuspense() + 1); diff --git a/src/module/data/actor-character.mjs b/src/module/data/actor-character.mjs index 8ea00c3..7ac3167 100644 --- a/src/module/data/actor-character.mjs +++ b/src/module/data/actor-character.mjs @@ -357,7 +357,7 @@ export default class GrimwildCharacter extends GrimwildActorBase { // Update the active turn. const combatantTurn = combat.turns.findIndex((c) => c.id === combatant.id); if (combatantTurn !== undefined) { - combat.update({'turn': combatantTurn}); + combat.update({ turn: combatantTurn }); } } } diff --git a/src/module/data/item-arcana.mjs b/src/module/data/item-arcana.mjs index 9d714c0..294c215 100644 --- a/src/module/data/item-arcana.mjs +++ b/src/module/data/item-arcana.mjs @@ -19,7 +19,7 @@ export default class GrimwildArcana extends GrimwildItemBase { // Arcana type. schema.tier = new fields.StringField({ - initial: 'minor', + initial: "minor" }); // Arbitrary notes. diff --git a/src/module/data/item-talent.mjs b/src/module/data/item-talent.mjs index fa099d7..6837765 100644 --- a/src/module/data/item-talent.mjs +++ b/src/module/data/item-talent.mjs @@ -1,4 +1,4 @@ -import { DicePoolField, CrucibleTableField } from "../helpers/schema.mjs"; +import { DicePoolField } from "../helpers/schema.mjs"; import GrimwildItemBase from "./base-item.mjs"; export default class GrimwildTalent extends GrimwildItemBase { diff --git a/src/module/dice/crucible-rolls.mjs b/src/module/dice/crucible-rolls.mjs index adf0b9c..c5f0144 100644 --- a/src/module/dice/crucible-rolls.mjs +++ b/src/module/dice/crucible-rolls.mjs @@ -11,7 +11,7 @@ export default class GrimwildCrucibleRoll extends Roll { } if (!this.options.crucible) { - throw new Error(`A crucible object must be supplied in options.crucible for this roll.`); + throw new Error("A crucible object must be supplied in options.crucible for this roll."); } } @@ -26,11 +26,11 @@ export default class GrimwildCrucibleRoll extends Roll { tooltip: isPrivate ? "" : await this.getTooltip(), stat: this.options.stat, dice: dice, - name: this.options.crucible?.name ?? 'Crucible', - crucible: { - 0: this.options.crucible.table[dice[0].result][dice[1].result], - 1: this.options.crucible.table[dice[1].result][dice[0].result], - }, + name: this.options.crucible?.name ?? "Crucible", + crucible: { + 0: this.options.crucible.table[dice[0].result][dice[1].result], + 1: this.options.crucible.table[dice[1].result][dice[0].result] + }, isPrivate: isPrivate }; diff --git a/src/module/dice/rolls.mjs b/src/module/dice/rolls.mjs index 0a91f1f..bda0f5c 100644 --- a/src/module/dice/rolls.mjs +++ b/src/module/dice/rolls.mjs @@ -67,7 +67,7 @@ export default class GrimwildRoll extends Roll { chatData.result = successToResult(chatData.success); chatData.rawResult = successToResult(chatData.rawSuccess); chatData.isCut = chatData.success !== chatData.rawSuccess; - chatData.isFail = ['disaster', 'grim', 'messy'].includes(chatData.result); + chatData.isFail = ["disaster", "grim", "messy"].includes(chatData.result); // Separate assist dice from other dice if (this.options?.assists) { diff --git a/src/module/documents/chat-message.mjs b/src/module/documents/chat-message.mjs index 8479ffa..8b7f346 100644 --- a/src/module/documents/chat-message.mjs +++ b/src/module/documents/chat-message.mjs @@ -1,5 +1,3 @@ -import { GrimwildActor } from "./actor.mjs"; - export class GrimwildChatMessage extends ChatMessage { /** @inheritDoc */ async renderHTML(...args) { @@ -88,7 +86,7 @@ export class GrimwildChatMessage extends ChatMessage { return; } } - else if (['applyMark', 'applyHarm'].includes(action)) { + else if (["applyMark", "applyHarm"].includes(action)) { if (damageTaken) { element.setAttribute("disabled", true); return; @@ -107,7 +105,7 @@ export class GrimwildChatMessage extends ChatMessage { return { updateSpark: this._updateSpark, applyMark: this._applyHarm, - applyHarm: this._applyHarm, + applyHarm: this._applyHarm }; } @@ -199,25 +197,23 @@ export class GrimwildChatMessage extends ChatMessage { let harmUpdate = {}; // Handle marks. if (stat) { - if (['bra', 'agi', 'wit', 'pre'].includes(stat)) { + if (["bra", "agi", "wit", "pre"].includes(stat)) { const isMarked = actor.system.stats[stat].marked; if (!isMarked) { update[`system.stats.${stat}.marked`] = true; } + else if (["bra", "agi"].includes(stat)) { + harmUpdate = this.calculateHarm(actor, "bloodied"); + } else { - if (['bra', 'agi'].includes(stat)) { - harmUpdate = this.calculateHarm(actor, 'bloodied'); - } - else { - harmUpdate = this.calculateHarm(actor, 'rattled'); - } + harmUpdate = this.calculateHarm(actor, "rattled"); } } } // Handle harm. if (harm) { - if (['bloodied', 'rattled'].includes(harm)) { + if (["bloodied", "rattled"].includes(harm)) { harmUpdate = this.calculateHarm(actor, harm); } } @@ -255,21 +251,19 @@ export class GrimwildChatMessage extends ChatMessage { */ calculateHarm(actor, harm) { const harmPools = game.settings.get("grimwild", "enableHarmPools"); - const maxHarm = game.settings.get("grimwild", `max${harm === 'bloodied' ? 'Bloodied' : 'Rattled'}`) ?? 1; + const maxHarm = game.settings.get("grimwild", `max${harm === "bloodied" ? "Bloodied" : "Rattled"}`) ?? 1; const update = {}; - if (!actor.system[harm == 'bloodied' ? 'isBloodied' : 'isRattled']) { + if (!actor.system[harm === "bloodied" ? "isBloodied" : "isRattled"]) { update[`system.${harm}.marked`] = true; if (harmPools) { update[`system.${harm}.pool.diceNum`] = 1; } } + else if (!harmPools || actor.system[harm].pool.diceNum >= maxHarm) { + update["system.dropped"] = true; + } else { - if (!harmPools || actor.system[harm].pool.diceNum >= maxHarm) { - update[`system.dropped`] = true; - } - else { - update[`system.${harm}.pool.diceNum`] = actor.system[harm].pool.diceNum + 1; - } + update[`system.${harm}.pool.diceNum`] = actor.system[harm].pool.diceNum + 1; } return update; diff --git a/src/module/documents/roll-table.mjs b/src/module/documents/roll-table.mjs index 40497c8..25acce6 100644 --- a/src/module/documents/roll-table.mjs +++ b/src/module/documents/roll-table.mjs @@ -2,45 +2,45 @@ export class GrimwildRollTable extends foundry.documents.RollTable { async _preUpdate(changes, options, user) { await super._preUpdate(changes, options, user); - if (changes?.flags?.core?.sheetClass === 'grimwild.GrimwildRollTableCrucibleSheet') { + if (changes?.flags?.core?.sheetClass === "grimwild.GrimwildRollTableCrucibleSheet") { if (this.results && this.results.size < 36) { - const results = Array.fromRange(36 - this.results.size, 1).map(result => { + const results = Array.fromRange(36 - this.results.size, 1).map((result) => { return { - name: '', + name: "", range: [result, result], weight: 1, - _id: foundry.utils.randomID(), + _id: foundry.utils.randomID() }; }); - changes.formula = '1d36'; + changes.formula = "1d36"; changes.results = results; } } } - async roll({roll, recursive=true, _depth=0}={}) { + async roll({ roll, recursive=true, _depth=0 }={}) { if (this.isCrucible()) { // @todo tie this to the rollCrucible() method. - return super.roll({roll, recursive, _depth}); - } - else { - return super.roll({roll, recursive, _depth}); + return super.roll({ roll, recursive, _depth }); } + + return super.roll({ roll, recursive, _depth }); + } isCrucible() { - return this.getFlag('core', 'sheetClass') === 'grimwild.GrimwildRollTableCrucibleSheet'; + return this.getFlag("core", "sheetClass") === "grimwild.GrimwildRollTableCrucibleSheet"; } getCrucibleTable() { if (this.isCrucible()) { const grid = { - 1: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 2: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 3: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 4: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 5: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 6: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, + 1: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 2: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 3: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 4: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 5: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 6: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" } }; let row = 1; let col = 1; @@ -61,13 +61,13 @@ export class GrimwildRollTable extends foundry.documents.RollTable { } } - async rollCrucible({toMessage=true}={}) { - const crucibleRoll = new grimwild.rollCrucible('{2d6}', {}, { + async rollCrucible({ toMessage=true }={}) { + const crucibleRoll = new grimwild.rollCrucible("{2d6}", {}, { crucible: { name: this.name, - instructions: '', - table: this.getCrucibleTable(), - }, + instructions: "", + table: this.getCrucibleTable() + } }); await crucibleRoll.roll(); diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index 447189d..d8899bc 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -33,7 +33,7 @@ globalThis.grimwild = { GrimwildItem, GrimwildChatMessage, GrimwildCombat, - GrimwildRollTable, + GrimwildRollTable }, applications: { GrimwildActorSheet, @@ -50,7 +50,7 @@ globalThis.grimwild = { models, roll: dice.GrimwildRoll, rollCrucible: dice.GrimwildCrucibleRoll, - diePools: dice.GrimwildDiePoolRoll, + diePools: dice.GrimwildDiePoolRoll }; Hooks.once("init", function () { @@ -127,7 +127,7 @@ Hooks.once("init", function () { }); foundry.documents.collections.RollTables.registerSheet("grimwild", GrimwildRollTableCrucibleSheet, { makeDefault: false, - label: "GRIMWILD.SheetLabels.RollTable", + label: "GRIMWILD.SheetLabels.RollTable" }); // Handlebars utilities. @@ -262,7 +262,7 @@ Hooks.once("setup", function () { - ${rollTable.results.map((result) => ``).join('')} + ${rollTable.results.map((result) => ``).join("")}
${result.name}
${result.name}
@@ -301,18 +301,18 @@ Hooks.once("ready", function () { } }); - document.addEventListener('click', async (event) => { - if (event.target?.classList.contains('enriched-crucible-roll')) { + document.addEventListener("click", async (event) => { + if (event.target?.classList.contains("enriched-crucible-roll")) { event.preventDefault(); const { uuid } = event.target.dataset; if (uuid) { const rollTable = await fromUuid(uuid); if (rollTable.isCrucible()) { - rollTable.rollCrucible({toMessage: true}); + rollTable.rollCrucible({ toMessage: true }); } } } - }) + }); }); Hooks.once("renderHotbar", function () { diff --git a/src/module/helpers/schema.mjs b/src/module/helpers/schema.mjs index ccd3756..2133bd6 100644 --- a/src/module/helpers/schema.mjs +++ b/src/module/helpers/schema.mjs @@ -50,7 +50,7 @@ export class CrucibleTableField extends fields.SchemaField { // Table roll instructions. instructions: new fields.StringField(optionalString), // Table results. Outer schema is columns, inner schema is rows. - table: tableSchema, + table: tableSchema }; super(tableFields, options, context); diff --git a/src/module/sheets/item-sheet-vue.mjs b/src/module/sheets/item-sheet-vue.mjs index 6a293c0..00de776 100644 --- a/src/module/sheets/item-sheet-vue.mjs +++ b/src/module/sheets/item-sheet-vue.mjs @@ -23,7 +23,7 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS viewPermission: DOCUMENT_OWNERSHIP_LEVELS.LIMITED, editPermission: DOCUMENT_OWNERSHIP_LEVELS.OWNER, position: { - width: 600, + width: 600 // height: 720, }, window: { @@ -41,7 +41,8 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS createArrayEntry: this._createArrayEntry, deleteArrayEntry: this._deleteArrayEntry, rollPool: this._rollPool, - rollCrucible: this._rollCrucible, + // @TODO restore when crucibles are added back to talents. + // rollCrucible: this._rollCrucible }, // Custom property that's merged into `this.options` dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }], @@ -413,16 +414,18 @@ export class GrimwildItemSheetVue extends VueRenderingMixin(GrimwildBaseVueItemS } } - /** - * Handle rolling crucibles on the item sheet. - * @todo abstract this to the item itself. - * - * @param {PointerEvent} event The originating click event - * @param {HTMLElement} target The capturing HTML element which defined a [data-action] - * @private - */ - static async _rollCrucible(event, target) { - event.preventDefault(); - const result = await this.document.system.rollCrucible({toMessage: true}); - } + // @TODO restore when crucibles are added back to talents. + // /** + // * Handle rolling crucibles on the item sheet. + // * @todo abstract this to the item itself. + // * + // * @param {PointerEvent} event The originating click event + // * @param {HTMLElement} target The capturing HTML element which defined a [data-action] + // * @returns + // * @private + // */ + // static async _rollCrucible(event, target) { + // event.preventDefault(); + // await this.document.system.rollCrucible({ toMessage: true }); + // } } diff --git a/src/module/sheets/table-crucible-sheet.mjs b/src/module/sheets/table-crucible-sheet.mjs index 88b6dae..28541da 100644 --- a/src/module/sheets/table-crucible-sheet.mjs +++ b/src/module/sheets/table-crucible-sheet.mjs @@ -17,12 +17,12 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix icon: "fa-solid fa-table-list", resizable: true }, - position: {width: 720}, + position: { width: 720 }, form: { closeOnSubmit: false }, actions: { - drawResult: GrimwildRollTableCrucibleSheet.#onDrawResult, + drawResult: GrimwildRollTableCrucibleSheet.#onDrawResult } }; @@ -34,30 +34,30 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix scrollable: ["table[data-results] tbody"], root: true }, - header: {template: "templates/sheets/roll-table/edit/header.hbs"}, - tabs: {template: "templates/generic/tab-navigation.hbs"}, + header: { template: "templates/sheets/roll-table/edit/header.hbs" }, + tabs: { template: "templates/generic/tab-navigation.hbs" }, results: { template: "systems/grimwild/templates/roll-table/edit/crucible-results.hbs", templates: ["templates/sheets/roll-table/result-details.hbs"], scrollable: ["table[data-results] tbody"] }, - summary: {template: "templates/sheets/roll-table/edit/summary.hbs"}, - footer: {template: "templates/generic/form-footer.hbs"} + summary: { template: "templates/sheets/roll-table/edit/summary.hbs" }, + footer: { template: "templates/generic/form-footer.hbs" } }; static MODE_PARTS = { edit: ["header", "results", "footer"], view: ["sheet", "footer"] - } + }; grid = { - 1: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 2: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 3: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 4: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 5: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - 6: {1: '', 2: '', 3: '', 4: '', 5: '', 6: ''}, - } + 1: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 2: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 3: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 4: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 5: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" }, + 6: { 1: "", 2: "", 3: "", 4: "", 5: "", 6: "" } + }; /** @inheritDoc */ _prepareSubmitData(event, form, formData, updateData) { @@ -70,14 +70,14 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix /** @inheritDoc */ async submit(options) { - if ( !this.isEditMode ) return; + if (!this.isEditMode) return; return super.submit(options); } /** @inheritDoc */ _configureRenderOptions(options) { - if ( !this.isEditable ) this.mode = "view"; - else if ( options.isFirstRender && !this.document.results.size ) this.mode = "edit"; + if (!this.isEditable) this.mode = "view"; + else if (options.isFirstRender && !this.document.results.size) this.mode = "edit"; return super._configureRenderOptions(options); } @@ -87,21 +87,21 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix _configureRenderParts(options) { const parts = super._configureRenderParts(options); const allowedParts = this.constructor.MODE_PARTS[this.mode]; - for ( const partId in parts ) { - if ( !allowedParts.includes(partId) ) delete parts[partId]; + for (const partId in parts) { + if (!allowedParts.includes(partId)) delete parts[partId]; } return parts; } _prepareTabs(group) { - return {tabs: {}}; + return { tabs: {} }; } /** @inheritDoc */ async _preparePartContext(partId, context, options) { context = await super._preparePartContext(partId, context, options); - const {description, results, isOwner} = context.document; - switch ( partId ) { + const { description, results, isOwner } = context.document; + switch (partId) { case "results": context.tab = context.tabs.results; context.resultFields = foundry.documents.TableResult.schema.fields; @@ -113,7 +113,7 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix // context.formulaPlaceholder = `1d${results.size || 20}`; // break; case "sheet": // Lone view-mode part - context.descriptionHTML = await TextEditor.implementation.enrichHTML(description, {secrets: isOwner}); + context.descriptionHTML = await TextEditor.implementation.enrichHTML(description, { secrets: isOwner }); context.formula = context.source.formula || `1d${results.size || 20}`; await this._prepareCrucibleGrid(context); break; @@ -132,7 +132,7 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix label: "TABLE.ACTIONS.DrawResult" } ]; - if ( this.isEditMode ) { + if (this.isEditMode) { context.buttons.unshift({ type: "submit", icon: "fa-solid fa-floppy-disk", @@ -161,8 +161,8 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix img: result.icon, name: result.name, fields: result.schema.fields, - description: await TextEditor.implementation.enrichHTML(result.description, {relativeTo: result, - secrets: result.isOwner}), + description: await TextEditor.implementation.enrichHTML(result.description, { relativeTo: result, + secrets: result.isOwner }), documentLink: result.documentToAnchor()?.outerHTML, weight: result.weight, range, @@ -172,7 +172,7 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix async _prepareCrucibleGrid(context) { const { results } = context.document; - const getSortedResults = () => results.contents.sort(this._sortResults.bind(this)).slice(0,36); + const getSortedResults = () => results.contents.sort(this._sortResults.bind(this)).slice(0, 36); context.results = await Promise.all(getSortedResults().map(this._prepareResult.bind(this))); context.grid = this.document.getCrucibleTable(); } @@ -194,26 +194,26 @@ export class GrimwildRollTableCrucibleSheet extends api.HandlebarsApplicationMix }).bind(this.element); // Allow draws with replacement by observers even if the Table is not editable - if ( !options.parts.includes("footer") ) return; + if (!options.parts.includes("footer")) return; const table = context.document; const drawButton = this.element.querySelector("button[data-action=drawResult]"); - if ( table.replacement && table.testUserPermission(game.user, "OBSERVER") ) { + if (table.replacement && table.testUserPermission(game.user, "OBSERVER")) { drawButton.disabled = false; } // Disallow draws without replacement from compendium Tables - else if ( !table.replacement && table.pack ) { + else if (!table.replacement && table.pack) { drawButton.disabled = true; } } static async #onDrawResult(_event, button) { - if ( this.form ) await this.submit({operation: {render: false}}); + if (this.form) await this.submit({ operation: { render: false } }); button.disabled = true; - await this.document.rollCrucible({toMessage: true}); + await this.document.rollCrucible({ toMessage: true }); // Reenable the button if drawing with replacement since the draw won't trigger a sheet re-render const table = this.document; - if ( table.replacement ) button.disabled = false; + if (table.replacement) button.disabled = false; } } diff --git a/src/vue/components/item/ItemAttributes.vue b/src/vue/components/item/ItemAttributes.vue index 1f2de26..6f77783 100644 --- a/src/vue/components/item/ItemAttributes.vue +++ b/src/vue/components/item/ItemAttributes.vue @@ -1,5 +1,6 @@ From 0452a383a74e9f6de06c055a4c544334a2f355e1 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sun, 18 Jan 2026 14:41:43 -0600 Subject: [PATCH 09/11] Add button to create crucibles --- src/module/grimwild.mjs | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index d8899bc..11e07e1 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -312,6 +312,46 @@ Hooks.once("ready", function () { } } } + + if (event.target?.classList.contains("create-crucible")) { + event.preventDefault(); + try { + const crucibleName = await foundry.applications.api.DialogV2.prompt({ + window: { title: "Create Crucible Table" }, + content: ` +
+ + +
`, + ok: { + label: "Create Crucible Table", + callback: (event, button, dialog) => button.form.elements.name.value + } + }); + const defaultData = Array.fromRange(36,1).map(result => { + return { + name: "", + range: [result, result], + weight: 1, + type: "text" + }; + }); + RollTable.create({ + name: crucibleName?.length > 0 ? crucibleName : "Crucible", + formula: "1d36", + results: defaultData, + flags: { + core: { + sheetClass: "grimwild.GrimwildRollTableCrucibleSheet" + } + } + }); + } + catch (error) { + console.error(error); + return; + } + } }); }); @@ -329,6 +369,14 @@ Hooks.on("renderSceneControls", (application, html, data) => { SUSPENSE_TRACKER.render(); }); +Hooks.on("renderDocumentDirectory", (application, html, data) => { + if (data.documentName === "RollTable") { + html.querySelector(".header-actions").insertAdjacentHTML("afterbegin", ` + + `); + } +}); + /* -------------------------------------------- */ /* Dice So Nice */ /* -------------------------------------------- */ From 301e8215bc16e7f0d7b1492a910b3a1c9fc27d72 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sun, 18 Jan 2026 14:45:21 -0600 Subject: [PATCH 10/11] i18n for crucibles --- src/module/grimwild.mjs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/module/grimwild.mjs b/src/module/grimwild.mjs index 11e07e1..f7afb4b 100644 --- a/src/module/grimwild.mjs +++ b/src/module/grimwild.mjs @@ -315,16 +315,17 @@ Hooks.once("ready", function () { if (event.target?.classList.contains("create-crucible")) { event.preventDefault(); + const label = game.i18n.format("DOCUMENT.Create", {type: "Crucible Table"}); try { const crucibleName = await foundry.applications.api.DialogV2.prompt({ - window: { title: "Create Crucible Table" }, + window: { title: label }, content: `
`, ok: { - label: "Create Crucible Table", + label: label, callback: (event, button, dialog) => button.form.elements.name.value } }); @@ -372,7 +373,7 @@ Hooks.on("renderSceneControls", (application, html, data) => { Hooks.on("renderDocumentDirectory", (application, html, data) => { if (data.documentName === "RollTable") { html.querySelector(".header-actions").insertAdjacentHTML("afterbegin", ` - + `); } }); From 71597e2c5b61d100efb55304062509373c0063a9 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Sun, 18 Jan 2026 15:06:03 -0600 Subject: [PATCH 11/11] Add herbalism and GM crucibles --- .../Herbalism_1_NyXKbhDPuI89I47r.yml | 747 ++++++++++++++++++ .../Herbalism_2_b3bE4RnBpBwA1ZHZ.yml | 747 ++++++++++++++++++ .../Herbalism_Crucible_YvQ4VZIy1yev1oq7.yml | 20 + .../GM_Crucibles_czz9p07Cxj5KiIQu.yml | 57 ++ .../macros/GM_Crucible_IexJbzx3zjr1iw7R.yml | 87 -- .../Herbalism_Crucible_VTidfshGP2QVF5qd.yml | 57 ++ .../talents/Alchemist_KQM82DlCYc9UZiJD.yml | 12 +- .../Arcane_Training_KBhSjWUjfwBAlCUq.yml | 2 - .../talents/Herbalism_PbpG5CeFndV9DXjn.yml | 18 +- .../Prepared_Spell_VpN3x2xMR2utoraH.yml | 15 +- .../talents/Sorcery_MnncHMBYzPHIQJWG.yml | 16 +- .../talents/Spellcraft_AxZp1G4i81EHnKl3.yml | 2 - 12 files changed, 1661 insertions(+), 119 deletions(-) create mode 100644 src/packs/crucibles/Herbalism_1_NyXKbhDPuI89I47r.yml create mode 100644 src/packs/crucibles/Herbalism_2_b3bE4RnBpBwA1ZHZ.yml create mode 100644 src/packs/crucibles/Herbalism_Crucible_YvQ4VZIy1yev1oq7.yml create mode 100644 src/packs/gm_toolkit/GM_Crucibles_czz9p07Cxj5KiIQu.yml delete mode 100644 src/packs/macros/GM_Crucible_IexJbzx3zjr1iw7R.yml create mode 100644 src/packs/rules/Herbalism_Crucible_VTidfshGP2QVF5qd.yml diff --git a/src/packs/crucibles/Herbalism_1_NyXKbhDPuI89I47r.yml b/src/packs/crucibles/Herbalism_1_NyXKbhDPuI89I47r.yml new file mode 100644 index 0000000..0f93ae9 --- /dev/null +++ b/src/packs/crucibles/Herbalism_1_NyXKbhDPuI89I47r.yml @@ -0,0 +1,747 @@ +name: Herbalism 1 +formula: 1d36 +results: + - name: choke + range: + - 1 + - 1 + weight: 1 + type: text + _id: Ggz94YneEb4QvRfW + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.Ggz94YneEb4QvRfW' + - name: star + range: + - 2 + - 2 + weight: 1 + type: text + _id: FwGXtX1Fn99Jpvmj + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.FwGXtX1Fn99Jpvmj' + - name: sun + range: + - 3 + - 3 + weight: 1 + type: text + _id: 8FYGcWhgxC7kGWVh + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.8FYGcWhgxC7kGWVh' + - name: dream + range: + - 4 + - 4 + weight: 1 + type: text + _id: gGnkpANwtuIeACHH + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.gGnkpANwtuIeACHH' + - name: mist + range: + - 5 + - 5 + weight: 1 + type: text + _id: dp8MI1aMcX9CtOlZ + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.dp8MI1aMcX9CtOlZ' + - name: zap + range: + - 6 + - 6 + weight: 1 + type: text + _id: t1JVpH6rGEpdLMS9 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.t1JVpH6rGEpdLMS9' + - name: sticky + range: + - 7 + - 7 + weight: 1 + type: text + _id: EoWcBpgTuPLCUrn2 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.EoWcBpgTuPLCUrn2' + - name: stone + range: + - 8 + - 8 + weight: 1 + type: text + _id: zTyaMpZ5zzNYiW1b + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.zTyaMpZ5zzNYiW1b' + - name: moon + range: + - 9 + - 9 + weight: 1 + type: text + _id: D5W965pDfHppdBfo + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.D5W965pDfHppdBfo' + - name: feather + range: + - 10 + - 10 + weight: 1 + type: text + _id: gA6NbEneoca5DXC9 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.gA6NbEneoca5DXC9' + - name: soot + range: + - 11 + - 11 + weight: 1 + type: text + _id: 69Ek0jSVecma5f7e + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.69Ek0jSVecma5f7e' + - name: blast + range: + - 12 + - 12 + weight: 1 + type: text + _id: 1M39ADQG7TWZTYon + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.1M39ADQG7TWZTYon' + - name: wool + range: + - 13 + - 13 + weight: 1 + type: text + _id: poVVdmKAVADxEBxG + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.poVVdmKAVADxEBxG' + - name: dust + range: + - 14 + - 14 + weight: 1 + type: text + _id: mSLsjcU4h5rCKJoM + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.mSLsjcU4h5rCKJoM' + - name: devil + range: + - 15 + - 15 + weight: 1 + type: text + _id: jjUudfrgmhZBcFvV + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.jjUudfrgmhZBcFvV' + - name: wild + range: + - 16 + - 16 + weight: 1 + type: text + _id: 8xmFzmXi4O7xVIbb + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.8xmFzmXi4O7xVIbb' + - name: freeze + range: + - 17 + - 17 + weight: 1 + type: text + _id: 15kUg6mxdhWLDbCq + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.15kUg6mxdhWLDbCq' + - name: blood + range: + - 18 + - 18 + weight: 1 + type: text + _id: 6qrHpx3q1IQ7AORm + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.6qrHpx3q1IQ7AORm' + - name: smoke + range: + - 19 + - 19 + weight: 1 + type: text + _id: j4p9dGhGNk9cDvLO + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.j4p9dGhGNk9cDvLO' + - name: snake + range: + - 20 + - 20 + weight: 1 + type: text + _id: btHv43EFHCXg0F2U + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.btHv43EFHCXg0F2U' + - name: honey + range: + - 21 + - 21 + weight: 1 + type: text + _id: BjF1f4J7Wcuj5zS0 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.BjF1f4J7Wcuj5zS0' + - name: mirror + range: + - 22 + - 22 + weight: 1 + type: text + _id: 0pJU4yUGps4bBoLM + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.0pJU4yUGps4bBoLM' + - name: sting + range: + - 23 + - 23 + weight: 1 + type: text + _id: OgFvDSYCWbuadYS6 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.OgFvDSYCWbuadYS6' + - name: ink + range: + - 24 + - 24 + weight: 1 + type: text + _id: appXJlCW2jxDHJ9v + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.appXJlCW2jxDHJ9v' + - name: shriek + range: + - 25 + - 25 + weight: 1 + type: text + _id: KDWISChNtM9xPCjW + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.KDWISChNtM9xPCjW' + - name: mimic + range: + - 26 + - 26 + weight: 1 + type: text + _id: k87xAECFSjdGNdf1 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.k87xAECFSjdGNdf1' + - name: goat + range: + - 27 + - 27 + weight: 1 + type: text + _id: qRckRzAXK4gpmF4x + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.qRckRzAXK4gpmF4x' + - name: worm + range: + - 28 + - 28 + weight: 1 + type: text + _id: 7C4fn6qD7IqFcD2U + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.7C4fn6qD7IqFcD2U' + - name: steel + range: + - 29 + - 29 + weight: 1 + type: text + _id: 0flNnVwcptRVm4Gd + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.0flNnVwcptRVm4Gd' + - name: skunk + range: + - 30 + - 30 + weight: 1 + type: text + _id: U9dqQaD6OEIiY31k + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.U9dqQaD6OEIiY31k' + - name: giggle + range: + - 31 + - 31 + weight: 1 + type: text + _id: TgritmHxpqPoWCAb + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.TgritmHxpqPoWCAb' + - name: needle + range: + - 32 + - 32 + weight: 1 + type: text + _id: lLYmhQNNLhGBlVGO + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.lLYmhQNNLhGBlVGO' + - name: night + range: + - 33 + - 33 + weight: 1 + type: text + _id: ji36iruN3412WdDG + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.ji36iruN3412WdDG' + - name: swell + range: + - 34 + - 34 + weight: 1 + type: text + _id: 2A0Q0M7hkAkRMUns + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.2A0Q0M7hkAkRMUns' + - name: faerie + range: + - 35 + - 35 + weight: 1 + type: text + _id: 58PJdqYGij7QBpQO + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.58PJdqYGij7QBpQO' + - name: dragon + range: + - 36 + - 36 + weight: 1 + type: text + _id: z9BC9EgYhROGqAMV + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!NyXKbhDPuI89I47r.z9BC9EgYhROGqAMV' +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +img: icons/tools/laboratory/mortar-powder-green.webp +description: '' +replacement: true +displayRoll: true +folder: YvQ4VZIy1yev1oq7 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768770188173 + modifiedTime: 1768770188173 + lastModifiedBy: UV77mtxQgW7KpS6B +_id: NyXKbhDPuI89I47r +sort: 0 +_key: '!tables!NyXKbhDPuI89I47r' diff --git a/src/packs/crucibles/Herbalism_2_b3bE4RnBpBwA1ZHZ.yml b/src/packs/crucibles/Herbalism_2_b3bE4RnBpBwA1ZHZ.yml new file mode 100644 index 0000000..0df3bf6 --- /dev/null +++ b/src/packs/crucibles/Herbalism_2_b3bE4RnBpBwA1ZHZ.yml @@ -0,0 +1,747 @@ +name: Herbalism 2 +formula: 1d36 +results: + - name: cap + range: + - 1 + - 1 + weight: 1 + type: text + _id: 6TIXx8S22NrYOsCs + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.6TIXx8S22NrYOsCs' + - name: lily + range: + - 2 + - 2 + weight: 1 + type: text + _id: 0tARTg668qGxo8cK + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.0tARTg668qGxo8cK' + - name: thistle + range: + - 3 + - 3 + weight: 1 + type: text + _id: 7RieJFdOkKLWulV6 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.7RieJFdOkKLWulV6' + - name: pod + range: + - 4 + - 4 + weight: 1 + type: text + _id: hDekbNjoHemlwGdj + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.hDekbNjoHemlwGdj' + - name: stem + range: + - 5 + - 5 + weight: 1 + type: text + _id: 6189uPh8YKq8VR6a + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.6189uPh8YKq8VR6a' + - name: petal + range: + - 6 + - 6 + weight: 1 + type: text + _id: aXt7LO6DmPeMvDhN + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.aXt7LO6DmPeMvDhN' + - name: wort + range: + - 7 + - 7 + weight: 1 + type: text + _id: 9LQ2Wfxr3MSGeP9T + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.9LQ2Wfxr3MSGeP9T' + - name: reed + range: + - 8 + - 8 + weight: 1 + type: text + _id: 29xsDWRgk3pS4FC1 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.29xsDWRgk3pS4FC1' + - name: bell + range: + - 9 + - 9 + weight: 1 + type: text + _id: PughcG6PYWhCafF6 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.PughcG6PYWhCafF6' + - name: bud + range: + - 10 + - 10 + weight: 1 + type: text + _id: 4vQAYwQ1jQQh8peS + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.4vQAYwQ1jQQh8peS' + - name: shoot + range: + - 11 + - 11 + weight: 1 + type: text + _id: EAvKMVSybyfznR3H + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.EAvKMVSybyfznR3H' + - name: bean + range: + - 12 + - 12 + weight: 1 + type: text + _id: JbIRcY0CwV0IFFK1 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.JbIRcY0CwV0IFFK1' + - name: rose + range: + - 13 + - 13 + weight: 1 + type: text + _id: pWeibFSUOevktFXl + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.pWeibFSUOevktFXl' + - name: flower + range: + - 14 + - 14 + weight: 1 + type: text + _id: i9JggaqML94dlq93 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.i9JggaqML94dlq93' + - name: leaf + range: + - 15 + - 15 + weight: 1 + type: text + _id: u5raAnu38HPfIZF7 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.u5raAnu38HPfIZF7' + - name: tongue + range: + - 16 + - 16 + weight: 1 + type: text + _id: mPGp7ekZiTO0jz43 + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.mPGp7ekZiTO0jz43' + - name: bark + range: + - 17 + - 17 + weight: 1 + type: text + _id: 46tc7HSUaFX6LU2q + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.46tc7HSUaFX6LU2q' + - name: tuber + range: + - 18 + - 18 + weight: 1 + type: text + _id: XgwAzO7b7VjwU5ZM + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.XgwAzO7b7VjwU5ZM' + - name: bush + range: + - 19 + - 19 + weight: 1 + type: text + _id: Wy7VjL5ToL0Xp7iS + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.Wy7VjL5ToL0Xp7iS' + - name: root + range: + - 20 + - 20 + weight: 1 + type: text + _id: qPHxoAXHFgGJZ1hV + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.qPHxoAXHFgGJZ1hV' + - name: wood + range: + - 21 + - 21 + weight: 1 + type: text + _id: f4SNcix0yCcEY0sU + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.f4SNcix0yCcEY0sU' + - name: berry + range: + - 22 + - 22 + weight: 1 + type: text + _id: MSgdPicGGJ5gbTIU + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.MSgdPicGGJ5gbTIU' + - name: funnel + range: + - 23 + - 23 + weight: 1 + type: text + _id: rTl9NhQooGuCWsgd + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.rTl9NhQooGuCWsgd' + - name: vine + range: + - 24 + - 24 + weight: 1 + type: text + _id: Yvxqft0FZEhz7RuS + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.Yvxqft0FZEhz7RuS' + - name: shroom + range: + - 25 + - 25 + weight: 1 + type: text + _id: U56Ml623iOpIumbS + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.U56Ml623iOpIumbS' + - name: spine + range: + - 26 + - 26 + weight: 1 + type: text + _id: ViNOPZl0FcRSb0mB + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.ViNOPZl0FcRSb0mB' + - name: grass + range: + - 27 + - 27 + weight: 1 + type: text + _id: WZrG9HXcUYvq62Mh + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.WZrG9HXcUYvq62Mh' + - name: lace + range: + - 28 + - 28 + weight: 1 + type: text + _id: D5idcCoisKO4UfYU + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.D5idcCoisKO4UfYU' + - name: moss + range: + - 29 + - 29 + weight: 1 + type: text + _id: SKrPyFg6Da85qByF + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.SKrPyFg6Da85qByF' + - name: seed + range: + - 30 + - 30 + weight: 1 + type: text + _id: Dp774RuOA1PGOSyz + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.Dp774RuOA1PGOSyz' + - name: sprout + range: + - 31 + - 31 + weight: 1 + type: text + _id: G1fPh8GnaunR9CZC + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.G1fPh8GnaunR9CZC' + - name: shade + range: + - 32 + - 32 + weight: 1 + type: text + _id: bjI2QFcHcgkPMFLW + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.bjI2QFcHcgkPMFLW' + - name: thorn + range: + - 33 + - 33 + weight: 1 + type: text + _id: YH5mKVzqFLJNbBEV + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.YH5mKVzqFLJNbBEV' + - name: bane + range: + - 34 + - 34 + weight: 1 + type: text + _id: sAbrc3Od6lKZ3xIh + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.sAbrc3Od6lKZ3xIh' + - name: branch + range: + - 35 + - 35 + weight: 1 + type: text + _id: yXELF2ef8shF5tVi + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.yXELF2ef8shF5tVi' + - name: weed + range: + - 36 + - 36 + weight: 1 + type: text + _id: xbZkFGkZ1UPUs9Zg + img: null + description: '' + drawn: false + flags: {} + _stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + lastModifiedBy: null + _key: '!tables.results!b3bE4RnBpBwA1ZHZ.xbZkFGkZ1UPUs9Zg' +flags: + core: + sheetClass: grimwild.GrimwildRollTableCrucibleSheet +img: icons/tools/laboratory/mortar-liquid-pink.webp +description: '' +replacement: true +displayRoll: true +folder: YvQ4VZIy1yev1oq7 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768770190390 + modifiedTime: 1768770190390 + lastModifiedBy: UV77mtxQgW7KpS6B +_id: b3bE4RnBpBwA1ZHZ +sort: 0 +_key: '!tables!b3bE4RnBpBwA1ZHZ' diff --git a/src/packs/crucibles/Herbalism_Crucible_YvQ4VZIy1yev1oq7.yml b/src/packs/crucibles/Herbalism_Crucible_YvQ4VZIy1yev1oq7.yml new file mode 100644 index 0000000..31591ea --- /dev/null +++ b/src/packs/crucibles/Herbalism_Crucible_YvQ4VZIy1yev1oq7.yml @@ -0,0 +1,20 @@ +type: RollTable +folder: null +name: Herbalism Crucible +color: '#244503' +sorting: a +_id: YvQ4VZIy1yev1oq7 +description: '' +sort: 0 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768770175903 + modifiedTime: 1768770182369 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!folders!YvQ4VZIy1yev1oq7' diff --git a/src/packs/gm_toolkit/GM_Crucibles_czz9p07Cxj5KiIQu.yml b/src/packs/gm_toolkit/GM_Crucibles_czz9p07Cxj5KiIQu.yml new file mode 100644 index 0000000..88552a9 --- /dev/null +++ b/src/packs/gm_toolkit/GM_Crucibles_czz9p07Cxj5KiIQu.yml @@ -0,0 +1,57 @@ +folder: V3M0EcoDlbmFxQPL +name: GM Crucibles +_id: czz9p07Cxj5KiIQu +pages: + - sort: 100000 + name: GM Crucibles + type: text + _id: JoYMnN7cbo9HmXPW + system: {} + title: + show: false + level: 1 + image: {} + text: + format: 1 + content: >- +

@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.KAx8TYWLRm4w3jMW]{GM + Crucible 1}


@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.L0E7bnZtFjI51p3y]{GM + 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.4.0 + createdTime: 1768769652047 + modifiedTime: 1768769688239 + lastModifiedBy: UV77mtxQgW7KpS6B + _key: '!journal.pages!czz9p07Cxj5KiIQu.JoYMnN7cbo9HmXPW' +categories: [] +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768769643455 + modifiedTime: 1768769643455 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!journal!czz9p07Cxj5KiIQu' diff --git a/src/packs/macros/GM_Crucible_IexJbzx3zjr1iw7R.yml b/src/packs/macros/GM_Crucible_IexJbzx3zjr1iw7R.yml deleted file mode 100644 index c1e1438..0000000 --- a/src/packs/macros/GM_Crucible_IexJbzx3zjr1iw7R.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: GM Crucible -type: script -_id: IexJbzx3zjr1iw7R -author: Dl5Tvf37OuEHwdAh -img: icons/svg/dice-target.svg -scope: global -command: >- - // Macro to roll two different rolltables from a compendium called "crucibles" - - - // Define the compendium and the rolltable names - - const compendiumName = "grimwild.crucibles"; // Adjust to the correct - namespace for your system - - const rolltable1Name = "GM Crucible 1"; // Replace with the name of the first - rolltable - - const rolltable2Name = "GM Crucible 2"; // Replace with the name of the second - rolltable - - - // Function to roll a table by name - - async function rollTable(compendiumName, tableName) { - // Load the compendium - const compendium = game.packs.get(compendiumName); - if (!compendium) { - ui.notifications.error(`Compendium "${compendiumName}" not found.`); - return; - } - - // Ensure the compendium is loaded - await compendium.getIndex(); - - // Find the rolltable entry by name - const tableEntry = compendium.index.find((e) => e.name === tableName); - if (!tableEntry) { - ui.notifications.error(`RollTable "${tableName}" not found in compendium "${compendiumName}".`); - return; - } - - // Get the full rolltable document - const table = await compendium.getDocument(tableEntry._id); - if (!table) { - ui.notifications.error(`Failed to load RollTable "${tableName}".`); - return; - } - - // Roll the table - const rollResult = await table.roll(); - const resultText = rollResult.results - .map((r) => r.text) - .join(", "); // Combine results if multiple - - return resultText; - - } - - - // Roll both tables - - const result1 = await rollTable(compendiumName, rolltable1Name); - - const result2 = await rollTable(compendiumName, rolltable2Name); - - ChatMessage.create({ - content: `GM Crucible
Pick two and smash them together
- ${result1}
${result2}` - }); -folder: null -sort: 0 -ownership: - default: 0 - Dl5Tvf37OuEHwdAh: 3 -flags: {} -_stats: - compendiumSource: null - duplicateSource: null - coreVersion: '13.345' - systemId: grimwild - systemVersion: 0.1.0 - createdTime: 1737218496094 - modifiedTime: 1737218905108 - lastModifiedBy: Dl5Tvf37OuEHwdAh - exportSource: null -_key: '!macros!IexJbzx3zjr1iw7R' diff --git a/src/packs/rules/Herbalism_Crucible_VTidfshGP2QVF5qd.yml b/src/packs/rules/Herbalism_Crucible_VTidfshGP2QVF5qd.yml new file mode 100644 index 0000000..618de39 --- /dev/null +++ b/src/packs/rules/Herbalism_Crucible_VTidfshGP2QVF5qd.yml @@ -0,0 +1,57 @@ +folder: vUGdoKGy7PZ2fdfW +name: Herbalism Crucible +_id: VTidfshGP2QVF5qd +pages: + - sort: 100000 + name: Herbalism Crucible + type: text + _id: w7rxyVPbxAskLAdq + system: {} + title: + show: false + level: 1 + image: {} + text: + format: 1 + content: >- +

@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.NyXKbhDPuI89I47r]{Herbalism + 1}


@CRUCIBLE[Compendium.grimwild.crucibles.RollTable.b3bE4RnBpBwA1ZHZ]{Herbalism + 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.4.0 + createdTime: 1768770213971 + modifiedTime: 1768770241904 + lastModifiedBy: UV77mtxQgW7KpS6B + _key: '!journal.pages!VTidfshGP2QVF5qd.w7rxyVPbxAskLAdq' +categories: [] +sort: 0 +ownership: + default: 0 + UV77mtxQgW7KpS6B: 3 +flags: {} +_stats: + compendiumSource: null + duplicateSource: null + exportSource: null + coreVersion: '13.351' + systemId: grimwild + systemVersion: 0.4.0 + createdTime: 1768770207658 + modifiedTime: 1768770207658 + lastModifiedBy: UV77mtxQgW7KpS6B +_key: '!journal!VTidfshGP2QVF5qd' diff --git a/src/packs/talents/Alchemist_KQM82DlCYc9UZiJD.yml b/src/packs/talents/Alchemist_KQM82DlCYc9UZiJD.yml index 628d26e..306f5b3 100644 --- a/src/packs/talents/Alchemist_KQM82DlCYc9UZiJD.yml +++ b/src/packs/talents/Alchemist_KQM82DlCYc9UZiJD.yml @@ -8,7 +8,9 @@ system:

Each session, you have a 4d Potions resource pool. You can have a minor potion and roll the pool, or drop 1 and roll for a major potion. You know recipes for your spell theorems, plus two more - rolled on the Spell Crucible. Learn new recipes by sacrificing potions.

+ rolled on the + @UUID[Compendium.grimwild.rules.JournalEntry.WJWQtGwZcUubnCMj]{Spell + Crucible}. Learn new recipes by sacrificing potions.

core: false notes: description:

Write down your recipes here.

@@ -33,11 +35,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.1.0 + systemVersion: 0.4.0 createdTime: 1739542636102 - modifiedTime: 1739542636102 - lastModifiedBy: Dl5Tvf37OuEHwdAh + modifiedTime: 1768767417994 + lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!KQM82DlCYc9UZiJD' diff --git a/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml b/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml index 8681e49..b6a80cf 100644 --- a/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml +++ b/src/packs/talents/Arcane_Training_KBhSjWUjfwBAlCUq.yml @@ -32,8 +32,6 @@ system: pool: diceNum: 0 path: fighter - crucible: - instructions: '' effects: [] sort: 0 ownership: diff --git a/src/packs/talents/Herbalism_PbpG5CeFndV9DXjn.yml b/src/packs/talents/Herbalism_PbpG5CeFndV9DXjn.yml index 36e029f..450e263 100644 --- a/src/packs/talents/Herbalism_PbpG5CeFndV9DXjn.yml +++ b/src/packs/talents/Herbalism_PbpG5CeFndV9DXjn.yml @@ -5,11 +5,13 @@ _id: PbpG5CeFndV9DXjn img: icons/consumables/plants/leaf-hastate-glowing-green.webp system: description: >- -

Before each session, use the Herbalism Crucible to make two herb names - (snakeberry, blastbane). You have 1 minor potion of 1 - and 1 major potion of the other. The name is the touchstone. - They lose effect after the session. One time only, you can have 1 mythic - potion (choose after rolling).

+

Before each session, use the + @UUID[Compendium.grimwild.rules.JournalEntry.VTidfshGP2QVF5qd]{Herbalism + Crucible} to make two herb names (snakeberry, blastbane). You have + 1 minor potion of 1 and 1 major potion of the + other. The name is the touchstone. They lose effect after the + session. One time only, you can have 1 mythic potion (choose after + rolling).

core: false notes: description:

Write your two herb names here

@@ -41,11 +43,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.2.0 + systemVersion: 0.4.0 createdTime: 1739109608751 - modifiedTime: 1750165688362 + modifiedTime: 1768770300990 lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!PbpG5CeFndV9DXjn' diff --git a/src/packs/talents/Prepared_Spell_VpN3x2xMR2utoraH.yml b/src/packs/talents/Prepared_Spell_VpN3x2xMR2utoraH.yml index d26d628..795f285 100644 --- a/src/packs/talents/Prepared_Spell_VpN3x2xMR2utoraH.yml +++ b/src/packs/talents/Prepared_Spell_VpN3x2xMR2utoraH.yml @@ -16,13 +16,12 @@ system: trackers: - type: points label: Story - pool: - diceNum: 0 - max: null points: - showSteps: true value: 1 max: 1 + showSteps: true + pool: + diceNum: 0 path: wizard effects: [] sort: 0 @@ -33,11 +32,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.1.0 + systemVersion: 0.4.0 createdTime: 1739542636102 - modifiedTime: 1739542636102 - lastModifiedBy: Dl5Tvf37OuEHwdAh + modifiedTime: 1768767485161 + lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!VpN3x2xMR2utoraH' diff --git a/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml b/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml index ab1ece3..ff20eb7 100644 --- a/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml +++ b/src/packs/talents/Sorcery_MnncHMBYzPHIQJWG.yml @@ -19,9 +19,11 @@ system: 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 GM crucible or ask around your group for - ideas.


GROWTH: Every 2 levels, gain a new - technique or magic path.

+ 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 + path.

core: true notes: description:

Write down your 4 magic paths and techniques here.

@@ -37,11 +39,11 @@ flags: {} _stats: compendiumSource: null duplicateSource: null - coreVersion: '13.345' + coreVersion: '13.351' systemId: grimwild - systemVersion: 0.1.0 + systemVersion: 0.4.0 createdTime: 1739139357959 - modifiedTime: 1739139357959 - lastModifiedBy: Dl5Tvf37OuEHwdAh + modifiedTime: 1768769887601 + lastModifiedBy: UV77mtxQgW7KpS6B exportSource: null _key: '!items!MnncHMBYzPHIQJWG' diff --git a/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml b/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml index 4bd256e..184f91e 100644 --- a/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml +++ b/src/packs/talents/Spellcraft_AxZp1G4i81EHnKl3.yml @@ -40,8 +40,6 @@ system: pool: diceNum: 0 path: wizard - crucible: - instructions: '' effects: [] sort: 0 ownership: