Compare commits

..

6 Commits

Author SHA1 Message Date
uberwald 570ca6c953 fix(d30): text cleanup — OR→AND for bonus dice, mulligan gets (players only)
Release Creation / build (release) Successful in 59s
D30=30 and D30=20 bonus dice descriptions now say 'and' instead of 'or'
to reflect auto-roll behavior (no dialog choice). Mulligan D30=8 entries
appended with '(players only)' as GM reminder.
2026-07-15 23:18:44 +02:00
uberwald 4fd997d169 Renable compendiums 2026-07-07 18:44:59 +02:00
uberwald 28d6143f87 Renable compendiums
Release Creation / build (release) Successful in 1m3s
2026-07-07 18:13:46 +02:00
uberwald 7e5fb0baa7 Renable compendiums 2026-07-07 18:13:30 +02:00
uberwald 5734f3a5e3 Fix layperson skills ate character creation
Release Creation / build (release) Successful in 53s
2026-07-07 08:30:23 +02:00
uberwald 7675c47ff9 fix: persist rollType/actorId on rollBase.options, re-evaluate canReroll after mulligan
Release Creation / build (release) Failing after 2m9s
- roll-prompt.mjs: explicitly save rollType, actorId, actorName, actorImage
  to rollBase.options so mulligan reroll context reads valid values
- chat-reaction.mjs: replace canRerollDefense/canRerollAttack = false with
  recomputation from updated D30 message — aligns same-client with
  cross-client behavior (new D30 always takes effect, mulligan chain loops)
