• The VOIDRUNNER'S CODEX is coming! Explore new worlds, fight oppressive empires, fend off fearsome aliens, and wield deadly psionics with this comprehensive boxed set expansion for 5E and A5E!

D&D 5E MPMB's D&D 5e Character Tools

Noah Ivaldi

First Post
Nosky: Foxit Reader is compatible with most of the sheet. It gets a few things wrong. I posted a reminder about this in one of my recent posts on this thread.

Astromath: Yeah, that's the problem. There is no "standard." Because 5E, unlike previous editions, uses every ability score in various saving throws, pretty much any "suggested" scores are going to be considered to be wrong by at least 70% of users, and the rest will still find it silly that such an individualized consideration is being automated. There's just too much individual variance. Let me show you some examples:
My DM doesn't track carrying capacity. That means that dumping STR is almost always a good idea, even for most martial units, because we can just use finesse weapons to deal physical damage. As long as we have that one party member with the STR to break doors down, bust us out of that hand of earth that is trying to squeeze us to death, and deal good bludgeoning damage, the rest of us don't need it. If your DM keeps track of carrying capacity and/or throws you a lot of situations in which you'll need more STR (You need to deal a lot of bludgeoning damage to this guy because he resists piercing and slashing. You need to work together to bust down this wall. You can't keep sucking up your ally's action economy for him to keep helping you break out of this grabby spell that a lot of enemies like to use.), it's no longer such an easy dump stat for you.
DEX pretty much never seems like a good idea to drop because of its tie to AC, but what if you're running a paladin in full plate? You want high STR for pain and rescuing heavy allies, high CON for survival, INT is helpful for getting through illusions and stuff, WIS for saves against things that would mess with your mind in the first place, and CHA is your core. "Great, so make some array based on that." No, 'cause then that ruins every other paladin: The paladin that's focused on being the best martial, just with a little divine assistance, the paladin that's all about discovery, discernment, and social situations, but doesn't need to deal damage at all and is too frail to get in the fray and pick his allies up, and the paladin that is tanky, mobile, and magical, but not good at resisting magical influences or hitting hard without finesse are all asking, "Where's my array? Who decided on this?"
Plenty of martials will dump INT because they always have and save some points for WIS because they associate WIS with "will" saves against a ton of spells. Plenty of spells and attacks use other scores for saves, now, so this is no longer a completely valid thought process.
Plenty of casters will dump mental scores that aren't tied to their casting for the same reasons, and suffer the same changes.
Dump CHA? Everyone that doesn't cast with it dumps CHA, right? Well, sure, but be prepared to suffer a lot of charms and compulsions that were previously "will" saves. Does your DM avoid enchantments for the most part? Then, dumping CHA is logical. Does your DM spam them more than Gary Gygax? Put CHA as high as you can afford. Somewhere in between? Do stuff in between. A pre-arranged "This is a typical CHA score for your class" number would never be able to find a spot along this spectrum to represent as "typical."
I could point to different ability score arrays for every class that are equally valid. No pre-generated scores could ever fairly pick between them.



MPMB: Sweet! I agree that it should be non-printing blue text, and the goliath should just auto-fill in a 2. I have been too busy to update and test, lately, but I'll be happy to give input on your latest version sometime soon!
 

log in or register to remove this ad

fitsou

First Post
@apearlma: The Excel has a feature for this :) It only shows you fields for the basic spells known, but there is room for 12 spells that are 'extra'. You can fill these spells out in the "Spells to add to class list, racial bonuses, class bonuses, etc:" fields. If you put your 3 bonus Cantrips there, they should appear on the spell sheet.

@fitsou: This is a side effect from me switching to using global Javascript functions instead of only field functions. Using only field functions is not really doable when automating this much. Unfortunately, most of these global functions I use are not (yet) supported by the Adobe Acrobat mobile apps. However, you should be able to view the sheet and manually edit most things using the free "Adobe Acrobat Reader DC" app (it works on my Android device).

Thanks man! I had tried in the past the acrobat reader with no success. Maybe this new version will work. I'll check it out and post the result to the community here.

