Files
roll20-character-sheets/LogicalFantasyGaming/sheet.html
T
LFG 0d0c15f3e1 Added Initiative card and Reactions to sheet
Enables use of the Selective Initiative System, added Reactions and an "I'm Ready / I'm Done" button.
2026-02-09 13:16:34 -05:00

2206 lines
93 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--
Logical Fantasy Gaming (LFG)
Official Roll20 Character Sheet
Author: Daniel Brillat
System: Logical Fantasy Gaming (LFG)
Repository: https://github.com/LogicalFantasyGaming/lfg-roll20-character-sheet
All game mechanics and system content © Logical Fantasy Gaming.
Character sheet code may be reused with attribution.
-->
<div class="lfg-sheet">
<!-- sheet359: Sheet header line with logo -->
<div class="lfg-sheet-titlebar">
<img class="lfg-sheet-logo" src="https://raw.githubusercontent.com/LogicalFantasyGaming/lfg-roll20-character-sheet/main/assets/lfg-logo-horizontal.png" alt="Logical Fantasy Gaming">
</div>
<!-- TAB STATE -->
<input id="tab-front" class="tabstate" type="radio" name="attr_sheetTab" value="front" checked>
<input id="tab-back" class="tabstate" type="radio" name="attr_sheetTab" value="back">
<input id="tab-magic" class="tabstate" type="radio" name="attr_sheetTab" value="magic">
<!-- TAB BUTTONS -->
<div class="tabs">
<label class="tabbtn" for="tab-front">Front</label>
<label class="tabbtn" for="tab-back">Back</label>
<label class="tabbtn" for="tab-magic">Spells &amp; Magic</label>
</div>
<!-- ===================== FRONT ===================== -->
<div class="page page-front">
<!-- ===== Identity Strip (Paper-sheet order) ===== -->
<!-- Identity Strip Toggle -->
<input type="checkbox" class="id-toggle" name="attr_show_identity" id="show-identity">
<label class="id-toggle-btn" for="show-identity">Identity &amp; XP</label>
<div class="identity-strip">
<div class="id-grid">
<!-- Row 1 -->
<div class="id-field id-name">
<label>Character Name</label>
<input type="text" name="attr_Name">
</div>
<div class="id-field id-class">
<label>Class</label>
<input type="text" name="attr_Class">
</div>
<div class="id-field id-level">
<label>Level</label>
<input type="text" name="attr_Level">
</div>
<div class="id-xp">
<label>Experience Points</label>
<input type="text" name="attr_XP" maxlength="4" class="xp4" placeholder="XP">
</div>
<!-- Row 2 -->
<div class="id-field id-age">
<label>Age</label>
<input type="text" name="attr_Age">
</div>
<div class="id-field id-sex">
<label>Sex</label>
<input type="text" name="attr_Sex">
</div>
<div class="id-field id-height">
<label>Height</label>
<input type="text" name="attr_Height">
</div>
<div class="id-field id-weight">
<label>Weight</label>
<input type="text" name="attr_Weight">
</div>
<div class="id-field id-hair">
<label>Hair</label>
<input type="text" name="attr_HairColor">
</div>
<div class="id-field id-eyes">
<label>Eyes</label>
<input type="text" name="attr_EyeColor">
</div>
<div class="id-field id-race">
<label>Race</label>
<input type="text" name="attr_Race">
</div>
<!-- Row 3 -->
<div class="id-field id-morality">
<label>Morality</label>
<input type="text" name="attr_Morality">
</div>
<div class="id-field id-motivation1">
<label>Motivation 1</label>
<input type="text" name="attr_Motivation_1">
</div>
<div class="id-field id-motivation2">
<label>Motivation 2</label>
<input type="text" name="attr_Motivation_2">
</div>
<div class="id-field id-moralitypoints">
<label>Morality Points</label>
<input type="text" name="attr_Morality_Points" class="mp3" placeholder="MP">
</div>
<div class="id-row id-row-vision">
<div class="id-field id-vision">
<label>Vision &amp; Senses</label>
<input type="text" name="attr_Vision_Senses">
</div>
<div class="id-field id-languages">
<label>Languages</label>
<input type="text" name="attr_Languages">
</div>
</div>
</div>
</div>
<!-- (Front retained from v2 baseline) -->
<div class="grid top-two">
<div class="card core-stats-card">
<div class="card-title">Core Stats</div>
<div class="ability-block">
<div class="ability-header">
<div></div>
<div class="ability-col-title">Ability<br>Score</div>
<div class="ability-col-title">Ability<br>Mod</div>
</div>
<div class="ability-row">
<div class="ability-abbr">STR</div>
<input type="text" name="attr_STR" class="ability-box">
<input type="text" name="attr_STRMOD" class="ability-box" readonly>
</div>
<div class="ability-row">
<div class="ability-abbr">DEX</div>
<input type="text" name="attr_DEX" class="ability-box">
<input type="text" name="attr_DEXMOD" class="ability-box" readonly>
</div>
<div class="ability-row">
<div class="ability-abbr">CON</div>
<input type="text" name="attr_CON" class="ability-box">
<input type="text" name="attr_CONMOD" class="ability-box" readonly>
</div>
<div class="ability-row">
<div class="ability-abbr">INT</div>
<input type="text" name="attr_INT" class="ability-box">
<input type="text" name="attr_INTMOD" class="ability-box" readonly>
</div>
<div class="ability-row">
<div class="ability-abbr">WIS</div>
<input type="text" name="attr_WIS" class="ability-box">
<input type="text" name="attr_WISMOD" class="ability-box" readonly>
</div>
<div class="ability-row">
<div class="ability-abbr">CHA</div>
<input type="text" name="attr_CHA" class="ability-box">
<input type="text" name="attr_CHAMOD" class="ability-box" readonly>
</div>
<div class="ability-tokenline">
<div class="hp-drlabel">Confidence Tokens</div>
<input type="text" name="attr_Confidence_Tokens" class="hp-drbox ct-box">
</div>
</div>
<div class="hp-panel">
<div class="hp-panel-title">Hit Points</div>
<div class="hp-grid">
<div class="hp-cell">
<div class="hp-label">Max HP</div>
<input type="text" name="attr_HP" class="hp-box">
</div>
<div class="hp-cell">
<div class="hp-label">Current</div>
<input type="text" name="attr_Current_HP" class="hp-box">
</div>
<div class="hp-cell">
<div class="hp-label hp-label-small">Injured<br>Threshold</div>
<input type="text" name="attr_Injured_Threshold" class="hp-box" readonly>
</div>
</div>
<div class="hp-drgrid">
<div class="hp-drlabel">Damage Resistance (DR)</div>
<input type="text" name="attr_DR" class="hp-drbox" placeholder="DR">
</div>
</div>
<div class="corestat-row hr-row" style="margin-top:6px; margin-bottom:-3px; ">
<div class="corestat-label">Hit Rating</div>
<input type="text" name="attr_HR" class="corestat-box" placeholder="HR">
</div>
<div class="corestat-row movespeed-row">
<div class="corestat-label">Move Speed</div>
<input type="text" name="attr_Move" class="corestat-box">
</div>
</div>
<div class="right-col">
<div class="card initiative-card">
<div class="initiative-row">
<div class="corestat-label corestat-label-initiative">Initiative
<div class="initiative-reactions">
<span class="initiative-reactions-label">Reactions:</span>
<input type="text" name="attr_Reactions" class="initiative-reactions-box">
</div>
</div>
<input type="text" name="attr_Initiative2" class="corestat-box">
<!-- Two-state toggle button (does not affect layout) -->
<input type="checkbox" id="init-ready-toggle" class="init-ready-toggle" name="attr_InitReadyToggle">
<label class="init-ready-btn" for="init-ready-toggle"></label>
</div>
<div class="sh sh-rating" style="margin:1px 0 8px 0; text-align:left;">
Initiative = IR+WISMod+DEXMod
</div>
</div>
<div class="card armor-saves-card">
<div class="card-title">AC &amp; Saves</div>
<!-- Armor -->
<div class="armor-top">
<div class="armor-class-label">Armor Class</div>
<input type="text" name="attr_AC" class="armor-box armor-box-main" placeholder="AC">
<div class="temp-ac-block">
<div class="temp-ac-label">Temp AC</div>
<input type="text" name="attr_Temp_AC" class="armor-box armor-box-temp">
</div>
</div>
<div class="armor-lines">
<div class="armor-line">
<div class="armor-line-label">Flat-Footed AC</div>
<input type="text" name="attr_FFAC" class="armor-box armor-box-small" placeholder="FFAC">
</div>
<div class="armor-line">
<div class="armor-line-label">AC vs Critical</div>
<input type="text" name="attr_ACvsCrit" class="armor-box armor-box-small" placeholder="ACvC">
</div>
<div class="armor-line">
<div class="armor-line-label">Touch AC</div>
<input type="text" name="attr_TouchAC" class="armor-box armor-box-small" placeholder="Touch">
</div>
</div>
<!-- AC formula helper -->
<div class="ac-formula">AC = 10+AR+DEXMod+Other Modifiers</div>
<!-- Conditions -->
<div class="conditions-panel">
<div class="conditions-label">Conditions / Effects:</div>
<textarea name="attr_Conditions___Effects" class="conditions-text"></textarea>
</div>
<!-- Saves -->
<div class="saving-title">Saving Throws</div>
<div class="saving-header">
<div></div>
<div class="sh sh-total">Total<br>Save</div>
<div></div>
<div class="sh sh-rating">Save<br>Rating</div>
<div></div>
<div class="sh sh-ability">Ability<br>Mod</div>
<div></div>
<div class="sh sh-other">Other<br>Bonus</div>
</div>
<div class="save-row">
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=FORT Save}} {{Save Total=[[1d20 + @{FORT}]]}}">FORT</button>
<div class="save-cell">
<input type="text" name="attr_FORT" class="save-box save-total" readonly>
</div>
<div class="save-eq">=</div>
<div class="save-cell">
<input type="text" name="attr_FORT_Save_Rating" class="save-box">
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_FORT_AbilityMod" class="save-box save-ability" placeholder="CON" readonly>
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_FORT_OtherBonus" class="save-box">
</div>
</div>
<div class="save-row">
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=REF Save}} {{Save Total=[[1d20 + @{REF}]]}}">REF</button>
<div class="save-cell">
<input type="text" name="attr_REF" class="save-box save-total" readonly>
</div>
<div class="save-eq">=</div>
<div class="save-cell">
<input type="text" name="attr_REF_Save_Rating" class="save-box">
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_REF_AbilityMod" class="save-box save-ability" placeholder="DEX" readonly>
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_REF_OtherBonus" class="save-box">
</div>
</div>
<div class="save-row">
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=WILL Save}} {{Save Total=[[1d20 + @{WILL}]]}}">WILL</button>
<div class="save-cell">
<input type="text" name="attr_WILL" class="save-box save-total" readonly>
</div>
<div class="save-eq">=</div>
<div class="save-cell">
<input type="text" name="attr_WILL_Save_Rating" class="save-box">
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_WILL_AbilityMod" class="save-box save-ability" placeholder="WIS" readonly>
</div>
<div class="save-plus">+</div>
<div class="save-cell">
<input type="text" name="attr_WILL_OtherBonus" class="save-box">
</div>
</div>
</div>
</div>
<div class="card armor-defenses-card">
<input type="checkbox" class="ad-card-toggle" name="attr_ui_armor_defenses_open" id="ad-card-toggle-armor-defenses" checked>
<label class="card-title ad-card-toggle-btn" for="ad-card-toggle-armor-defenses">Armor &amp; Defenses</label>
<div class="ad-card-collapsible">
<div class="ad-body">
<!-- ARMOR -->
<div class="ad-block ad-armor">
<div class="ad-block-title">Armor:<input type="text" name="attr_Equipped_Armor" class="ad-input ad-title-input" placeholder="Equipped Armor"></div>
<div class="ad-row ad-row-two">
<div class="ad-field ar-field">
<div class="ad-label red nowrap">Armor Rating:</div>
<input type="text" name="attr_Armor_Rating" class="ad-input ad-box ad-box-ar" placeholder="AR">
</div>
<div class="ad-field">
<div class="ad-label arvc-black">ARvC:</div>
<input type="text" name="attr_ARvC" class="ad-input ad-box ad-box-secondary" placeholder="ARvC">
</div>
</div>
<div class="ad-row ad-armor-type">
<input type="text" name="attr_Armor_Type" class="ad-input ad-line armor-type-full" placeholder="Armor Type & Info (Simple / Light / Med / Heavy)">
</div>
<div class="ad-divider"></div>
<div class="ad-row ad-dr-row">
<div class="ad-label red">Damage Resistance:</div>
<input type="text" name="attr_Armor_DR" class="corestat-box" placeholder="DR">
</div>
<div class="ad-row ad-row-two">
<div class="ad-field">
<div class="ad-label">Time to Don:</div>
<input type="text" name="attr_Time_to_Don" class="ad-input ad-line" placeholder="">
</div>
<div class="ad-field">
<div class="ad-label">Weight:</div>
<input type="text" name="attr_Armor_Weight" class="ad-input ad-line" placeholder="">
</div>
</div>
<div class="ad-row ad-details">
<label class="ad-check">
<span class="ad-check-label">Tattered (-1AC)</span>
<input type="checkbox" name="attr_Armor_Tattered">
</label>
<div class="ad-label red nowrap">Attack Penalty</div>
<input type="text" name="attr_Attack_Penalty" class="ad-input ad-box" placeholder="0">
</div>
</div>
<!-- OTHER DEFENSES -->
<div class="ad-block ad-otherdef">
<div class="ad-table">
<div class="ad-th ad-th-left">Other Defenses</div>
<div class="ad-th ad-th-right">+ to AC</div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name1" class="ad-input ad-td-input" placeholder="DEX Mod"></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_DEX_Mod" class="ad-input ad-tablebox"></div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name2" class="ad-input ad-td-input" placeholder="Shield Rating (SR)"></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Shield_Rating" class="ad-input ad-tablebox"></div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name3" class="ad-input ad-td-input" placeholder="Natural Armor"></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Natural_Armor" class="ad-input ad-tablebox"></div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name4" class="ad-input ad-td-input" placeholder=""></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other1" class="ad-input ad-tablebox"></div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name5" class="ad-input ad-td-input" placeholder=""></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other2" class="ad-input ad-tablebox"></div>
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name6" class="ad-input ad-td-input" placeholder=""></div>
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other3" class="ad-input ad-tablebox"></div>
<div class="ad-parry">
<div class="ad-parry-label">Active Parry Roll: <span class="ad-parry-fixed">1d20 +</span></div>
<input type="text" name="attr_Active_Parry_Bonus" class="corestat-box">
</div>
<div class="ad-resist">
<div class="ad-resist-label">Resistances:</div>
<textarea name="attr_Resistances" class="ad-textarea" rows="2"></textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="grid two">
<!-- REPEATING WEAPONS --> </div>
<div class="card weapons-card-full">
<div class="card-title">Weapons &amp; Attacks</div>
<fieldset class="repeating_weapons">
<div class="weapon-table">
<!-- Row 1 -->
<div class="wt-left wt-row1">
<div class="wt-weaponline">
<input type="text" name="attr_weapon_label" class="wt-weaponlabelbox" placeholder="Weapon">
</div>
<div class="wt-handline">
<div class="wt-handlabel">Hand:</div>
<input type="text" name="attr_weapon_hand" class="wt-hand" placeholder="R/L">
</div>
<div class="wt-bigaction">
<div class="wt-biglabel">Big Action Attack:</div>
</div>
</div>
<div class="wt-head wt-attackbonus"><div class="wt-headlabel">Attack Bonus</div><input type="text" name="attr_weapon_attack_top" class="wt-box wt-box-top" placeholder="Atk Bonus 1">
<button type="roll" class="wt-attackroll-btn" value="&{template:default} {{name=@{weapon_label} Attack Roll}} {{Total=[[1d20 + @{weapon_attack_top}]]}}">Attack Roll</button></div>
<div class="wt-head wt-critical"><div class="wt-headlabel">Critical</div><input type="text" name="attr_weapon_critical_top" class="wt-box wt-box-top" placeholder="Critical 1"></div>
<div class="wt-head wt-damage"><div class="wt-headlabel">Damage</div><input type="text" name="attr_weapon_damage_top" class="wt-box wt-box-top" placeholder="Damage 1"></div>
<!-- Row 2 -->
<div class="wt-left wt-row2">
<input type="text" name="attr_weapon_otherattack" class="wt-otherattack" placeholder="Other Attack">
</div>
<div class="wt-cell">
<input type="text" name="attr_weapon_attack" class="wt-box wt-box-secondary" placeholder="Atk Bonus 2">
</div>
<div class="wt-cell">
<input type="text" name="attr_weapon_critical" class="wt-box wt-box-secondary" placeholder="Critical 2">
</div>
<div class="wt-cell">
<input type="text" name="attr_weapon_damage" class="wt-box wt-box-secondary" placeholder="Damage 2">
</div>
<!-- Row 3 -->
<div class="wt-otherinfo">
<div class="wt-otherlabel">Other Info:</div>
<textarea name="attr_weapon_notes" class="weapon-notes-text" placeholder="AP / Traits / Range / Ammo / Notes"></textarea>
</div>
</div>
<hr>
</fieldset>
</div>
</div>
<div class="grid two">
<div class="card">
<div class="card-title">Feats & Abilities</div>
<div class="row"><textarea name="attr_Feat1" class="feats-notes-text" rows="1" placeholder="Feat 1"></textarea></div>
<div class="row"><textarea name="attr_Feat2" class="feats-notes-text" rows="1" placeholder="Feat 2"></textarea></div>
<div class="row"><textarea name="attr_Feat3" class="feats-notes-text" rows="1" placeholder="Feat 3"></textarea></div>
<div class="row"><textarea name="attr_Ability1" class="feats-notes-text" rows="1" placeholder="Ability 1"></textarea></div>
<div class="row"><textarea name="attr_Ability2" class="feats-notes-text" rows="1" placeholder="Ability 2"></textarea></div>
<div class="row"><textarea name="attr_Ability3" class="feats-notes-text" rows="1" placeholder="Ability 3"></textarea></div>
<!-- Optional extra rows -->
<fieldset class="repeating_featsabilities">
<div class="row"><textarea name="attr_name" class="feats-notes-text" rows="1" placeholder="Additional Feat / Ability"></textarea></div>
</fieldset>
</div>
<div class="card">
<div class="card-title">Story Notes</div>
<textarea name="attr_Note1"></textarea>
<textarea name="attr_Note2"></textarea>
<textarea name="attr_Note3"></textarea>
</div>
</div>
</div>
<!-- ===================== BACK ===================== -->
<div class="page page-back">
<div class="grid two">
<div class="card skills-card">
<div class="card-title">Skills</div>
<div class="skill-header">
<div>Total</div>
<div>Skill</div>
<div>Ability Mod</div>
<div>Bonus1</div>
<div>Bonus2</div>
<div>RANKS</div>
</div>
<div class="skill-row">
<input type="text" name="attr_Acrobatics" placeholder="Total" readonly readonly>
<div class="skill-name">Acrobatics*</div>
<input type="text" name="attr_Acrobatics_AbilityMod" placeholder="DEX" readonly>
<input type="text" name="attr_AcroBonus1" placeholder="Bonus1">
<input type="text" name="attr_AcroBonus2" placeholder="Bonus2">
<input type="text" name="attr_Acro_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Bluff" placeholder="Total" readonly>
<div class="skill-name">Bluff</div>
<input type="text" name="attr_Bluff_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_BluffBonus1" placeholder="Bonus1">
<input type="text" name="attr_BluffBonus2" placeholder="Bonus2">
<input type="text" name="attr_Bluff_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Climb" placeholder="Total" readonly>
<div class="skill-name">Climb*</div>
<input type="text" name="attr_Climb_AbilityMod" placeholder="STR" readonly>
<input type="text" name="attr_ClimbBonus1" placeholder="Bonus1">
<input type="text" name="attr_ClimbBonus2" placeholder="Bonus2">
<input type="text" name="attr_Climb_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Academia" placeholder="Total" readonly>
<div class="skill-name">Craft (Academia)</div>
<input type="text" name="attr_Craft_Academia_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_AcademiaBonus1" placeholder="Bonus1">
<input type="text" name="attr_AcademiaBonus2" placeholder="Bonus2">
<input type="text" name="attr_Academia_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Alchemy" placeholder="Total" readonly>
<div class="skill-name">Craft (Alchemy)</div>
<input type="text" name="attr_Craft_Alchemy_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_AlchemyBonus1" placeholder="Bonus1">
<input type="text" name="attr_AlchemyBonus2" placeholder="Bonus2">
<input type="text" name="attr_Alchemy_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Blacksmith" placeholder="Total" readonly>
<div class="skill-name">Craft (Blacksmith)</div>
<input type="text" name="attr_Craft_Blacksmith_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_BlacksmithBonus1" placeholder="Bonus1">
<input type="text" name="attr_BlacksmithBonus2" placeholder="Bonus2">
<input type="text" name="attr_Blacksmith_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Bow_Fletch" placeholder="Total" readonly>
<div class="skill-name">Craft (Bow/Fletch)</div>
<input type="text" name="attr_Craft_Bow_Fletch_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_Bow_FletchBonus1" placeholder="Bonus1">
<input type="text" name="attr_Bow_FletchBonus2" placeholder="Bonus2">
<input type="text" name="attr_Bow_Fletch_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Fine_Arts" placeholder="Total" readonly>
<div class="skill-name">Craft (Fine Arts)*</div>
<input type="text" name="attr_Craft_Fine_Arts_AbilityMod" placeholder="IN/DX">
<input type="text" name="attr_FineArtsBonus1" placeholder="Bonus1">
<input type="text" name="attr_FineArtsBonus2" placeholder="Bonus2">
<input type="text" name="attr_Fine_Arts_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Jeweler" placeholder="Total" readonly>
<div class="skill-name">Craft (Jeweler)*</div>
<input type="text" name="attr_Craft_Jeweler_AbilityMod" placeholder="IN/DX">
<input type="text" name="attr_JewelerBonus1" placeholder="Bonus1">
<input type="text" name="attr_JewelerBonus2" placeholder="Bonus2">
<input type="text" name="attr_Jeweler_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Craft_Magic_Item" placeholder="Total" readonly>
<div class="skill-name">Craft (Magic Item)</div>
<input type="text" name="attr_Craft_Magic_Item_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_CraftMagicItemBonus1" placeholder="Bonus1">
<input type="text" name="attr_CraftMagicItemBonus2" placeholder="Bonus2">
<input type="text" name="attr_Craft_Magic_Item_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Mechanisms" placeholder="Total" readonly>
<div class="skill-name">Craft (Mechanisms)*</div>
<input type="text" name="attr_Craft_Mechanisms_AbilityMod" placeholder="IN/DX">
<input type="text" name="attr_MechanismsBonus1" placeholder="Bonus1">
<input type="text" name="attr_MechanismsBonus2" placeholder="Bonus2">
<input type="text" name="attr_Mechanisms_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Stonework" placeholder="Total" readonly>
<div class="skill-name">Craft (Stonework)</div>
<input type="text" name="attr_Craft_Stonework_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_StoneworkBonus1" placeholder="Bonus1">
<input type="text" name="attr_StoneworkBonus2" placeholder="Bonus2">
<input type="text" name="attr_Stonework_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Tailor" placeholder="Total" readonly>
<div class="skill-name">Craft (Tailor)</div>
<input type="text" name="attr_Craft_Tailor_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_TailorBonus1" placeholder="Bonus1">
<input type="text" name="attr_TailorBonus2" placeholder="Bonus2">
<input type="text" name="attr_Tailor_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Woodwork" placeholder="Total" readonly>
<div class="skill-name">Craft (Woodwork)</div>
<input type="text" name="attr_Craft_Woodwork_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_WoodworkBonus1" placeholder="Bonus1">
<input type="text" name="attr_WoodworkBonus2" placeholder="Bonus2">
<input type="text" name="attr_Woodwork_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Diplomacy" placeholder="Total" readonly>
<div class="skill-name">Diplomacy</div>
<input type="text" name="attr_Diplomacy_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_DiplomacyBonus1" placeholder="Bonus1">
<input type="text" name="attr_DiplomacyBonus2" placeholder="Bonus2">
<input type="text" name="attr_Diplomacy_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Handle_Animal" placeholder="Total" readonly>
<div class="skill-name">Handle Animal</div>
<input type="text" name="attr_Handle_Animal_AbilityMod" placeholder="WIS" readonly>
<input type="text" name="attr_HandleAnimalBonus1" placeholder="Bonus1">
<input type="text" name="attr_HandleAnimalBonus2" placeholder="Bonus2">
<input type="text" name="attr_Handle_Animal_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Heal" placeholder="Total" readonly>
<div class="skill-name">Heal</div>
<input type="text" name="attr_Heal_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_HealBonus1" placeholder="Bonus1">
<input type="text" name="attr_HealBonus2" placeholder="Bonus2">
<input type="text" name="attr_Heal_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Hide" placeholder="Total" readonly>
<div class="skill-name">Hide</div>
<input type="text" name="attr_Hide_AbilityMod" placeholder="IN/WI">
<input type="text" name="attr_HideBonus1" placeholder="Bonus1">
<input type="text" name="attr_HideBonus2" placeholder="Bonus2">
<input type="text" name="attr_Hide_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Intimidate" placeholder="Total" readonly>
<div class="skill-name">Intimidate</div>
<input type="text" name="attr_Intimidate_AbilityMod" placeholder="CH/ST">
<input type="text" name="attr_IntimidateBonus1" placeholder="Bonus1">
<input type="text" name="attr_IntimidateBonus2" placeholder="Bonus2">
<input type="text" name="attr_Intimidate_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_JumpandSprint" placeholder="Total" readonly>
<div class="skill-name">Jump & Sprint*</div>
<input type="text" name="attr_Jump_and_Sprint_AbilityMod" placeholder="STR" readonly>
<input type="text" name="attr_JumpandSprintBonus1" placeholder="Bonus1">
<input type="text" name="attr_JumpandSprintBonus2" placeholder="Bonus2">
<input type="text" name="attr_Jump_and_Sprint_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Arcana" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Arcana)</div>
<input type="text" name="attr_Knowledge_Arcana_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_ArcanaBonus1" placeholder="Bonus1">
<input type="text" name="attr_ArcanaBonus2" placeholder="Bonus2">
<input type="text" name="attr_Arcana_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Civilization" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Civilization)</div>
<input type="text" name="attr_Knowledge_Civilization_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_CivilizationBonus1" placeholder="Bonus1">
<input type="text" name="attr_CivilizationBonus2" placeholder="Bonus2">
<input type="text" name="attr_Civilization_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Dungeons" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Dungeons)</div>
<input type="text" name="attr_Knowledge_Dungeons_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_DungeonsBonus1" placeholder="Bonus1">
<input type="text" name="attr_DungeonsBonus2" placeholder="Bonus2">
<input type="text" name="attr_Dungeons_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Nature" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Nature)</div>
<input type="text" name="attr_Knowledge_Nature_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_NatureBonus1" placeholder="Bonus1">
<input type="text" name="attr_NatureBonus2" placeholder="Bonus2">
<input type="text" name="attr_Nature_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Planes" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Planes)</div>
<input type="text" name="attr_Knowledge_Planes_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_PlanesBonus1" placeholder="Bonus1">
<input type="text" name="attr_PlanesBonus2" placeholder="Bonus2">
<input type="text" name="attr_Planes_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Religion" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Religion)</div>
<input type="text" name="attr_Knowledge_Religion_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_ReligionBonus1" placeholder="Bonus1">
<input type="text" name="attr_ReligionBonus2" placeholder="Bonus2">
<input type="text" name="attr_Religion_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Linguistics" placeholder="Total" readonly>
<div class="skill-name">Linguistics</div>
<input type="text" name="attr_Linguistics_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_LinguisticsBonus1" placeholder="Bonus1">
<input type="text" name="attr_LinguisticsBonus2" placeholder="Bonus2">
<input type="text" name="attr_Linguistics_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Listen" placeholder="Total" readonly>
<div class="skill-name">Listen</div>
<input type="text" name="attr_Listen_AbilityMod" placeholder="WIS" readonly>
<input type="text" name="attr_ListenBonus1" placeholder="Bonus1">
<input type="text" name="attr_ListenBonus2" placeholder="Bonus2">
<input type="text" name="attr_Listen_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Move_Silently" placeholder="Total" readonly>
<div class="skill-name">Move Silently*</div>
<input type="text" name="attr_Move_Silently_AbilityMod" placeholder="DEX" readonly>
<input type="text" name="attr_MoveSilentlyBonus1" placeholder="Bonus1">
<input type="text" name="attr_MoveSilentlyBonus2" placeholder="Bonus2">
<input type="text" name="attr_Move_Silently_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Comedy_and_Stories" placeholder="Total" readonly>
<div class="skill-name">Perform (Comedy & Stories)</div>
<input type="text" name="attr_Perform_Comedy_and_Stories_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_ComedyBonus1" placeholder="Bonus1">
<input type="text" name="attr_ComedyBonus2" placeholder="Bonus2">
<input type="text" name="attr_Comedy_and_Stories_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Dance_and_Motion" placeholder="Total" readonly>
<div class="skill-name">Perform (Dance & Motion)*</div>
<input type="text" name="attr_Perform_Dance_and_Motion_AbilityMod" placeholder="DEX" readonly>
<input type="text" name="attr_DanceBonus1" placeholder="Bonus1">
<input type="text" name="attr_DanceBonus2" placeholder="Bonus2">
<input type="text" name="attr_Dance_and_Motion_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Music_Aerobic" placeholder="Total" readonly>
<div class="skill-name">Perform (Music - Aerobic)</div>
<input type="text" name="attr_Perform_Music___Aerobic_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_MusicAerobicBonus1" placeholder="Bonus1">
<input type="text" name="attr_MusicAerobicBonus2" placeholder="Bonus2">
<input type="text" name="attr_Music_Aerobic_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Music_Manual" placeholder="Total" readonly>
<div class="skill-name">Perform (Music - Manual)</div>
<input type="text" name="attr_Perform_Music___Manual_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_MusicManualBonus1" placeholder="Bonus1">
<input type="text" name="attr_MusicManualBonus2" placeholder="Bonus2">
<input type="text" name="attr_Music_Manual_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Song_and_Poerty" placeholder="Total" readonly>
<div class="skill-name">Perform (Song & Poetry)</div>
<input type="text" name="attr_Perform_Song_and_Poetry_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_SongPoetryBonus1" placeholder="Bonus1">
<input type="text" name="attr_SongPoetryBonus2" placeholder="Bonus2">
<input type="text" name="attr_Song_and_Poetry_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Perseverance" placeholder="Total" readonly>
<div class="skill-name">Perseverance*</div>
<input type="text" name="attr_Perseverance_AbilityMod" placeholder="CO/WI">
<input type="text" name="attr_PerseveranceBonus1" placeholder="Bonus1">
<input type="text" name="attr_PerseveranceBonus2" placeholder="Bonus2">
<input type="text" name="attr_Perseverance_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Ride" placeholder="Total" readonly>
<div class="skill-name">Ride*</div>
<input type="text" name="attr_Ride_AbilityMod" placeholder="DEX" readonly>
<input type="text" name="attr_RideBonus1" placeholder="Bonus1">
<input type="text" name="attr_RideBonus2" placeholder="Bonus2">
<input type="text" name="attr_Ride_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Seafaring" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Seafaring)</div>
<input type="text" name="attr_Knowledge_Seafaring_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_SeafaringBonus1" placeholder="Bonus1">
<input type="text" name="attr_SeafaringBonus2" placeholder="Bonus2">
<input type="text" name="attr_Seafaring_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Sense_Motive" placeholder="Total" readonly>
<div class="skill-name">Sense Motive</div>
<input type="text" name="attr_Sense_Motive_AbilityMod" placeholder="WIS" readonly>
<input type="text" name="attr_SenseMotiveBonus1" placeholder="Bonus1">
<input type="text" name="attr_SenseMotiveBonus2" placeholder="Bonus2">
<input type="text" name="attr_Sense_Motive_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Sleight_of_Hand" placeholder="Total" readonly>
<div class="skill-name">Sleight of Hand*</div>
<input type="text" name="attr_Sleight_of_Hand_AbilityMod" placeholder="DEX" readonly>
<input type="text" name="attr_SleightofHandBonus1" placeholder="Bonus1">
<input type="text" name="attr_SleightofHandBonus2" placeholder="Bonus2">
<input type="text" name="attr_Sleight_of_Hand_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Spot" placeholder="Total" readonly>
<div class="skill-name">Spot</div>
<input type="text" name="attr_Spot_AbilityMod" placeholder="WIS" readonly>
<input type="text" name="attr_SpotBonus1" placeholder="Bonus1">
<input type="text" name="attr_SpotBonus2" placeholder="Bonus2">
<input type="text" name="attr_Spot_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Survival" placeholder="Total" readonly>
<div class="skill-name">Survival</div>
<input type="text" name="attr_Survival_AbilityMod" placeholder="WIS" readonly>
<input type="text" name="attr_SurvivalBonus1" placeholder="Bonus1">
<input type="text" name="attr_SurvivalBonus2" placeholder="Bonus2">
<input type="text" name="attr_Survival_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Swim" placeholder="Total" readonly>
<div class="skill-name">Swim*</div>
<input type="text" name="attr_Swim_AbilityMod" placeholder="STR" readonly>
<input type="text" name="attr_SwimBonus1" placeholder="Bonus1">
<input type="text" name="attr_SwimBonus2" placeholder="Bonus2">
<input type="text" name="attr_Swim_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Tactics" placeholder="Total" readonly>
<div class="skill-name">Knowledge (Tactics)</div>
<input type="text" name="attr_Knowledge_Tactics_AbilityMod" placeholder="INT" readonly>
<input type="text" name="attr_TacticsBonus1" placeholder="Bonus1">
<input type="text" name="attr_TacticsBonus2" placeholder="Bonus2">
<input type="text" name="attr_Tactics_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Under_Cover" placeholder="Total" readonly>
<div class="skill-name">Under Cover</div>
<input type="text" name="attr_Under_Cover_AbilityMod" placeholder="CHA" readonly>
<input type="text" name="attr_UnderCoverBonus1" placeholder="Bonus1">
<input type="text" name="attr_UnderCoverBonus2" placeholder="Bonus2">
<input type="text" name="attr_Under_Cover_Ranks" placeholder="RANKS">
</div>
<div class="skill-row">
<input type="text" name="attr_Wrestling" placeholder="Total" readonly>
<div class="skill-name">Wrestling</div>
<input type="text" name="attr_Wrestling_AbilityMod" placeholder="STR" readonly>
<input type="text" name="attr_WrestlingBonus1" placeholder="Bonus1">
<input type="text" name="attr_WrestlingBonus2" placeholder="Bonus2">
<input type="text" name="attr_Wrestling_Ranks" placeholder="RANKS">
</div>
<div class="skills-physnote">* indicates Physical Skills affected by your Mobility Penalty</div>
<div class="row skills-totalranks">
<label>Total Skill Ranks</label>
<input type="text" name="attr_Total_Skill_Ranks" placeholder="Total Skill Ranks">
</div>
<hr>
<div class="card-title">Custom Skills</div>
<div class="skill-header skill-header-custom">
<div>Total</div>
<div>Skill</div>
<div>Ability Mod</div>
<div>Bonus1</div>
<div>Bonus2</div>
<div>RANKS</div>
</div>
<fieldset class="repeating_customskills">
<div class="skill-row skill-row-custom">
<input type="text" name="attr_total" placeholder="Total" readonly>
<input type="text" name="attr_name" placeholder="Skill Name">
<input type="text" name="attr_abilitymod" placeholder="Ability Mod">
<input type="text" name="attr_bonus1" placeholder="Bonus1">
<input type="text" name="attr_bonus2" placeholder="Bonus2">
<input type="text" name="attr_ranks" placeholder="RANKS">
</div>
</fieldset>
</div>
<div class="card gear-equipment">
<div class="card-title">Gear & Equipment</div>
<div class="subcard gold-money-subcard">
<div class="subcard-title">Gold &amp; Money</div>
<div class="equip-grid">
<div class="equip-row equip-header-row">
<div class="equip-col-header">Gems &amp; Valuables</div>
<div class="equip-col-header">Gold</div>
</div>
<div class="equip-sep"></div>
<div class="equip-row">
<textarea type="text" name="attr_GemsValuables" placeholder="Gems &amp; Valuables" class="gm-gems-text" rows="1" placeholder="Gems &amp; Valuables"></textarea>
<input type="text" name="attr_Gold" placeholder="Gold (GP)">
</div>
</div>
</div>
<div class="subcard equip-slots">
<div class="subcard-title">Equip Slots</div>
<div class="equip-grid">
<div class="equip-row equip-header-row">
<div class="equip-label"></div>
<div class="equip-col-header">Equipped Item</div>
<div class="equip-col-header">Weight</div>
</div>
<div class="equip-row">
<div class="equip-label">Head</div>
<input type="text" name="attr_Head_Equip" placeholder="Head Equip">
<input type="text" name="attr_HeadWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Face</div>
<input type="text" name="attr_Face_Equip" placeholder="Face Equip">
<input type="text" name="attr_FaceWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Neck</div>
<input type="text" name="attr_Neck_Equip" placeholder="Neck Equip">
<input type="text" name="attr_NeckWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Torso-Under</div>
<input type="text" name="attr_Torso_Under_Equip" placeholder="Torso-Under Equip">
<input type="text" name="attr_TorsoUnderWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Torso-Over</div>
<input type="text" name="attr_Torso_Over_Equip" placeholder="Torso-Over Equip">
<input type="text" name="attr_TorsoOverWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Waist</div>
<input type="text" name="attr_Waist_Equip" placeholder="Waist Equip">
<input type="text" name="attr_WaistWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Shoulders</div>
<input type="text" name="attr_Shoulders_Equip" placeholder="Shoulders Equip">
<input type="text" name="attr_ShouldersWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Arm/Wrist</div>
<input type="text" name="attr_Arm_Wrist_Equip" placeholder="Arm/Wrist Equip">
<input type="text" name="attr_ArmsWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Hands</div>
<input type="text" name="attr_Hands_Equip" placeholder="Hands Equip">
<input type="text" name="attr_HandsWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Ring 1</div>
<input type="text" name="attr_Ring_1_Equip" placeholder="Ring 1 Equip">
<input type="text" name="attr_RingWeight1" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Ring 2</div>
<input type="text" name="attr_Ring_2_Equip" placeholder="Ring 2 Equip">
<input type="text" name="attr_RingWeight2" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Legs</div>
<input type="text" name="attr_Legs_Equip" placeholder="Legs Equip">
<input type="text" name="attr_LegsWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Feet</div>
<input type="text" name="attr_Feet_Equip" placeholder="Feet Equip">
<input type="text" name="attr_FeetWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Accessory</div>
<input type="text" name="attr_Accessory_Equip" placeholder="Accessory Equip">
<input type="text" name="attr_AccessoryWeight" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Carried Item 1</div>
<input type="text" name="attr_CarriedItem1_Equip" placeholder="Carried Item 1">
<input type="text" name="attr_CarriedItem1_Equip_Wt" placeholder="Wt">
</div>
<div class="equip-row">
<div class="equip-label">Carried Item 2</div>
<input type="text" name="attr_CarriedItem2_Equip" placeholder="Carried Item 2">
<input type="text" name="attr_CarriedItem2_Equip_Wt" placeholder="Wt">
</div>
<div class="equip-sep"></div>
<div class="equip-row equip-total-row">
<div class="equip-label">TOTAL EQUIPPED WEIGHT</div>
<input type="text" name="attr_TotalEquippedWeight" placeholder="TOTAL EQUIPPED WEIGHT" class="equip-total-weight" readonly>
</div>
</div>
</div>
<div class="subcard backpack-test">
<div class="subcard-title">Backpack</div>
<div class="equip-grid">
<div class="equip-row equip-header-row">
<div class="equip-col-header">Backpack Item</div>
<div class="equip-col-header">Weight</div>
</div>
<div class="equip-sep"></div>
<div class="equip-row">
<input type="text" name="attr_BackpackTest_Item_1" placeholder="Backpack Item 1">
<input type="text" name="attr_BackpackTest_Wt_1" placeholder="Wt">
</div>
<div class="equip-row">
<input type="text" name="attr_BackpackTest_Item_2" placeholder="Backpack Item 2">
<input type="text" name="attr_BackpackTest_Wt_2" placeholder="Wt">
</div>
<div class="equip-row">
<input type="text" name="attr_BackpackTest_Item_3" placeholder="Backpack Item 3">
<input type="text" name="attr_BackpackTest_Wt_3" placeholder="Wt">
</div>
<div class="equip-row">
<input type="text" name="attr_BackpackTest_Item_4" placeholder="Backpack Item 4">
<input type="text" name="attr_BackpackTest_Wt_4" placeholder="Wt">
</div>
<div class="equip-row">
<input type="text" name="attr_BackpackTest_Item_5" placeholder="Backpack Item 5">
<input type="text" name="attr_BackpackTest_Wt_5" placeholder="Wt">
</div>
<!-- Additional Backpack rows (Roll20 repeating section) -->
<fieldset class="repeating_backpack">
<div class="equip-row">
<input type="text" name="attr_item" placeholder="Backpack Item">
<input type="text" name="attr_wt" placeholder="Wt">
</div>
</fieldset>
<div class="equip-sep"></div>
<div class="equip-row backpack-total-row">
<div class="equip-label backpack-total-label">TOTAL BACKPACK WEIGHT</div>
<input type="text" name="attr_BackpackTest_TotalWeight" placeholder="" class="backpack-total-weight" readonly>
</div>
</div>
</div>
<div class="inv-sheaths">
<div class="subcard boot-sheath">
<div class="subcard-title">Sheaths &amp; Bandoliers</div>
<div class="inv-grid inv-cols-1">
<div class="inv-row"><input type="text" name="attr_BootSheathSlot1" placeholder="Left Sheath">
<input type="text" name="attr_SheathWeight1" placeholder="Wt 1">
</div>
<div class="inv-row"><input type="text" name="attr_BootSheathSlot2" placeholder="Right Sheath">
<input type="text" name="attr_SheathWeight2" placeholder="Wt 2">
</div>
<div class="inv-row"><input type="text" name="attr_BootSheathSlot3" placeholder="Back/Bandolier 1">
<input type="text" name="attr_SheathWeight3" placeholder="Wt 3">
</div>
<div class="inv-row"><input type="text" name="attr_BootSheathSlot4" placeholder="Back/Bandolier 2">
<input type="text" name="attr_SheathWeight4" placeholder="Wt 4">
</div>
<fieldset class="repeating_sheathsbandoliers">
<div class="inv-row">
<input type="text" name="attr_other_sheath" placeholder="Other Sheath">
<input type="text" name="attr_other_sheath_weight" placeholder="Wt">
</div>
</fieldset>
<div class="equip-sep"></div>
<div class="sheath-total-row">
<div class="equip-label sheath-total-label">TOTAL SHEATH WEIGHT</div>
<input type="text" name="attr_TotalSheathWeight" placeholder="" class="sheath-total-weight" readonly>
</div>
</div>
</div>
<div class="subcard boot-sheath belt-pouches">
<div class="subcard-title">Belt Pouches</div>
<div class="inv-grid inv-cols-1">
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot1" placeholder="Pouch Item 1">
<input type="text" name="attr_BeltPouchWeight1" placeholder="Wt 1">
</div>
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot2" placeholder="Pouch Item 2">
<input type="text" name="attr_BeltPouchWeight2" placeholder="Wt 2">
</div>
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot3" placeholder="Pouch Item 3">
<input type="text" name="attr_BeltPouchWeight3" placeholder="Wt 3">
</div>
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot4" placeholder="Pouch Item 4">
<input type="text" name="attr_BeltPouchWeight4" placeholder="Wt 4">
</div>
<fieldset class="repeating_beltpouches">
<div class="inv-row">
<input type="text" name="attr_pouch_item" placeholder="Pouch Item">
<input type="text" name="attr_pouch_weight" placeholder="Wt">
</div>
</fieldset>
<div class="equip-sep"></div>
<div class="pouch-total-row">
<div class="equip-label pouch-total-label">TOTAL POUCH WEIGHT</div>
<input type="text" name="attr_TotalPouchWeight" placeholder="" class="pouch-total-weight" readonly>
</div>
</div>
</div>
</div>
<div class="subcard capacity-encumbrance">
<div class="subcard-title">Capacity &amp; Encumbrance</div>
<div class="cap-block">
<div class="cap-header">CARRYING CAPACITY &amp; ENCUMBRANCE</div>
<div class="cap-grid">
<div class="cap-grid-head cap-grid-lefthead"><span class="cap-grid-note">Carrying Capacity is determined by STR &amp; size. Some skills, races, &amp; feats can impact this value.</span></div>
<div class="cap-grid-head cap-grid-right">Mobility<br>Penalty*</div>
<div class="cap-grid-label">Light Load (No Penalties)</div>
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Light" placeholder="Lt Weight">
<div class="cap-grid-penalty"> </div>
<div class="cap-grid-label mod-light">Modified Light Load (Size/Skills/etc)</div>
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Light_Modified" placeholder="Mod Lt Weight">
<div class="cap-grid-penalty"> </div>
<div class="cap-grid-label">Medium Load (Encumbered)</div>
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Moderate" placeholder="Md Weight">
<div class="cap-grid-penalty">-3</div>
<div class="cap-grid-label">Heavy Load (Heavily Encumbered)</div>
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Heavy" placeholder="Hvy Weight">
<div class="cap-grid-penalty">-6</div>
</div>
</div>
<div class="cap-block cap-totals">
<div class="cap-totals-grid">
<div class="cap-totals-head cap-totals-left">TOTALS:</div>
<div class="cap-totals-head">GEAR WEIGHT</div>
<div class="cap-totals-head">MOBILITY PENALTY*</div>
<div class="cap-totals-sep"></div>
<div class="cap-totals-label">With Backpack</div>
<input type="number" name="attr_TotalGearWeight_WithBackpack" placeholder="Weight w/Bkpk" value="@{TotalEquippedWeight}+@{BackpackTest_TotalWeight}+@{TotalSheathWeight}+@{TotalPouchWeight}" disabled>
<input type="text" name="attr_TotalMobPenalty_WithBackpack" placeholder="Mob* w/Bkpk">
<div class="cap-totals-label">Without Backpack</div>
<input type="number" name="attr_TotalGearWeight_WithoutBackpack" placeholder="Weight NO Bkpk" value="@{TotalEquippedWeight}+@{TotalSheathWeight}+@{TotalPouchWeight}" disabled>
<input type="text" name="attr_TotalMobPenalty_WithoutBackpack" placeholder="Mob* NO Bkpk">
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-title">Player Notes</div>
<textarea name="attr_PlayerNotes1"></textarea>
<textarea name="attr_PlayerNotes2"></textarea>
<textarea name="attr_PlayerNotes3"></textarea>
</div>
</div>
<!-- ===================== SPELLS & MAGIC ===================== -->
<div class="page page-magic">
<div class="card magic-card">
<div class="magic-subtitle">Spellcasting Information</div>
<div class="magic-row">
<div class="magic-pair">
<div class="magic-label">Perseverance</div>
<input type="text" name="attr_Spell_Perseverance" class="magic-box small">
</div>
<div class="magic-group">
<div class="magic-label">Touch Attacks:</div>
<div class="magic-inline">
<div class="magic-label">Ranged</div>
<input type="text" name="attr_TouchAtk_Ranged" class="magic-box small">
<div class="magic-label">Melee</div>
<input type="text" name="attr_TouchAtk_Melee" class="magic-box small">
</div>
</div>
<div class="magic-pair">
<div class="magic-label">Caster Level</div>
<input type="text" name="attr_CasterLevel" class="magic-box small">
</div>
<div class="magic-pair wide">
<div class="magic-label">Casting Ability Mod (CastingMod)</div>
<input type="text" name="attr_CastingMod" class="magic-box medium">
</div>
</div>
<div class="magic-notes">
<textarea name="attr_SpellcastingNotes1" class="magic-notes-box" placeholder="Important Spellcasting Notes"></textarea>
</div>
</div>
<!-- ===================== SPELL LEVEL 0 (SL0) ===================== -->
<div class="card sl0-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl0-toggle" name="attr_show_sl0" id="show-sl0" checked>
<label class="sl0-toggle-btn" for="show-sl0">Spell Level 0 (SL0)</label>
<div class="sl0-body">
<div class="sl0-toprow">
<div class="sl0-topitem">SL0 - Save DC: <input type="text" name="attr_SL0_SaveDC" class="sl0-box"></div>
<div class="sl0-topitem">SL0 - Spells per Day: <input type="text" name="attr_SL0_SpellsPerDay" class="sl0-box"></div>
<div class="sl0-topitem">SL0 - Spells Remaining: <input type="text" name="attr_SL0_SpellsRemaining" class="sl0-box"></div>
</div>
<div class="sl0-knownrow">
<div class="sl0-knownlabel">SL0 - Spells Known:</div>
<textarea name="attr_SL0_SpellsKnown" class="sl0-knownarea" placeholder=""></textarea>
</div>
<div class="sl0-sep"></div>
<div class="sl0-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl0-spellrow sl0-spellrow-name">
<div class="sl0-spellpair namepair"><div class="sl0-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL0_SpellName0" class="sl0-line short name">
</div>
<div class="sl0-spellpair timepair"><div class="sl0-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL0_CastingTime0" class="sl0-line short time">
</div>
<div class="sl0-spellpair rangepair"><div class="sl0-spelllabel">Range:</div>
<input type="text" name="attr_SL0_Range0" class="sl0-line short range">
</div>
</div>
<div class="sl0-spellrow">
<div class="sl0-spelllabel">Spell Description:</div>
<textarea name="attr_SL0_SpellDesc0" class="sl0-descarea" placeholder=""></textarea>
</div>
<div class="sl0-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl0-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl0spellinfo">
<div class="sl0-spellbox sl0-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl0-spellrow sl0-spellrow-name">
<div class="sl0-spellpair namepair"><div class="sl0-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl0-line short name">
</div>
<div class="sl0-spellpair timepair"><div class="sl0-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl0-line short time">
</div>
<div class="sl0-spellpair rangepair"><div class="sl0-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl0-line short range">
</div>
</div>
<div class="sl0-spellrow">
<div class="sl0-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl0-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl1-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl1-toggle" name="attr_show_sl1" id="show-sl1" checked>
<label class="sl1-toggle-btn" for="show-sl1">Spell Level 1 (SL1)</label>
<div class="sl1-body">
<div class="sl1-toprow">
<div class="sl1-topitem">SL1 - Save DC: <input type="text" name="attr_SL1_SaveDC" class="sl1-box"></div>
<div class="sl1-topitem">SL1 - Spells per Day: <input type="text" name="attr_SL1_SpellsPerDay" class="sl1-box"></div>
<div class="sl1-topitem">SL1 - Spells Remaining: <input type="text" name="attr_SL1_SpellsRemaining" class="sl1-box"></div>
</div>
<div class="sl1-knownrow">
<div class="sl1-knownlabel">SL1 - Spells Known:</div>
<textarea name="attr_SL1_SpellsKnown" class="sl1-knownarea" placeholder=""></textarea>
</div>
<div class="sl1-sep"></div>
<div class="sl1-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl1-spellrow sl1-spellrow-name">
<div class="sl1-spellpair namepair"><div class="sl1-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL1_SpellName0" class="sl1-line short name">
</div>
<div class="sl1-spellpair timepair"><div class="sl1-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL1_CastingTime0" class="sl1-line short time">
</div>
<div class="sl1-spellpair rangepair"><div class="sl1-spelllabel">Range:</div>
<input type="text" name="attr_SL1_Range0" class="sl1-line short range">
</div>
</div>
<div class="sl1-spellrow">
<div class="sl1-spelllabel">Spell Description:</div>
<textarea name="attr_SL1_SpellDesc0" class="sl1-descarea" placeholder=""></textarea>
</div>
<div class="sl1-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl1-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl1spellinfo">
<div class="sl1-spellbox sl1-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl1-spellrow sl1-spellrow-name">
<div class="sl1-spellpair namepair"><div class="sl1-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl1-line short name">
</div>
<div class="sl1-spellpair timepair"><div class="sl1-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl1-line short time">
</div>
<div class="sl1-spellpair rangepair"><div class="sl1-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl1-line short range">
</div>
</div>
<div class="sl1-spellrow">
<div class="sl1-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl1-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl2-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl2-toggle" name="attr_show_sl2" id="show-sl2" checked>
<label class="sl2-toggle-btn" for="show-sl2">Spell Level 2 (SL2)</label>
<div class="sl2-body">
<div class="sl2-toprow">
<div class="sl2-topitem">SL2 - Save DC: <input type="text" name="attr_SL2_SaveDC" class="sl2-box"></div>
<div class="sl2-topitem">SL2 - Spells per Day: <input type="text" name="attr_SL2_SpellsPerDay" class="sl2-box"></div>
<div class="sl2-topitem">SL2 - Spells Remaining: <input type="text" name="attr_SL2_SpellsRemaining" class="sl2-box"></div>
</div>
<div class="sl2-knownrow">
<div class="sl2-knownlabel">SL2 - Spells Known:</div>
<textarea name="attr_SL2_SpellsKnown" class="sl2-knownarea" placeholder=""></textarea>
</div>
<div class="sl2-sep"></div>
<div class="sl2-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl2-spellrow sl2-spellrow-name">
<div class="sl2-spellpair namepair"><div class="sl2-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL2_SpellName0" class="sl2-line short name">
</div>
<div class="sl2-spellpair timepair"><div class="sl2-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL2_CastingTime0" class="sl2-line short time">
</div>
<div class="sl2-spellpair rangepair"><div class="sl2-spelllabel">Range:</div>
<input type="text" name="attr_SL2_Range0" class="sl2-line short range">
</div>
</div>
<div class="sl2-spellrow">
<div class="sl2-spelllabel">Spell Description:</div>
<textarea name="attr_SL2_SpellDesc0" class="sl2-descarea" placeholder=""></textarea>
</div>
<div class="sl2-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl2-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl2spellinfo">
<div class="sl2-spellbox sl2-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl2-spellrow sl2-spellrow-name">
<div class="sl2-spellpair namepair"><div class="sl2-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl2-line short name">
</div>
<div class="sl2-spellpair timepair"><div class="sl2-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl2-line short time">
</div>
<div class="sl2-spellpair rangepair"><div class="sl2-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl2-line short range">
</div>
</div>
<div class="sl2-spellrow">
<div class="sl2-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl2-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl3-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl3-toggle" name="attr_show_sl3" id="show-sl3" checked>
<label class="sl3-toggle-btn" for="show-sl3">Spell Level 3 (SL3)</label>
<div class="sl3-body">
<div class="sl3-toprow">
<div class="sl3-topitem">SL3 - Save DC: <input type="text" name="attr_SL3_SaveDC" class="sl3-box"></div>
<div class="sl3-topitem">SL3 - Spells per Day: <input type="text" name="attr_SL3_SpellsPerDay" class="sl3-box"></div>
<div class="sl3-topitem">SL3 - Spells Remaining: <input type="text" name="attr_SL3_SpellsRemaining" class="sl3-box"></div>
</div>
<div class="sl3-knownrow">
<div class="sl3-knownlabel">SL3 - Spells Known:</div>
<textarea name="attr_SL3_SpellsKnown" class="sl3-knownarea" placeholder=""></textarea>
</div>
<div class="sl3-sep"></div>
<div class="sl3-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl3-spellrow sl3-spellrow-name">
<div class="sl3-spellpair namepair"><div class="sl3-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL3_SpellName0" class="sl3-line short name">
</div>
<div class="sl3-spellpair timepair"><div class="sl3-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL3_CastingTime0" class="sl3-line short time">
</div>
<div class="sl3-spellpair rangepair"><div class="sl3-spelllabel">Range:</div>
<input type="text" name="attr_SL3_Range0" class="sl3-line short range">
</div>
</div>
<div class="sl3-spellrow">
<div class="sl3-spelllabel">Spell Description:</div>
<textarea name="attr_SL3_SpellDesc0" class="sl3-descarea" placeholder=""></textarea>
</div>
<div class="sl3-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl3-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl3spellinfo">
<div class="sl3-spellbox sl3-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl3-spellrow sl3-spellrow-name">
<div class="sl3-spellpair namepair"><div class="sl3-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl3-line short name">
</div>
<div class="sl3-spellpair timepair"><div class="sl3-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl3-line short time">
</div>
<div class="sl3-spellpair rangepair"><div class="sl3-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl3-line short range">
</div>
</div>
<div class="sl3-spellrow">
<div class="sl3-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl3-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl4-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl4-toggle" name="attr_show_sl4" id="show-sl4" checked>
<label class="sl4-toggle-btn" for="show-sl4">Spell Level 4 (SL4)</label>
<div class="sl4-body">
<div class="sl4-toprow">
<div class="sl4-topitem">SL4 - Save DC: <input type="text" name="attr_SL4_SaveDC" class="sl4-box"></div>
<div class="sl4-topitem">SL4 - Spells per Day: <input type="text" name="attr_SL4_SpellsPerDay" class="sl4-box"></div>
<div class="sl4-topitem">SL4 - Spells Remaining: <input type="text" name="attr_SL4_SpellsRemaining" class="sl4-box"></div>
</div>
<div class="sl4-knownrow">
<div class="sl4-knownlabel">SL4 - Spells Known:</div>
<textarea name="attr_SL4_SpellsKnown" class="sl4-knownarea" placeholder=""></textarea>
</div>
<div class="sl4-sep"></div>
<div class="sl4-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl4-spellrow sl4-spellrow-name">
<div class="sl4-spellpair namepair"><div class="sl4-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL4_SpellName0" class="sl4-line short name">
</div>
<div class="sl4-spellpair timepair"><div class="sl4-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL4_CastingTime0" class="sl4-line short time">
</div>
<div class="sl4-spellpair rangepair"><div class="sl4-spelllabel">Range:</div>
<input type="text" name="attr_SL4_Range0" class="sl4-line short range">
</div>
</div>
<div class="sl4-spellrow">
<div class="sl4-spelllabel">Spell Description:</div>
<textarea name="attr_SL4_SpellDesc0" class="sl4-descarea" placeholder=""></textarea>
</div>
<div class="sl4-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl4-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl4spellinfo">
<div class="sl4-spellbox sl4-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl4-spellrow sl4-spellrow-name">
<div class="sl4-spellpair namepair"><div class="sl4-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl4-line short name">
</div>
<div class="sl4-spellpair timepair"><div class="sl4-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl4-line short time">
</div>
<div class="sl4-spellpair rangepair"><div class="sl4-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl4-line short range">
</div>
</div>
<div class="sl4-spellrow">
<div class="sl4-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl4-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl5-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl5-toggle" name="attr_show_sl5" id="show-sl5" checked>
<label class="sl5-toggle-btn" for="show-sl5">Spell Level 5 (SL5)</label>
<div class="sl5-body">
<div class="sl5-toprow">
<div class="sl5-topitem">SL5 - Save DC: <input type="text" name="attr_SL5_SaveDC" class="sl5-box"></div>
<div class="sl5-topitem">SL5 - Spells per Day: <input type="text" name="attr_SL5_SpellsPerDay" class="sl5-box"></div>
<div class="sl5-topitem">SL5 - Spells Remaining: <input type="text" name="attr_SL5_SpellsRemaining" class="sl5-box"></div>
</div>
<div class="sl5-knownrow">
<div class="sl5-knownlabel">SL5 - Spells Known:</div>
<textarea name="attr_SL5_SpellsKnown" class="sl5-knownarea" placeholder=""></textarea>
</div>
<div class="sl5-sep"></div>
<div class="sl5-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl5-spellrow sl5-spellrow-name">
<div class="sl5-spellpair namepair"><div class="sl5-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL5_SpellName0" class="sl5-line short name">
</div>
<div class="sl5-spellpair timepair"><div class="sl5-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL5_CastingTime0" class="sl5-line short time">
</div>
<div class="sl5-spellpair rangepair"><div class="sl5-spelllabel">Range:</div>
<input type="text" name="attr_SL5_Range0" class="sl5-line short range">
</div>
</div>
<div class="sl5-spellrow">
<div class="sl5-spelllabel">Spell Description:</div>
<textarea name="attr_SL5_SpellDesc0" class="sl5-descarea" placeholder=""></textarea>
</div>
<div class="sl5-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl5-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl5spellinfo">
<div class="sl5-spellbox sl5-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl5-spellrow sl5-spellrow-name">
<div class="sl5-spellpair namepair"><div class="sl5-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl5-line short name">
</div>
<div class="sl5-spellpair timepair"><div class="sl5-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl5-line short time">
</div>
<div class="sl5-spellpair rangepair"><div class="sl5-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl5-line short range">
</div>
</div>
<div class="sl5-spellrow">
<div class="sl5-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl5-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl6-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl6-toggle" name="attr_show_sl6" id="show-sl6" checked>
<label class="sl6-toggle-btn" for="show-sl6">Spell Level 6 (SL6)</label>
<div class="sl6-body">
<div class="sl6-toprow">
<div class="sl6-topitem">SL6 - Save DC: <input type="text" name="attr_SL6_SaveDC" class="sl6-box"></div>
<div class="sl6-topitem">SL6 - Spells per Day: <input type="text" name="attr_SL6_SpellsPerDay" class="sl6-box"></div>
<div class="sl6-topitem">SL6 - Spells Remaining: <input type="text" name="attr_SL6_SpellsRemaining" class="sl6-box"></div>
</div>
<div class="sl6-knownrow">
<div class="sl6-knownlabel">SL6 - Spells Known:</div>
<textarea name="attr_SL6_SpellsKnown" class="sl6-knownarea" placeholder=""></textarea>
</div>
<div class="sl6-sep"></div>
<div class="sl6-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl6-spellrow sl6-spellrow-name">
<div class="sl6-spellpair namepair"><div class="sl6-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL6_SpellName0" class="sl6-line short name">
</div>
<div class="sl6-spellpair timepair"><div class="sl6-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL6_CastingTime0" class="sl6-line short time">
</div>
<div class="sl6-spellpair rangepair"><div class="sl6-spelllabel">Range:</div>
<input type="text" name="attr_SL6_Range0" class="sl6-line short range">
</div>
</div>
<div class="sl6-spellrow">
<div class="sl6-spelllabel">Spell Description:</div>
<textarea name="attr_SL6_SpellDesc0" class="sl6-descarea" placeholder=""></textarea>
</div>
<div class="sl6-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl6-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl6spellinfo">
<div class="sl6-spellbox sl6-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl6-spellrow sl6-spellrow-name">
<div class="sl6-spellpair namepair"><div class="sl6-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl6-line short name">
</div>
<div class="sl6-spellpair timepair"><div class="sl6-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl6-line short time">
</div>
<div class="sl6-spellpair rangepair"><div class="sl6-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl6-line short range">
</div>
</div>
<div class="sl6-spellrow">
<div class="sl6-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl6-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl7-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl7-toggle" name="attr_show_sl7" id="show-sl7" checked>
<label class="sl7-toggle-btn" for="show-sl7">Spell Level 7 (SL7)</label>
<div class="sl7-body">
<div class="sl7-toprow">
<div class="sl7-topitem">SL7 - Save DC: <input type="text" name="attr_SL7_SaveDC" class="sl7-box"></div>
<div class="sl7-topitem">SL7 - Spells per Day: <input type="text" name="attr_SL7_SpellsPerDay" class="sl7-box"></div>
<div class="sl7-topitem">SL7 - Spells Remaining: <input type="text" name="attr_SL7_SpellsRemaining" class="sl7-box"></div>
</div>
<div class="sl7-knownrow">
<div class="sl7-knownlabel">SL7 - Spells Known:</div>
<textarea name="attr_SL7_SpellsKnown" class="sl7-knownarea" placeholder=""></textarea>
</div>
<div class="sl7-sep"></div>
<div class="sl7-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl7-spellrow sl7-spellrow-name">
<div class="sl7-spellpair namepair"><div class="sl7-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL7_SpellName0" class="sl7-line short name">
</div>
<div class="sl7-spellpair timepair"><div class="sl7-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL7_CastingTime0" class="sl7-line short time">
</div>
<div class="sl7-spellpair rangepair"><div class="sl7-spelllabel">Range:</div>
<input type="text" name="attr_SL7_Range0" class="sl7-line short range">
</div>
</div>
<div class="sl7-spellrow">
<div class="sl7-spelllabel">Spell Description:</div>
<textarea name="attr_SL7_SpellDesc0" class="sl7-descarea" placeholder=""></textarea>
</div>
<div class="sl7-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl7-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl7spellinfo">
<div class="sl7-spellbox sl7-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl7-spellrow sl7-spellrow-name">
<div class="sl7-spellpair namepair"><div class="sl7-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl7-line short name">
</div>
<div class="sl7-spellpair timepair"><div class="sl7-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl7-line short time">
</div>
<div class="sl7-spellpair rangepair"><div class="sl7-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl7-line short range">
</div>
</div>
<div class="sl7-spellrow">
<div class="sl7-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl7-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl8-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl8-toggle" name="attr_show_sl8" id="show-sl8" checked>
<label class="sl8-toggle-btn" for="show-sl8">Spell Level 8 (SL8)</label>
<div class="sl8-body">
<div class="sl8-toprow">
<div class="sl8-topitem">SL8 - Save DC: <input type="text" name="attr_SL8_SaveDC" class="sl8-box"></div>
<div class="sl8-topitem">SL8 - Spells per Day: <input type="text" name="attr_SL8_SpellsPerDay" class="sl8-box"></div>
<div class="sl8-topitem">SL8 - Spells Remaining: <input type="text" name="attr_SL8_SpellsRemaining" class="sl8-box"></div>
</div>
<div class="sl8-knownrow">
<div class="sl8-knownlabel">SL8 - Spells Known:</div>
<textarea name="attr_SL8_SpellsKnown" class="sl8-knownarea" placeholder=""></textarea>
</div>
<div class="sl8-sep"></div>
<div class="sl8-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl8-spellrow sl8-spellrow-name">
<div class="sl8-spellpair namepair"><div class="sl8-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL8_SpellName0" class="sl8-line short name">
</div>
<div class="sl8-spellpair timepair"><div class="sl8-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL8_CastingTime0" class="sl8-line short time">
</div>
<div class="sl8-spellpair rangepair"><div class="sl8-spelllabel">Range:</div>
<input type="text" name="attr_SL8_Range0" class="sl8-line short range">
</div>
</div>
<div class="sl8-spellrow">
<div class="sl8-spelllabel">Spell Description:</div>
<textarea name="attr_SL8_SpellDesc0" class="sl8-descarea" placeholder=""></textarea>
</div>
<div class="sl8-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl8-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl8spellinfo">
<div class="sl8-spellbox sl8-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl8-spellrow sl8-spellrow-name">
<div class="sl8-spellpair namepair"><div class="sl8-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl8-line short name">
</div>
<div class="sl8-spellpair timepair"><div class="sl8-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl8-line short time">
</div>
<div class="sl8-spellpair rangepair"><div class="sl8-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl8-line short range">
</div>
</div>
<div class="sl8-spellrow">
<div class="sl8-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl8-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="card sl9-card">
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
<input type="checkbox" class="sl9-toggle" name="attr_show_sl9" id="show-sl9" checked>
<label class="sl9-toggle-btn" for="show-sl9">Spell Level 9 (SL9)</label>
<div class="sl9-body">
<div class="sl9-toprow">
<div class="sl9-topitem">SL9 - Save DC: <input type="text" name="attr_SL9_SaveDC" class="sl9-box"></div>
<div class="sl9-topitem">SL9 - Spells per Day: <input type="text" name="attr_SL9_SpellsPerDay" class="sl9-box"></div>
<div class="sl9-topitem">SL9 - Spells Remaining: <input type="text" name="attr_SL9_SpellsRemaining" class="sl9-box"></div>
</div>
<div class="sl9-knownrow">
<div class="sl9-knownlabel">SL9 - Spells Known:</div>
<textarea name="attr_SL9_SpellsKnown" class="sl9-knownarea" placeholder=""></textarea>
</div>
<div class="sl9-sep"></div>
<div class="sl9-spellbox">
<div class="subcard-title">Spell Info</div>
<div class="sl9-spellrow sl9-spellrow-name">
<div class="sl9-spellpair namepair"><div class="sl9-spelllabel">Spell Name:</div>
<input type="text" name="attr_SL9_SpellName0" class="sl9-line short name">
</div>
<div class="sl9-spellpair timepair"><div class="sl9-spelllabel">Casting Time:</div>
<input type="text" name="attr_SL9_CastingTime0" class="sl9-line short time">
</div>
<div class="sl9-spellpair rangepair"><div class="sl9-spelllabel">Range:</div>
<input type="text" name="attr_SL9_Range0" class="sl9-line short range">
</div>
</div>
<div class="sl9-spellrow">
<div class="sl9-spelllabel">Spell Description:</div>
<textarea name="attr_SL9_SpellDesc0" class="sl9-descarea" placeholder=""></textarea>
</div>
<div class="sl9-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl9-addhint">+ Add</span> button (appears below) to create additional entries.</div>
<fieldset class="repeating_sl9spellinfo">
<div class="sl9-spellbox sl9-spellbox-repeat">
<div class="subcard-title">Spell Info</div>
<div class="sl9-spellrow sl9-spellrow-name">
<div class="sl9-spellpair namepair"><div class="sl9-spelllabel">Spell Name:</div>
<input type="text" name="attr_SpellName" class="sl9-line short name">
</div>
<div class="sl9-spellpair timepair"><div class="sl9-spelllabel">Casting Time:</div>
<input type="text" name="attr_CastingTime" class="sl9-line short time">
</div>
<div class="sl9-spellpair rangepair"><div class="sl9-spelllabel">Range:</div>
<input type="text" name="attr_Range" class="sl9-line short range">
</div>
</div>
<div class="sl9-spellrow">
<div class="sl9-spelllabel">Spell Description:</div>
<textarea name="attr_SpellDesc" class="sl9-descarea" placeholder=""></textarea>
</div>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<script type="text/worker">
// sheet357: LFG Carrying Capacity with Modified Light Load override
const LFG_LIGHT_LOAD_BY_STR = {
1:3, 2:6, 3:10, 4:13, 5:16, 6:20, 7:25, 8:30, 9:35, 10:40,
11:45, 12:50, 13:55, 14:60, 15:70, 16:80, 17:90, 18:100, 19:120, 20:150,
21:180, 22:220, 23:260, 24:300, 25:350, 26:400, 27:450, 28:500, 29:600, 30:700
};
const updateCarryCapacitiesFromSTR = () => {
getAttrs(["STR", "CarryCapacity_Light_Modified"], (v) => {
const str = parseInt((v.STR ?? "").toString().trim(), 10);
const modRaw = (v.CarryCapacity_Light_Modified ?? "").toString().trim();
const modLight = modRaw === "" ? null : parseFloat(modRaw);
if (!Number.isFinite(str) || str < 1 || str > 30) {
setAttrs({
CarryCapacity_Light: "",
CarryCapacity_Moderate: "",
CarryCapacity_Heavy: ""
});
return;
}
const baseLight = LFG_LIGHT_LOAD_BY_STR[str];
const effectiveLight = Number.isFinite(modLight) ? modLight : baseLight;
setAttrs({
CarryCapacity_Light: baseLight,
CarryCapacity_Moderate: effectiveLight * 2,
CarryCapacity_Heavy: effectiveLight * 3
});
});
};
on("sheet:opened", updateCarryCapacitiesFromSTR);
on("change:STR", updateCarryCapacitiesFromSTR);
on("change:CarryCapacity_Light_Modified", updateCarryCapacitiesFromSTR);
// sheet354: LFG Carrying Capacity (Light Load) lookup from STR (130)
const LFG_LIGHT_LOAD_BY_STR = {
1:3, 2:6, 3:10, 4:13, 5:16, 6:20, 7:25, 8:30, 9:35, 10:40,
11:45, 12:50, 13:55, 14:60, 15:70, 16:80, 17:90, 18:100, 19:120, 20:150,
21:180, 22:220, 23:260, 24:300, 25:350, 26:400, 27:450, 28:500, 29:600, 30:700
};
const updateLightLoadFromSTR = () => {
getAttrs(["STR"], (v) => {
const raw = (v.STR ?? "").toString().trim();
const str = parseInt(raw, 10);
if (!Number.isFinite(str) || str < 1 || str > 30) {
// If STR is blank or out of range, clear the field rather than guessing.
setAttrs({ "CarryCapacity_Light": "" });
return;
}
const light = LFG_LIGHT_LOAD_BY_STR[str] ?? "";
setAttrs({ "CarryCapacity_Light": light });
});
};
on("sheet:opened", updateLightLoadFromSTR);
on("change:STR", updateLightLoadFromSTR);
</script>