@ironarachne/made-up-names
v2.3.6
Published
A module for generating fictional names
Readme
Made Up Names
This is a library for generating random fictional names. It provides generators for various categories like magic items, planets, stars, and cultural names (fantasy races, etc.).
Installation
npm install @ironarachne/made-up-namesUsage
Basic Generators
The library provides several standalone generators. Each generator returns a NameGenerator object which has a generate(count) method.
import {
getMagicItemNameGenerator,
getModelNumberNameGenerator,
getPlanetNameGenerator,
getStarNameGenerator,
getStarNationNameGenerator
} from "@ironarachne/made-up-names";
// Generate 5 magic item names
const magicItems = getMagicItemNameGenerator().generate(5);
console.log(magicItems);
// Generate 1 planet name
const planet = getPlanetNameGenerator().generate(1);
console.log(planet);
// Other available generators:
// getModelNumberNameGenerator()
// getStarNameGenerator()
// getStarNationNameGenerator()Cultural Name Generators
You can generate names based on specific cultures or classic fantasy races. These functions return a NameGeneratorPatternSet which contains NameGenerators for different categories (male, female, family, town, etc.).
By Culture
import { getCultureNamePatternSet } from "@ironarachne/made-up-names";
const fantasyCulture = getCultureNamePatternSet("fantasy");
// Generate 10 male names from the fantasy culture
const maleNames = fantasyCulture.male.generate(10);
// Generate 5 town names
const townNames = fantasyCulture.town.generate(5);Available Cultures:
easterlingfantasyforest dwellergem tinkererhill feastermetal minermud grubberold worlderscale bearerwar bringer
By Classic Race
For convenience, you can also access these patterns using classic fantasy race names.
import { getClassicRaceNamePatternSet } from "@ironarachne/made-up-names";
const elfNames = getClassicRaceNamePatternSet("elf");
// Generate 3 female elf names
const femaleElfNames = elfNames.female.generate(3);Available Races:
dragonborn(maps toscale bearer)dwarf(maps tometal miner)elf(maps toforest dweller)gnome(maps togem tinkerer)goblin(maps tomud grubber)half-elf(maps tofantasy)half-orc(maps tofantasy)halfling(maps tohill feaster)human(maps toold worlder)orc(maps towar bringer)tiefling(maps tofantasy)troll(maps towar bringer)
Custom Generators
You can create your own name generator using getNameGeneratorForPatternSet.
import { getNameGeneratorForPatternSet } from "@ironarachne/made-up-names";
const myPatterns = {
patterns: ["cvcv", "vcvc"], // See @ironarachne/word-generator for pattern syntax
};
const myGenerator = getNameGeneratorForPatternSet("my_custom_gen", myPatterns);
const names = myGenerator.generate(5);Types
NameGenerator
type NameGenerator = {
name: string;
generate: (numberOfNames: number) => string[];
};NameGeneratorPatternSet
type NameGeneratorPatternSet = {
name: string;
culture: string[] | PatternSet;
country: string[] | PatternSet;
family: string[] | PatternSet;
female: string[] | PatternSet;
male: string[] | PatternSet;
town: string[] | PatternSet;
};Documentation
For more detailed documentation, see the generated docs in the docs/ directory or run npm run docs.
