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

Stormbringer Character Sheet Project Question

1461799606

Edited 1461799726
Ok, even though i don't know what the frick i'm doing, i have embarked upon creating my own character sheet for a homebrew of Chaosium's Stormbringer RPG.  From scratch? Lord no!  Actually, i am using the Basic FRP sheet from the custom menu in game settings as a starting point & sort of cut/paste/edit my way through it.   One question i have so far is that while in Stormbringer, in addition to familiar 3d6 range Primary Attributes that are easy to represent on the character sheet, like: Strength: Constitution: Size: Dexterity: Intelligence: Power: Charisma:   you have many "derived" Attributes that are calculated by combining various influences of the above  Primary Attributes .  These become indicators of things like Hit Points, Major Wound Level, Damage Bonus, & Sorcery; or important modifiers to skill proficiency categories like Agility, Communication, Knowledge, Manipulation, Perception, & Stealth. For example: Damage Modifier:   [[floor((@{Strength} +@{Size} -21)/4)]] Hit Points:  [[floor(@{Constitution} +@{Size})/2]].   Major Wound Level:  [[floor(@{HitPoints}/2)+1]] Agility:  [[floor(@{Strength} +@{Dexterity} -@{Size})]].   Communication: [[floor(@{Charisma} +(@{Intelligence} +@{Power})/2)/2]] Knowledge: [[floor(@{Intelligence} +(@{Power} +@{Charisma})/2)/2]] Manipulation:  [[floor(Strength + Dexterity + Intelligence + Power)/4]] Perception: [[floor(@{Constitution} +(@{Intelligence} +@{Power})/2)/2]] Stealth:  [[floor(@{Dexterity} + @{Power} -@{Size})]] Sorcery: [[floor(@{Intelligence +@{Power})/2]] In any event, while i know how to present these as a trigger on the abilities section of a character sheet, i do not know how to integrate them into the HTML tab of the custom character sheet so that they auto-calculate  when data is entered into the Primary Attribute fields. Can any one explain how to write this?  :) Thank you so much!!!  ;)
1461806679

Edited 1461806819
vÍnce
Pro
Sheet Author
Inline rolls are used for chat [[ ]] Try just including parenthesis around your calculated values. ie something like this for Damage Modifier <input name="attr_damage-mod" type="number" value=" ( floor((@{Strength} +@{Size} -21)/4))" disabled />
Vince to the rescue!!!  :) Ok, i've done this, but it raises more questions that i will place tomorrow when people aren't asleep in the living room  ;)
1461852475

Edited 1461853572
Ok Vince, this is literally what i have filling lines 138-144  <tr> <td>Damage Bonus</td> <td><input type=number width=5 style='width: 5em;' name="attr_DMODbase" value="attr_DMODbase=(floor((@{STRbase}/+@{SIZbase}-21)/4))"disable/></td> <td><input type=number width=5 style='width: 5em;' name="attr_DMODcurrent" value="attr_DMODcurrent=(floor((@{STRcurrent}/+@{SIZcurrent}-21)/3))"disable /></td> </tr> I wan't it to compute, fill in, & adjust the number in the box ingame when i adjust the STR/SIZ, but so far i always have to do it manually.  Refreshing the sheet makes no difference.   Reason being is that i can not expect the players in an obscure game like Stormbringer to know how to compute these derived attributes themselves. I need these to self calculate as the primary attributes are filled in and adjusted.  Thus, when STR & SIZ are filled in, Damage Bonus is automatically calculated.  When CON & SIZ are changed, Hit Points are changed etc.
1461853190