Ps if you need help with data entry for the new features you want to implement in the sheet don't hesitate to contact I can help.
 

Another update to a Beta version 6.6 with better automated Class Features!. Still only the Barbarian bits are there. For now I'm focussing on getting the code to work. After that I'll see about transcribing the classes.

Data entry
If people want to help transcribing the classes that would be very welcome as it is a lot of work! Thank you fitsou for suggesting this!
What I would be looking for is the description text of each class feature. You can try making a Barbarian with the new Beta version to see how things look like. The idea is to compress the information to as few lines as possible with every line starting with "\n " (a line break and two spaces). So provide me with short description texts for all the class features if you want your favourite class to be added as fast as possible :)

The code for the Barbarian Class Features looks like this:
Code:
"rage": {
    name: "Rage",
    source: ["P", 48],
    minlevel: 1,
    description: "\n   Start\/end as bonus action; For 1 min until unconscious or not attacked during turn\n   Advantage on Strength checks and saves; Resistance to bludgeoning\/piercing\/slashing",
    additional: ["+2 melee damage", "+2 melee damage", "+2 melee damage", "+2 melee damage", "+2 melee damage", "+2 melee damage", "+2 melee damage", "+2 melee damage", "+3 melee damage", "+3 melee damage", "+3 melee damage", "+3 melee damage", "+3 melee damage", "+3 melee damage", "+3 melee damage", "+4 melee damage", "+4 melee damage", "+4 melee damage", "+4 melee damage", "+4 melee damage"],
    usages: [2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, "\u221E\u00D7 per "],
    recovery: "long rest",
    action: ["bonus action", " (start\/stop)"]
    },
"unarmored defense": {
    name: "Unarmored Defense",
    source: ["P", 48],
    minlevel: 1,
    description: "\n   AC is 10 + Dexterity modifier + Constitution modifier + shield"
},
"reckless attack": {
    name: "Reckless Attack",
    source: ["P", 48],
    minlevel: 2,
    description: "\n   Adv. on first melee weapon attack of the turn, but attacks vs. me adv. until next turn"
},
"danger sense": {
    name: "Danger Sense",
    source: ["P", 48],
    minlevel: 2,
    description: "\n   Adv. on Dexterity saves against seen effects, while not blinded\/deafened\/incapacitated",
    save: "Adv. on Dex saves vs. seen effects."
},
"subclassfeature3": {
    name: "Primal Path",
    source: ["P", 48],
    minlevel: 3,
    description: " [no subclass in the \"class\" field]"
},
"subclassfeature3.1": {
    name: "",
    minlevel: 3,
},
"fast movement": {
    name: "Fast Movement",
    source: ["P", 49],
    minlevel: 5,
    description: "\n   +10 ft speed when I'm not wearing heavy armor",
    eval: "ChangeSpeed(10)",
    removeeval: "ChangeSpeed(-10)"
},
"subclassfeature6": {
    name: "Primal Path",
    source: ["P", 48],
    minlevel: 6,
    description: " [no subclass in the \"class\" field]"
},
"feral instinct": {
    name: "Feral Instinct",
    source: ["P", 49],
    minlevel: 7,
    description: "\n   Adv. on Initiative; I can enter rage to act normally on the first turn when surprised",
    eval: "Checkbox(\"Init Adv\", true, \"Advantage to Initiative checks was gained from Barbarian (Feral Instinct)\")",
    removeeval: "Checkbox(\"Init Adv\", false, \"\")"
},
"brutal critical": {
    name: "Brutal Critical",
    source: ["P", 49],
    minlevel: 9,
    description: "\n   I can roll additional dice for the extra damage on a critical hit with a melee attack",
    additional: ["", "", "", "", "", "", "", "", "1 additional die", "1 additional die", "1 additional die", "1 additional die", "2 additional dice", "2 additional dice", "2 additional dice", "2 additional dice", "3 additional dice", "3 additional dice", "3 additional dice", "3 additional dice"]
},
"subclassfeature10": {
    name: "Primal Path",
    source: ["P", 48],
    minlevel: 10,
    description: " [no subclass in the \"class\" field]"
},
"relentless rage": {
    name: "Relentless Rage",
    source: ["P", 49],
    minlevel: 11,
    description: "\n   If I drop to 0 hp while raging, I can make a DC 10 Constitution save to stay at 1 hp\n   The DC increases by 5 for every attempt until I finish a short or long rest"
},
"subclassfeature14": {
    name: "Primal Path",
    source: ["P", 48],
    minlevel: 14,
    description: " [no subclass in the \"class\" field]"
},
"persistent rage": {
    name: "Persistent Rage",
    source: ["P", 49],
    minlevel: 15,
    description: "\n   My rage only lasts shorter than 1 minute if I fall unconscious or if I choose to end it"
},
"indomitable might": {
    name: "Indomitable Might",
    source: ["P", 49],
    minlevel: 18,
    description: "\n   If a Strength check is lower than my Strength score, use Strength score instead"
},
"primal champion": {
    name: "Primal Champion",
    source: ["P", 49],
    minlevel: 20,
    description: "\n   +4 to both Strength and Constitution and their maximums increase to 24"
}

