
I'm knee deep into a character sheet for HarnMaster which is a very crunchy system. I'd like some thoughts from the experts here on approach. The system has a number of attributes, and not all GM's use the same ones. The system is skill based with over 100 skills (400+ specialties) and as you might guess, GM's love to tweak the system by adding their own skills, sometimes attributes, etc. Each skill is defined by a skill base (SB) and a mastery level (ML) which is your base chance to succeed with the skill on percentile dice. For example Climbing is an automatic physical skill and its' base is the Average of Strength, Dexterity, and Agility. If you were born under Ulandus the Tree or Aralius the Wands you get +2 to your base. Everyone opens the skill ML at a multiple of 4 times SB. If you choose the occupation Thatcher, or if your parents were thatchers you start out with 5x your skill base. Climbing doesn't have official specialties but most other skills have three to five and some have quite a few more. The ML of the skill is used quite a bit, and the SB when the skill is "developed". Specifically, SB (along with your chosen occupation) determines your starting ML or skill level, your maximum ML (which is 100+SB) and is used in development rolls when you gain experience e.g. test d100 + SB > ML and if so increase ML by + 1. (I did say we liked the crunchy bits...) So for skills there are three approaches that have been tried: 1. The exiting HM3 character sheet ignores most of this but gives you repeating field set for each skill. You type in the skill name, figure out the SB, ML and type it in. I intended to add a sheetworker script to calculate SB and ML for known skills so I knew this would need to be edited. 2. I built a sheet where the existing skills in HM were listed explicitly, eg. attr_climbing was used to store ML and attr_climbing|max stored SB. This had the advantage of allowing all of the skills to be available explicitly as variables on the character sheet, but limited the ability of GMs to define their own skills. An additional advantage was that each skill could have a hidden repeating section for skill specialties (which use the same SB but have better ML than their base skill). 3. I revised the sheet to allow the GM or player to build a custom Skill Data Table that defines each skill in the config section of the sheet. These were designed as repeating sections by skill type (Physical, Combat, Communication, Lore, etc.) as there are some different rules in handling each type of skill. This seems to work reasonably well, but requires the GM to load the whole skill data table into a character sheet and players to then copy that sheet. Since sub-repeating sections aren't a thing, I included a fixed list of optional specialties, e.g. attr_specialty_name_01, _02, etc. Not ideal and this together with all of the skill data being stored as sheet attr_ fields resulted in the sheet taking a long time to load (problematic at least for development). One of the challenges is that there are things in the game that change your attributes. Drinking a strength potion, might give you a temporary +4 to strength. The rules suggest recalculating the SB for all skills impacted and if they go up by one (1) you should also increase each skill by +5%, etc. My current thinking is to use the attr_strength and attr_strength|max to store the current and base value for each attribute. Create a sheetworker script to adjust the SB for all open skills, and adjust ML's as necessary. Thoughts on my overall approach? One additional question: If I'm reading the docs right, the Charactermancer ability is only available for official sheets is that correct? Thanks.