Genetica is a tool for using a simplified genetics system to generate inheritable traits for DnD characters.
You will need node and npm installed. Then run the command:
npm install -g genetica
genetica
Follow the prompts for Race and Gender (optional) and your DNA is outputted with information on traits.
Require genetica into your file and create a new Genetica class.
const Genetica = require('genetica');
const genetica = new Genetica();
const opts = {
gender: 'female',
race: 'Dragonborn'
};
const DNA = genetica.generate(opts);
Each generated character has a set of DNA with chromosomes. These chromosomes go to applying traits.
Each chromosome has two pairs with dice rolls based on the size of the chromosome: either d2
, d4
, d6
, d8
, d12
, d20
, or d100
. So for example, Chromosome 1 has a size of d8
and the pair rolls for 5=8
which means the mother gave a roll of 5
and the father gave a roll of 8
.
Rules
- Dominant/Recessive Genetic Rules: A rule of
3
means if 3 is the highest rolled then the trait applies. For example: a chromosome pair of1=3
would mean the rule applies as 3 is the highest roll, but for a pair of8=3
it would not. - Co-dominant Genetic Rules:
1=3
means that the roll for the mother must be 1 and the father must be 3 in that order. A3=1
would not apply the rule. This rule is checked BEFORE the dominant/recessive rules.
Inspiration: http://www.chromosomewalk.ch/en/list-of-chromosomes/
To develop genetica,
git clone https://github.com/opendnd/genetica.git
cd genetica/
npm install
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are welcome!
Genetica uses the Airbnb javascript style.