I like to create semi-generic NPCs for ship crews and mercenary units, and a friend challenged to me re-study the Go programming language. The two tasks converged, and I went back to some old code and got to work.
Go is a C-ish language with some of the warts cleaned off. Crewgen is being updated to include a CLI version. Sadly, updates broke the web version but fixing that is on the TODO list. Go cross-compiles easily and I have working Linux.amd64 and Darwin(MacOS).amd64 versions tested. The Linux.arm64 and Windows.amd64 binaries are built but not yet tested as I haven't fired up my RPi and I don't have a Windows box.
If this would be useful to you, the code is easy to get and then compile on your machine. Bug reports are always welcome and you can customize the data files to your campaign. If you'd like to get into Go programming, the current focus is teamgen and the test suite. Tests are easy to write and very useful. There's also a TODO list if you want to try something else.
NPC Generator (work in progress)
Re: NPC Generator (work in progress)
Added a "-list" option to show the available Careers and Jobs. While a Career has a default job (Army:Infantry), any job can be used with any career. You can have a Navy:Other or a Merchant:Commando if you feel so inclined. What you do in the confines of your own campaign is none of my business.
Successful test on Linux/arm64.

Successful test on Linux/arm64.
- GreyWolfVT
- Wants a special title like Scott
- Posts: 34151
- Joined: Wed Oct 30, 2013 10:02 pm
- Location: Central Vermont
- Contact:
Re: NPC Generator (work in progress)
hmm I shall check this out sounds like it could help me when I can't think of things. 

“All men did have darkness. Some wore it in the form of horns. Some bore it invisibly as rot in their souls.”
― Paul S. Kemp, Shadowbred
"If good people won’t do the hard things, evil people will always win, because evil people will do anything."
― Paul S. Kemp, Twilight Falling
DM - GreyWolf's Mystara Adventures - AD&D 2e
― Paul S. Kemp, Shadowbred
"If good people won’t do the hard things, evil people will always win, because evil people will do anything."
― Paul S. Kemp, Twilight Falling
Re: NPC Generator (work in progress)
It's currently geared for Traveller-ish games:
But it could feasibly be forked and made to work with most any skills based game like BRP derivatives (RuneQuest, Call of Chtulululu, etc) or the old FASA Star Trek game. I'd have to change a few things in the base code for someone to have an easy job of that, but it could be done.
Code: Select all
bin/teamgen_linux.amd64 -career Merchant -job commando
Jessia Michaud [F] 447A6A Age: 31 human
3 terms Merchant
GunCbt(Any)-2, Survival-1, Demolitions-1
Re: NPC Generator (work in progress)
Well, both brain cells are fried, but I started on a BRP output version. I need to fix the aging since it's affected by terms. Currently 'terms' says how many skills you get. These skills would actually be "+X", where the career/job starts out with minimum levels. So if an Merchant began with Streetwise 40, this would make them Streetwise 45.
Code: Select all
Josue Alford [M] Age: 40 human 5 terms Merchant
Str: 6 Con: 13 Siz: 9 Int: 8 Pow: 9 Dex: 9
Streetwise-5
Admin-5
Vehicle-10
Trader-5
Carousing-5
Re: NPC Generator (work in progress)
In the time twixt then and now I've gone back to a very simple Python programming style; it makes things portable (as portable as one can get with Python these days) and is much easier to read. The project is called Village People (no reference to any musical group implied) and the next big step is to parse a text file of roles (blacksmith, farmers, etc) in the village and generate the families for each role. There's no hard-coded limit so you could do an entire city if your computer can handle it.
If you want to use it, you just need the make_peeps.py and data/build_village_peeps.db files. If you'd like to play with the code, it's standard Python 3.x and Sqlite. The README has instructions on how to do a custom database if you like, or you can use the one provided.
The current version supports AD&D (the default), BRP, and Hauberk style stat blocks.
BRP
Hauberk (which only uses the stat modifiers)
You can generate a family with reasonable medieval ages, assuming what we know of medieval life spans is remotely correct.
If you want to use it, you just need the make_peeps.py and data/build_village_peeps.db files. If you'd like to play with the code, it's standard Python 3.x and Sqlite. The README has instructions on how to do a custom database if you like, or you can use the one provided.
Code: Select all
./make_peeps.py
Mohammed Lecuyer [M] Age: 16
Str: 14 Int: 12 Wis: 6 Dex: 7 Con: 11 Cha: 12
Temperament: Protector
Plot: Crimes of love
Positive Traits: Witty
Negative Traits: Humorless
BRP
Code: Select all
./make_peeps.py -g brp
Elisabeth Delattre [F] Age: 16
Str: 11 Con: 7 Siz: 12 Int: 15 Pow: 13 Dex: 15 App: 13 Edu: 6
Temperament: Provider
Plot: Erroneous judgment
Positive Traits: Just
Negative Traits: Judgmental
Code: Select all
./make_peeps.py -g hauberk
Deandrea Hermans [F] Age: 16
Str: 0 Int: 0 Wis: 2 Dex: 0 Con: 0 Cha: 0
Temperament: Counselor
Plot: Revolt
Positive Traits: Flamboyant
Negative Traits: Childish
Code: Select all
./make_peeps.py -f --f-age 25
Patron: Ward Allain [M] Age: 25
Str: 7 Int: 8 Wis: 7 Dex: 14 Con: 9 Cha: 12
Temperament: Fieldmarshal
Plot: The enigma
Positive Traits: Bold
Negative Traits: Scatterbrained
Matron: Jodi Allain [F] Age: 23
Str: 11 Int: 15 Wis: 14 Dex: 5 Con: 11 Cha: 6
Temperament: Inventor
Plot: Overcoming the Monster
Positive Traits: Patient
Negative Traits: Hypocritical
Jake Allain [M] Age: 6
Str: 5 Int: 9 Wis: 5 Dex: 5 Con: 13 Cha: 7
Temperament: Champion
Plot: Precursors
Positive Traits: Honorable
Negative Traits: Cowardly
Bobbie Allain [M] Age: 5
Str: 5 Int: 11 Wis: 5 Dex: 5 Con: 13 Cha: 8
Temperament: Champion
Plot: Precursors
Positive Traits: Honorable
Negative Traits: Cowardly
Donnie Allain [M] Age: 4
Str: 3 Int: 12 Wis: 3 Dex: 3 Con: 15 Cha: 10
Temperament: Champion
Plot: Precursors
Positive Traits: Honorable
Negative Traits: Cowardly
Shan Allain [F] Age: 3
Str: 3 Int: 15 Wis: 3 Dex: 3 Con: 10 Cha: 12
Temperament: Champion
Plot: Precursors
Positive Traits: Honorable
Negative Traits: Cowardly
- GreyWolfVT
- Wants a special title like Scott
- Posts: 34151
- Joined: Wed Oct 30, 2013 10:02 pm
- Location: Central Vermont
- Contact:
Re: NPC Generator (work in progress)
Sorry I've kind of forgotten all about this Leitz. If there is anything I can do to assist HTML & CSS wise I will try to remember. 

“All men did have darkness. Some wore it in the form of horns. Some bore it invisibly as rot in their souls.”
― Paul S. Kemp, Shadowbred
"If good people won’t do the hard things, evil people will always win, because evil people will do anything."
― Paul S. Kemp, Twilight Falling
DM - GreyWolf's Mystara Adventures - AD&D 2e
― Paul S. Kemp, Shadowbred
"If good people won’t do the hard things, evil people will always win, because evil people will do anything."
― Paul S. Kemp, Twilight Falling