And the Class Features of the subclasses "Berserker" and "Totem Warrior" look like this:
Code:
"berserker": {
    subname: "Path of the Berserker",
    fullname: "Berserker",
    abilitySave: 6,
    features: {
        "subclassfeature3": {
            name: "Frenzy",
            source: ["P", 49],
            minlevel: 3,
            description: "\n   Melee attack as bonus action each turn while raging; +1 level of exhaustion after rage",
            action: ["bonus action", " attack (while raging)"]
        },
        "subclassfeature6": {
            name: "Mindless Rage",
            source: ["P", 49],
            minlevel: 6,
            description: "\n   While raging, I cannot be charmed or frightened and such effects are suspended"
        },
        "subclassfeature10": {
            name: "Intimidating Presence",
            source: ["P", 49],
            minlevel: 10,
            description: "\n   As an action, frighten one creature in 30 ft for one turn if it fails a Wisdom save\n   This effect ends if the creature is out of line of sight or more than 60 ft away\n   If a creature succeeds its saving throw, it is immune for 24 hours"
        },
        "subclassfeature14": {
            name: "Retaliation",
            source: ["P", 50],
            minlevel: 14,
            description: "\n   When an enemy within 5 ft damages me, I can make a melee attack as a reaction",
            action: ["reaction", " (after taking damage)"]
        }
    }},
