mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
I've created a character sheet for use with the Knave ruleset by Ben Milton. I've added two additional equipment slots for Rings, since my players found this made more sense!
219 lines
15 KiB
HTML
219 lines
15 KiB
HTML
<div class="sheet-wrapper">
|
|
<div class="sheet-heading">
|
|
<span>Name: <input type="text" name="attr_character_name" value="Knave"/></span>
|
|
|
|
</div>
|
|
<div class="sheet-exp">
|
|
|
|
<span><span>Level:</span>
|
|
<input class="sheet-wide" type="number" name="attr_level" value="1" />
|
|
</span>
|
|
<span><span>Experience:</span>
|
|
<input class="sheet-wide" type="number" name="attr_exp" value="0" />
|
|
</span>
|
|
<span><span>Alignment:</span>
|
|
<input class="sheet-wide" type="text" name="attr_align" value="" />
|
|
</span>
|
|
<span><span>Gold in Stash:</span>
|
|
<input class="sheet-wide" type="number" name="attr_gold" value="0" />
|
|
</span>
|
|
</div>
|
|
<div class="sheet-str">
|
|
<span class="sheet-att-name">Str: <input type="number" name="attr_strength" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Strength:=[[1d20 + @{strengthmod}]]}}' name='roll_strcheck' /> + <input type="number" name="attr_strengthmod" value="@{strength}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-dex">
|
|
<span class="sheet-att-name">Dex: <input type="number" name="attr_dexterity" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Dexterity:=[[1d20 + @{dexteritymod}]]}}' name='roll_dexcheck' /> + <input type="number" name="attr_dexteritymod" value="@{dexterity}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-con">
|
|
<span class="sheet-att-name">Con: <input type="number" name="attr_constitution" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Constitution:=[[1d20 + @{constitutionmod}]]}}' name='roll_concheck' /> + <input type="number" name="attr_constitutionmod" value="@{constitution}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-int">
|
|
<span class="sheet-att-name">Int: <input type="number" name="attr_intelligence" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Intelligence:=[[1d20 + @{intelligencemod}]]}}' name='roll_intcheck' /> + <input type="number" name="attr_intelligencemod" value="@{intelligence}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-wis">
|
|
<span class="sheet-att-name">Wis: <input type="number" name="attr_wisdom" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Wisdom:=[[1d20 + @{wisdommod}]]}}' name='roll_wischeck' /> + <input type="number" name="attr_wisdommod" value="@{wisdom}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-cha">
|
|
<span class="sheet-att-name">Cha: <input type="number" name="attr_charisma" value="10"/></span>
|
|
<span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Charisma:=[[1d20 + @{charismamod}]]}}' name='roll_chacheck' /> + <input type="number" name="attr_charismamod" value="@{charisma}-10" disabled="true"/></span>
|
|
</div>
|
|
<div class="sheet-hps">
|
|
<span>Hit Points</span>
|
|
<span>Current: <input type="number" name="attr_hp" value="1"/></span>
|
|
<span>Max HP: <input type="number" name="attr_hp_max" value="1"/></span>
|
|
|
|
</div>
|
|
<div class="sheet-morale">
|
|
<span>NPC Morale</span>
|
|
<span>Break: <input type="number" name="attr_morale" value="7"/>
|
|
Check:<button class="sheet-morale-check" type='roll' value='&{template:default} {{name= @{character_name} Morale Break Check}} {{Break if Greater than [[@{morale}+?{modifier|0}]]:=[[2d6]]}}' name='roll_morale'></button></span>
|
|
</div>
|
|
|
|
<div class="sheet-armor">
|
|
Armor
|
|
<span class="sheet-armor1">Worn/Base: <input type="number" name="attr_armorbase" value="10"/></span>
|
|
<span class="">Speed: <input type="number" name="attr_speed" value="40"/></span>
|
|
<span><input type='checkbox' name='attr_hashelm' value='1' /> Helm</span>
|
|
<span><input type='checkbox' name='attr_hasshield' value='1' /> Shield</span>
|
|
<span>Total AC: <input type="number" name="attr_armorclass" value="[[@{armorbase}+@{hasshield}+@{hashelm}]]" disabled="true"/></span>
|
|
<span><input type='hidden' name='attr_actotal' value='0'></span>
|
|
</div>
|
|
|
|
<div class="sheet-attacks">
|
|
Melee Weapon         +Attack     Damage
|
|
<span class="sheet-attack-slot">
|
|
<input class="sheet-attack-roll1" type="number" name="attr_melee_bonus1" value="0"/>
|
|
<button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with @{attack_1_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{strengthmod}+@{melee_bonus1}]]}}' name='roll_meleeattack1'></button>
|
|
<button type='roll' value='&{template:default} {{name= @{character_name} hits with @{attack_1_desc}!}} {{Dealing=[[@{attack_1_damage}]] Damage}}' name='roll_attack_1'></button>
|
|
<input class="sheet-attack-descr" type="text" name="attr_attack_1_desc" value="[Melee Weapon Name]"/>
|
|
<input class="sheet-attack-damage" type="text" name="attr_attack_1_damage" value="1d8"/>
|
|
</span>
|
|
<span class="sheet-attack-slot">
|
|
<input class="sheet-attack-roll2" type="number" name="attr_melee_bonus2" value="0"/>
|
|
<button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with @{attack_2_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{strengthmod}+@{melee_bonus2}]]}}' name='roll_meleeattack2'></button>
|
|
<button type='roll' value='&{template:default} {{name= @{character_name} hits with @{attack_2_desc}!}} {{Dealing=[[@{attack_2_damage}]] Damage}}' name='roll_attack_2'></button>
|
|
<input class="sheet-attack-descr" type="text" name="attr_attack_2_desc" value="Improvised Melee Weapon"/>
|
|
<input class="sheet-attack-damage" type="text" name="attr_attack_2_damage" value="1d6"/>
|
|
</span>
|
|
<span class="sheet-attack-slot">
|
|
<input class="sheet-attack-roll3" type="number" name="attr_melee_bonus3" value="0"/>
|
|
<button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with @{attack_3_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{strengthmod}+@{melee_bonus3}]]}}' name='roll_meleeattack3'></button>
|
|
<button type='roll' value='&{template:default} {{name= @{character_name} hits with @{attack_3_desc}!}} {{Dealing=[[@{attack_3_damage}]] Damage}}' name='roll_attack_3'></button>
|
|
<input class="sheet-attack-descr" type="text" name="attr_attack_3_desc" value="Punch/Kick"/>
|
|
<input class="sheet-attack-damage" type="text" name="attr_attack_3_damage" value="1d2"/>
|
|
</span>
|
|
<span class="sheet-top-break"> Ranged Weapon        +Attack     Damage </span>
|
|
<span class="sheet-attack-slot">
|
|
<input class="sheet-attack-roll4" type="number" name="attr_ranged_bonus4" value="0"/>
|
|
<button class="sheet-att-bon2" type='roll' value='&{template:default} {{name= @{character_name} attacks with @{attack_4_desc}!}} {{Combat=Ranged (Wisdom)}}{{to hit=[[1d20+@{wisdommod}+@{ranged_bonus4}]]}}' name='roll_rangedattack4'></button>
|
|
<button type='roll' value='&{template:default} {{name= @{character_name} hits with @{attack_4_desc}!}} {{Dealing=[[@{attack_4_damage}]] Damage}}' name='roll_attack_4'></button>
|
|
<input class="sheet-attack-descr" type="text" name="attr_attack_4_desc" value="[Ranged Weapon Name]"/>
|
|
<input class="sheet-attack-damage" type="text" name="attr_attack_4_damage" value="1d6"/>
|
|
</span>
|
|
<span class="sheet-attack-slot">
|
|
<input class="sheet-attack-roll5" type="number" name="attr_ranged_bonus5" value="0"/>
|
|
<button class="sheet-att-bon2" type='roll' value='&{template:default} {{name= @{character_name} attacks with @{attack_5_desc}!}} {{Combat=Ranged (Wisdom)}}{{to hit=[[1d20+@{wisdommod}+@{ranged_bonus5}]]}}' name='roll_rangedattack5'></button>
|
|
<button type='roll' value='&{template:default} {{name= @{character_name} hits with @{attack_5_desc}!}} {{Dealing=[[@{attack_5_damage}]] Damage}}' name='roll_attack_5'></button>
|
|
<input class="sheet-attack-descr" type="text" name="attr_attack_5_desc" value="Improvised Ranged Weapon"/>
|
|
<input class="sheet-attack-damage" type="text" name="attr_attack_5_damage" value="1d4"/>
|
|
</span>
|
|
|
|
</div>
|
|
<div class="sheet-notes">
|
|
Notes / Background
|
|
<textarea name="attr_notes"></textarea>
|
|
</div>
|
|
<div class="sheet-slots">
|
|
<span class="sheet-slots-title">Equipment Slots ( Character Max Slots = <input type="number" name="attr_slots" value="@{constitution}" disabled="true"/>)
|
|
</span>
|
|
|
|
<span class="sheet-slot">
|
|
1: <input class="sheet-contents" type="text" name="attr_item_1_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_1_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
11:<input class="sheet-contents" type="text" name="attr_item_11_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_11_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
2: <input class="sheet-contents" type="text" name="attr_item_2_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_2_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
12:<input class="sheet-contents" type="text" name="attr_item_12_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_12_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
3: <input class="sheet-contents" type="text" name="attr_item_3_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_3_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
13:<input class="sheet-contents" type="text" name="attr_item_13_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_13_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
4: <input class="sheet-contents" type="text" name="attr_item_4_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_4_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
14:<input class="sheet-contents" type="text" name="attr_item_14_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_14_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
5: <input class="sheet-contents" type="text" name="attr_item_5_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_5_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
15:<input class="sheet-contents" type="text" name="attr_item_15_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_15_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
6: <input class="sheet-contents" type="text" name="attr_item_6_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_6_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
16:<input class="sheet-contents" type="text" name="attr_item_16_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_16_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
7: <input class="sheet-contents" type="text" name="attr_item_7_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_7_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
17:<input class="sheet-contents" type="text" name="attr_item_17_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_17_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
8: <input class="sheet-contents" type="text" name="attr_item_8_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_8_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
18:<input class="sheet-contents" type="text" name="attr_item_18_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_18_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
9: <input class="sheet-contents" type="text" name="attr_item_9_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_9_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
19:<input class="sheet-contents" type="text" name="attr_item_19_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_19_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
10:<input class="sheet-contents" type="text" name="attr_item_10_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_10_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
20:<input class="sheet-contents" type="text" name="attr_item_20_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_20_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
Ring:<input class="sheet-contents" type="text" name="attr_item_ring1_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_ring2_qual" value=""/>
|
|
</span>
|
|
<span class="sheet-slot">
|
|
Ring:<input class="sheet-contents" type="text" name="attr_item_ring2_desc" value=""/>
|
|
<input class="sheet-quality" type="text" name="attr_item_ring2_qual" value=""/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/worker">
|
|
on("change:armorbase change:hashelm change:hasshield sheet:opened", function() {
|
|
getAttrs(["armorbase","hashelm","hasshield"], function(values) {
|
|
let base = parseInt(values.armorbase)||10;
|
|
let helm = parseInt(values.hashelm)||0;
|
|
let shield = parseInt(values.hasshield)||0;
|
|
let ac = base + helm + shield;
|
|
setAttrs({
|
|
'actotal': ac
|
|
})
|
|
})
|
|
})
|
|
</script> |