Edited 1461853224
Ziechael
Forum Champion
Sheet Author
API Scripter
At the risk of showing what a complete pleb I am could it be something to do with the '/' in the attribute value formula being followed by a '+'? Are you dividing STR by SIZ or adding it to it?
Ziechael...  you are very correct!  I couldn't quite spot the discrepancy until i plugged that line of command into a trigger on the abilities tab & it gave the character a -5 db instead of 0 like it should have. You are not a pleb!  I see you offer useful tips on the forum all the time.  It only seems pleb because 99% of issues encountered are pleb!  :) As for the auto-filling, it all seems to be working just fine now.  I suspect that something that may happen is there is a bit more lag than i anticipate between saving a change in one window, & the update applying when i refresh in another window.
1461880350
vÍnce
Pro
Sheet Author
What Ziechael said. ;-P
Ok, here is where i am at.  The Derived Attributes are auto filling nicely.  Now i am wanting to tackle the % skills.  What needs to happen here is that each skill within a category has a default proficiency equal to the Derived Attribute .  For example, if Agility is 10, then  Boating, Climb, Dodge, Jump, Ride, Swim, Tumble  which are Agility skills, will all be known at at least 10% proficiency, plus whatever skill points are invested in them.  So how do i make the skills default to their Skill Modifier but still be adjustable by the player? Here is a slice of how the skill template is currently structured on the sheet. <tr> <td>Dodge</td> <td><input name="attr_dodge" type="text"></td> <td><button type=roll value="/roll 1d100<@{dodge}+@{AGIcurrent}"></button></td> </tr>
1461905435
vÍnce
Pro
Sheet Author
Goblintrain said: Ok, here is where i am at.  The Derived Attributes are auto filling nicely.  Now i am wanting to tackle the % skills.  What needs to happen here is that each skill within a category has a default proficiency equal to the Derived Attribute .  For example, if Agility is 10, then  Boating, Climb, Dodge, Jump, Ride, Swim, Tumble  which are Agility skills, will all be known at at least 10% proficiency, plus whatever skill points are invested in them.  So how do i make the skills default to their Skill Modifier but still be adjustable by the player? Maybe try something like this(assumes there is a value for @{agility})   You could also use a selector for the base attribute so you could choose which ability is applicable to the skill. <tr> <td>Dodge:</td> <td><input name="attr_dodge" type="number" value="( @{agility} + @{dodge-mod} )" disabled /></td> <td> = Base Attr </td> <td><input name="attr_ability" type="number" value="@{agility}" disabled /></td> <td> + Mod </td> <td><input name="attr_dodge-mod" type="number" value="0" /></td> <td><button type=roll value="/roll 1d100<[[ @{dodge}[dodge] + @{AGIcurrent}[agi] ]]"></button></td> </tr>
1461919178
Finderski
Plus
Sheet Author
Compendium Curator
You could also do something like this: <td><button type=roll value="/roll 1d100<[[@{dodge}+@{AGIcurrent}]]"></button></td> Part of the problem with the current code you have above is it is comparing the d100 roll to @{dodge}, then when that comparison is done, it adds @{AGIcurrent} to the result.  By encapsulating the dodge and AGIcurrent within square brackets, roll20 will add those two values together, then roll the d100 and compare it.  For some reason parentheses doesn't work in this case, I had to use the square brackets.
1461943299

Edited 1461943973
Ok, TY guys.  I will give these a try.  Really i don't know HTML code at all so what i am doing with this old sheet is editing it by comparing perceived functions of given sections & then cutting/pasting & rewriting with a prayer that the whole thing doesn't explode under me. What that means is that every little hint you give me on how to set these up is a milestone in my understanding of this process.  For example, i never imagined how useful inserting a simple "disabled" could be!  So keep it coming friends, no crumb is too small! :) For the skills section something i have considered is using a modified weapons section, because the layout looks well fitted for customizing. <tr><td valign=top colspan=2> <b>Weapons</b> <br> <b style='display: inline-block; width: 11em;'>Name</b> <b style='display: inline-block; width: 6em;'>Proficiency</b> <b style='display: inline-block; width: 8em;'>Damage</b> <b style='display: inline-block; width: 8em;'>Range</b> <b style='display: inline-block; width: 10em;'>Notes</b> <br> <fieldset class=repeating_weapons> <input type=text name=attr_weaponname style='width: 11em;'> <input type=text name=attr_proficiency style='width: 6em;'> <input type=text name=attr_weapondamage style='width: 8em;'> <input type=text name=attr_weaponrange style='width: 8em;'> <input type=text name=attr_weaponnotes style='width: 10em;'> </fieldset> </td></tr> What i like about this repeating list is that it looks intuitive for refitting for other purposes, & fairly tidy onscreen.  I also think it would make it easy to add new skill entries or edit old ones under the umbrella categories in-game.  But i will explore what Vince & G V are pointing at first, & look at this a bit more later.
Ok, i am afraid my ignorance is insurmountable.  I don't think i can make much progress on this sheet until i know some very basic vocabulary in the HTML script. The huge majority of the sheet consists of things like <b> <br> <tr> <td> </> Then occasionally there are some basic commands like <input> <style> <type> <value> There is red, green, gold, & white text. Is there a reference somewhere that i can consult to learn what these things mean at least?  :)
1461982022

Edited 1461982100
I usually Google stuff like "br tag" or "input value" or "td html" and check out the relevant w3schools page, which is usually one of the first results.
1462027640