"totem warrior": {
    subname: "Path of the Totem Warrior",
    fullname: "Totem Warrior",
    features: {
        "subclassfeature3": {
            name: "Spirit Seeker",
            source: ["P", 50],
            minlevel: 3,
            description: "\n   I can cast the spells Beast Sense and Speak with Animals as rituals"                
        },
        "subclassfeature3.1": {
            name: "Totem Spirit",
            source: ["P", 50],
            minlevel: 3,
            description: "\n   Choose Bear, Eagle, or Wolf using the \"Choose Feature\" button above",
            choices: ["Bear", "Eagle", "Wolf"],
            "bear": {
                name: "Bear Spirit",
                description: "\n   While raging, I have resistance to all damage types except psychic"
            },
            "eagle": {
                name: "Eagle Spirit",
                description: "\n   While raging without heavy armor, others have disadvantage on opportunity attacks\n   I can use the Dash action as a bonus action",
                action: ["bonus action", " (Dash)"]
            },
            "wolf": {
                name: "Wolf Spirit",
                description: "\n   While raging, friends have advantage on melee attacks vs. hostiles within 5 ft of me"
            }
        },
        "subclassfeature6": {
            name: "Aspect of the Beast",
            source: ["P", 50],
            minlevel: 6,
            description: "\n   Choose Bear, Eagle, or Wolf using the \"Choose Feature\" button above",
            choices: ["Bear", "Eagle", "Wolf"],
            "bear": {
                name: "Aspect of the Bear",
                description: "\n   Advantage on Strength checks to push\/pull\/lift\/break; Carrying capacity is doubled",
                eval: "this.getField(\"Carrying Capacity Multiplier\").value += 1;",
                removeeval: "this.getField(\"Carrying Capacity Multiplier\").value -= 1;"
            },
            "eagle": {
                name: "Aspect of the Eagle",
                description: "\n   I can see up to 1 mile away perfectly; No disadvantage on Perception from dim light",
            },
            "wolf": {
                name: "Aspect of the Wolf",
                description: "\n   I can track while traveling at a fast pace; and I can move stealthy at a normal pace",
            }
        },
        "subclassfeature10": {
            name: "Spirit Walker",
            source: ["P", 50],
            minlevel: 10,
            description: "\n   I can cast the spell Commune with Nature as a ritual"
        },
        "subclassfeature14": {
            name: "Totemic Attunement",
            source: ["P", 50],
            minlevel: 14,
            description: "\n   Choose Bear, Eagle, or Wolf using the \"Choose Feature\" button above",
            choices: ["Bear", "Eagle", "Wolf"],
            "bear": {
                name: "Bear Attunement",
                description: "\n   While raging, any creature that sees me within 5 ft has disadv. on attacks vs. others"
            },
            "eagle": {
                name: "Eagle Attunement",
                description: "\n   While raging, I can fly at my current speed, but I can only stay aloft during my turn"
            },
            "wolf": {
                name: "Wolf Attunement",
                description: "\n   If my melee attack hits while raging, I can knock prone as a bonus action (up to Large)",
                action: ["bonus action", " (raging: knock prone)"]
            }
        }
    }},

Character Sheet v6.6 (7-7-2015) Beta! changelog:
- The Letter version has some minor changes in lay-out to make the “Class Features” area larger
- The Carrying Capacity ×2 checkbox has been replaced by a modifier ‘blue text field’ (as per the suggestion of Noah Ivaldi)
- Added a button to choose class features that offer you a selection (such as the Totem Warrior features that let you choose between Bear, Eagle, and Wolf)
- Further implemented the Class Feature code to (better) allow for multiclassing, and to allow for changing of the text manually
- Changed the appearance of the class features to have fewer big black dots
- Updated a lot of older code
 

fitsou

First Post
ok i would like to suggest to each person who wants to help to announce here which class is he/she gonna do, to avoid duplicate entries!

i will try and do the Fighter Class and the Battle Master. If its easy, i will next do the other 2 fighter subclasses
 

Headbomb

First Post
A few typos in the spell sheet.

Spell | Current / What it should be should be, maybe

Antipathy/Sympathy | Duration "10 days". A super anal retentive person could argue that since you write 10 h, 10 min, etc.. you should write "10 d". But they would need to be super anal retentive.

Animate Dead | "Turn corpes" should be "Turn corspes".

Blade Barrier | Missing the (l x w x h) thing. Personally I would omit the (l x w x h) thing for all other spells, and mention in the manual that the order is (l x w x h) but that's just me.

Control Flames / Shape Water | Duration "Instant. or 1 h." --> Instant. is not defined in the abbreviation list. It's kind of obvious, but I thought I'd point it out. Abbreviating Instantaneous to Instant. everywhere would also be nice.

Death Ward | "instantenous" should be "instantaneous".

Elemental Bane | "choosen" should be "chosen".

Faerie Fire | "invisibile" should be "invisible"

Flame Arrows | "succesful" should be "successful"

Flesh to Stone "succes" should be "successes"

Gentle Repose | "becominutesg undead" should be "becoming undead". Likelike a find/replace gone awry.

Leomund's Tiny Hut | "9 Medium crea" should probably be "9 med. crea"

Magic Jar |"posess" should be "possess".

Move Earth | "concentratoin" should be "concentration". Or "conc."

Plant Growth | Time "1a/8h" should be "1 a/8 h" per spacing conventions used elsewhere

See Invisibility | "See invisibility" should be capitalized to "See Invisibility" (needs to be modified in two places)

Skywrite | "diperse" should be "disperse".

