Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

(Very) Quick and dirty Daggerheart character sheet.

1751384259

Edited 1752170350
I needed something quick for a game I'm running so the robots and I slapped this together. I didn't see anything else on the forums ready to copy/paste into games so here you go. Thanks to RainbowEncoder for the duality dice roll. For the life of me, I could not get the text/worker script to work. If anyone else wants to take a stab at it, please let me know your findings. I am by no means an experienced coder. [Edit 1. Updated sheet to v.04. Thanks to Vialmada for the text/worker help! So now your max armor shows what your active armor base score is. Also removed Fear since players don't need to track that and added the ability to add more Skills and Abilities subsections. Moved more important stuff to the top.]  [Edit 2. Updated to v.05. Added primary and secondary damage buttons and tweaked the Skills and Abilities section as suggested by A Kobold.] Put this in the HTML tab: <!-- Daggerheart Character Sheet for Roll20 --> <!-- Designed to arrange stats horizontally for readability --> <!-- Main Content Wrapper (formerly sheet-tab-content) --> <div class="sheet-main-content">     <!-- Character Sheet Content -->     <div class="sheet-character-sheet-section">         <!-- Character Header Section -->         <div class="sheet-header">             <h1>Basic Daggerheart Character Sheet v.05</h1>             <!-- All header fields are now within a single sheet-row for horizontal arrangement -->             <div class="sheet-row">                 <div class="sheet-col">                     <label>Name:</label>                     <input type="text" name="attr_name" />                 </div>                 <div class="sheet-col">                     <label>Heritage:</label>                     <input type="text" name="attr_heritage" />                 </div>                 <div class="sheet-col">                     <label>Pronouns:</label>                     <input type="text" name="attr_pronouns" />                 </div>                 <div class="sheet-col">                     <label>Subclass:</label>                     <input type="text" name="attr_subclass" />                 </div>                 <div class="sheet-col">                     <label>Level:</label>                     <input type="number" name="attr_level" value="1" />                 </div>             </div>         </div>         <!-- Button to roll two d12s and new Weapon Damage Buttons -->         <div class="sheet-section-button sheet-row">             <div class="sheet-col sheet-mechanic">                 <!-- Existing 2d12 Roll Button -->                 <button type="roll" name="roll_daggerheart_d12" value="&{template:default} {{name= [[[ $[[13]][Hope] + $[[52]][Fear] ?{Advantage|Regular, |Advantage,+ 1d6|Disadvantage,- 1d6} +(?{Modifier?|0}) ]]] $[[$[[66]]]] [[[[[ [[ {0,$[[25]]}=$[[65]]*79 ]]  $[[$[[0]]]]  [[1d12 Hope]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[37]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] $[[$[[39]]]] [[ [[1d12 Fear]]+39 ]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[78]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]]]]] }} {{name=Duality}} {{Hope=$[[0.computed]]}} {{Fear=$[[38.computed]]}} [[[ [[0]] {{Critical!}} ]]] {{Total=$[[53.computed]]}}">Roll 2d12</button>             </div>             <div class="sheet-col sheet-mechanic">                 <!-- Primary Weapon Damage Button -->                 <!-- Updated to use a Roll Template for proper formatting and display of damage type -->                 <button type="roll" name="roll_primary_weapon_damage" value="&{template:default} {{name=@{primary_weapon_name} Damage}} {{Roll=[[@{proficiency}@{primary_weapon_damage_die} + @{primary_weapon_damage_bonus}]]}} {{Type=@{primary_weapon_damage_type}}}">Primary Weapon Damage</button>             </div>             <div class="sheet-col sheet-mechanic">                 <!-- Secondary Weapon Damage Button -->                 <!-- Updated to use a Roll Template for proper formatting and display of damage type -->                 <button type="roll" name="roll_secondary_weapon_damage" value="&{template:default} {{name=@{secondary_weapon_name} Damage}} {{Roll=[[@{proficiency}@{secondary_weapon_damage_die} + @{secondary_weapon_damage_bonus}]]}} {{Type=@{secondary_weapon_damage_type}}}">Secondary Weapon Damage</button>             </div>         </div>         <!-- Core Mechanics Section -->         <div class="sheet-section-title"><h2>Core Mechanics</h2></div>         <div class="sheet-core-mechanics sheet-row">             <div class="sheet-col sheet-mechanic">                 <label>Hope:</label>                 <input type="number" name="attr_hope_current" value="0" /> / <label class="sheet-sub-label">Max</label> <input type="number" name="attr_hope_max" value="5" />             </div>             <!-- Moved Armor and Evasion from Combat Stats to Core Mechanics -->             <div class="sheet-col sheet-mechanic">                 <label>Armor:</label>                 <input type="number" name="attr_armor_current" value="0" class="sheet-three-digit-input" /> / <label class="sheet-sub-label">Max</label> <input type="number" name="attr_armor_max" value="0" class="sheet-three-digit-input" readonly />             </div>             <div class="sheet-col sheet-mechanic">                 <label>Evasion:</label>                 <input type="number" name="attr_evasion" value="0" class="sheet-three-digit-input" />             </div>             <!-- New Proficiency Stat -->             <div class="sheet-col sheet-mechanic">                 <label>Proficiency:</label>                 <input type="number" name="attr_proficiency" value="0" class="sheet-three-digit-input" />             </div>         </div>         <!-- Health and Damage Section -->         <div class="sheet-section-title"><h2>Health and Damage</h2></div>         <div class="sheet-health-damage sheet-row">             <div class="sheet-col sheet-mechanic">                 <label>Stress:</label>                 <input type="number" name="attr_stress_current" value="0" /> / <label class="sheet-sub-label">Max</label> <input type="number" name="attr_stress_max" value="10" />             </div>             <div class="sheet-col sheet-mechanic">                 <label>Health:</label>                 <input type="number" name="attr_health_current" value="0" /> / <label class="sheet-sub-label">Max</label> <input type="number" name="attr_health_max" value="10" />             </div>             <div class="sheet-col sheet-mechanic">                 <label>Major Damage Threshold:</label>                 <input type="number" name="attr_major_damage_threshold" value="0" />             </div>             <div class="sheet-col sheet-mechanic">                 <label>Severe Damage Threshold:</label>                 <input type="number" name="attr_severe_damage_threshold" value="0" />             </div>         </div>         <!-- Stats Section - Arranged Horizontally -->         <div class="sheet-section-title"><h2>Stats</h2></div>         <div class="sheet-domains sheet-row">             <div class="sheet-col sheet-domain">                 <label>Strength:</label>                 <input type="number" name="attr_strength" value="0" />             </div>             <div class="sheet-col sheet-domain">                 <label>Agility:</label>                 <input type="number" name="attr_agility" value="0" />             </div>             <div class="sheet-col sheet-domain">                 <label>Finesse:</label>                 <input type="number" name="attr_finesse" value="0" />             </div>             <div class="sheet-col sheet-domain">                 <label>Instinct:</label>                 <input type="number" name="attr_instinct" value="0" />             </div>             <div class="sheet-col sheet-domain">                 <label>Knowledge:</label>                 <input type="number" name="attr_knowledge" value="0" />             </div>             <div class="sheet-col sheet-domain">                 <label>Presence:</label>                 <input type="number" name="attr_presence" value="0" />             </div>         </div>         <!-- Active Armor Section -->         <div class="sheet-section-title"><h2>Active Armor</h2></div>         <div class="sheet-active-armor sheet-row">             <div class="sheet-col">                 <label>Name:</label>                 <input type="text" name="attr_active_armor_name" />             </div>             <div class="sheet-col">                 <label>Base Thresholds:</label>                 <input type="text" name="attr_active_armor_base_thresholds" />             </div>             <div class="sheet-col">                 <label>Base Score:</label>                 <input type="number" name="attr_active_armor_base_score" value="0" min="0" step="1" class="sheet-three-digit-input" />             </div>             <div class="sheet-col-full"> <!-- Use a full-width column for textarea -->                 <label>Features:</label>                 <textarea name="attr_active_armor_features"></textarea>             </div>         </div>         <!-- Active Weapons Section -->         <div class="sheet-section-title"><h2>Active Weapons</h2></div>         <div class="sheet-active-weapons">             <h3>Primary Weapon</h3>             <div class="sheet-row">                 <div class="sheet-col">                     <label>Name:</label>                     <input type="text" name="attr_primary_weapon_name" />                 </div>                 <div class="sheet-col">                     <label>Trait & Range:</label>                     <input type="text" name="attr_primary_weapon_trait_range" />                 </div>                 <div class="sheet-col">                     <label>Damage Dice:</label> <!-- Renamed label -->                     <div class="sheet-inline-controls">                         <select name="attr_primary_weapon_damage_die">                             <option value="d4">d4</option>                             <option value="d6">d6</option>                             <option value="d8">d8</option>                             <option value="d10">d10</option>                             <option value="d12">d12</option>                             <option value="d20">d20</option>                         </select>                         <span class="sheet-plus-sign">+</span>                         <select name="attr_primary_weapon_damage_bonus">                             <option value="0">0</option>                             <option value="1">1</option>                             <option value="2">2</option>                             <option value="3">3</option>                             <option value="4">4</option>                             <option value="5">5</option>                             <option value="6">6</option>                             <option value="7">7</option>                             <option value="8">8</option>                             <option value="9">9</option>                             <option value="10">10</option>                         </select>                     </div>                 </div>                 <div class="sheet-col"> <!-- New column for Type -->                     <label>Type:</label>                     <input type="text" name="attr_primary_weapon_damage_type" />                 </div>                 <div class="sheet-col-full">                     <label>Feature:</label>                     <textarea name="attr_primary_weapon_feature"></textarea>                 </div>             </div>             <h3>Secondary Weapon</h3>             <div class="sheet-row">                 <div class="sheet-col">                     <label>Name:</label>                     <input type="text" name="attr_secondary_weapon_name" />                 </div>                 <div class="sheet-col">                     <label>Trait & Range:</label>                     <input type="text" name="attr_secondary_weapon_trait_range" />                 </div>                 <div class="sheet-col">                     <label>Damage Dice:</label> <!-- Renamed label -->                     <div class="sheet-inline-controls">                         <select name="attr_secondary_weapon_damage_die">                             <option value="d4">d4</option>                             <option value="d6">d6</option>                             <option value="d8">d8</option>                             <option value="d10">d10</option>                             <option value="d12">d12</option>                             <option value="d20">d20</option>                         </select>                         <span class="sheet-plus-sign">+</span>                         <select name="attr_secondary_weapon_damage_bonus">                             <option value="0">0</option>                             <option value="1">1</option>                             <option value="2">2</option>                             <option value="3">3</option>                             <option value="4">4</option>                             <option value="5">5</option>                             <option value="6">6</option>                             <option value="7">7</option>                             <option value="8">8</option>                             <option value="9">9</option>                             <option value="10">10</option>                         </select>                     </div>                 </div>                 <div class="sheet-col"> <!-- New column for Type -->                     <label>Type:</label>                     <input type="text" name="attr_secondary_weapon_damage_type" />                 </div>                 <div class="sheet-col-full">                     <label>Feature:</label>                     <textarea name="attr_secondary_weapon_feature"></textarea>                 </div>             </div>         </div>         <!-- Skills/Abilities Section -->         <div class="sheet-skills-section-outer"> <!-- Outer wrapper for title and buttons -->             <div class="sheet-section-title"><h2>Skills & Abilities</h2></div>             <div class="sheet-skills-container"> <!-- This is the main box for skills content -->                 <fieldset class="repeating_skills">                     <!-- Each fieldset represents ONE skill entry -->                     <div class="sheet-row">                         <div class="sheet-col-full">                             <label>Skill/Ability Name:</label>                             <input type="text" name="attr_skill_name" />                         </div>                         <div class="sheet-col-full">                             <label>Description:</label>                             <textarea name="attr_skill_description"></textarea>                         </div>                     </div>                 </fieldset>                 <!-- Roll20 automatically injects .repcontrol here, as a sibling to the .repcontainer -->             </div>         </div>         <!-- Inventory/Equipment Section -->         <div class="sheet-section-title"><h2>Inventory & Equipment</h2></div>         <div class="sheet-inventory">             <label>Inventory:</label>             <textarea name="attr_inventory"></textarea>         </div>         <!-- Notes Section -->         <div class="sheet-section-title"><h2>Notes</h2></div>         <div class="sheet-notes">             <label>Notes:</label>             <textarea name="attr_notes"></textarea>         </div>     </div> </div> <!-- Sheet Worker Script --> <script type="text/worker"> // Sheet worker to update Max Armor based on Active Armor Base Score const updateMaxArmor = () => {     getAttrs(["active_armor_base_score"], function(values) {         let baseScore = parseInt(values.active_armor_base_score) || 0;         setAttrs({             armor_max: baseScore         }, {silent: true});     }); }; // Initial updates when the sheet is opened on("sheet:opened", () => {     updateMaxArmor(); }); </script> Put this in the CSS tab:  /* General body and section styling */ body {     font-family: Georgia, serif; /* Changed to a common serif font */     background-color: #3a322b; /* Dark earthy brown for the entire sheet */     color: #e0d8c7; /* Off-white, parchment-like text */ } /* Main content area styling (formerly sheet-tab-content) */ .sheet-main-content {     display: block; /* Always display the wrapper */     border: 2px solid #8b4513; /* Add border to content area */     border-radius: 8px; /* Round all corners */     padding: 15px; /* Add padding to content */     background-color: #5c4b3a; /* Muted brown for content background */     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0, 0, 0, 0.3); /* Adds depth */ } /* Section styling */ .sheet-character-sheet-section {     margin-bottom: 20px; /* Add some space between the two main sections */     padding: 0; /* Remove padding from these wrappers as content sections have their own */     border: none; /* Remove borders from these wrappers */     background-color: transparent; /* Make background transparent */     box-shadow: none; /* Remove shadows */ } .sheet-header, .sheet-core-mechanics, .sheet-domains, .sheet-inventory, .sheet-notes, .sheet-section-button, .sheet-health-damage, .sheet-active-armor, .sheet-active-weapons {     margin-bottom: 20px;     padding: 15px;     border: 2px solid #8b4513; /* Saddle brown for borders */     border-radius: 8px;     background-color: #3a322b; /* Dark earthy brown for sections */     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0, 0, 0, 0.3); /* Adds depth */ } /* Skills section outer wrapper for positioning title and buttons */ .sheet-skills-section-outer {     position: relative; /* Establish positioning context for absolute buttons */     margin-bottom: 20px; /* Consistent spacing below the entire section */     /* No border, padding, background, or shadow here - it's just a container */ } /* All section titles (h2) */ .sheet-section-title h2 {     font-family: Georgia, serif; /* Consistent font */     margin-top: 25px; /* Consistent spacing from previous section */     margin-bottom: 15px; /* Space below title before content box */     color: #f0e6d2; /* Lighter color for better visibility */     border-bottom: 3px solid #8b4513; /* Consistent darker brown for stronger border */     padding-bottom: 8px;     /* Removed text-shadow for section titles as per other sections */ } /* Sub-titles within sections (h3) */ .sheet-active-weapons h3 { /* Apply to sub-titles within sections */     font-family: Georgia, serif; /* Changed to a common serif font */     margin-top: 20px;     margin-bottom: 10px;     color: #f0e6d2; /* Lighter color for better visibility */     border-bottom: 1px dashed #8b4513;     padding-bottom: 5px; } /* Skills container - this is the actual "box" for the repeating items */ .sheet-skills-container {     padding: 15px; /* Padding inside the skill box */     border: 2px solid #8b4513; /* Border for the skill box */     border-radius: 8px;     background-color: #3a322b; /* Dark earthy brown for the skill box background */     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0, 0, 0, 0.3);          /* Important for containing floats */     overflow: hidden; /* Contains floats */     clear: both; /* Clears floats from elements before it */ } /* Styling for each individual repeating item (Roll20's .repitem) */ /* This is the key to the two-column layout */ .repcontainer[data-groupname="repeating_skills"] > .repitem {     display: inline-block; /* Makes them sit side-by-side */     vertical-align: top; /* Aligns items to the top of the row */     width: calc(50% - 15px); /* 50% width minus a total of 15px for horizontal spacing (7.5px left + 7.5px right margin) */     margin: 0 7.5px 15px 7.5px; /* Top, Right, Bottom, Left margins (15px vertical, 7.5px horizontal) */     box-sizing: border-box; /* Crucial for accurate width calculation including padding/border */     /* Individual skill entry styling (consistent with other sections) */     padding: 15px;     border: 2px solid #5c4b3a; /* Slightly lighter border for individual entries */     border-radius: 8px;     background-color: #5c4b3a; /* Muted brown for individual entry background */     box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); /* Subtle inner shadow */ } /* Ensure the internal row within each skill entry stacks its contents vertically */ .repcontainer[data-groupname="repeating_skills"] > .repitem .sheet-row {     display: flex;     flex-direction: column; /* Stack label and input vertically */     gap: 10px; /* Adjust gap between name and description within a skill entry */     margin-bottom: 0; /* Remove extra margin from internal row */ } /* Ensure full width for input/textarea within the stacked skill entry */ .repcontainer[data-groupname="repeating_skills"] > .repitem .sheet-col-full {     width: 100%;     flex-basis: 100%;     min-width: unset; } .sheet-header h1 {     font-family: Georgia, serif; /* Ensured font consistency */     color: #fffaf0; /* Changed back to Floral White */     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); /* Adjusted shadow for contrast */     margin-top: 0; /* Remove default h1 top margin */     margin-bottom: 10px; /* Add some space below the title */ } .sheet-row {     display: flex;     flex-wrap: wrap;     gap: 15px; /* Increased gap for more breathing room */     margin-bottom: 15px; } .sheet-col {     flex: 1;     min-width: 180px; /* Adjusted for slightly larger inputs */     display: flex;     flex-direction: column; } /* New class for full-width columns, useful for textareas */ .sheet-col-full {     flex-basis: 100%;     display: flex;     flex-direction: column; } .sheet-col label {     font-weight: bold;     margin-bottom: 5px; /* Increased margin */     color: #f0e6d2; /* Lighter color for labels */ } .sheet-sub-label {     font-size: 0.85em; /* Slightly larger font for 'Max' */     font-weight: normal;     margin-left: 8px;     margin-right: -8px;     color: #d2b48c; /* Tan/gold color */ } /* New class for inputs that need to be wider for 3 digits */ .sheet-three-digit-input {     width: 60px; /* Increased width to accommodate 3 digits */     min-width: 60px; /* Ensure minimum width */ } /* Styling for the new select elements and plus sign */ .sheet-inline-controls {     display: flex;     align-items: center;     gap: 2px; /* Reduced gap between elements */ } .sheet-inline-controls select {     width: 45px; /* Adjusted width for dropdowns - made thinner */     min-width: 45px; /* Ensure minimum width */     padding: 8px;     border: 1px solid #a0522d;     border-radius: 4px;     box-sizing: border-box;     background-color: #fdf5e6; /* Parchment-like background */     color: #333; /* Dark text for readability on light background */     font-family: Georgia, serif; /* Changed to a common serif font */ } .sheet-plus-sign {     font-size: 1.2em;     font-weight: bold;     color: #f0e6d2; /* Reverted to lighter color */     margin: 0 3px; /* Add a small margin around the plus sign */ } .sheet-col input[type="text"], .sheet-skills textarea, .sheet-inventory textarea, .sheet-notes textarea, .sheet-active-armor textarea, .sheet-active-weapons textarea { /* Added for new section's textarea */     width: 100%; /* Default width for most inputs */     padding: 8px; /* Increased padding */     border: 1px solid #a0522d; /* Sienna border */     border-radius: 4px;     box-sizing: border-box;     background-color: #fdf5e6; /* Parchment-like background */     color: #333; /* Dark text for readability on light background */     font-family: Georgia, serif; /* Changed to a common serif font */ } /* Specific styling for number inputs in core mechanics and health/damage */ .sheet-core-mechanics .sheet-mechanic input[type="number"], .sheet-health-damage .sheet-mechanic input[type="number"] {     width: 48%; /* Adjusted for current/max values */     display: inline-block; } /* Override for specific inputs that need the three-digit width */ /* Removed .sheet-combat-stats reference as it's gone */ .sheet-active-armor .sheet-col input[type="number"] {     width: 60px; /* Apply the three-digit width */     min-width: 60px; } /* Hide spinner buttons for number inputs that are readonly or disabled */ input[type="number"][readonly]::-webkit-outer-spin-button, input[type="number"][readonly]::-webkit-inner-spin-button, input[type="number"][disabled]::-webkit-outer-spin-button, input[type="number"][disabled]::-webkit-inner-spin-button {     -webkit-appearance: none;     margin: 0; } input[type="number"][readonly], input[type="number"][disabled] {     -moz-appearance: textfield; } .sheet-domains .sheet-domain input[type="number"] {     width: calc(100% - 10px); /* Adjust for padding, for single inputs */ } .sheet-section-button .sheet-mechanic button { /* Targeted specifically for the new button section */     width: 100%;     padding: 12px; /* Larger padding for a more substantial button */     background: linear-gradient(to bottom, #8b4513, #a0522d); /* Earthy brown gradient */     color: #f0e6d2; /* Parchment-like text */     border: 2px solid #5c4b3a; /* Darker brown border */     border-radius: 8px;     cursor: pointer;     font-size: 1.1em;     font-weight: bold;     text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);     box-shadow: none; /* Removed box-shadow */     transition: all 0.2s ease-in-out; /* Smooth transition for hover */ } .sheet-section-button .sheet-mechanic button:hover {     background: linear-gradient(to bottom, #a0522d, #8b4513); /* Inverted gradient on hover */     box-shadow: none; /* Removed box-shadow */     transform: translateY(-1px); /* Slight lift effect */ } /* Styling for the auto-generated repeating section buttons */ /* .repcontrol is injected by Roll20 as a sibling to .repcontainer */ .sheet-skills-section-outer .repcontrol {     position: absolute;     top: 25px; /* Adjust to align with the section title */     right: 15px; /* Align to the right edge of the outer wrapper */     display: flex; /* Use flexbox for the buttons themselves */     gap: 10px; /* Space between the +Add and Modify buttons */     z-index: 2; /* Ensure buttons are above other content if overlapping */ } .sheet-skills-section-outer .repcontrol button {     padding: 8px 12px;     background: linear-gradient(to bottom, #a0522d, #8b4513); /* Earthy brown gradient */     color: #f0e6d2;     border: 1px solid #5c4b3a;     border-radius: 5px;     cursor: pointer;     font-size: 0.9em;     font-weight: bold;     text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);     box-shadow: none;     transition: all 0.2s ease-in-out; } .sheet-skills-section-outer .repcontrol button:hover {     background: linear-gradient(to bottom, #8b4513, #a0522d);     transform: translateY(-1px); } textarea {     min-height: 100px; /* Slightly taller default textarea */     resize: vertical; }
Since the update to the OGL does this mean you can post it as a community sheet?
There's no copywriteable Daggerheart content in my sheet.
Thanks for this!  Demiplane is fine and all, but the integration is a mess.  This is definitely quick and dirty, and I would appreciate it if you could make the skills take up less real estate, but it's fully functional and easy to use and I really appreciate the infinite inventory/notes spaces.
Good idea. Check out v.05. Thanks for the feedback!