diff --git a/Kids on Bikes Official/images/KOBLogo.png b/Kids on Bikes Official/images/KOBLogo.png
new file mode 100644
index 0000000000..e0c60abee0
Binary files /dev/null and b/Kids on Bikes Official/images/KOBLogo.png differ
diff --git a/Kids on Bikes Official/images/Label-Adversity_updated.png b/Kids on Bikes Official/images/Label-Adversity_updated.png
new file mode 100644
index 0000000000..fbba8c619e
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Adversity_updated.png differ
diff --git a/Kids on Bikes Official/images/Label-Age.png b/Kids on Bikes Official/images/Label-Age.png
new file mode 100644
index 0000000000..60c436b064
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Age.png differ
diff --git a/Kids on Bikes Official/images/Label-Backpack-1.png b/Kids on Bikes Official/images/Label-Backpack-1.png
new file mode 100644
index 0000000000..714003cdd6
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Backpack-1.png differ
diff --git a/Kids on Bikes Official/images/Label-Bio.png b/Kids on Bikes Official/images/Label-Bio.png
new file mode 100644
index 0000000000..c0395c2321
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Bio.png differ
diff --git a/Kids on Bikes Official/images/Label-Brains.png b/Kids on Bikes Official/images/Label-Brains.png
new file mode 100644
index 0000000000..544532a15f
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Brains.png differ
diff --git a/Kids on Bikes Official/images/Label-Brawn.png b/Kids on Bikes Official/images/Label-Brawn.png
new file mode 100644
index 0000000000..e5768a793b
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Brawn.png differ
diff --git a/Kids on Bikes Official/images/Label-Charm.png b/Kids on Bikes Official/images/Label-Charm.png
new file mode 100644
index 0000000000..2a338f6d69
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Charm.png differ
diff --git a/Kids on Bikes Official/images/Label-Descriptions.png b/Kids on Bikes Official/images/Label-Descriptions.png
new file mode 100644
index 0000000000..c9120eef66
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Descriptions.png differ
diff --git a/Kids on Bikes Official/images/Label-Fear.png b/Kids on Bikes Official/images/Label-Fear.png
new file mode 100644
index 0000000000..fd3c58060a
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Fear.png differ
diff --git a/Kids on Bikes Official/images/Label-Fight.png b/Kids on Bikes Official/images/Label-Fight.png
new file mode 100644
index 0000000000..84c1256eb8
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Fight.png differ
diff --git a/Kids on Bikes Official/images/Label-Flaws-1.png b/Kids on Bikes Official/images/Label-Flaws-1.png
new file mode 100644
index 0000000000..06e216e296
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Flaws-1.png differ
diff --git a/Kids on Bikes Official/images/Label-Flight.png b/Kids on Bikes Official/images/Label-Flight.png
new file mode 100644
index 0000000000..32a473e06a
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Flight.png differ
diff --git a/Kids on Bikes Official/images/Label-Grit.png b/Kids on Bikes Official/images/Label-Grit.png
new file mode 100644
index 0000000000..2df3e19093
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Grit.png differ
diff --git a/Kids on Bikes Official/images/Label-Motivation.png b/Kids on Bikes Official/images/Label-Motivation.png
new file mode 100644
index 0000000000..ceee0bcef8
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Motivation.png differ
diff --git a/Kids on Bikes Official/images/Label-Name.png b/Kids on Bikes Official/images/Label-Name.png
new file mode 100644
index 0000000000..bb4ce4a52f
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Name.png differ
diff --git a/Kids on Bikes Official/images/Label-Notes-1.png b/Kids on Bikes Official/images/Label-Notes-1.png
new file mode 100644
index 0000000000..eb2cb8c2ea
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Notes-1.png differ
diff --git a/Kids on Bikes Official/images/Label-Powers-1.png b/Kids on Bikes Official/images/Label-Powers-1.png
new file mode 100644
index 0000000000..b7672e8a0a
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Powers-1.png differ
diff --git a/Kids on Bikes Official/images/Label-Strengths-1.png b/Kids on Bikes Official/images/Label-Strengths-1.png
new file mode 100644
index 0000000000..2d01ccc035
Binary files /dev/null and b/Kids on Bikes Official/images/Label-Strengths-1.png differ
diff --git a/Kids on Bikes Official/images/Stats.png b/Kids on Bikes Official/images/Stats.png
new file mode 100644
index 0000000000..4328037a0f
Binary files /dev/null and b/Kids on Bikes Official/images/Stats.png differ
diff --git a/Kids on Bikes Official/images/Strengths.png b/Kids on Bikes Official/images/Strengths.png
new file mode 100644
index 0000000000..f88fbe75a2
Binary files /dev/null and b/Kids on Bikes Official/images/Strengths.png differ
diff --git a/Kids on Bikes Official/images/bg-bio.png b/Kids on Bikes Official/images/bg-bio.png
new file mode 100644
index 0000000000..3f3fea77c3
Binary files /dev/null and b/Kids on Bikes Official/images/bg-bio.png differ
diff --git a/Kids on Bikes Official/images/readme.txt b/Kids on Bikes Official/images/readme.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/Kids on Bikes Official/images/readme.txt
@@ -0,0 +1 @@
+
diff --git a/Kids on Bikes Official/images/wallpaper.png b/Kids on Bikes Official/images/wallpaper.png
new file mode 100644
index 0000000000..01a4761a4d
Binary files /dev/null and b/Kids on Bikes Official/images/wallpaper.png differ
diff --git a/Kids on Bikes Official/kob.css b/Kids on Bikes Official/kob.css
new file mode 100644
index 0000000000..96ac0b9bb2
--- /dev/null
+++ b/Kids on Bikes Official/kob.css
@@ -0,0 +1,166 @@
+* {
+ box-sizing: border-box; }
+
+.charsheet {
+ background-color: #eee;
+ padding: 1%;
+ width: 850px; }
+
+button:before {
+ display: none; }
+
+button[type='roll'] {
+ background: #bbb;
+ border-radius: 0.1em; }
+ button[type='roll']:focus, button[type='roll']:hover, button[type='roll']:active {
+ background-color: #770709; }
+ button[type='roll']:focus > img, button[type='roll']:hover > img, button[type='roll']:active > img {
+ filter: invert(1); }
+
+label {
+ margin: 0px;
+ padding: 0px; }
+
+input[type="text"] {
+ width: 100%; }
+
+textarea {
+ font-size: 1.1em;
+ font-weight: normal;
+ line-height: 1.5em;
+ min-height: 150px;
+ overflow-wrap: break-word;
+ overflow: scroll;
+ padding: 2px;
+ resize: vertical;
+ text-align: left;
+ vertical-align: top;
+ white-space: pre-line; }
+
+h1.sheet-logo {
+ padding-left: 30%; }
+
+div.sheet-box {
+ border: thin solid #bbb;
+ margin: 1%;
+ padding: 1%;
+ background-color: #fff; }
+ div.sheet-box img {
+ width: 100%; }
+
+div.sheet-grid {
+ display: inline-grid;
+ grid-row-gap: 0.5em; }
+
+div.sheet-kob-row {
+ grid-template-columns: 1fr 1fr;
+ width: 100%; }
+ div.sheet-kob-row img.sheet-header {
+ height: 30px;
+ width: 200px; }
+ div.sheet-kob-row div.sheet-biobox {
+ grid-template-columns: 8em 1fr; }
+ div.sheet-kob-row div.sheet-biobox input[type='checkbox'] {
+ height: 15px;
+ width: 15px; }
+ div.sheet-kob-row div.sheet-biobox textarea[name='attr_character_description'] {
+ grid-column: 1 / 3; }
+ div.sheet-kob-row div.sheet-dicebox {
+ grid-template-columns: 3em 1fr 1fr 3em; }
+ div.sheet-kob-row div.sheet-dicebox button:nth-of-type(odd) {
+ grid-column: 1; }
+ div.sheet-kob-row div.sheet-dicebox button:nth-of-type(even) {
+ grid-column: 4; }
+ div.sheet-kob-row div.sheet-dicebox select {
+ font-size: 4em;
+ height: 100%;
+ margin: 0px;
+ padding-left: 25%;
+ width: 100%; }
+ div.sheet-kob-row div.sheet-dicebox select:nth-of-type(odd) {
+ grid-column: 2; }
+ div.sheet-kob-row div.sheet-dicebox select:nth-of-type(even) {
+ grid-column: 3; }
+ div.sheet-kob-row div.sheet-dicebox select[name="attr_flight"] {
+ grid-row: 1; }
+ div.sheet-kob-row div.sheet-dicebox select[name="attr_brawn"] {
+ grid-row: 2; }
+ div.sheet-kob-row div.sheet-dicebox select[name="attr_grit"] {
+ grid-row: 3; }
+ div.sheet-kob-row div.sheet-dicebox optgroup {
+ font-size: 0.5em; }
+ div.sheet-kob-row div.sheet-dicebox option {
+ font-size: 0.8em; }
+ div.sheet-kob-row div.sheet-strenghtsbox,
+ div.sheet-kob-row div.sheet-flawsbox {
+ grid-template-columns: 2em 1fr 2em 1fr;
+ grid-column-gap: 0.2em; }
+ div.sheet-kob-row div.sheet-strenghtsbox label,
+ div.sheet-kob-row div.sheet-flawsbox label {
+ height: 100%; }
+ div.sheet-kob-row div.sheet-strenghtsbox label.sheet-skilledat,
+ div.sheet-kob-row div.sheet-flawsbox label.sheet-skilledat {
+ grid-column: 1 / 2; }
+ div.sheet-kob-row div.sheet-strenghtsbox label.sheet-skillatcheckbox,
+ div.sheet-kob-row div.sheet-flawsbox label.sheet-skillatcheckbox {
+ grid-column: 3 / 5; }
+ div.sheet-kob-row div.sheet-strenghtsbox input[type='checkbox'],
+ div.sheet-kob-row div.sheet-flawsbox input[type='checkbox'] {
+ height: 25px;
+ width: 25px; }
+ div.sheet-kob-row div.sheet-strenghtsbox span,
+ div.sheet-kob-row div.sheet-flawsbox span {
+ font-weight: bold;
+ font-variant: small-caps; }
+ div.sheet-kob-row div.sheet-strenghtsbox {
+ grid-template-columns: 2em 1fr 2em 1fr; }
+ div.sheet-kob-row div.sheet-strenghtsbox h2 {
+ grid-column: 1 / 5; }
+ div.sheet-kob-row div.sheet-flawsbox {
+ grid-template-columns: 2em 1fr 2em 1fr 2em 1fr; }
+ div.sheet-kob-row div.sheet-flawsbox h2 {
+ grid-column: 1 / 7; }
+ div.sheet-kob-row div.sheet-boxnotes {
+ grid-column: 1 / 3; }
+
+/* ROLL TEMPLATE
+============================= */
+.sheet-rolltemplate-rolls .sheet-template-body {
+ border: 1px solid #000;
+ text-align: center; }
+
+.sheet-rolltemplate-rolls .sheet-template-header {
+ background: #210000;
+ background: linear-gradient(180deg, #210000 0%, #890b0d 70%, #d5191f 94%);
+ border: 1px solid #000;
+ border-bottom: 2px solid #000;
+ border-top-left-radius: 10px;
+ border-top-right-radius: 10px;
+ color: white;
+ font-size: 20px;
+ font-variant: small-caps;
+ font-weight: bold;
+ letter-spacing: 2px;
+ padding: 5px;
+ text-align: center;
+ text-transform: capitalize; }
+
+.sheet-rolltemplate-rolls .sheet-template-row {
+ background-color: white;
+ padding: 5px; }
+
+/* Use this to alternate the background colors for each row */
+.sheet-rolltemplate-rolls .sheet-template-row:nth-child(2n+0) {
+ background-color: #1c1c1c; }
+
+/* Remove some fo the built in styles around rolls */
+.sheet-rolltemplate-rolls .inlinerollresult,
+.sheet-rolltemplate-rolls .inlinerollresult.importantroll,
+.sheet-rolltemplate-rolls .inlinerollresult.fullfail,
+.sheet-rolltemplate-rolls .inlinerollresult.fullcrit {
+ background-color: transparent;
+ border: none;
+ color: black;
+ display: inline-block;
+ font-size: 25px;
+ padding: 5px; }
diff --git a/Kids on Bikes Official/kob.html b/Kids on Bikes Official/kob.html
new file mode 100644
index 0000000000..6afd12a55c
--- /dev/null
+++ b/Kids on Bikes Official/kob.html
@@ -0,0 +1,316 @@
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{#dice}}
+
{{dice}}
+ {{/dice}}
+
+ {{#desc}}
+
+
+
+
+ {{/desc}}
+
+
+
diff --git a/Kids on Bikes Official/kob.pug b/Kids on Bikes Official/kob.pug
new file mode 100644
index 0000000000..40340a746a
--- /dev/null
+++ b/Kids on Bikes Official/kob.pug
@@ -0,0 +1,82 @@
+
+//- VERSION
+//- =============================
+input(name='attr_version' type='hidden' value='1')
+
+//- MIXINS
+include src/pug/_mixins.pug
+
+h1.logo
+ img(alt='Kids on Bike Character Sheet', src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/KOBLogo.png')
+.grid.kob-row
+ .grid.box.biobox
+ each val in ['Name', 'Age', 'Fear', 'Motivation']
+ - const attrName = val.toLowerCase();
+ img(alt=val src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-'+val+'.png')
+ input(data-i18n-placeholder=val name='attr_character_'+attrName placeholder=val title='@{character_'+attrName+'}' type='text' value='')
+ img(src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Descriptions.png', alt='Description')
+ textarea(name='attr_character_description' title='@{character_description}')
+ img(src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Adversity_updated.png' alt='Adversity')
+ .sheet-biolabelcol
+ span.sheet-adversitytokens
+ - let index = 1
+ while index < 16
+ input(name='attr_token' + index++ title='@{token}' type='checkbox' value='1')
+
+ .grid.box.dicebox
+ each val in ['Fight', 'Flight', 'Brains', 'Brawn', 'Charm', 'Grit']
+ - const attrName = val.toLowerCase();
+ button(name=val type='roll' value!='&{template:rolls}{{header=^{'+val+'}}} {{dice=[[@{'+attrName+'}+?{modifier|0}]]}}')
+ img(alt=val src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-'+val+'.png')
+ select(name='attr_'+attrName title='@{'+attrName+'}' value='d4')
+ +diceSelect()
+
+.grid.kob-row
+ .grid.box.strenghtsbox
+ h2
+ img.header(alt='Strengths' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Strengths-1.png')
+ - const strengths =[{'attr' : 'cool', 'name' : 'COOL UNDER PRESSURE'}, {'attr' : 'easy_going', 'name' : 'EASYGOING'}, {'attr' : 'gross', 'name' : 'GROSS'}, {'attr' : 'heroic', 'name' : 'HEROIC'}, {'attr' : 'intuitive', 'name' : 'INTUITIVE'}, {'attr' : 'loyal', 'name' : 'LOYAL'}, {'attr' : 'lucky', 'name' : 'LUCKY'}, {'attr' : 'prepared', 'name' : 'PREPARED'}, {'attr' : 'protective', 'name' : 'PROTECTIVE'}, {'attr' : 'quick_healing', 'name' : 'QUICK HEALING'}, {'attr' : 'rebellious', 'name' : 'REBELLIOUS'}, {'attr' : 'tough', 'name' : 'TOUGH'}, {'attr' : 'treasure_hunter', 'name' : 'TREASURE HUNTER'}, {'attr' : 'unassuming', 'name' : 'UNASSUMING'}, {'attr' : 'wealthy', 'name' : 'WEALTHY'}]
+ each s,i in strengths
+ - const attrName = s.attr.split('attr_')[0];
+ label(data-i18n-title=s.name title=s.name)
+ input(name='attr_'+s.attr title='@{'+attrName+'}' type='checkbox' value='1')
+ span(data-i18n=s.name)=s.name
+ label.skilledat(data-i18n-title='SKILLED AT' title='SKILLED AT')
+ input(name='attr_skilled_at' title='@{skilled_at}' type='checkbox' value='1')
+ span(data-i18n='SKILLED AT:') SKILLED AT:
+ label.skillatcheckbox(data-i18n-title='SKILLED AT DESCRIPTION' title='SKILLED AT DESCRIPTION')
+ input(name='attr_skill_description' title='@{skill_description}' type='text' )
+
+ .grid.box.flawsbox
+ h2
+ img.header(alt='Flaws' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Flaws-1.png')
+ - const flaws = [{'name': "ABSENT MINDED", "attr":"attr_absent_minded"},{"name": "BLUNT","attr":"attr_blunt" } ,{"name":"BOASTFUL", "attr":"attr_boastful"},{"name":"CLUMSY", "attr" : "attr_clumsy"},{"name":"CONCEITED", "attr":"attr_conceited"} , {"name":"COWARDLY", "attr": "attr_cowardly"},{"name": "DECEITFUL", "attr":"attr_deceitful"} , {"name":"DEMANDING", "attr": "attr_demanding"},{'attr' :'attr_demanding', 'name': 'DEMANDING'}, {'attr' :'attr_disloyal', 'name': 'DISLOYAL'}, {'attr' :'attr_disobedient', 'name' : 'DISOBEDIENT'}, {'attr' :'attr_dogmatic', 'name' :'DOGMATIC'}, {'attr' :'attr_envious', 'name' : 'ENVIOUS'}, {'attr' :'attr_flippant', 'name' :'FLIPPANT'}, {'attr' :'attr_gloomy', 'name' : 'GLOOMY'}, {'attr' :'attr_greedy', 'name' :'GREEDY'}, {'attr' :'attr_hot_tempered', 'name' :'HOT-TEMPERED'}, {'attr' :'attr_ignorant', 'name' :'IGNORANT'}, {'attr' :'attr_inconsiderate', 'name' :'INCONSIDERATE'}, {'attr' :'attr_insecure', 'name' :'INSECURE'}, {'attr' :'attr_irrational', 'name' :'IRRATIONAL'}, {'attr' :'attr_neurotic', 'name' :'NEUROTIC'}, {'attr' :'attr_obnoxious', 'name' :'OBNOXIOUS'}, {'attr' :'attr_paranoid', 'name' :'PARANOID'}, {'attr' :'attr_patronizing', 'name' :'PATRONIZING'}, {'attr' :'attr_perverse', 'name' :'PERVERSE'}, {'attr' :'attr_petty', 'name' :'PETTY'}, {'attr' :'attr_picky', 'name' :'PICKY'}, {'attr' :'attr_prejudice', 'name' :'PREJUDICE'}, {'attr' :'attr_prim', 'name' :'PRIM'}, {'attr' :'attr_reckless', 'name' :'RECKLESS'},{'attr' :'attr_resentful', 'name' :'RESENTFUL'}, {'attr' :'attr_restless', 'name' :'RESTLESS'}, {'attr' :'attr_rude', 'name' :'RUDE'}, {'attr' :'attr_secretive', 'name' :'SECRETIVE'}, {'attr' :'attr_selfcentered', 'name' :'SELF-CENTERED'}, {'attr' :'attr_selfpitying', 'name' :'SELF-PITYING'}, {'attr' :'attr_slovenly', 'name' :'SLOVENLY'}, {'attr' :'attr_superstitous', 'name' :'SUPERSTITIOUS'}, {'attr' :'attr_vain', 'name' :'VAIN'}, {'attr' :'attr_vindictive', 'name' :'VINDICTIVE'} ]
+ each n in flaws
+ - const attrName = n.attr.split('attr_')[0];
+ label(data-i18n-title=n.name title=n.name)
+ input(name=n.attr title='@{'+attrName+'}' type='checkbox' value='1')
+ span(data-i18n=n.name)=n.name
+
+
+.grid.kob-row
+ .grid.box.powers
+ h2
+ img.header(alt='Powers' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Powers-1.png')
+ textarea(data-i18n-placeholder='Powers' name='attr_powers' placeholder='Powers' title='@{powers}')
+
+ .grid.box.backpack
+ h2
+ img.header(alt='Backpack' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Backpack-1.png')
+ textarea(data-i18n-placeholder='Backpack' name='attr_backpack' placeholder='Backpack' title='@{backpack}')
+
+.grid.kob-row
+ .grid.box.boxnotes
+ h2
+ img.header(alt='Notes' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Notes-1.png')
+ textarea(data-i18n-placeholder='Notes' name='attr_notes' placeholder='Notes' title='@{notes}')
+
+
+
+//- ROLL TEMPLATE
+//include src/pug/_rolltemplate.pug
+include src/pug/rolltemplate.html
\ No newline at end of file
diff --git a/Kids on Bikes Official/kob.scss b/Kids on Bikes Official/kob.scss
new file mode 100644
index 0000000000..732c2510bc
--- /dev/null
+++ b/Kids on Bikes Official/kob.scss
@@ -0,0 +1,176 @@
+* { box-sizing: border-box; }
+
+.charsheet {
+ background-color: #eee;
+ padding: 1%;
+ width: 850px;
+}
+
+button:before { display: none; }
+
+button[type='roll'] {
+ background: #bbb;
+ border-radius: 0.1em;
+
+ &:focus, &:hover, &:active {
+ background-color: #770709;
+
+ & > img {
+ filter: invert(1);
+ }
+ }
+}
+
+label {
+ margin: 0px;
+ padding: 0px;
+}
+
+input[type="text"] {
+ width: 100%;
+}
+
+textarea {
+ font-size: 1.1em;
+ font-weight: normal;
+ line-height: 1.5em;
+ min-height: 150px;
+ overflow-wrap: break-word;
+ overflow: scroll;
+ padding: 2px;
+ resize: vertical;
+ text-align: left;
+ vertical-align: top;
+ white-space: pre-line;
+}
+
+h1.sheet-logo {
+ padding-left: 30%;
+}
+
+div.sheet-box {
+ border: thin solid #bbb;
+ margin: 1%;
+ padding: 1%;
+ background-color: #fff;
+
+ img {
+ width: 100%;
+ }
+}
+
+div.sheet-grid {
+ display: inline-grid;
+ grid-row-gap: 0.5em;
+}
+
+div.sheet-kob-row {
+ grid-template-columns: 1fr 1fr;
+ width: 100%;
+
+ img.sheet-header {
+ height: 30px;
+ width: 200px;
+ }
+
+ div.sheet-biobox {
+ grid-template-columns: 8em 1fr;
+
+ input {
+ &[type='checkbox'] {
+ height: 15px;
+ width: 15px;
+ }
+ }
+
+ textarea[name='attr_character_description'] {
+ grid-column: 1 / 3;
+ }
+ }
+
+ div.sheet-dicebox {
+ grid-template-columns: 3em 1fr 1fr 3em;
+
+ button {
+ &:nth-of-type(odd) { grid-column: 1; }
+ &:nth-of-type(even) { grid-column: 4; }
+ }
+
+ select {
+ font-size: 4em;
+ height: 100%;
+ margin: 0px;
+ padding-left: 25%;
+ width: 100%;
+
+ &:nth-of-type(odd) { grid-column: 2; }
+ &:nth-of-type(even) { grid-column: 3; }
+
+ &[name="attr_flight"] { grid-row: 1 }
+ &[name="attr_brawn"] { grid-row: 2 }
+ &[name="attr_grit"] { grid-row: 3 }
+ }
+
+ optgroup {
+ font-size: 0.5em;
+ }
+
+ option {
+ font-size: 0.8em;
+ }
+ }
+
+ div.sheet-strenghtsbox,
+ div.sheet-flawsbox {
+ grid-template-columns: 2em 1fr 2em 1fr;
+ grid-column-gap: 0.2em;
+
+ label {
+ height: 100%;
+
+ &.sheet-skilledat {
+ grid-column: 1 / 2;
+ }
+
+ &.sheet-skillatcheckbox {
+ grid-column: 3 / 5;
+ }
+ }
+
+
+ input {
+ &[type='checkbox'] {
+ height: 25px;
+ width: 25px;
+ }
+ }
+
+ span {
+ font-weight: bold;
+ font-variant: small-caps;
+ }
+ }
+
+ div.sheet-strenghtsbox {
+ grid-template-columns: 2em 1fr 2em 1fr;
+
+ h2 {
+ grid-column: 1 / 5;
+ }
+ }
+ div.sheet-flawsbox {
+ grid-template-columns: 2em 1fr 2em 1fr 2em 1fr;
+
+ h2 {
+ grid-column: 1 / 7;
+ }
+ }
+
+ div.sheet-boxnotes {
+ grid-column: 1 / 3;
+ }
+}
+
+// ROLL TEMPLATE
+//=============================
+ @import 'src/scss/_rolltemplate';
\ No newline at end of file
diff --git a/Kids on Bikes Official/preview.png b/Kids on Bikes Official/preview.png
new file mode 100644
index 0000000000..66b6d88e33
Binary files /dev/null and b/Kids on Bikes Official/preview.png differ
diff --git a/Kids on Bikes Official/sheet.json b/Kids on Bikes Official/sheet.json
new file mode 100644
index 0000000000..736fcf2fd6
--- /dev/null
+++ b/Kids on Bikes Official/sheet.json
@@ -0,0 +1,8 @@
+{
+ "html": "kob.html",
+ "css": "kob.css",
+ "authors": "Emerald Productions, LLC",
+ "roll20userid": "26123, 557736",
+ "preview": "preview.png",
+ "instructions": "Hunter Entertainment's Kids on Bikes"
+}
diff --git a/Kids on Bikes Official/src/pug/_mixins.pug b/Kids on Bikes Official/src/pug/_mixins.pug
new file mode 100644
index 0000000000..5d5d33fcca
--- /dev/null
+++ b/Kids on Bikes Official/src/pug/_mixins.pug
@@ -0,0 +1,8 @@
+
+//- DICE SELECT
+mixin diceSelect(selectedDefault)
+ - const diceTypes = ['d4', 'd6', 'd8', 'd10', 'd12', 'd20'];
+ optgroup(label='Dice') Dice
+ each val in diceTypes
+ - const selectedDie = val === selectedDefault ? selected : '';
+ option(value=val selectedDie)=val
\ No newline at end of file
diff --git a/Kids on Bikes Official/src/pug/_rolltemplate.pug b/Kids on Bikes Official/src/pug/_rolltemplate.pug
new file mode 100644
index 0000000000..39c2c94a52
--- /dev/null
+++ b/Kids on Bikes Official/src/pug/_rolltemplate.pug
@@ -0,0 +1,21 @@
+//- ROLL TEMPLATE
+//- ============================= -->
+.rolltemplates
+ rolltemplate.sheet-rolltemplate-rolls
+ .sheet-template-container
+ //- Display a header on the template -
+ | {{#header}}
+ .sheet-template-header
+ h1 {{header}}
+ | {{/header}}
+ //- Display the dice roll in the template -
+ .sheet-template-body
+ | {{#dice}}
+ .sheet-template-row
+ span.inlinerollresult {{dice}
+ | {{/dice}}
+ //- Display a description. This is great for text included with a roll -
+ | {{#desc}}
+ .sheet-template-row
+ span.sheet-template-desc {{desc}}
+ | {{/desc}}
\ No newline at end of file
diff --git a/Kids on Bikes Official/src/pug/rolltemplate.html b/Kids on Bikes Official/src/pug/rolltemplate.html
new file mode 100644
index 0000000000..43b5bfb22b
--- /dev/null
+++ b/Kids on Bikes Official/src/pug/rolltemplate.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ {{#dice}}
+
{{dice}}
+ {{/dice}}
+
+ {{#desc}}
+
+
+
+
+ {{/desc}}
+
+
+
diff --git a/Kids on Bikes Official/src/scss/_rolltemplate.scss b/Kids on Bikes Official/src/scss/_rolltemplate.scss
new file mode 100644
index 0000000000..9b53dd5250
--- /dev/null
+++ b/Kids on Bikes Official/src/scss/_rolltemplate.scss
@@ -0,0 +1,44 @@
+/* ROLL TEMPLATE
+============================= */
+ .sheet-rolltemplate-rolls {}
+
+ .sheet-rolltemplate-rolls .sheet-template-body {
+ border : 1px solid #000;
+ text-align: center;}
+
+ .sheet-rolltemplate-rolls .sheet-template-header {
+ background: rgb(33,0,0);
+ background: linear-gradient(180deg, rgba(33,0,0,1) 0%, rgba(137,11,13,1) 70%, rgba(213,25,31,1) 94%);
+ border : 1px solid #000;
+ border-bottom : 2px solid #000;
+ border-top-left-radius : 10px;
+ border-top-right-radius: 10px;
+ color : white;
+ font-size : 20px;
+ font-variant : small-caps;
+ font-weight : bold;
+ letter-spacing : 2px;
+ padding : 5px;
+ text-align : center;
+ text-transform : capitalize;
+ }
+
+ .sheet-rolltemplate-rolls .sheet-template-row {
+ background-color: white;
+ padding: 5px;}
+
+ /* Use this to alternate the background colors for each row */
+ .sheet-rolltemplate-rolls .sheet-template-row:nth-child(2n+0) {
+ background-color: #1c1c1c;}
+
+ /* Remove some fo the built in styles around rolls */
+ .sheet-rolltemplate-rolls .inlinerollresult,
+ .sheet-rolltemplate-rolls .inlinerollresult.importantroll,
+ .sheet-rolltemplate-rolls .inlinerollresult.fullfail,
+ .sheet-rolltemplate-rolls .inlinerollresult.fullcrit {
+ background-color: transparent;
+ border : none;
+ color : black;
+ display : inline-block;
+ font-size : 25px;
+ padding : 5px;}
\ No newline at end of file
diff --git a/Kids on Bikes Official/translation.json b/Kids on Bikes Official/translation.json
new file mode 100644
index 0000000000..3ad38701c4
--- /dev/null
+++ b/Kids on Bikes Official/translation.json
@@ -0,0 +1,72 @@
+{
+ "Name":"Name"
+ ,"Age": "Age"
+ ,"Fear":"Fear"
+ ,"Motivation": "Motivation"
+ ,"Fight":"Fight"
+ ,"Flight":"Flight"
+ ,"Brains":"Brains"
+ ,"Brawn":"Brawn"
+ ,"Charm":"Charm"
+ ,"Grit":"Grit"
+ ,"COOL UNDER PRESSURE": "COOL UNDER PRESSURE"
+ ,"EASYGOING":"EASYGOING"
+ ,"GROSS": "GROSS"
+ ,"HEROIC": "HEROIC"
+ ,"INTUITIVE": "INTUITIVE"
+ ,"LOYAL":"LOYAL"
+ ,"LUCKY": "LUCKY"
+ ,"PREPARED": "PREPARED"
+ ,"PROTECTIVE":"PROTECTIVE"
+ ,"QUICK HEALING":"QUICK HEALING"
+ ,"REBELLIOUS": "REBELLIOUS"
+ ,"TOUGH":"TOUGH"
+ ,"TREASURE HUNTER":"TREASURE HUNTER"
+ ,"UNASSUMING":"UNASSUMING"
+ ,"WEALTHY":"WEALTHY"
+ ,"SKILLED AT:":"SKILLED AT:"
+ ,"SKILLED AT DESCRIPTION":"SKILLED AT DESCRIPTION"
+ ,"ABSENT MINDED":"ABSENT MINDED"
+ ,"BLUNT":"BLUNT"
+ ,"BOASTFUL":"BOASTFUL"
+ ,"CLUMSY":"CLUMSY"
+ ,"CONCEITED":"CONCEITED"
+ ,"COWARDLY":"COWARDLY"
+ ,"DECEITFUL":"DECEITFUL"
+ ,"DEMANDING":"DEMANDING"
+ ,"DISLOYAL":"DISLOYAL"
+ ,"DISOBEDIENT":"DISOBEDIENT"
+ ,"DOGMATIC":"DOGMATIC"
+ ,"ENVIOUS":"ENVIOUS"
+ ,"FLIPPANT":"FLIPPANT"
+ ,"GLOOMY":"GLOOMY"
+ ,"GREEDY":"GREEDY"
+ ,"HOT-TEMPERED":"HOT-TEMPERED"
+ ,"IGNORANT":"IGNORANT"
+ ,"INCONSIDERATE":"INCONSIDERATE"
+ ,"INSECURE":"INSECURE"
+ ,"IRRATIONAL":"IRRATIONAL"
+ ,"NEUROTIC":"NEUROTIC"
+ ,"OBNOXIOUS":"OBNOXIOUS"
+ ,"PARANOID":"PARANOID"
+ ,"PATRONIZING":"PATRONIZING"
+ ,"PERVERSE":"PERVERSE"
+ ,"PETTY":"PETTY"
+ ,"PICKY":"PICKY"
+ ,"PREJUDICE":"PREJUDICE"
+ ,"PRIM":"PRIM"
+ ,"RECKLESS":"RECKLESS"
+ ,"RESENTFUL":"RESENTFUL"
+ ,"RESTLESS":"RESTLESS"
+ ,"RUDE":"RUDE"
+ ,"SECRETIVE":"SECRETIVE"
+ ,"SELF-CENTERED":"SELF-CENTERED"
+ ,"SELF-PITYING":"SELF-PITYING"
+ ,"SLOVENLY":"SLOVENLY"
+ ,"SUPERSTITIOUS":"SUPERSTITIOUS"
+ ,"VAIN":"VAIN"
+ ,"VINDICTIVE":"VINDICTIVE"
+ ,"Powers":"Powers"
+ ,"Backpack":"Backpack"
+ ,"Notes":"Notes"
+}
\ No newline at end of file