Sleep | "consious" should be "conscious".

Tsunami | Conc, 6 rnds --> Conc, 6 rnd (I'm not sure about this one. If you treat it as an undotted abbreviation, it could take the plural s. But everything else is treated as unit symbols, and those don't take the plural s [8 h vs not 8 hs, 10 min vs not 10 mins])

Watery Sphere | "restained" should be "restrained"

You might also want to do a find/replace for double spaces --> single spaces.

You might also want to do a find/replace for "1a" --> "1 a" there are a lot of those.

I note that sometimes you write "Int (Investigation)" and others "Wis(Perception/Survival)" consistency in spacing would be good.

I note that sometimes you write "Dex half" "Dex halves" and "Dex save halves" (likewise for other stats). I'd go with a consistent "Dex halves" or "Dex save halves" here (likewise for other stats).

Some spells uses the abbrevation "obsc." for obscured. that should be defined in the manual

Also, I would personally enforce Bludg./Slash./Pierc. everywhere for consistency, regardless of space, but that's just me.
 
Last edited:

Headbomb

First Post
I also suggest, in addition of the * to indicate pricy components, the addition of a dagger † to indicate pricy consumable components, and the double dagger ‡ to indicate a non-pricy and consumable component.

This would modify the following PHB spells as follows:

Arcane Lock† (meaning the components would be given as V,S,M† instead of V,S,M*)
Astral Projection†
Awaken†
Clone†
Continual Flame†
Divination†
Find Familiar†
Glyph of Warding†
Greater Restoration†
Hallow†
Heroes' Feast†
Illusory Script†
Legend Lore†
Magic Circle†
Magic Mouth†
Nondetection†
Planar Binding†
Raise Dead†
Reincarnate†
Resurrection†
Revivify†
Sequester†
Simulacrum†
Stoneskin†
Symbol†
Teleportation Circle†
True Resurection†
True Seeing†

Corner cases

Forbidance is * in most situations, but can be † in a very specific instance. I would keep Forbidance*

Protection from Good and Evil. The PHB doesn't list a specific price, but it does say that it consumes holy water or powdered silver and iron. Holy Water costs 25 gp, and powered silver worth 25 gp is also the component required to create holy water in the first place. So it would make sense to mark this one as †. Otherwise, this would be the only ‡ spell.
 
Last edited:

Hi Headbomb! Thank you again for all your suggestions and looking at the description text so closely. In the new Spell Sheet generator v3.9 I have added most of your suggestions.

I did keep the 'days' instead of 'd', because I think it's easier to read and 'd' is not a commonly used abbreviation of 'day', unlike 'h' for hour and 'min' for minutes.

I moved the saves into a different column and changed everything to "save halves" instead of "half" (but maybe I've missed some).

Spell Sheet generator v3.9 (8-7-2015) changelog:
- Fixed spelling errors in spell descriptions (thanks Headbomb for finding all these errors)
- Changed some things for better consistency (as per the suggestion of Headbomb)
- Changed the “M*” to a “M†” for spells with a costly material component that is consumed
- Changed the “M*” to a “Mƒ” for spells with a costly material component that is not consumed
- Added a column for saves where you can see what saving throw/check is needed to (partially) avoid the spell’s effect. This abbreviation has then been removed from the spell description
- Added the version number in the footer
 

Headbomb

First Post
Glad you kept days. I just figured I'd point it out as a possible oversight. I prefer days myself.

I wonder what spells are marked Mf.

Edit: Oh, Mf just replaced the old M*. Not sure what was wrong with the *, but it's just as functional.
 
Last edited:

Headbomb

First Post
For the next version, I'd suggest including an optional abbreviation legend at the bottom of the sheet (e.g. after the last printed level of spells). I'd also fill the Save columns with endashes/emdashes when no save is allowed, but again, that's personal preference more than functionality.
 

The * in the font Footlight MT light was a little too small for my liking. When printing the sheet it wasn't all that visible. So I looked into a character that resembles a "F", reminiscent of the old "Focus" component in D&D 3rd edition
 

Remove ads

Top