Skip to main content

Randomly generates 5th edition Dungeons & Dragons characters.

Project description

personaednd (0.1.6)

Code style: black 

1. Introduction

"plural personae : a character in a fictional presentation (such as a novel or play) —usually used in plural"

“Persona.” The Dictionary, Merriam-Webster Inc.,

personaednd is a tool for generating 5th edition Dungeons & Dragons characters for both Players and DMs.

With no offense given towards those who prefer such, personaednd attempts to generate characters according to a "role player" perspective and not from a "roll player" perspective.

2. Installation

Installation is pretty simple and straightforward.

Method #1
  1. Open your terminal and type pip3 install personaednd.
Method #2
  1. Open your terminal then change into the directory where you wish to clone the repository.
  2. Type git clone to clone the repository, assuming Git is installed.
  3. Change into the cloned repository and type python3 install.

Note that the GitHub codebase may be slightly more updated than the code on PYPI.

3. Usage

To run, type personaednd in your terminal, which will run the application with the default options as defined below.

Here are some other options if you wish to fine tune your character.

Usage: personaednd [OPTIONS]

  -race TEXT         Character's chosen race.  [default: Aasimar; required] [Aasimar|Dragonborn|Dwarf|Dwarf, Duergar|Dwarf, Hill|Dwarf, Mountain|Elf|Elf, Drow|Elf, Eladrin|Elf, High|Elf, Sea|Elf, Wood|Gnome|Gnome, Forest|Gnome, Rock|Half-elf|Half-orc|Halfling|Halfling, Lightfoot|Halfling, Stout|Human|Tiefling]
  -background TEXT   Character's chosen background.  [default: Acolyte; required] [Acolyte|Charlatan|Criminal|Entertainer|Folk Hero|Guild Artisan|Hermit|Noble|Outlander|Sage|Sailor|Soldier|Urchin]
  -class_ TEXT       Character's chosen class.  [default: Barbarian; required] [Barbarian|Bard|Cleric|Druid|Fighter|Monk|Paladin|Ranger|Rogue|Sorcerer|Warlock|Wizard]
  -archetype TEXT    Character's chosen archetype.
  -level INTEGER     Character's chosen class level.  [default: 1; required] [1-20]
  -variant TEXT      Determines if variant trait applies.  [default: false; required] [false|true]
  --version          Show the version and exit.
  --help             Show this message and exit.

All the character data used within the application: backgrounds, classes, feats, skills, tools, races and weapon proficiencies, are defined within a YAML file within the sources sub package called sources.yml. This file can be modified to include additional content by following the defined format.

4. Change Log

Version 0.1.6 (2.16.20)
  • Added Duergar and Sea Elf subraces from Mordenkainen's Tome of Foes to sources file. Updated Eladrin to reflect the version described in the aforementioned book.
    • TODO: Eventually plan to add all subraces from MBoF.
Version 0.1.5 (2.8.20)
  • Added -variant option to CLI interface. Accepts 'false' or 'true'. Defaults at 'false'.
  • Added variant argument to ScoreImprovement constructor.
  • Fixed Skills.select_skills overlap bug.
  • Added variant argument to Skills.select_skills method.
  • Proficiency bonus now uses formula to determine the value (level/4) + 1.
Version 0.1.4 (2.2.20)
  • Fixed a typo in the setup script at release.
Version 0.1.3 (2.2.20)
  • Merged version updates 0.1.2 with 0.1.3.
  • Overall better ability score assignments.
  • Redone the ScoreAssigner and ScoreImprovement classes. They both implement the quick build rules for each class by default.
  • Added --version option to CLI interface.
  • Code rewrite for the purpose of better adhering to PEP-8 coding standards.
  • VERSION REBOOT - Restarted version numbering since the transformation of personaednd from a GUI to a CLI application.
Version 0.1.1 (1.12.20)
  • Various code tweaks and fixes.
Version 0.1.0 (1.4.20)
  • Fixed tool proficiency selection for Monks.
  • Skilled feat now works to give a choice of three bonus skills and/or TOOLS. Previously only selected three skills.
  • Renamed sub package 'app_data' to 'source'.
Version 0.0.9 (12.27.19)
  • Weapon Master feat now adds proficiency with four simple or martial weapons as normal.
  • Fixed functionality with Lightly Armored, Moderately Armored, Heavily Armored, and Weapon Master feats in the has_requirements Feats class method.
    • If the character has Light armor proficiency they won't meet the requirements for Lightly Armored.
    • If the character has Medium armor proficiency they won't meet the requirements for Moderately Armored.
    • If the character has Heavy armor proficiency they won't meet the requirements for Heavily Armored.
    • If a character is proficient with Martial weapons, they likely have proficiency with Simple weapons too, meaning they can already use all weapons and thus won't "meet" the requirements for Weapon Master.
  • Added work around for numpy bug in dice roller array.
Version 0.0.8 (12.22.19)
  • Code rewrite and bug fixes.
Version 0.0.7 (12.15.19)
  • Fixed bug in the YAML query script.
Version 0.0.6 (12.15.19)
  • Re-coded various sections of the program.
  • Removed recipients or more accurate a 'suggestions' section from the _character.yaml file. The recipients section was originally used as a set of suggested classes that might chose a particular feat - most were left blank to begin with beforehand.
  • Added background equipment list to character sheet.
  • Added debugging output to 'Dice.roll_drop_lowest' method.
Version 0.0.5 (12.13.19)
  • Code tweaks.
Version 0.0.4 (12.11.19)
  • Fixed bug where generated scores never seemed to be over 15 programmer oversight.
  • Changed score threshold to 60 from 70. It'll keep re-rolling until it meets this threshold.
  • Added condition that the lowest score rolled can be no lower than 8.
  • Modified 'Dice.roll_drop_lowest' to generate all six ability scores instead of one.
  • Removed 'roll_ability_scores' function. Functionality transferred to 'Dice.roll_drop_lowest'.
Version 0.0.3 (12.8.19)
  • Character 'background' has been added to the character sheet.
Version 0.0.1 (12.6.19)
  • First converted to a command-line application from GUI.
  • Implemented bonus languages based on character's background.
  • Simplified the character database for ease of user customization.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for personaednd, version 0.1.6
Filename, size File type Python version Upload date Hashes
Filename, size personaednd-0.1.6.tar.gz (21.7 kB) File type Source Python version None Upload date Hashes View
Filename, size personaednd-0.1.6-py3-none-any.whl (22.0 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page