Edited 1462028203
A Repeating Menu within a Repeating Menu .  At least that is what i was trying to do here.  I wanted "CHARACTER SKILLS BY CATEGORY" to be the one click stop to open the other skill categories: AGILITY, COMMUNICATION, KNOWLEDGE, MANIPULATION, PERCEPTION, SORCERY, STEALTH, WEAPON SKILLS which in turn would open to the list of individual entries.   Unfortunately in it's current form it doesn't work very well.  Punching the CHARACTER SKILLS button, only the AGILITY SKILLS menu pops initially, and in a broken form. The Agility menu presents with two  +ADD buttons for some reason, one of which doesn't work at all, & the other opens the other categories instead of Agility skill slots. Ok, so obviously i didn't even know how to center my title or anything, but that is not my focus right now. Just at a glance can any one identify why the buttons are getting all messed up surrounding the AGILITY SKILLS category?  Everything after the Agility category works as intended. <b style='display: inline-block; width: 62em;'>______________________________________ CHARACTER SKILLS BY CATEGORY ____________________________________________</b> <br> <fieldset class=repeating_agilityskills> <br><br><br> <br> <input type=text name=attr_skillname style='width: 62em;'> <fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> AGILITY SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Notes</b> <br> <fieldset class=repeating_agilityskills> <br> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> <fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> COMMUNICATION SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Notes</b> <fieldset class=repeating_communicationskills> <br> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> KNOWLEDGE SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Notes</b> <br> <fieldset class=repeating_knowledgeskills> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> MANIPULATION SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 5em;'>Notes</b> <br> <fieldset class=repeating_manipulationskills> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> PERCEPTION SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Notes</b> <br> <fieldset class=repeating_perceptionskills> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b> STEALTH SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Fumble</b> <br> <fieldset class=repeating_stealthskills> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br><br> <b> WEAPON SKILLS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Base</b> <b style='display: inline-block; width: 5em;'>Modifier</b> <b style='display: inline-block; width: 5em;'>Critical</b> <b style='display: inline-block; width: 5em;'>Fumble</b> <b style='display: inline-block; width: 30em;'>Notes</b> <br> <fieldset class=repeating_weaponskills> <input type=text name=attr_skillname style='width: 12em;'> <input type=number name=attr_skillbase style='width: 5em;'> <input type=number name=attr_skillmodifier style='width: 5em;'> <input type=number name=attr_skillcritical style='width: 5em;'> <input type=number name=attr_skillfumble style='width: 5em;'> <input type=text name=attr_skillnotes style='width: 30em;'> </fieldset> </td></tr> </td></tr> </td></tr> <br> <br> <b style 'display:inline-block; width: 48em;'>_______________________________________________________________________________________________________________________<br><br> <b style 'display:inline-block; width: 48em;'>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br> <b style 'display:inline-block; width: 48em;'>_______________________________________________________________________________________________________________________<br><br> <b> WEAPONS </b> <br> <b style='display: inline-block; width: 12em;'>Name</b> <b style='display: inline-block; width: 5em;'>Percent</b> <b style='display: inline-block; width: 5em;'>Damage</b> <b style='display: inline-block; width: 5em;'>Range</b> <b style='display: inline-block; width: 35em;'>Notes</b> <br> <fieldset class=repeating_weapons> <input type=text name=attr_weaponname style='width: 12em;'> <input type=text name=attr_skill style='width: 5em;'> <input type=text name=attr_weapondamage style='width: 5em;'> <input type=text name=attr_weaponrange style='width: 5em;'> <input type=text name=attr_weaponnotes style='width: 35em;'> </fieldset> <b style 'display:inline-block; width: 48em;'>_______________________________________________________________________________________________________________________<br><br> <b style 'display:inline-block; width: 48em;'>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br> <b style 'display:inline-block; width: 48em;'>_______________________________________________________________________________________________________________________<br><br> </td></tr> </td></tr> </td></tr> <br> <br> <tr><td valign=top>
1462050649
Finderski
Plus
Sheet Author
Compendium Curator
Goblintrain said: A Repeating Menu within a Repeating Menu .  At least that is what i was trying to do here.   Unfortunately, can't do repeating sections within repeating sections. :(
1462052477

Edited 1462052806
Ok, TY GV.  At this point, my progress with this particular sheet is so smudged up with my greasy fingerprints, i will likely load a new sheet template to work on.  The Rolemaster 1e sheet looks like it has a good starting format for Stormbringer because it is so detailed that a good majority of the work would involve reducing & renaming rather than writing new script sections -as if i even knew how to anyway!  :) Then again...  if there was just a simple 1980's Call of Cthulu or Runequest sheet out there, that would be the closest match because these games are all Chaosium's Basic Role Play system, their differences being mostly cosmetic.  Magic World, or Elric! would work great too. However i "do" have interactive sheets for Magic World on pdf that i could easily adjust for Stormbringer  "if" i could view them raw, but i don't know how to do that.  "If" i could just view them as raw documents i could bring them into Roll20 under the custom sheet option?   Sorry, my ignorance is overwhelming!  :)
1462061173
Finderski
Plus
Sheet Author
Compendium Curator
Goblintrain said: However i "do" have interactive sheets for Magic World on pdf that i could easily adjust for Stormbringer  "if" i could view them raw, but i don't know how to do that.  "If" i could just view them as raw documents i could bring them into Roll20 under the custom sheet option?   Depends on what you mean "raw document" If you mean, the document had HTML source code, then yes, you could use that HTML (though you would still need to modify it to fit roll20's requirements for character sheet code. But all custom sheets must be html and css.
Yes, documents with HTML source code.  I am investigating it as i type.  Funny, you ever notice that documents you had yesterday are suddenly gone today?  :)
1462064897
Finderski
Plus
Sheet Author
Compendium Curator
Goblintrain said: Funny, you ever notice that documents you had yesterday are suddenly gone today?  :) All the time. :)