2026-07-06 08:56:58 +02:00
43 changed files with 830 additions and 183 deletions
-12
View File
@@ -8,15 +8,3 @@ node_modules/
.history
.github/
# LevelDB internals (auto-generated, churn on every open)
packs-system/**/*.log
packs-system/**/LOG
packs-system/**/LOG.old
packs-system/**/CURRENT
packs-system/**/LOCK
packs-system/**/MANIFEST-*
# YAML source for pack round-trip
packs_src/
+19 -19
View File
@@ -17,7 +17,7 @@
"target": "attack"
}
],
"description": "Possible Lethal or Vital Strike or Add D20E to Attack"
"description": "Possible Lethal or Vital Strike and Add D20E to Attack"
},
"ranged_attack": {
"type": "choice",
@@ -35,7 +35,7 @@
"target": "attack"
}
],
"description": "Possible Lethal or Vital Strike or Add D20E to Attack"
"description": "Possible Lethal or Vital Strike and Add D20E to Attack"
},
"melee_defense": {
"type": "choice",
@@ -53,7 +53,7 @@
"target": "defense"
}
],
"description": "Possible Flawless or Legendary Defense or Add D20E to Defense"
"description": "Possible Flawless or Legendary Defense and Add D20E to Defense"
},
"arcane_spell_attack": {
"type": "choice",
@@ -71,7 +71,7 @@
"target": "spell_attack"
}
],
"description": "Possible Lethal or Vital Magical Strike or Add D20E to Spell Attack"
"description": "Possible Lethal or Vital Magical Strike and Add D20E to Spell Attack"
},
"skill_rolls": {
"type": "skill_auto_success",
@@ -93,7 +93,7 @@
"target": "defense"
}
],
"description": "Possible Flawless or Legendary Defense or Add D20E to Defense"
"description": "Possible Flawless or Legendary Defense and Add D20E to Defense"
},
"arcane_spell_defense": {
"type": "choice",
@@ -107,7 +107,7 @@
"target": "spell_defense"
}
],
"description": "Possible Spell Catastrophe or adds D20E to Spell Defense"
"description": "Possible Spell Catastrophe and adds D20E to Spell Defense"
}
},
"29": {
@@ -257,7 +257,7 @@
"target": "attack"
}
],
"description": "Possible Vicious Strike or Add D12 to attack"
"description": "Possible Vicious Strike and Add D12 to attack"
},
"ranged_attack": {
"type": "choice",
@@ -274,7 +274,7 @@
"target": "attack"
}
],
"description": "Possible Vicious Strike or add D12 to attack"
"description": "Possible Vicious Strike and add D12 to attack"
},
"melee_defense": {
"type": "choice",
@@ -291,7 +291,7 @@
"target": "defense"
}
],
"description": "Possible 20/20 defense that avoids Any Attack Except a Lethal Strike or adds D12 to defense"
"description": "Possible 20/20 defense that avoids Any Attack Except a Lethal Strike and adds D12 to defense"
},
"arcane_spell_attack": {
"type": "choice",
@@ -308,7 +308,7 @@
"target": "spell_attack"
}
],
"description": "Possible Vicious Application of a Magical Attack or add D12 to attack"
"description": "Possible Vicious Application of a Magical Attack and add D12 to attack"
},
"skill_rolls": {
"type": "bonus_flat",
@@ -331,7 +331,7 @@
"target": "defense"
}
],
"description": "Possible 20/20 defense that avoids Any Attack Except a Lethal Strike or adds D12 to defense"
"description": "Possible 20/20 defense that avoids Any Attack Except a Lethal Strike and adds D12 to defense"
},
"arcane_spell_defense": {
"type": "choice",
@@ -348,7 +348,7 @@
"target": "spell_defense"
}
],
"description": "Possible 20/20 Spell defense that Saves Against Any Magical Attack Except a Lethal Magical Strike or add D12 to spell defense"
"description": "Possible 20/20 Spell defense that Saves Against Any Magical Attack Except a Lethal Magical Strike and add D12 to spell defense"
}
},
"15": {
@@ -446,31 +446,31 @@
"8": {
"melee_attack": {
"type": "mulligan",
"description": "Mulligan, Can Choose to Re-roll This Attack"
"description": "Mulligan, Can Choose to Re-roll This Attack (players only)"
},
"ranged_attack": {
"type": "mulligan",
"description": "Mulligan, Can Choose to Re-Roll This Attack"
"description": "Mulligan, Can Choose to Re-Roll This Attack (players only)"
},
"melee_defense": {
"type": "mulligan",
"description": "Mulligan, Can Choose to Re-Roll This Defense"
"description": "Mulligan, Can Choose to Re-Roll This Defense (players only)"
},
"arcane_spell_attack": {
"type": "mulligan",
"description": "Mulligan, Can Re-Roll This Spell Attack"
"description": "Mulligan, Can Re-Roll This Spell Attack (players only)"
},
"skill_rolls": {
"type": "mulligan",
"description": "Mulligan, Can Re-Roll This Skill roll"
"description": "Mulligan, Can Re-Roll This Skill roll (players only)"
},
"ranged_defense": {
"type": "mulligan",
"description": "Mulligan, Can Choose to Re-Roll This Defense"
"description": "Mulligan, Can Choose to Re-Roll This Defense (players only)"
},
"arcane_spell_defense": {
"type": "mulligan",
"description": "Mulligan, Can Re-Roll This Spell Defense"
"description": "Mulligan, Can Re-Roll This Spell Defense (players only)"
}
},
"7": {
+4 -2
View File
@@ -7,8 +7,10 @@ export default class LethalFantasyActor extends Actor {
if (data instanceof Array) {
return super.create(data, options);
}
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
if (data.items) {
// If the created actor already has items (duplicated or imported) bypass the new actor creation logic.
// Use .length check because Foundry V2 initializes data.items as an empty array by default
// (truthy), which would incorrectly skip the layperson skill auto-population.
if (data.items?.length > 0) {
let actor = super.create(data, options);
return actor;
}
+4
View File
@@ -570,6 +570,10 @@ export async function prompt(options = {}) {
rollBase.options.D30result = options.D30result
rollBase.options.D30message = options.D30message
rollBase.options.badResult = badResult
rollBase.options.rollType = options.rollType
rollBase.options.actorId = options.actorId
rollBase.options.actorName = options.actorName
rollBase.options.actorImage = options.actorImage
rollBase.options.rollData = foundry.utils.duplicate(rollData)
rollBase.options.defenderId = options.defenderId
rollBase.options.defenderTokenId = options.defenderTokenId
+32 -15
View File
@@ -549,9 +549,17 @@ Hooks.on("createChatMessage", async (message) => {
if (choice === "rerollDefense" && canRerollDefense) {
const oldDefenseRoll = defenseRoll
const reroll = await LethalFantasyUtils.rerollConfiguredRoll(defenseRerollContext)
canRerollDefense = false
if (!reroll) continue
defenseRoll = reroll.options?.rollTotal || reroll.total || oldDefenseRoll
let d30result = reroll.options?.D30result
let d30message = reroll.options?.D30message
if (!d30result && !d30message) {
console.warn("Mulligan defense reroll: no D30 data in options", { hasOptions: !!reroll.options, optionKeys: reroll.options ? Object.keys(reroll.options) : [] })
}
if (d30result && !d30message) {
d30message = documents.D30Roll.getResult(d30result, defenseRerollContext.rollType, message.rolls[0]?.options?.rollTarget?.weapon, { isRanged: isRangedAttack })
console.warn("Mulligan defense reroll: D30 message computed as fallback", { d30result, d30message, rollType: defenseRerollContext.rollType })
}
try {
await createReactionMessage(defender, {
type: "mulligan",
@@ -560,18 +568,19 @@ Hooks.on("createChatMessage", async (message) => {
oldRoll: oldDefenseRoll,
newRoll: defenseRoll,
diceResults: reroll.options?.diceResults || [],
D30result: reroll.options?.D30result,
D30message: reroll.options?.D30message
D30result: d30result,
D30message: d30message
})
} catch(e) {
console.error("Mulligan message creation failed (non-fatal):", e)
}
// Apply new D30 result on the restart
if (reroll.options?.D30message) {
defenseD30message = reroll.options.D30message
// Apply new D30 result on the restart — the new D30 always takes effect,
// and if it's another mulligan the reroll button reappears.
if (d30message) {
defenseD30message = d30message
defenseD30Processed = false
}
// Restart the full comparison so both sides can react to the new roll
canRerollDefense = LethalFantasyUtils.hasD30Reroll(defenseD30message)
mulliganRestart = true
break
}
@@ -755,9 +764,17 @@ Hooks.on("createChatMessage", async (message) => {
if (choice === "rerollAttack" && canRerollAttack && attackRerollContext) {
const oldAttackRoll = attackRollFinal
const reroll = await LethalFantasyUtils.rerollConfiguredRoll(attackRerollContext)
canRerollAttack = false
if (!reroll) continue
attackRollFinal = reroll.options?.rollTotal || reroll.total || oldAttackRoll
let d30result = reroll.options?.D30result
let d30message = reroll.options?.D30message
if (!d30result && !d30message) {
console.warn("Mulligan attack reroll: no D30 data in options", { hasOptions: !!reroll.options, optionKeys: reroll.options ? Object.keys(reroll.options) : [] })
}
if (d30result && !d30message) {
d30message = documents.D30Roll.getResult(d30result, attackRerollContext.rollType, attackRerollContext.rollTarget?.weapon, { isRanged: isRangedAttack })
console.warn("Mulligan attack reroll: D30 message computed as fallback", { d30result, d30message, rollType: attackRerollContext.rollType })
}
try {
await createReactionMessage(attacker, {
type: "mulligan",
@@ -766,20 +783,20 @@ Hooks.on("createChatMessage", async (message) => {
oldRoll: oldAttackRoll,
newRoll: attackRollFinal,
diceResults: reroll.options?.diceResults || [],
D30result: reroll.options?.D30result,
D30message: reroll.options?.D30message
D30result: d30result,
D30message: d30message
})
} catch(e) {
console.error("Mulligan message creation failed (non-fatal):", e)
}
// Apply new D30 result on the restart
if (reroll.options?.D30message) {
attackD30message = reroll.options.D30message
// Apply new D30 result on the restart — the new D30 always takes effect,
// and if it's another mulligan the reroll button reappears.
if (d30message) {
attackD30message = d30message
attackD30Processed = false
// Invalidate pre-computed effects — the new D30 message must be processed fresh
d30AttackPrecomputedStale = true
}
// Restart the full comparison so both sides can react to the new roll
canRerollAttack = LethalFantasyUtils.hasD30Reroll(attackD30message)
mulliganRestart = true
break
}
+1
View File
@@ -237,6 +237,7 @@ export async function handleAttackBoosted(msg) {
await ChatMessage.create({content: rmContent, speaker: ChatMessage.getSpeaker({actor: defender})})
}
if (d30Result.specialEffect === "drMultiplier") {
defenseDrMultiplier = d30Result.multiplier
const rmContent = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/chat/reaction-message.hbs", {type:"d30DRMultiplier", actorName:defenderName, value:d30Result.multiplier})
await ChatMessage.create({content: rmContent, speaker: ChatMessage.getSpeaker({actor: defender})})
}
+394 -134
View File
@@ -5,15 +5,16 @@
"requires": true,
"packages": {
"": {
"name": "fvtt-lethal-fantasy",
"version": "1.0.0",
"license": "UNLICENSED",
"license": "MITs",
"dependencies": {
"gulp": "^5.0.0",
"gulp-less": "^5.0.0"
},
"devDependencies": {
"@eslint/js": "^9.8.0",
"@foundryvtt/foundryvtt-cli": "^1.0.2",
"@foundryvtt/foundryvtt-cli": "^3.0.4",
"commander": "^11.1.0",
"eslint": "^9.9.0",
"eslint-config-prettier": "^9.1.0",
@@ -166,18 +167,19 @@
}
},
"node_modules/@foundryvtt/foundryvtt-cli": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-1.0.3.tgz",
"integrity": "sha512-M8NrMXFYpOEsLAbgRWfuMvUa9F6HwrROLtqhhBljqfVS1lgm0RJJY/7MObuXsTJOC6+Uu+QOPZTlw4k+hguG7w==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-3.0.4.tgz",
"integrity": "sha512-FAYqdxiQ4PZpQx0SaqMM19v907fW5KvbJ9OnT9kS8I0jaVh+PXTAuCDkoV31KrzGJIaGKEjCXNxnoU7qiFMRQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"chalk": "^5.2.0",
"classic-level": "^1.2.0",
"chalk": "^5.6.2",
"classic-level": "^3.0.0",
"esm": "^3.2.25",
"js-yaml": "^4.1.0",
"mkdirp": "^3.0.0",
"nedb-promises": "^6.2.1",
"yargs": "^17.7.1"
"js-yaml": "^5.2.0",
"mkdirp": "^3.0.1",
"nedb-promises": "^6.2.3",
"yargs": "^18.0.0"
},
"bin": {
"fvtt": "fvtt.mjs"
@@ -186,6 +188,29 @@
"node": ">17.0.0"
}
},
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/js-yaml": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz",
"integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/puzrin"
},
{
"type": "github",
"url": "https://github.com/sponsors/nodeca"
}
],
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.mjs"
}
},
"node_modules/@gulpjs/messages": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz",
@@ -308,21 +333,21 @@
"dev": true
},
"node_modules/abstract-level": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz",
"integrity": "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-3.1.1.tgz",
"integrity": "sha512-CW2gKbJFTuX1feMvOrvsVMmijAOgI9kg2Ie9Dq3gOcMt/dVVoVmqNlLcEUCT13NxHFMEajcUcVBIplbyDroDiw==",
"dev": true,
"license": "MIT",
"dependencies": {
"buffer": "^6.0.3",
"catering": "^2.1.0",
"is-buffer": "^2.0.5",
"level-supports": "^4.0.0",
"level-supports": "^6.2.0",
"level-transcoder": "^1.0.1",
"module-error": "^1.0.1",
"queue-microtask": "^1.2.3"
"maybe-combine-errors": "^1.0.0",
"module-error": "^1.0.1"
},
"engines": {
"node": ">=12"
"node": ">=18"
}
},
"node_modules/acorn": {
@@ -646,20 +671,12 @@
"node": ">=6"
}
},
"node_modules/catering": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
"integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
"integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -702,34 +719,120 @@
}
},
"node_modules/classic-level": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.4.1.tgz",
"integrity": "sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-3.0.0.tgz",
"integrity": "sha512-yGy8j8LjPbN0Bh3+ygmyYvrmskVita92pD/zCoalfcC9XxZj6iDtZTAnz+ot7GG8p9KLTG+MZ84tSA4AhkgVZQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"abstract-level": "^1.0.2",
"catering": "^2.1.0",
"abstract-level": "^3.1.0",
"module-error": "^1.0.1",
"napi-macros": "^2.2.2",
"node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=12"
"node": ">=18"
}
},
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
"integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
"dev": true,
"license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
"string-width": "^7.2.0",
"strip-ansi": "^7.1.0",
"wrap-ansi": "^9.0.0"
},
"engines": {
"node": ">=20"
}
},
"node_modules/cliui/node_modules/ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/cliui/node_modules/ansi-styles": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/cliui/node_modules/emoji-regex": {
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
"integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true,
"license": "MIT"
},
"node_modules/cliui/node_modules/string-width": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
"integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^10.3.0",
"get-east-asian-width": "^1.0.0",
"strip-ansi": "^7.1.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cliui/node_modules/strip-ansi": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/cliui/node_modules/wrap-ansi": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
"integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^6.2.1",
"string-width": "^7.0.0",
"strip-ansi": "^7.1.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/clone": {
@@ -1434,6 +1537,19 @@
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-east-asian-width": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz",
"integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-intrinsic": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
@@ -1934,6 +2050,7 @@
"url": "https://feross.org/support"
}
],
"license": "MIT",
"engines": {
"node": ">=4"
}
@@ -2213,12 +2330,13 @@
}
},
"node_modules/level-supports": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
"integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-6.2.0.tgz",
"integrity": "sha512-QNxVXP0IRnBmMsJIh+sb2kwNCYcKciQZJEt+L1hPCHrKNELllXhvrlClVHXBYZVT+a7aTSM6StgNXdAldoab3w==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
"node": ">=16"
}
},
"node_modules/level-transcoder": {
@@ -2226,6 +2344,7 @@
"resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz",
"integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==",
"dev": true,
"license": "MIT",
"dependencies": {
"buffer": "^6.0.3",
"module-error": "^1.0.1"
@@ -2333,6 +2452,16 @@
"node": ">=0.10.0"
}
},
"node_modules/maybe-combine-errors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz",
"integrity": "sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
@@ -2389,6 +2518,7 @@
"resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz",
"integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
}
@@ -2411,7 +2541,8 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz",
"integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==",
"dev": true
"dev": true,
"license": "MIT"
},
"node_modules/natural-compare": {
"version": "1.4.0",
@@ -2449,6 +2580,7 @@
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
"dev": true,
"license": "MIT",
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
@@ -2752,26 +2884,6 @@
"node": ">=6"
}
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
@@ -3456,30 +3568,85 @@
}
},
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz",
"integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==",
"dev": true,
"license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"cliui": "^9.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
"string-width": "^4.2.3",
"string-width": "^7.2.0",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
"yargs-parser": "^22.0.0"
},
"engines": {
"node": ">=12"
"node": "^20.19.0 || ^22.12.0 || >=23"
}
},
"node_modules/yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"version": "22.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
"integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
"dev": true,
"license": "ISC",
"engines": {
"node": "^20.19.0 || ^22.12.0 || >=23"
}
},
"node_modules/yargs/node_modules/ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/yargs/node_modules/emoji-regex": {
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
"integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true,
"license": "MIT"
},
"node_modules/yargs/node_modules/string-width": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
"integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"emoji-regex": "^10.3.0",
"get-east-asian-width": "^1.0.0",
"strip-ansi": "^7.1.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/yargs/node_modules/strip-ansi": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/yocto-queue": {
@@ -3594,18 +3761,29 @@
}
},
"@foundryvtt/foundryvtt-cli": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-1.0.3.tgz",
"integrity": "sha512-M8NrMXFYpOEsLAbgRWfuMvUa9F6HwrROLtqhhBljqfVS1lgm0RJJY/7MObuXsTJOC6+Uu+QOPZTlw4k+hguG7w==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-3.0.4.tgz",
"integrity": "sha512-FAYqdxiQ4PZpQx0SaqMM19v907fW5KvbJ9OnT9kS8I0jaVh+PXTAuCDkoV31KrzGJIaGKEjCXNxnoU7qiFMRQQ==",
"dev": true,
"requires": {
"chalk": "^5.2.0",
"classic-level": "^1.2.0",
"chalk": "^5.6.2",
"classic-level": "^3.0.0",
"esm": "^3.2.25",
"js-yaml": "^4.1.0",
"mkdirp": "^3.0.0",
"nedb-promises": "^6.2.1",
"yargs": "^17.7.1"
"js-yaml": "^5.2.0",
"mkdirp": "^3.0.1",
"nedb-promises": "^6.2.3",
"yargs": "^18.0.0"
},
"dependencies": {
"js-yaml": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz",
"integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
}
}
}
},
"@gulpjs/messages": {
@@ -3693,18 +3871,17 @@
"dev": true
},
"abstract-level": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz",
"integrity": "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-3.1.1.tgz",
"integrity": "sha512-CW2gKbJFTuX1feMvOrvsVMmijAOgI9kg2Ie9Dq3gOcMt/dVVoVmqNlLcEUCT13NxHFMEajcUcVBIplbyDroDiw==",
"dev": true,
"requires": {
"buffer": "^6.0.3",
"catering": "^2.1.0",
"is-buffer": "^2.0.5",
"level-supports": "^4.0.0",
"level-supports": "^6.2.0",
"level-transcoder": "^1.0.1",
"module-error": "^1.0.1",
"queue-microtask": "^1.2.3"
"maybe-combine-errors": "^1.0.0",
"module-error": "^1.0.1"
}
},
"acorn": {
@@ -3919,16 +4096,10 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
"catering": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
"integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
"dev": true
},
"chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
"integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
"dev": true
},
"chokidar": {
@@ -3957,27 +4128,77 @@
}
},
"classic-level": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.4.1.tgz",
"integrity": "sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-3.0.0.tgz",
"integrity": "sha512-yGy8j8LjPbN0Bh3+ygmyYvrmskVita92pD/zCoalfcC9XxZj6iDtZTAnz+ot7GG8p9KLTG+MZ84tSA4AhkgVZQ==",
"dev": true,
"requires": {
"abstract-level": "^1.0.2",
"catering": "^2.1.0",
"abstract-level": "^3.1.0",
"module-error": "^1.0.1",
"napi-macros": "^2.2.2",
"node-gyp-build": "^4.3.0"
}
},
"cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
"integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
"string-width": "^7.2.0",
"strip-ansi": "^7.1.0",
"wrap-ansi": "^9.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true
},
"ansi-styles": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true
},
"emoji-regex": {
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
"integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true
},
"string-width": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
"integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"requires": {
"emoji-regex": "^10.3.0",
"get-east-asian-width": "^1.0.0",
"strip-ansi": "^7.1.0"
}
},
"strip-ansi": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"requires": {
"ansi-regex": "^6.2.2"
}
},
"wrap-ansi": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
"integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
"dev": true,
"requires": {
"ansi-styles": "^6.2.1",
"string-width": "^7.0.0",
"strip-ansi": "^7.1.0"
}
}
}
},
"clone": {
@@ -4483,6 +4704,12 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-east-asian-width": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz",
"integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==",
"dev": true
},
"get-intrinsic": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
@@ -5019,9 +5246,9 @@
}
},
"level-supports": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
"integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-6.2.0.tgz",
"integrity": "sha512-QNxVXP0IRnBmMsJIh+sb2kwNCYcKciQZJEt+L1hPCHrKNELllXhvrlClVHXBYZVT+a7aTSM6StgNXdAldoab3w==",
"dev": true
},
"level-transcoder": {
@@ -5114,6 +5341,12 @@
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
"integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
},
"maybe-combine-errors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz",
"integrity": "sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A==",
"dev": true
},
"micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
@@ -5405,12 +5638,6 @@
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true
},
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true
},
"queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
@@ -5931,24 +6158,57 @@
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
},
"yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz",
"integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==",
"dev": true,
"requires": {
"cliui": "^8.0.1",
"cliui": "^9.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
"string-width": "^4.2.3",
"string-width": "^7.2.0",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
"yargs-parser": "^22.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true
},
"emoji-regex": {
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
"integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true
},
"string-width": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
"integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"requires": {
"emoji-regex": "^10.3.0",
"get-east-asian-width": "^1.0.0",
"strip-ansi": "^7.1.0"
}
},
"strip-ansi": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"requires": {
"ansi-regex": "^6.2.2"
}
}
}
},
"yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"version": "22.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
"integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
"dev": true
},
"yocto-queue": {
+1 -1
View File
@@ -4,7 +4,7 @@
"version": "1.0.0",
"devDependencies": {
"@eslint/js": "^9.8.0",
"@foundryvtt/foundryvtt-cli": "^1.0.2",
"@foundryvtt/foundryvtt-cli": "^3.0.4",
"commander": "^11.1.0",
"eslint": "^9.9.0",
"eslint-config-prettier": "^9.1.0",
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
MANIFEST-000693
View File
View File
View File
Binary file not shown.
+30
View File
@@ -0,0 +1,30 @@
{"folder":"yPWGvxHJbDNHVSnY","name":"Safe Faller","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"1jI0I56YAbGNTKbm","system":{"description":"<p>The character has an unusual knack for avoiding damage when falling. The character takes no damage when falling from heights of 40 feet or less. Upon landing, the character will roll, ending in a crouched position ready for action. Beyond 40 feet, the character takes damage for each 10-foot increment, as if they were falling 10 feet. Safe fallers experience a 60-foot drop the same way others experience a 20-foot drop.</p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Sense Curse or Possession","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"22CBQ8Fh6jUPX7fM","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character has an awareness of the supernatural and can sense if a mortal or object is <a name=\"_Int_jdnsMolB\">possessed</a> or cursed. This doesnt enable them to break the curse or remove the possession. The character has the ability to detect if a possession or curse exists. The character should be told by the GM the specifics of the curse or who or what possesses the victim. Gauging the relative strength of the curse or possession should also be possible for the player. The GM should share relevant details about the scenario or adventure as necessary</span></p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Voice Mimic","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"2fmKHYMqnQ2HPb6U","system":{"description":"<p>The character has the extraordinary ability to perfectly replicate the voices and speaking patterns of any mortal, making it impossible for even their loved ones to distinguish the imitation from the real person. It doesnt reveal information about specific mortals, only the ability to mimic their speech patterns. This gift allows the character to impersonate any mortal whose speech they have heard, with no restrictions on the number of impersonations.</p>","cost":25},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Blind Fighting","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"3xsjiboRrciodQ58","system":{"description":"<p>The ability to confront an adversary veiled in darkness is one of the most sought-after and unusual abilities. This gift evokes an indescribable sensation, a phenomenon so rare its almost unheard of in our known world. Some believe its a divine gift, destined to help us fight the encroaching darkness. Others believe those who can do this are from an underground realm and are untrustworthy. Mortals often consider this gift more wondrous than the abilities to heal or create fire. The exceptionally gifted can fight effectively in complete darkness, whether blindfolded or permanently sightless, as if they had perfect vision. The gifted, despite their special ability, are rendered helpless in the dark, just like ordinary mortals, unless under attack, which highlights the absurdity of their gift. Their ability to fight blind doesnt give them an edge over normal people in other activities in the dark. However, when attacked, they sense movements, attacks, and defenses just as if darkness did not blind them.</p><p class=\"MsoNormal\">Those who possess these gifts are unaffected by darkness and blindness in combat. This character is unrestricted in their ability to fight an unseen opponent. However, if the veiled or invisible attacker retreats, the gifted mortal lacks the means to follow or discern their direction of escape.</p><p class=\"MsoNormal\">This gift wont prevent backstabs or surprise attacks, it only activates when the first attack happens, or if the character knows an attack is coming. A villain who blindfolds a character with this gift, expecting an easy victory, will be in for a surprise.</p><p class=\"MsoNormal\">This does not provide any ranged defense or allow for ranged attacks in darkness or while blind.</p>","cost":60},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Poison Immunity","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"5aTWPV1h6dOe9vc9","system":{"description":"<p>The character is immune to all poisons, regardless of their origin, be it natural, magical, or otherwise. <span style=\"mso-spacerun:yes\">                                                     </span></p>","cost":40},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Thick Skin (noticeable)","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"BdLlTv5NY90BNl7g","system":{"description":"<p>The character gains 1 natural damage reduction because of their thicker, more resilient skin.</p><p class=\"MsoNormal\">If the skin is noticeably different, it will cost 20 development points. The characters skin is thick and callused. A skin that doesnt have a noticeable difference will cost 30 development points.</p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Alert While Asleep","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"EoXHsO5ajOjDjHC3","system":{"description":"<p>Character <a name=\"_Int_T0InzPds\">has the ability to</a> meditate and gain the benefits of sleep but <a name=\"_Int_ZTvxAfT8\">remains</a> aware of the world around them. Although they do not have vision, they have an awareness that allows them to sense movements, sounds, smells, and temperature changes as if fully awake but does not improve over their normal perception abilities. Characters gain the advantage of never rolling for initiative as if they were asleep. <br />Cannot <a name=\"_Int_GBuziMyx\">be combined</a> with a reduced need to sleep.<br />Magic-users cannot purchase this gift because of their need for deep sleep while recovering aether points.</p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Artistic","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"HEvDkOY00YFwBv4n","system":{"description":"","cost":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Increased Hit Points","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"IaciK9WGZi73o8nh","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character is remarkably tough and resistant to death. Provides a D4 boost in hit points. Multiple purchases are allowed. </span><span style=\"mso-spacerun:yes\"><span style=\"font-family:'Arial',sans-serif\">             </span></span></p>","cost":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Slayer","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"InSEGtiEAkhjL59G","system":{"description":"<p>Undead beware! This character deals extra damage against them, adding D4 to both their attack and damage rolls. Clerics and Paladins with this ability also receive the D4 when <a name=\"_Int_tMKd98b1\">attempting</a> to turn the undead.<span style=\"font-family:'Arial',sans-serif\"><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Fast Healer","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"JTMEDAezr2z5xzUV","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character gains one <a name=\"_Int_F753II27\">additional</a> healing point from a cycle of healing, be it natural healing, continued daily treatment or hospitalization. This is an additional point from what is normally granted for healing by your choice of mortal.<br /><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Sense Evil","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"KQ0vdJi2AjKnKt1Y","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This gift grants the character the ability to sense the presence of evil in individuals or things. Contact with the person or item is essential for this sense to function. This gift operates passively, meaning the character doesnt have to concentrate on it. This gift is unavoidable, requiring no dice roll and offering no chance for defense. The character needs to explain to the GM what it feels like to be near evil, so they can be alerted when their gift is active. Evil may manifest itself through symptoms such as a tingle on the back of your neck, a queasy feeling in your stomach, or a slight pain behind your eyes. The GM and players should collaboratively develop the specifics. </span><span style=\"mso-spacerun:yes\"><span style=\"font-family:'Arial',sans-serif\"> </span></span></p>","cost":25},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Musician","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"KnB9yQnJhLkGIfKv","system":{"description":"","cost":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Taunter","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"NTuH23RPaBNELgye","system":{"description":"<p>This character can taunt up to 3 enemies, compelling them to attack the taunter, ignoring allies and innocent victims. This remains true even if theyre already fighting or interacting with others. Once relentlessly mocked, the enemies will remain fixated on the taunter, refusing to flee, until either they or the taunter is eliminated. This skill is beneficial, but its crucial to remember its inherent dangers. The attacker, once taunted, will relentlessly pursue the character without stopping. If two players taunt, the first one to taunt will maintain the taunt effect. This ability is exclusive to players and cannot <a name=\"_Int_KHB0kFZD\">be used</a> to force player characters to act against their will.</p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Thick Skin (Not noticeable)","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"PQEcP0b5MhXpdYoS","system":{"description":"<p>The character gains 1 natural damage reduction because of their thicker, more resilient skin.</p><p class=\"MsoNormal\">If the skin is noticeably different, it will cost 20 development points. The characters skin is thick and callused. A skin that doesnt have a noticeable difference will cost 30 development points.</p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Animal Mimic","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"QtGB4xQkS0ddrt3g","system":{"description":"<p>With perfect accuracy, the character can mimic any animals noises, calls, and sound inflections, making it impossible for other animals to distinguish. Cannot provide information on what is being communicated, which may lead to an inappropriate response from other animals. This does not give the ability to understand or communicate with animals. The character can copy the sounds of animals with absolute precision. Any animal the character has heard communicating or making sounds can be impersonated, with no limit on the number of species.</p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Fearless","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"ReoKLRqWoMhHvo1c","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">Character is immune to fear regardless of its source. Natural, magical, divine, dragon or other supernatural forces. </span><span style=\"mso-spacerun:yes\"><span style=\"font-family:'Arial',sans-serif\">        </span></span></p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Sense Magic","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"TUJLQIMEkW3zLelZ","system":{"description":"<p>With this gift, the character can discern whether someone or something is infused with magic. The character needs to physically contact the person or item for this sense to function. This is a passive power, the character doesnt need to actively focus on it. Theres no defense for this gift, so the player doesnt need to roll. Describe to the GM what happens to your character when they encounter magic, so the GM can let you know when your gift activates. Magic can manifest in various ways, including goosebumps, a tingling chest, or a ringing in your ears. Player and GM should collaborate to fill in the details of this. <span style=\"mso-spacerun:yes\">                                      </span></p>","cost":25},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Reduced Need for Sleep","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"XLIy0LfuGZzMML0S","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character requires just 4 hours of sleep to regain health and aether points. A character can only sleep once a day to restore aether points, heal, or gain other benefits. This gift reduces rest time, giving the character more time to perform actions. </span><span style=\"mso-spacerun:yes\"><span style=\"font-family:'Arial',sans-serif\">   </span></span><span style=\"font-family:'Arial',sans-serif\"><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Hold Breath","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"dwMnrsOKU3TmHZHz","system":{"description":"<p>This character possesses the ability to hold their breath for an extended duration. The character, after 2 minutes of prep, can hold their breath and function as usual for 10 minutes. They can hold their breath for 15 minutes while stationary.</p><p class=\"MsoNormal\">If they have no time to prepare, they can hold their breath for 6 minutes during normal activities or 10 minutes while resting.</p><p class=\"MsoNormal\">When a characters breath runs out, theyll begin taking damage as normal. Once this gifts time runs out, they will start to suffocate. <br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></p>","cost":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Disease Immunity","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"dxZxAJ6Z8O1MJAAP","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character is immune to all diseases, regardless of their source, be it natural, magical, or otherwise. </span><span style=\"mso-spacerun:yes\"><span style=\"font-family:'Arial',sans-serif\">                                                  </span></span></p>","cost":40},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Reduced Need for Food and Water","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"eJePqPw273udS0ME","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character can function at full capacity with only one ration of food and water every three days. Characters without access to food or water will only suffer half the normal effects of prolonged deprivation.</span></p>","cost":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"War Magician","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"jPQAVxHaJCSakQQy","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character excels in offensive spell casting, gaining an extra D4 on top of their combat casTting modifier. This effect doesnt increase damage but makes the attack roll higher, making it harder for the target to dodge or resist the attack. Only spells that deal direct damage to the target qualify for this gift. <br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Blood is Power","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"jaOah98vBdDRhwiv","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This gift empowers magic-users to tap into their lifes blood for spell casting in desperate situations. A caster can exchange 1 hit point for 10 aether points, enabling them to cast a spell. Transferring health to aether wounds, the caster, leaving a black, bloody circular mark on their torso. Close examination reveals arcane runes within the wound, symbolizing life force fueling arcane power. The true meaning of the runes remains unclear, and this gift is extremely rare among those who practice magic.<br /><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Defend While Lethargic","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"k4rTrYDnmEFI0Oxk","system":{"description":"<p>Despite spell lethargy, the magic-user maintains their normal defensive capabilities. This doesnt let them reduce the other effects of spell lethargy. The magic-user is limited to walking and lacks the ability to attack or cast spells. A flawless or legendary defense roll on the special results dice would lead to an attack, because it directly results from the defense roll.</p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Silent Casting","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"ocSgJFS35odJV2Ie","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">Magic-users can cast spells silently, even if they normally require a verbal component. Even with this ability, magic-users cast spells at the same speed. The gift eliminates the need for verbalization during the spell, allowing the magic-user to cast it mentally. This would encompass scenarios where the magic-user is silenced, injured, or cannot speak. The need for somatic or material components persists. <br /><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Hard to Kill","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"tiSnIbFGcO3qlEk0","system":{"description":"<p>The character can sustain more negative hit points before dying. A characters maximum hit point threshold is determined by adding +3 to their constitution score. This threshold dictates how far below zero their hit points can go before they die. The characters stabilization roll is always one die higher than their constitution score allows. Maximum dice allowed is a D20.</p>","cost":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Combat Casting","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"u5iMDjYPhTrpBSp3","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">Magic-users can defend while casting a spell against a single attacker using their full normal defense. This lets them continue their spell casting. A hit on the magic-user still ruins the spell and costs 50 aether points. This gift is limited to defending against a single attacker. The caster faces a disfavored defense, while their attackers have favor against all other attackers. When there are multiple attackers, the Caster must indicate which attacker is being defended with this gift. The decision is subject to change if the designated attacker withdraws, is killed, or becomes incapacitated.<br /><br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Distance Runner","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"uaFB5QtDfUCleMSd","system":{"description":"<p>The character can sprint or run for double the usual time. They can sprint for a number of seconds, equal to double their constitution, and run for double their constitution in minutes. <span style=\"mso-spacerun:yes\">   </span></p>","cost":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
{"folder":"yPWGvxHJbDNHVSnY","name":"Immune to Mind Control","type":"gift","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_gift.webp","_id":"x5gLtqlW4sdDmHTd","system":{"description":"<p>The character is immune to mind control and mental manipulation. All forms of magical persuasion or performance skills are included in this protection. This doesnt make the character immune to fear or torture because those are emotional responses, not mind control.</p>","cost":40},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"exportSource":null,"coreVersion":"13.348","systemId":"fvtt-lethal-fantasy","systemVersion":"13.0.0","createdTime":1757441324033,"modifiedTime":1757441324033,"lastModifiedBy":"Ccm2SWj6Wb78Gkz7"}}
View File
+1
View File
@@ -0,0 +1 @@
MANIFEST-000690
View File
View File
View File
Binary file not shown.
File diff suppressed because one or more lines are too long
View File
+1
View File
@@ -0,0 +1 @@
MANIFEST-000695
View File
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-17:14:18.710797 7f677f7fe6c0 Recovering log #693
2026/07/07-17:14:18.721726 7f677f7fe6c0 Delete type=3 #691
2026/07/07-17:14:18.721797 7f677f7fe6c0 Delete type=0 #693
2026/07/07-18:13:39.509293 7f677ebff6c0 Level-0 table #698: started
2026/07/07-18:13:39.509377 7f677ebff6c0 Level-0 table #698: 0 bytes OK
2026/07/07-18:13:39.515800 7f677ebff6c0 Delete type=0 #696
2026/07/07-18:13:39.537358 7f677ebff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/07/07-18:13:39.537602 7f677ebff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-08:29:43.889413 7f677f7fe6c0 Recovering log #689
2026/07/07-08:29:43.943359 7f677f7fe6c0 Delete type=3 #687
2026/07/07-08:29:43.943451 7f677f7fe6c0 Delete type=0 #689
2026/07/07-08:30:08.186974 7f677ebff6c0 Level-0 table #694: started
2026/07/07-08:30:08.187025 7f677ebff6c0 Level-0 table #694: 0 bytes OK
2026/07/07-08:30:08.193951 7f677ebff6c0 Delete type=0 #692
2026/07/07-08:30:08.207875 7f677ebff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/07/07-08:30:08.208156 7f677ebff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
Binary file not shown.
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
MANIFEST-000390
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-17:14:18.764463 7f677f7fe6c0 Recovering log #388
2026/07/07-17:14:18.774743 7f677f7fe6c0 Delete type=3 #386
2026/07/07-17:14:18.774813 7f677f7fe6c0 Delete type=0 #388
2026/07/07-18:13:39.530110 7f677ebff6c0 Level-0 table #393: started
2026/07/07-18:13:39.530142 7f677ebff6c0 Level-0 table #393: 0 bytes OK
2026/07/07-18:13:39.537202 7f677ebff6c0 Delete type=0 #391
2026/07/07-18:13:39.537544 7f677ebff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/07/07-18:13:39.537840 7f677ebff6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-08:29:44.131849 7f677f7fe6c0 Recovering log #384
2026/07/07-08:29:44.183800 7f677f7fe6c0 Delete type=3 #382
2026/07/07-08:29:44.183891 7f677f7fe6c0 Delete type=0 #384
2026/07/07-08:30:08.227162 7f677ebff6c0 Level-0 table #389: started
2026/07/07-08:30:08.227201 7f677ebff6c0 Level-0 table #389: 0 bytes OK
2026/07/07-08:30:08.234023 7f677ebff6c0 Delete type=0 #387
2026/07/07-08:30:08.242020 7f677ebff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/07/07-08:30:08.254520 7f677ebff6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
{"folder":"mnO9OzE7BEE2KDfh","name":"Dependent Ally","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"0pt2JD8zDsbZd9Oa","system":{"description":"<p>The character has a responsibility to protect or serve someone dependent or vulnerable. Parent, spouse, child, sister, and grandma are all examples. Dependent individuals often face dangerous circumstances and require financial support for healthcare, addiction, or other necessities. Players and the GM can collaborate to determine the exact details.</p><p class=\"MsoNormal\">The characters primary duty is to prioritize the dependent allys needs and well-being over other tasks, or risk losing their support. The loss or death of a dependent ally results in the obligation to repay granted development points using current or future points.</p><p class=\"MsoNormal\">The GM can use the dependent ally to create difficult quests for the character. The GM should use this tool sparingly when it comes to their campaign narrative, but its a good option for filling gaps in gameplay or creating smaller quests. This vulnerability could surface at the worst possible time. Despite being badly wounded and needing time to rest, the characters sister is kidnapped by a notorious bandit, forcing them into a daring rescue mission. The characters father may have a fatal illness, prompting a search for a cleric to heal him. The potential is boundless.</p><p class=\"MsoNormal\"> </p>","cost":0,"gainedPoints":20},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Delusional","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"3EKlIiVJwfQk3nai","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character is completely deluded, holding onto a false belief no matter what</span></p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Clean Obsession","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"69pg6b2nYh3thR0o","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character has a powerful compulsion to maintain cleanliness for themselves and their equipment. They maintain a strict cleaning routine, meticulously cleaning all their items nightly and swiftly removing blood, dirt, or grime from their weapons and armor after each battle. Blood or dirt stains on their clothes cause them great anxiety, and they will become preoccupied with finding a way to remove them. Backup clothing, cleaning supplies, and other essentials should always be on their gear list. Characters camping by water are drawn to bathe, even if its not the most sensible choice in the circumstances. They find the clean water too tempting to ignore. While this doesnt hold true for dirty water, <a name=\"_Int_AzixlEWi\">swamps</a>, or bogs, clean blue water will draw them in like a moth to a flame. Characters covered in dirt, blood, grime, or even worse, feces will <a name=\"_Int_Qb7IZGuK\">be distracted</a> and complain openly. The distraction will hinder their readiness, resulting in defending with disfavor until they clean themselves and their gear</span></p>","cost":0,"gainedPoints":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Paranoid","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"DJ37fv3mikulWe9j","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character has a sense of paranoia, believing someone is aiming to harm them. This feeling often stems from the belief that powerful people are scheming to ruin the character. This makes the character extremely wary of giving any information to authority figures. The character suspects almost everyone could be involved in the plot against them, making it incredibly difficult to trust anyone. The entity is blamed for all negative events, as if it intentionally caused them or is working tirelessly to destroy the character.</span></p>","cost":0,"gainedPoints":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Inappropriately Nosy","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"DVVr1Ga0wKDrXOvu","system":{"description":"<p>NOSY <br />(15) Development points.</p><p class=\"MsoNormal\">The character frequently asks inappropriate questions that are irrelevant to their journey and objectives. Their extreme curiosity about most mortals leads them to ask endless questions about anything that catches their interest. They might question the bartender about her experiences dating a half-orc, including details about their intimate life. They could question the big bad guy about his need for prisoners and the whereabouts of his parents. Are his parents aware of what hes doing? Are there family members in his life? Where are they originally from?</p>","cost":0,"gainedPoints":15},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Allergy","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"EEOS9oMqTLVrgmYI","system":{"description":"<p>The character suffers from a serious allergy triggering sneezing, coughing, blurry vision, and itchy welts and rashes. Its tough to sneak and hide with this allergy, because they cant stay still and make noise even when not moving. While sneaking under the influence of allergies, the character grants two circumstances that benefit the entity looking for them. Because they have blurry vision and a distorted sense of smell, perception rolls favor anyone sneaking or hiding from them by one circumstance. Their allergy causes them to attack with disfavor, and while affected, they can only move at a jogging pace. Upon removal from the allergen, the allergy will persist for either 1D6 real-time hours or 1 week of game time, whichever is shorter. <span style=\"mso-spacerun:yes\"> </span></p>","cost":0,"gainedPoints":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Awful Liar","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"EZUfYtvLdmtr2V5X","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character is a terrible liar, easily giving away their lies through physical and vocal cues. Expect the character to stutter, pause unexpectedly, or shake their head, contradicting their verbal response. Visible sweating, avoiding eye contact, looking down, fidgeting, or any other behavior that seems inconsistent with telling the truth could be signs they are lying. The player should act out the characters inability to keep secrets, using this moment to lose the secret but gain grit by roleplaying the vulnerability</span></p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Facial Scar","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"KSLK4GWd1yBswXDF","system":{"description":"<p>The characters face is marred by a severe scar. Because of the scar, they face disfavor on all performance rolls. In role play, the character can choose to either hide or embrace the scar, but the penalty to performance persists. A characters charisma is unaffected by being scared. Reduce the characters appearance by 5.</p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Superstitious","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"LmoNkyM88iK34NvK","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character is completely convinced that a particular item or act is essential for them to succeed. If the character lacks the item or fails to properly follow the superstition, their ability to succeed in any task will be compromised. A character lacking the “lucky item” or failing to complete the pre-task ritual will be at disfavor during any task. They roll with disfavor to both attack and defense when in combat. Challenges of strength or agility, as well as saving throws and arcane attacks, are among the rolls that must be made with disfavor.<br style=\"mso-special-character:line-break\" /><br style=\"mso-special-character:line-break\" /></span></p>","cost":0,"gainedPoints":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Albino","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"M8Tubc4rmXyg12Zz","system":{"description":"<p>This character, pale as snow, cannot withstand the suns heat. Under bright sunlight, they face disfavor on all rolls but do not experience any penalties at night. The character is without dark pigment, making their skin the color of pristine snow. Their skin, hair, eyes, nails and toenails are all pale and white. Many NPCs react poorly to their unconventional appearance, resulting in disfavor for all performance-based rolls. Wearing a dark cloak or robe that hides their face and skin allows the character to evade the negative effects. The effects activate during the day when the cloak or covering is lost, causing unfavorable rolls for combat, skills, and saving throws while exposed to sunlight.</p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Easily Fooled","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"MTJReszg6Q4pG528","system":{"description":"<p>This character is quite naïve and gullible. They find credibility in the most improbable narratives and readily accept even the most absurd accounts of events. The character wont negotiate on prices, accepting the value of any item for sale without debate. NPCs and others can easily deceive them with blatant lies, and they will believe even the most absurd tales. <span style=\"mso-spacerun:yes\">  </span></p>","cost":0,"gainedPoints":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Death Wish","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"QAIKh7qB3ImHnVCU","system":{"description":"<p>This character, haunted by past mistakes and pain, believes that only a heroic death in battle will allow them redemption. Its crucial to understand that this isnt suicide; they avoid deliberately ending their lives, as it would be seen as unfair. A character with a death wish wont run from an enemy unless offered a greater glory or a more satisfying death. No matter how hopeless it seems, a worthy quest will always be pursued. They wont abandon a situation where a glorious death is a probable outcome. A rational explanation is required for any decision that goes against their desire for a glorious death. The GM should explicitly state that characters actions could lead to their death if they are presented with such a scenario. If a character must choose between running and fighting, players should engage in roleplaying the decision. This is the pinnacle of role playing and should not <a name=\"_Int_J3ILFVXF\">be resolved</a> by chance. People who are not comfortable with role playing should steer clear of this vulnerability. Failing to fully capture the characters desire, including their weaknesses and unique traits, will result in significant penalties in Grit. This would involve applying earned development points to eliminate the vulnerability. If the party convincingly argues for the greater good of escaping to fight again, they could earn additional Grit for their impressive roleplaying.<span style=\"mso-spacerun:yes\"> </span></p><p class=\"MsoNormal\">Role <a name=\"_Int_gMfqxeDW\">play</a> examples:</p><p class=\"MsoNormal\">If the character chooses to fight the monster, who will tell the king about the threat? The most noble act is to warn the citizens, allowing them to flee, and then for the character to die bravely defending them, ensuring their sacrifice is remembered by all. Dying here would be pointless, as no one would know or sing about the heroic deeds.</p><p class=\"MsoNormal\">Dying without saving the princess means she also dies, and a glorious death after a successful quest is far better than a failed quest and death.<br />Players should consider a variety of ideas instead of relying on the same one repeatedly to escape the consequences of the vulnerability.</p><p class=\"MsoNormal\">This vulnerability surpasses the “wont back down vulnerability”. Beyond mere defiance, this character embraces risk, actively pursuing situations with a high chance of death rather than simply refusing to yield. <span style=\"mso-spacerun:yes\">  </span></p>","cost":0,"gainedPoints":40},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Chivalrous","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"SL8M9rYD36ITwmvG","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">Character is chivalrous to a fault. Opening doors or offering a blanket or coat to someone who is cold are often acts of chivalry. Showing politeness and respect to those around you. This courtesy is often extended to members of the opposite sex, even if they are a declared and proven mortal enemy. This is especially true for the fairer sex, who are always given a second chance. Despite not deserving it, they will <a name=\"_Int_BjZRw24T\">be treated</a> fairly. A chivalrous character would never attack a woman by striking first or attacking her from behind. They will not strike a woman who is unconscious or unable to defend herself. While this vulnerability is common among men, it can be modified for the specific gender dynamics of your world.<br />This vulnerability might be unsuitable for some backstories. Knights and Clerics codes may include most of these conditions, but theyre part of their class benefits and shouldnt earn development points</span></p>","cost":0,"gainedPoints":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Illiterate","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"T5bR4EQ9bERMKPdR","system":{"description":"<p>It is assumed that all characters in LETHAL FANTASY possess literacy, being able to read and write in their native language, plus any additional languages they have learned. Illiteracy leaves individuals susceptible to scams and manipulation, as they cannot understand even the simplest of written warnings. Basic information, sign reading, and document review often come with a charge.</p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Hyper Competitive","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"bC3WMMvFeWU2si6Y","system":{"description":"<p>Character is competitive, whether its something important or just a casual matter. Which combatant achieved the most enemy kills during the battle? Who can consume the most ale? Who will be the first to reach the dungeon? The player should embrace the role of someone who is intensely competitive. A reckless pursuit of an extra kill or a solo attempt to reach the treasure first could endanger both themselves and their allies. They dont act recklessly or have a disregard for their safety, but they are driven to win and excel in any event, competition, or battle they face.</p>","cost":0,"gainedPoints":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Vigilante","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"dFQG6V5jpPCu3Yi1","system":{"description":"<p>Driven by an unyielding desire for justice, the character acts as a vigilante, seeking to rectify the worlds injustices. When someone avoids rightful consequences for their immoral actions, the character feels compelled to intervene. Only characters of good alignment are susceptible to this vulnerability because they are repulsed by acts of obvious malice and evil. Were not talking about petty offenses, but serious crimes like murder, rape, and harming children - acts that truly violate our sense of morality. The character must confront the issue immediately, as they cant simply let it pass. While this doesnt mean abandoning friends in the middle of an adventure or quest, it does mean that the first time they lack purpose, the character must seek revenge. This could involve persuading authorities to act justly or taking matters into their own hands, even resorting to violence, including murder, to achieve retribution.</p>","cost":0,"gainedPoints":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Fear of Magic","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"dSQF1Lk9toVBUWJf","system":{"description":"<p>The character is staunchly opposed to magic, viewing it as dangerous, unclean, or simply wicked, and will not allow themselves to be enchanted. They wont accept spells, even for healing or aid, on their own bodies. Both arcane and divine magic are considered unnatural by the character. The character is wary of magic users and clerics, remaining vigilant even though they dont outright distrust fellow players. This heightened awareness stems from a fear that the magic might be turned against them. The players character should have a backstory that accounts for their fear. A charlatan might have promised a magical or clerical remedy, only for it to fail miserably. A magical event of catastrophic proportions took place. Someone close to the character was struck by a spell, inflicting devastating destruction or death. There are many ways the characters fear can be portrayed. Let your imagination run wild. This could turn into a remarkable story of redemption.</p><p class=\"MsoNormal\">Unknown to the character, they could be healed or helped by magic or divine intervention. Any adventuring group will find this hard to resist. Using magic on unconscious or injured characters risks eroding trust in the caster. This offers an excellent opportunity for role-playing.</p><p class=\"MsoNormal\"> </p>","cost":0,"gainedPoints":35},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Fear of Heights","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"eN3Qi0jCtreCujDn","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The characters crippling fear of heights restricts their movement to walking speed when they are on ledges, bridges, or pits over 20 feet above ground or water. The character cannot attack while they are dealing with this fear and they will defend with disfavor. Skills used near ledges, bridges, or pits are with disfavor. This reaction is triggered by anything the character fears they might fall into. If a character stumbles or trips and faces a serious risk of falling, they roll saving throws or other relevant rolls to avoid falling with disfavor</span></p>","cost":0,"gainedPoints":20},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Honest to a Fault","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"fBkyX5erOJCF4btA","system":{"description":"<p>The character is incapable of lying. For the character, a lie is a moral offense that diminishes the world. This presents challenges in many contexts. The most effective action for the character is to remain silent in response to a question. Silence can be as revealing as saying the truth out loud. This vulnerability includes white lies. The characters integrity is unwavering, meaning they wont lie even to spare the feelings of someone close to them. A person who always speaks the truth, even about trivial matters, could find themselves alone at the campfire. Their high moral values might be the only thing that keeps them company. This is a fantastic opportunity to role play, but remember, being in character doesnt excuse being cruel to others.</p>","cost":0,"gainedPoints":25},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Bragger","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"iNSHcfW0RsEIJwj1","system":{"description":"<p>The character brags about their accomplishments in every aspect of their existence. This harkens back to their childhood and playground encounters where they were always the winner. Their youthful love affairs, early class training, anything theyve ever achieved. Each achievement is an opportunity to boast and elaborate on it for all to hear. The characters preoccupation is so blatant and repetitive that anyone who knows them will find the claims unconvincing. The characters habit of overstating their successes creates an atmosphere of disbelief, even when they are truthful. This leads to delay in response if they need help or when they truly need to <a name=\"_Int_kzubRJoD\">be believed</a>.</p>","cost":0,"gainedPoints":10},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Paranoid of Death","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"jFAgsJQJA94Uxxy0","system":{"description":"<p>A premonition of their imminent demise has caused the character to develop an irrational fear of death. The possibilities are endless. It could be a fortune teller, a tarot card, a lifelike dream, or any other creative concept the character desires. They fear imminent death, leading them to second-guess their choices in a desperate attempt to cheat fate. Characters with this vulnerability will not take point on missions. Even when they win the initiative, they never attack first and will wait until they are attacked. This could cause losing an attack chance during the attack delay progression. Before <a name=\"_Int_g5TWGg8e\">taking action</a>, the character always deliberates carefully, avoiding impulsive behavior. The prophecy is probably not true. However, well leave that to creative Game Magistrates and just speculate on where this prophecy might lead a group of brave adventurers.</p>","cost":0,"gainedPoints":25},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Animal Hostility","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"oXV86z4CsRhUnKFg","system":{"description":"<p>This character faces hostility from a particular type of animal, which will growl, hiss, bark, or demonstrate its anger, possibly attacking the character on sight if the GM thinks its justified.</p>","cost":0,"gainedPoints":20},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Won't Back Down","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"sUOoazijnWvI0YZd","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">This character has unshakeable confidence in their skills and refuses to believe defeat is possible. Theyll fight until the very end, ignoring the fact that a reasonable person would give up. This overconfidence goes beyond combat and can encompass competitions of skill, intellect, or endurance. No matter how badly this character loses, theyll find an excuse that points the finger at external factors rather than their own skills. The judges were bribed, the sun was in my eyes, I should have used my strong-arm, that was a lucky punch. Numerous excuses will spring to mind, effectively maintaining the characters image of invincibility.</span></p>","cost":0,"gainedPoints":30},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Afraid of Animal","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"xin46ARJ0FPXMSTC","system":{"description":"<p>The character has an unreasonable fear of a creature that poses no real danger. Upon spotting the creature, the character will try to avoid it and absolutely will not touch it. Combat against the harmless creature is impossible, the character will defend with disfavor and is incapable of attacking it.</p><p class=\"MsoNormal\">The animal is likely to be seen in adventure areas, which will make the character afraid and unable to perform well because of fear of the animal or bad luck. The sight of the animal, even if its simply munching on grass, will cause the character to experience the “yips,” making them doubt their choices for the next hour. All rolls they make are with disfavor. This includes attack, defense, spell attacks, saving throws, and skill checks.</p>","cost":0,"gainedPoints":25},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Looks Like a Criminal","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"xnvdjC0xMy0dfigw","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character is the spitting image of a real criminal who carried out a terrible deed. The character may share a resemblance to the images of wanted posters and drawings of the criminal. A reward offered by the authorities for the capture of the real criminal increases the likelihood of individuals in a large community misidentifying the character as the culprit. The character has a 1 in 10 chance of being mistaken for the criminal during any interaction with an NPC. Depending on the situation, the NPC might summon the guards, run away in fear, or shout for help. The GM needs to determine whats <a name=\"_Int_XSbT5SAK\">appropriate</a>.</span></p>","cost":0,"gainedPoints":10},"effects":[],"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1746521463778,"modifiedTime":1746521463778,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null},"sort":0,"ownership":{"default":0,"l74y1UZmsu5KYmeR":3}}
{"folder":"mnO9OzE7BEE2KDfh","name":"Conspiracy Theorist","type":"vulnerability","img":"systems/fvtt-lethal-fantasy/assets/icons/icon_vulnerability.webp","_id":"zkK6ixtCsCw3RH9X","system":{"description":"<p><span style=\"font-family:'Arial',sans-serif\">The character believes a secret plot is underway, orchestrated by influential figures, both known and unknown, who hold positions of power. Most of the worlds terrible events and disasters can be traced back to these mortals in power. The character is fiercely dedicated to revealing the conspiracy to their group and holds a deep distrust of all authority. <br />Players need to figure out how the secret plan connects to each adventure, making everything understandable</span></p>","cost":0,"gainedPoints":15},"effects":[],"sort":0,"ownership":{"default":0,"Ccm2SWj6Wb78Gkz7":3},"flags":{},"_stats":{"compendiumSource":null,"duplicateSource":null,"coreVersion":"13.342","systemId":"fvtt-lethal-fantasy","systemVersion":"12.0.35","createdTime":1736956548287,"modifiedTime":1746521463767,"lastModifiedBy":"l74y1UZmsu5KYmeR","exportSource":null}}
+1
View File
@@ -0,0 +1 @@
MANIFEST-000689
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-17:14:18.752018 7f67ccbfe6c0 Recovering log #687
2026/07/07-17:14:18.762282 7f67ccbfe6c0 Delete type=3 #685
2026/07/07-17:14:18.762342 7f67ccbfe6c0 Delete type=0 #687
2026/07/07-18:13:39.562602 7f677ebff6c0 Level-0 table #692: started
2026/07/07-18:13:39.562663 7f677ebff6c0 Level-0 table #692: 0 bytes OK
2026/07/07-18:13:39.568947 7f677ebff6c0 Delete type=0 #690
2026/07/07-18:13:39.569296 7f677ebff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/07/07-18:13:39.569322 7f677ebff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
+8
View File
@@ -0,0 +1,8 @@
2026/07/07-08:29:44.074796 7f677ffff6c0 Recovering log #683
2026/07/07-08:29:44.128067 7f677ffff6c0 Delete type=3 #681
2026/07/07-08:29:44.128136 7f677ffff6c0 Delete type=0 #683
2026/07/07-08:30:08.208175 7f677ebff6c0 Level-0 table #688: started
2026/07/07-08:30:08.208206 7f677ebff6c0 Level-0 table #688: 0 bytes OK
2026/07/07-08:30:08.214632 7f677ebff6c0 Delete type=0 #686
2026/07/07-08:30:08.234270 7f677ebff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/07/07-08:30:08.242040 7f677ebff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
Binary file not shown.