Skip to content

Instantly share code, notes, and snippets.

@Ennea
Last active February 20, 2025 19:01
Show Gist options
  • Save Ennea/87bc3de5f94a3b34892d8e89611afb58 to your computer and use it in GitHub Desktop.
Save Ennea/87bc3de5f94a3b34892d8e89611afb58 to your computer and use it in GitHub Desktop.
pf1.mapping for "Export Sheet to PDF" module for VTT
[
/* Page #1 */
{ "pdf": "Player", "foundry": Object.entries(@data.permission).filter(entry => entry[1] === 3).map(entry => entry[0]).map(id => !game.users.get(id)?.isGM ? game.users.get(id)?.name : null).filter(x => x).join(", ") },
{ "pdf": "Character Name", "foundry": @data.name },
{ "pdf": "Alignment", "foundry": @data.data.details.alignment },
{ "pdf": "Class", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.name)[0] },
{ "pdf": "Level", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.level)[0] },
{ "pdf": "Class1", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.name)[1] || "" },
{ "pdf": "Level1", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.level)[1] || "" },
{ "pdf": "Deity", "foundry": @data.data.details.deity },
{ "pdf": "Race", "foundry": @data.items.filter(i => i.data.type === "race").map(i => i.data.name)[0] },
{ "pdf": "Size", "foundry": @data.data.traits.size },
{ "pdf": "Gender", "foundry": @data.data.details.gender },
{ "pdf": "Age", "foundry": @data.data.details.age },
{ "pdf": "Height", "foundry": @data.data.details.height },
{ "pdf": "Weight", "foundry": @data.data.details.weight },
{ "pdf": "Total Hp", "foundry": @data.data.attributes.hp.max },
{ "pdf": "Damage Reduction", "foundry": @data.data.traits.dr.value[0]?.amount ?? 0 },
{ "pdf": "Base Speed", "foundry": @data.data.attributes.speed.land.base },
{ "pdf": "With Armor", "foundry": @data.data.attributes.speed.land.total },
{ "pdf": "Fly", "foundry": @data.data.attributes.speed.fly.base },
{ "pdf": "Maneuverability", "foundry": @data.data.attributes.speed.fly.maneuverability },
{ "pdf": "Swim", "foundry": @data.data.attributes.speed.swim.base },
{ "pdf": "Climb", "foundry": @data.data.attributes.speed.climb.base },
{ "pdf": "Burrow", "foundry": @data.data.attributes.speed.burrow.base },
{ "pdf": "Ability Score Strength", "foundry": @data.data.abilities.str.total },
{ "pdf": "Ability Score Dexterity", "foundry": @data.data.abilities.dex.total },
{ "pdf": "Ability Score Constitution", "foundry": @data.data.abilities.con.total },
{ "pdf": "Ability Score Intelligence", "foundry": @data.data.abilities.int.total },
{ "pdf": "Ability Score Wisdom", "foundry": @data.data.abilities.wis.total },
{ "pdf": "Ability Score Charisma", "foundry": @data.data.abilities.cha.total },
{ "pdf": "Ability Modifier Strength", "foundry": @data.data.abilities.str.mod },
{ "pdf": "Ability Modifier Dexterity", "foundry": @data.data.abilities.dex.mod },
{ "pdf": "Ability Modifier Constitution", "foundry": @data.data.abilities.con.mod },
{ "pdf": "Ability Modifier Intelligence", "foundry": @data.data.abilities.int.mod },
{ "pdf": "Ability Modifier Wisdom", "foundry": @data.data.abilities.wis.mod },
{ "pdf": "Ability Modifier Charisma", "foundry": @data.data.abilities.cha.mod },
{ "pdf": "Total Initiative Modifier", "foundry": @data.data.attributes.init.total },
{ "pdf": "Dex Modifier ini", "foundry": @data.data.abilities.dex.mod },
{ "pdf": "Initiative Misc Modifier", "foundry": @data.data.attributes.init.bonus },
{ "pdf": "Total Armor Class", "foundry": @data.data.attributes.ac.normal.total },
{ "pdf": "Armor Bonus", "foundry": @_rollData.armor.ac },
{ "pdf": "Shield Bonus", "foundry": @_rollData.shield.total },
{ "pdf": "Dex Modifier1", "foundry": @data.data.abilities.dex.mod },
{ "pdf": "Size Modifier1", "foundry": @data.data.traits.size },
{ "pdf": "Natural Armor", "foundry": @data.data.attributes.naturalAC },
{ "pdf": "AC Misc Modifier", "foundry": Math.floor(@data.data.attributes.ac.normal.total - @_rollData.armor.ac - @_rollData.shield.total - @data.data.abilities.dex.mod - @data.data.attributes.naturalAC - 10) },
{ "pdf": "Touch Armor Class", "foundry": @data.data.attributes.ac.touch.total },
{ "pdf": "Flat-Footed Armor Class", "foundry": @data.data.attributes.ac.flatFooted.total },
{ "pdf": "Total Fortitude Save", "foundry": @data.data.attributes.savingThrows.fort.total },
{ "pdf": "Base Save Fortitude", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.fort.value)[0] },
{ "pdf": "Con Modifier S", "foundry": @data.data.abilities.con.mod },
{ "pdf": "Total Reflex Save", "foundry": @data.data.attributes.savingThrows.ref.total },
{ "pdf": "Base Save Reflex", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.ref.value)[0] },
{ "pdf": "Dex Modifier S", "foundry": @data.data.abilities.dex.mod },
{ "pdf": "Total Will save", "foundry": @data.data.attributes.savingThrows.will.total },
{ "pdf": "Base Save Will", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.will.value)[0] },
{ "pdf": "Wis Modifier S", "foundry": @data.data.abilities.wis.mod },
{ "pdf": "Magic Modifier Fortitude", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.fort.value)[1] || "" },
{ "pdf": "Magic Modifier Reflex", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.ref.value)[1] || "" },
{ "pdf": "Magic Modifier Will", "foundry": @data.items.filter(i => i.data.type === "class").map(i => i.data.data.savingThrows.will.value)[1] || "" },
{ "pdf": "Saving Throw Modifiers", "foundry": @data.data.attributes.saveNotes },
{ "pdf": "Weapon Name Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.name || "" },
{ "pdf": "Weapon Name Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.name || "" },
{ "pdf": "Weapon Name Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.name || "" },
{ "pdf": "Weapon Name Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.name || "" },
{ "pdf": "Weapon Name Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.name || "" },
{ "pdf": "Type Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data.data.weaponSubtype || "" },
{ "pdf": "Type Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data.data.weaponSubtype || "" },
{ "pdf": "Type Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data.data.weaponSubtype || "" },
{ "pdf": "Type Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data.data.weaponSubtype || "" },
{ "pdf": "Type Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data.data.weaponSubtype || "" },
{ "pdf": "Attack Bonus Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data.data.weaponSubtype || "" },
{ "pdf": "Attack Bonus Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data.data.weaponSubtype || "" },
{ "pdf": "Attack Bonus Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data.data.weaponSubtype || "" },
{ "pdf": "Attack Bonus Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data.data.weaponSubtype || "" },
{ "pdf": "Attack Bonus Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data.data.weaponSubtype || "" },
{ "pdf": "Critical Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critRange || 20 },
{ "pdf": "Critical Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critRange || 20 },
{ "pdf": "Critical Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critRange || 20 },
{ "pdf": "Critical Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critRange || 20 },
{ "pdf": "Critical Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critRange || 20 },
{ "pdf": "Multi Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critMult || 2 },
{ "pdf": "Multi Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critMult || 2 },
{ "pdf": "Multi Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critMult || 2 },
{ "pdf": "Multi Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critMult || 2 },
{ "pdf": "Multi Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data.data.actions.filter(a => a.actionType = "mwak")[0].ability.critMult || 2 },
{ "pdf": "Total CMB", "foundry": @data.data.attributes.cmb.total },
{ "pdf": "Total CMD", "foundry": @data.data.attributes.cmd.total },
{ "pdf": "Base Attack Bonus_a", "foundry": @data.data.attributes.bab.total },
{ "pdf": "Spell Resistance", "foundry": @data.data.attributes.sr.total },
{ "pdf": "Base Attack Bonus1", "foundry": @data.data.attributes.bab.total },
{ "pdf": "Base Attack Bonus2", "foundry": @data.data.attributes.bab.total },
{ "pdf": "Str Modifiercmb", "foundry": @data.data.abilities.str.mod },
{ "pdf": "Str Modifiercmd", "foundry": @data.data.abilities.str.mod },
{ "pdf": "Dex Modifiercmd", "foundry": @data.data.abilities.dex.mod },
{ "pdf": "Size Modifiercmb", "foundry": @data.data.traits.size },
{ "pdf": "Size Modifiercmd", "foundry": @data.data.traits.size },
/* Page #2 */
{ "pdf": "Item 1", "foundry": @data.items.filter(i => ["loot", "weapon", "consumable", "equipment"].includes(i.type)).map(i => `${i.data.data.quantity}x ${i.name}`).sort().join("\n") + '\n' + @data.items.filter(i => i.type === 'container').map(i => { let s = `${i.data.data.quantity}x ${i.name}\n`; i.items.forEach(ci => { s += ` ${ci.data.data.quantity}x ${ci.name}\n`; }); return s; }).join('\n') },
{ "pdf": "Spell Name Level 0", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 0).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 1", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 1).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 2", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 2).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 3", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 3).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 4", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 4).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 5", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 5).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 6", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 6).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 7", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 7).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 8", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 8).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Spell Name Level 9", "foundry": @data.items.filter(i => ["spell"].includes(i.type) && i.data.data.level === 9).map(i => `${i.name}`).sort().join(" // ") },
{ "pdf": "Copper", "foundry": @data.data.currency.cp || "" },
{ "pdf": "Silver", "foundry": @data.data.currency.sp || "" },
{ "pdf": "Gold", "foundry": @data.data.currency.gp || "" },
{ "pdf": "Platinum", "foundry": @data.data.currency.pp || "" },
{ "pdf": "Total WT", "foundry": @data.data.attributes.encumbrance.carriedWeight },
{ "pdf": "Light Load", "foundry": @data.data.attributes.encumbrance.levels.light },
{ "pdf": "Medium Load", "foundry": @data.data.attributes.encumbrance.levels.medium },
{ "pdf": "Heavy Load", "foundry": @data.data.attributes.encumbrance.levels.heavy },
{ "pdf": "Lift Over Head", "foundry": @data.data.attributes.encumbrance.levels.heavy },
{ "pdf": "Lift Off Ground", "foundry": @data.data.attributes.encumbrance.levels.carry },
{ "pdf": "Drag or Push", "foundry": @data.data.attributes.encumbrance.levels.drag },
{ "pdf": "Feat 1", "foundry": @data.items.filter(i => i.type === "feat" && i.subType === "feat").map(i => i.name).sort().join("\n") },
{ "pdf": "Special Abilities 1", "foundry": @data.items.filter(i => i.type === "feat" && i.subType === "classFeat").map(i => i.name).sort().join("\n") },
{ "pdf": "Special Abilities 2", "foundry": @data.items.filter(i => i.type === "feat" && i.subType === "trait").map(i => i.name).sort().join("\n") },
{ "pdf": "First Class Experience Points", "foundry": @data.data.details.xp.value },
{ "pdf": "First Class Next Level", "foundry": @data.data.details.xp.max },
{ "pdf": "First Class Experience Points1", "foundry": @data.data.details.xp.pct },
{ "pdf": "Spells Per Day Level 0", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell0.value },
{ "pdf": "Spells Per Day Level 1", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell1.value },
{ "pdf": "Spells Per Day Level 2", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell2.value },
{ "pdf": "Spells Per Day Level 3", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell3.value },
{ "pdf": "Spells Per Day Level 4", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell4.value },
{ "pdf": "Spells Per Day Level 5", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell5.value },
{ "pdf": "Spells Per Day Level 6", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell6.value },
{ "pdf": "Spells Per Day Level 7", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell7.value },
{ "pdf": "Spells Per Day Level 8", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell8.value },
{ "pdf": "Spells Per Day Level 9", "foundry": @system.attributes.spells.spellbooks.primary.spells.spell9.value },
{ "pdf": "Close", "foundry": @system.attributes.spells.spellbooks.primary.range?.close ?? '-' },
{ "pdf": "Medium", "foundry": @system.attributes.spells.spellbooks.primary.range?.medium ?? '-' },
{ "pdf": "Long", "foundry": @system.attributes.spells.spellbooks.primary.range?.long ?? '-' },
{ "pdf": "AC Items Slot 1", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "armor").map(i => i.name).sort().join(",\n") },
{ "pdf": "AC Items Slot 2", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "shield").map(i => i.name).sort().join(",\n") },
{ "pdf": "Bonus 1", "foundry": @_rollData.armor.total },
{ "pdf": "Bonus 2", "foundry": @_rollData.shield.total },
{ "pdf": "Type 1", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "armor").map(i => i.data.data.equipmentSubtype).sort().join(",\n") },
{ "pdf": "Type 2", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "shield").map(i => i.data.data.equipmentSubtype).sort().join(",\n") },
{ "pdf": "Check Penalty 1", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "armor").map(i => i.data.data.armor.acp).sort().join(",\n") },
{ "pdf": "Check Penalty 2", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "shield").map(i => i.data.data.armor.acp).sort().join(",\n") },
{ "pdf": "Spell Failure 1", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "armor").map(i => i.data.data.spellFailure).sort().join(",\n") },
{ "pdf": "Spell Failure 2", "foundry": @data.items.filter(i => i.type === "equipment" && i.subType === "shield").map(i => i.data.data.spellFailure).sort().join(",\n") },
{ "pdf": "Acrobatics", "foundry": @data.data.skills.acr.cs },
{ "pdf": "Appraise Check", "foundry": @data.data.skills.apr.cs },
{ "pdf": "Bluff Check", "foundry": @data.data.skills.blf.cs },
{ "pdf": "Climb check", "foundry": @data.data.skills.clm.cs },
{ "pdf": "Diplomacy Check", "foundry": @data.data.skills.dip.cs },
{ "pdf": "Disable Device Check", "foundry": @data.data.skills.dev.cs },
{ "pdf": "Disguise Check", "foundry": @data.data.skills.dis.cs },
{ "pdf": "Escape Artist Check", "foundry": @data.data.skills.esc.cs },
{ "pdf": "Fly Check", "foundry": @data.data.skills.fly.cs },
{ "pdf": "Handle Animal Check", "foundry": @data.data.skills.han.cs },
{ "pdf": "Heal Check", "foundry": @data.data.skills.hea.cs },
{ "pdf": "Intimidate Check", "foundry": @data.data.skills.int.cs },
{ "pdf": "Knowledge (Arcana) Check", "foundry": @data.data.skills.kar.cs },
{ "pdf": "Knowledge (Dungeoneering) Check", "foundry": @data.data.skills.kdu.cs },
{ "pdf": "Knowledge (Engineering) Check", "foundry": @data.data.skills.ken.cs },
{ "pdf": "Knowledge (Geography) Check", "foundry": @data.data.skills.kge.cs },
{ "pdf": "Knowledge (History) Check", "foundry": @data.data.skills.khi.cs },
{ "pdf": "Knowledge (Local) Check", "foundry": @data.data.skills.klo.cs },
{ "pdf": "Knowledge (Nature) Check", "foundry": @data.data.skills.kna.cs },
{ "pdf": "Knowledge (Nobility) Check", "foundry": @data.data.skills.kno.cs },
{ "pdf": "Knowledge (Planes) Check", "foundry": @data.data.skills.kpl.cs },
{ "pdf": "Knowledge (Religion) Check", "foundry": @data.data.skills.kre.cs },
{ "pdf": "Linguistics Check", "foundry": @data.data.skills.lin.cs },
{ "pdf": "Perception Check", "foundry": @data.data.skills.per.cs },
{ "pdf": "Ride Check", "foundry": @data.data.skills.rid.cs },
{ "pdf": "Sense Motive Check", "foundry": @data.data.skills.sen.cs },
{ "pdf": "Sleight Of Hand Check", "foundry": @data.data.skills.slt.cs },
{ "pdf": "SpellCraft Check", "foundry": @data.data.skills.spl.cs },
{ "pdf": "Stealth Check", "foundry": @data.data.skills.ste.cs },
{ "pdf": "Survival", "foundry": @data.data.skills.sur.cs },
{ "pdf": "Swim Check", "foundry": @data.data.skills.swm.cs },
{ "pdf": "Use Magic Device Check", "foundry": @data.data.skills.umd.cs },
{ "pdf": "Ranks 1", "foundry": @data.data.skills.acr.rank },
{ "pdf": "Ranks 2", "foundry": @data.data.skills.apr.rank },
{ "pdf": "Ranks 3", "foundry": @data.data.skills.blf.rank },
{ "pdf": "Ranks 4", "foundry": @data.data.skills.clm.rank },
{ "pdf": "Ranks 8", "foundry": @data.data.skills.dip.rank },
{ "pdf": "Ranks 9", "foundry": @data.data.skills.dev.rank },
{ "pdf": "Ranks 10", "foundry": @data.data.skills.dis.rank },
{ "pdf": "Ranks 11", "foundry": @data.data.skills.esc.rank },
{ "pdf": "Ranks 12", "foundry": @data.data.skills.fly.rank },
{ "pdf": "Ranks 13", "foundry": @data.data.skills.han.rank },
{ "pdf": "Ranks 14", "foundry": @data.data.skills.hea.rank },
{ "pdf": "Ranks 15", "foundry": @data.data.skills.int.rank },
{ "pdf": "Ranks 16", "foundry": @data.data.skills.kar.rank },
{ "pdf": "Ranks 17", "foundry": @data.data.skills.kdu.rank },
{ "pdf": "Ranks 18", "foundry": @data.data.skills.ken.rank },
{ "pdf": "Ranks 19", "foundry": @data.data.skills.kge.rank },
{ "pdf": "Ranks 20", "foundry": @data.data.skills.khi.rank },
{ "pdf": "Ranks 21", "foundry": @data.data.skills.klo.rank },
{ "pdf": "Ranks 22", "foundry": @data.data.skills.kna.rank },
{ "pdf": "Ranks 23", "foundry": @data.data.skills.kno.rank },
{ "pdf": "Ranks 24", "foundry": @data.data.skills.kpl.rank },
{ "pdf": "Ranks 25", "foundry": @data.data.skills.kre.rank },
{ "pdf": "Ranks 26", "foundry": @data.data.skills.lin.rank },
{ "pdf": "Ranks 27", "foundry": @data.data.skills.per.rank },
{ "pdf": "Ranks 32", "foundry": @data.data.skills.rid.rank },
{ "pdf": "Ranks 33", "foundry": @data.data.skills.sen.rank },
{ "pdf": "Ranks 34", "foundry": @data.data.skills.slt.rank },
{ "pdf": "Ranks 35", "foundry": @data.data.skills.spl.rank },
{ "pdf": "Ranks 36", "foundry": @data.data.skills.ste.rank },
{ "pdf": "Ranks 37", "foundry": @data.data.skills.sur.rank },
{ "pdf": "Ranks 38", "foundry": @data.data.skills.swm.rank },
{ "pdf": "Ranks 39", "foundry": @data.data.skills.umd.rank },
{ "pdf": "Total Bonus 1", "foundry": @data.data.skills.acr.mod },
{ "pdf": "Total Bonus 2", "foundry": @data.data.skills.apr.mod },
{ "pdf": "Total Bonus 3", "foundry": @data.data.skills.blf.mod },
{ "pdf": "Total Bonus 4", "foundry": @data.data.skills.clm.mod },
{ "pdf": "Total Bonus 8", "foundry": @data.data.skills.dip.mod },
{ "pdf": "Total Bonus 9", "foundry": @data.data.skills.dev.mod },
{ "pdf": "Total Bonus 10", "foundry": @data.data.skills.dis.mod },
{ "pdf": "Total Bonus 11", "foundry": @data.data.skills.esc.mod },
{ "pdf": "Total Bonus 12", "foundry": @data.data.skills.fly.mod },
{ "pdf": "Total Bonus 13", "foundry": @data.data.skills.han.mod },
{ "pdf": "Total Bonus 14", "foundry": @data.data.skills.hea.mod },
{ "pdf": "Total Bonus 15", "foundry": @data.data.skills.int.mod },
{ "pdf": "Total Bonus 16", "foundry": @data.data.skills.kar.mod },
{ "pdf": "Total Bonus 17", "foundry": @data.data.skills.kdu.mod },
{ "pdf": "Total Bonus 18", "foundry": @data.data.skills.ken.mod },
{ "pdf": "Total Bonus 19", "foundry": @data.data.skills.kge.mod },
{ "pdf": "Total Bonus 20", "foundry": @data.data.skills.khi.mod },
{ "pdf": "Total Bonus 21", "foundry": @data.data.skills.klo.mod },
{ "pdf": "Total Bonus 22", "foundry": @data.data.skills.kna.mod },
{ "pdf": "Total Bonus 23", "foundry": @data.data.skills.kno.mod },
{ "pdf": "Total Bonus 24", "foundry": @data.data.skills.kpl.mod },
{ "pdf": "Total Bonus 25", "foundry": @data.data.skills.kre.mod },
{ "pdf": "Total Bonus 26", "foundry": @data.data.skills.lin.mod },
{ "pdf": "Total Bonus 27", "foundry": @data.data.skills.per.mod },
{ "pdf": "Total Bonus 32", "foundry": @data.data.skills.rid.mod },
{ "pdf": "Total Bonus 33", "foundry": @data.data.skills.sen.mod },
{ "pdf": "Total Bonus 34", "foundry": @data.data.skills.slt.mod },
{ "pdf": "Total Bonus 35", "foundry": @data.data.skills.spl.mod },
{ "pdf": "Total Bonus 36", "foundry": @data.data.skills.ste.mod },
{ "pdf": "Total Bonus 37", "foundry": @data.data.skills.sur.mod },
{ "pdf": "Total Bonus 38", "foundry": @data.data.skills.swm.mod },
{ "pdf": "Total Bonus 39", "foundry": @data.data.skills.umd.mod },
{ "pdf": "Profession 1 Check", "foundry": @data.data.skills.pro.subSkills.pro1?.cs },
{ "pdf": "Profession 1", "foundry": @data.data.skills.pro.subSkills.pro1?.name || "" },
{ "pdf": "Total Bonus 30", "foundry": (@data.data.skills.pro.subSkills.pro1?.name) ?@data.data.skills.pro.subSkills.pro1.mod : "" },
{ "pdf": "Ranks 30", "foundry": (@data.data.skills.pro.subSkills.pro1?.name) ?@data.data.skills.pro.subSkills.pro1.rank : "" },
{ "pdf": "Profession 2 Check", "foundry": @data.data.skills.pro.subSkills.pro2?.cs || "" },
{ "pdf": "Profession 2", "foundry": @data.data.skills.pro.subSkills.pro2?.name || "" },
{ "pdf": "Total Bonus 31", "foundry": (@data.data.skills.pro.subSkills.pro2?.name) ?@data.data.skills.pro.subSkills.pro2.mod : "" },
{ "pdf": "Ranks 31", "foundry": (@data.data.skills.prf.subSkills.pro2?.name) ?@data.data.skills.prf.subSkills.pro2.rank : "" },
{ "pdf": "Perform 1 check", "foundry": @data.data.skills.prf.subSkills.prf1?.cs },
{ "pdf": "Perform 1", "foundry": @data.data.skills.prf.subSkills.prf1?.name || "" },
{ "pdf": "Total Bonus 28", "foundry": (@data.data.skills.prf.subSkills.prf1?.name) ?@data.data.skills.prf.subSkills.prf1.mod : "" },
{ "pdf": "Ranks 28", "foundry": (@data.data.skills.prf.subSkills.prf1?.name) ?@data.data.skills.prf.subSkills.prf1.rank : "" },
{ "pdf": "Perform 2 check", "foundry": @data.data.skills.prf.subSkills.prf2?.cs || "" },
{ "pdf": "Perform 2", "foundry": @data.data.skills.prf.subSkills.prf2?.name || "" },
{ "pdf": "Total Bonus 29", "foundry": (@data.data.skills.prf.subSkills.prf2?.name) ?@data.data.skills.prf.subSkills.prf2.mod : "" },
{ "pdf": "Ranks 29", "foundry": (@data.data.skills.prf.subSkills.prf2?.name) ?@data.data.skills.prf.subSkills.prf2.rank : "" },
{ "pdf": "Craft Check 1", "foundry": @data.data.skills.crf.subSkills.crf1?.cs || "" },
{ "pdf": "Craft 1", "foundry": @data.data.skills.crf.subSkills.crf1?.name || "" },
{ "pdf": "Total Bonus 5", "foundry": (@data.data.skills.crf.subSkills.crf1?.name) ?@data.data.skills.crf.subSkills.crf1.mod : "" },
{ "pdf": "Ranks 5", "foundry": (@data.data.skills.crf.subSkills.crf1?.name) ?@data.data.skills.crf.subSkills.crf1.rank : "" },
{ "pdf": "Craft Check 2", "foundry": @data.data.skills.crf.subSkills.crf2?.cs || "" },
{ "pdf": "Craft 2", "foundry": @data.data.skills.crf.subSkills.crf2?.name || "" },
{ "pdf": "Total Bonus 6", "foundry": (@data.data.skills.crf.subSkills.crf2?.name) ?@data.data.skills.crf.subSkills.crf2.mod : "" },
{ "pdf": "Ranks 6", "foundry": (@data.data.skills.crf.subSkills.crf2?.name) ?@data.data.skills.crf.subSkills.crf2.rank : "" },
{ "pdf": "Craft Check 3", "foundry": @data.data.skills.crf.subSkills.crf3?.cs || "" },
{ "pdf": "Craft 3", "foundry": @data.data.skills.crf.subSkills.crf3?.name || "" },
{ "pdf": "Total Bonus 7", "foundry": (@data.data.skills.crf.subSkills.crf3?.name) ?@data.data.skills.crf.subSkills.crf3.mod : "" },
{ "pdf": "Ranks 7", "foundry": (@data.data.skills.crf.subSkills.crf3?.name) ?@data.data.skills.crf.subSkills.crf3.rank : "" },
{ "pdf": "Languages Line 1", "foundry": [@data.data.traits.languages.total.map(l => l.capitalize()).sort().join(", "), @data.data.traits.languages.custom,].filter(String).join(", ") },
/*{ "pdf": "Conditional Modifiers Line 1", "foundry": [actor.data.data.traits.weaponProf.total.filter(String).map(l => l.capitalize()).join(", "), actor.data.data.traits.weaponProf.custom, actor.data.data.traits.armorProf.total.filter(String).map(l => l.capitalize()).join(", "), actor.data.data.traits.armorProf.custom,].filter(String).join(", ") },*/
{ "pdf": "Damage Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data?.data?.damage?.parts[0][0]?.replace(/sizeRoll\((?<count>[0-9]*), ?(?<size>[0-9]*), ?\u0040size\)/, "$<count>d$<size>") || "" },
{ "pdf": "DT Slot 1", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[0]?.data?.data?.damage?.parts[0][1] || "" },
{ "pdf": "Damage Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data?.data?.damage?.parts[0][0]?.replace(/sizeRoll\((?<count>[0-9]*), ?(?<size>[0-9]*), ?\u0040size\)/, "$<count>d$<size>") || "" },
{ "pdf": "DT Slot 2", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[1]?.data?.data?.damage?.parts[0][1] || "" },
{ "pdf": "Damage Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data?.data?.damage?.parts[0][0]?.replace(/sizeRoll\((?<count>[0-9]*), ?(?<size>[0-9]*), ?\u0040size\)/, "$<count>d$<size>") || "" },
{ "pdf": "DT Slot 3", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[2]?.data?.data?.damage?.parts[0][1] || "" },
{ "pdf": "Damage Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data?.data?.damage?.parts[0][0]?.replace(/sizeRoll\((?<count>[0-9]*), ?(?<size>[0-9]*), ?\u0040size\)/, "$<count>d$<size>") || "" },
{ "pdf": "DT Slot 4", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[3]?.data?.data?.damage?.parts[0][1] || "" },
{ "pdf": "Damage Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data?.data?.damage?.parts[0][0]?.replace(/sizeRoll\((?<count>[0-9]*), ?(?<size>[0-9]*), ?\u0040size\)/, "$<count>d$<size>") || "" },
{ "pdf": "DT Slot 5", "foundry": @data.items.filter(i => i.type === "weapon" && i.data.data.equipped && i.hasAttack && i.hasDamage)[4]?.data?.data?.damage?.parts[0][1] || "" },
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment