About  

  • NPC Generator

    The generator will randomise all of the attributes above from a set of master lists. Many of these attributes effect the generation of others, this is covered more in Attribute Generation. The master lists are linked below.

    Gender Masterlist
    Names Masterlist
    Races Masterlist
    Jobs Masterlist
    Traits Masterlist
    Appearance Masterlist

    The full code of the generator is here:

    https://github.com/Refflicto/npc-generator-live

    The site is a React App hosted through GitHub Pages. The master branch contains the development files while the gh-pages branch contains the static build version of the site.

  • Modifiers

    Modifiers allow you to modify the data allowed in some master lists. By default, almost everything is allowed. The exceptions are children aged NPCs, mainly because jobs have such significance in the generator. Unemployed is also off by default, but is still fully functional.
    Trait amount is how many traits will be generated for the NPC, I recommend keeping it around 3, enough to be unique but not too high to be unmanageable.
    Power modifiers are purely for the stat block. I designed the default NPC power around my own use, as I mainly want the stat block as a backup option, if for some reason that NPC should end up in combat.
    Finally, the Result Settings modifiers are mainly for aesthetics. The exception is showing stat calculation, if you want to see where the NPC's stats were derived.
  • Attribute Generation

    The first attribute generated is gender, which is used to inform the NPC's name.
    Race comes next, which contains data limits for the Age. Race also adds racial features and some proficiencies to the stat block, and is used heavily in the Appearance section.
    A Job is then randomised, which contains a lot of data, including the weapon and any armour the NPC wears, as well as job related stat bonuses, proficiencies, and saving throws. Jobs are also the main attribute that affects the story hook.
    Traits are then selected from a master list. If, when selected, a trait has other conflicting traits in the master list, those traits will be removed for the current selection. Some traits give stat bonuses, and some have story hooks.
  • Advanced Features

    The Export button allows you to save your current NPC to a text file as a JSON object. For those curious about the NPC data I did add formatting to the file to make it readable. The Import function takes a text file of the same format as an exported text file and replaces the current NPC with the imported one. A warning if you want to modify the data in the text file, some values are sensitive, and attempting to import an incorrect NPC will crash the app.
    The download button takes an image of the sections starting at the blurb down to the stat block. The dimensions of the image are based off the size of your browser window.
    The Name attribute under General is editable, and will update the NPC List, Blurb, and Stat Block as you change the field.
    Locking can be used if you like some aspects of an NPC, but want to randomise again. Any locked attribute will maintain between generations, bypassing some checks. An example is if you lock age at 300, but then generate a human, the age will still be 300 even though that would normally be unattainable for humans. Note: even when locks are hidden via modifiers, all locked attributes will remain locked.