UNPKG

aurinn-train-content-generator

Version:

A custom fork of the fantasy-name-content-generator specifically for Aurinn Train, a custom D&D campaign format.

185 lines (132 loc) 5.17 kB
# Aurinn Train Content Generator A custom forked version of Fantasy Content Generator being used specificly for Aurinn Train, a D&D 5e custom campaign format. Planned Features: - Random flaws, ideals, and bonds based on background and alignment - Races from Monsters of the Multiverse - Random height and weight based on race - Random hair and eye color based on race Below is the (mostly unchanged) readme for the original project: [![npm](https://img.shields.io/npm/v/fantasy-content-generator.svg?style=flat-square)](https://www.npmjs.com/package/fantasy-content-generator) **Simple API for generating flavourful and interesting fantasy gaming content. Need an NPC? A name? A magic item? You came to the right place.** Top Features Include: - Interesting, flavoursome, and narrative-focused content, designed for roleplaying and inspiration for DMs - Easy to understand API - A single dependency (https://www.npmjs.com/package/seedrandom) - Can be used in both Node & browser - Optional seeding for deterministic generation - Ties-in to D&D 5E mechanics (weapon stats, magic effects, etc.) _Using this library in a project? [Please let me know!](https://twitter.com/tmcgry)_ --- # Installing ### Node/Webpack `npm install <github-url>` ```ts import * as ATCG from "aurinn-train-content-generator"; ``` ### Browser/Direct `<script>` Include Download [`fantasy_content_generator.js`](https://raw.githubusercontent.com/thomascgray/fantasy-content-generator/master/fantasy_content_generator.js) direct from Github and include in a script tag. ```html <script src="./fantasy_content_generator.js" type="text/javascript"></script> <script> // API available on window.FantasyContentGenerator </script> ``` # Usage ```js import FCG from "fantasy-content-generator"; FCG.Names.generate(); /* { seed: <uuid>, name: 'Sutha Chernin', race: 'halfOrc', gender: 'female', formattedData: { name: 'Sutha Chernin', race: 'Half-Orc', gender: 'Female' } } */ FCG.NPCs.generate(); /* { seed: <uuid>, name: 'Biri Drachedandion', gender: 'female', race: 'dragonborn', traits: [ 'I am unusually tall for my race.', 'I\'m very clumsy.' ], desires: [ 'I want to prove myself in combat, so I\'m going to win a tournament.' ] } */ FCG.Settlements.generate(); /* { seed: <uuid>, type: 'large_city', population: '45,760' } */ FCG.MagicItems.generate(); /* { seed: <uuid>, type: 'weapon', subtype: 'Battleaxe', powerLevel: 'minor', schoolOfMagic: 'necromancy', effects: [ 'On a successful attack, target must make a DC 12 CON save or take an extra 1d2 of Necrotic damage. This effect occurs once per day.' ], formattedData: { title: 'Battleaxe of Minor Necromancy' } } */ ``` # API [API Reference](https://github.com/thomascgray/fantasy-content-generator/blob/master/docs/API.md) There are a number of "sets" available. These are - `Names` - generates names based on race and gender - `NPCs` - generates full NPCs - `Loots` - generates loot and treasure - `MagicItems` - generates magic items - `Settlements` - generates settlement information and can all be found on the base Fantasy Content Generator object. Sets expose a `generate()` function, some expose others unique to that set. _Many of the sets are currently WIP and quite limited. More content to come soon! Follow [me on Twitter](https://twitter.com/tmcgry) for release and update details._ # Tests ``` npm test ``` If you want to run a specific test file manually, ensure you set `ENVIRONMENT=test` # Contributing ## Development If you're wanting to quickly test some changes, the best way is to - `npm run build:node && node` to get a Node build locally and run a node instance locally - `const FCG = require('./dist/index.js');` to load FCG into memory - `FCG.NPCs.generate();` you can then start running generators, and seeing the JSON output in your console ## Open Sourcery Open up a PR! Please make sure your PR includes; - a thorough description, including what you're changing and why - tests - if you're touching utils stuff, tests to ensure behaviour is correct - if you're adding/amending sets, tests to ensure that the final returned object doesn't contain any `undefined`'s, etc. _If you want to use content taken from other sources, please check with their licensing first. For example, D&D 5E content is OK, as long its from the SRD._ ## Releasing With permission to release, simply run any one of; - `npm run publish:patch` - `npm run publish:minor` - `npm run publish:major` from your CLI and follow the steps. Requires NPM to be installed locally on your machine. # Credits [d100 Community](https://www.reddit.com/r/d100/) - Endless Inspiration [tmcgry](https://twitter.com/tmcgry) - Code & Content [SkyD1vingNun](https://twitter.com/SkyD1vingNun) - Additional Content [https://github.com/davidbau/seedrandom](https://github.com/davidbau/seedrandom) - Random seeding code, huge thank you