├── .gitignore ├── GeneratorGuide.md ├── LICENSE ├── README.md ├── json ├── Dungeon_adventure.json ├── Dungeon_map.json ├── Five_room_dungeon.json ├── NPC.json ├── Story.json ├── _file-format.json ├── _generator_RandomQuest.json ├── _template_culture.json ├── _template_folk.json ├── _template_generator.json ├── _template_librarycall.json ├── _template_milieu.json ├── _template_name.json ├── _template_place.json ├── _template_set.json ├── _template_simple.json ├── _test_gen_array.json ├── _test_global_variable.json ├── actant.json ├── activity.json ├── adjColor.json ├── adjColor_formal.json ├── adjColor_formal_wia.json ├── adjColor_wia.json ├── adjDirection.json ├── adjPlace.json ├── adjPlace_wia.json ├── adjThing.json ├── adjThing_wia.json ├── adornment.json ├── advColor.json ├── advColor_formal_wia.json ├── advColor_wia.json ├── adventure.json ├── age.json ├── ally.json ├── animal.json ├── appearance.json ├── armor.json ├── armor_pl.json ├── armor_wia.json ├── aroma.json ├── aspect-creature.json ├── aspect.json ├── attack.json ├── bodypart.json ├── book.json ├── business.json ├── citizen.json ├── clothing.json ├── clue.json ├── color.json ├── complication.json ├── concept.json ├── concepts.json ├── condition.json ├── container.json ├── cosmetics.json ├── culture-american-modern.json ├── culture-primitive.json ├── culture.json ├── debris.json ├── decoration.json ├── difficulty.json ├── direction.json ├── disease.json ├── distinction.json ├── district.json ├── door.json ├── drink.json ├── dungeon_corridor.json ├── dungeon_entrance.json ├── dungeon_feature.json ├── dungeon_room.json ├── dungeon_vault.json ├── edge.json ├── emotion.json ├── encounter-seeds.json ├── encounter.json ├── energy.json ├── epithet.json ├── equipment.json ├── fabric.json ├── faction.json ├── fighter.json ├── flaw.json ├── folk-dwarf.json ├── folk-goblinoid.json ├── folk.json ├── food.json ├── formatting.json ├── friend.json ├── gas.json ├── gem.json ├── gem_pl.json ├── gem_wia.json ├── gender.json ├── genre.json ├── goal.json ├── goblin-names.json ├── goblin.json ├── habit.json ├── hazard.json ├── hero.json ├── hook_line_and_sinker_adventure.json ├── imagebank.json ├── insult.json ├── item_template.json ├── jewelry.json ├── jewelry_pl.json ├── jewelry_wia.json ├── key.json ├── liquid.json ├── location-hyborian.json ├── location.json ├── lock.json ├── macguffin.json ├── magic.json ├── magical_instrument.json ├── magical_technique.json ├── magician.json ├── magicitem.json ├── magicitem_formal.json ├── magicitem_pl.json ├── magicitem_wia.json ├── material.json ├── metal.json ├── metal_wia.json ├── milieu.json ├── minion.json ├── mission.json ├── modifier.json ├── money.json ├── monster.json ├── monsterAberration.json ├── monsterAberration_pl.json ├── monsterAberration_wia.json ├── monsterConstruct.json ├── monsterConstruct_pl.json ├── monsterConstruct_wia.json ├── monsterElemental.json ├── monsterElemental_pl.json ├── monsterElemental_wia.json ├── monsterEpic.json ├── monsterGiant.json ├── monsterGiant_pl.json ├── monsterGiant_wia.json ├── monsterHumanoid.json ├── monsterHumanoid_pl.json ├── monsterHumanoid_wia.json ├── motif-snake.json ├── musical_instrument.json ├── name-Malorian.json ├── name-USA-1850.json ├── name-USA-1880.json ├── name-Viking.json ├── name-american-modern.json ├── name-dwarf.json ├── name-elf.json ├── name-fantasy.json ├── name-inn.json ├── name-magician.json ├── name-monster.json ├── name-orc.json ├── name-pictish.json ├── name-random.json ├── nameInn.json ├── nameLocation.json ├── nameRiver.json ├── nameVillage.json ├── name_f_1.json ├── name_f_2.json ├── name_m_1.json ├── name_m_2.json ├── name_medieval.json ├── nonhuman.json ├── nounDirection.json ├── number.json ├── occupation.json ├── outfit.json ├── personAppearance.json ├── personAppearance_wia.json ├── personAppellationHero.json ├── personAppellationHero_adj.json ├── personClass.json ├── personCraft.json ├── personCraft_wia.json ├── personDisposition.json ├── personDisposition_wia.json ├── personGender.json ├── personProfession.json ├── personProfession_wia.json ├── personRace.json ├── personRace_pl.json ├── personRace_wia.json ├── personRelation.json ├── personReputation.json ├── personReputation_wia.json ├── personality.json ├── pet.json ├── place-hyborian.json ├── place.json ├── placeAdventure.json ├── placeAdventure_formal.json ├── placeAdventure_pl.json ├── placeAdventure_wia.json ├── placeHyborianKingdomNames.json ├── placePlane.json ├── placeSettlement.json ├── placeSettlement_formal.json ├── placeSettlement_pl.json ├── placeState.json ├── placeState_formal.json ├── placeState_pl.json ├── placeState_wia.json ├── placeTerrain.json ├── placeTerrain_formal.json ├── placeTerrain_formal_pl.json ├── placeTerrain_pl.json ├── placeTerrain_wia.json ├── plant.json ├── plot.json ├── potion.json ├── prefix.json ├── priest.json ├── purity.json ├── quality.json ├── quirk.json ├── scene.json ├── set-castle.json ├── set-city.json ├── set-dungeon.json ├── set-forest.json ├── settlement.json ├── shop.json ├── signature.json ├── simpleAspects.json ├── site.json ├── social_class.json ├── species.json ├── speech.json ├── spell_cost.json ├── spell_intention.json ├── spell_name.json ├── spell_target.json ├── spellcasting.json ├── statblock.json ├── stone.json ├── strategy.json ├── street.json ├── style.json ├── superstition.json ├── synonym.json ├── temperature.json ├── theme.json ├── time.json ├── titleFantasy.json ├── titleFantasy_formal.json ├── titleFantasy_wia.json ├── titleMilitary.json ├── titleMilitary_formal.json ├── titleMilitary_wia.json ├── titleNoble.json ├── titleNoble_formal.json ├── titleNoble_pl.json ├── titleNoble_wia.json ├── titleSoldier.json ├── titleSoldier_pl.json ├── titleSoldier_wia.json ├── title_noble_European.json ├── title_noble_Germanic.json ├── title_noble_Slavic.json ├── town-rumors.json ├── trap.json ├── treasure.json ├── verb_baseForm.json ├── verb_ingForm.json ├── verb_pastForm.json ├── verb_sForm.json ├── villain.json ├── weapon.json ├── weaponEpic.json ├── weaponMelee.json ├── weaponMelee_formal.json ├── weaponRanged.json ├── weaponRanged_formal.json └── weather.json ├── log └── log-NPC.json └── yaml ├── _template-generator.yaml ├── _template_librarycall.yml ├── money.yaml └── street.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # Campaign Logger files 61 | Staging 62 | .ftpconfig 63 | .ftpignore 64 | .gitignore 65 | json/Staging 66 | yaml/Staging 67 | *.pdf 68 | json/_encounterSeed_generator.json 69 | json/_goblinName_generator.json 70 | json/_heroOfTheRealm_generator.json 71 | json/_rumorTown_generator.json 72 | json/_test*.json 73 | json/external.json 74 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # generator-library 2 | 3 | This repository contains the generator library files for the Campaign Logger random generator (https://generator.campaign-logger.com/). 4 | 5 | The library tables can be called from other tables by using syntax like this: 6 | 7 | "{lib:metal}". 8 | 9 | This would produce the name of a random metal from the 'metal' table in the library. For example: 10 | 11 | > gold 12 | 13 | For instructions on creating your own Campaign Logger generators, please see the separate *GeneratorGuide* document. 14 | 15 | 16 | ## Credits 17 | 18 | Typically the authors of each table are listed in the initial comment block of the files. Additionally Johnn Four, Jochen Linnemann and Ron Calbick are given general credit for their multiple contributions to the table library. 19 | 20 | ## License 21 | 22 | The generator library is licensed under the Apache-2.0 license: https://github.com/open-campaign-logger/generator-library/blob/developer/LICENSE 23 | 24 | Some contributions use other, compatible licenses: 25 | * CC BY-SA 2.5: https://creativecommons.org/licenses/by-sa/2.5/ (https://www.apache.org/legal/resolved.html#cc-sa) 26 | 27 | To include such material special additions are needed, see below: 28 | 29 | ### CC BY-SA 2.5 30 | 31 | Add the following attribution and license properties (given values are examples): 32 | 33 | ```json 34 | "attribution": { 35 | "creators": "ChristopherA and other contributors to RPGnet Wiki", 36 | "copyright": "RPGnet Wiki, https://wiki.rpg.net/index.php/RPGnetWiki:Copyrights", 37 | "licence": "https://creativecommons.org/licenses/by-sa/2.5/", 38 | "disclaimer": "https://wiki.rpg.net/index.php/RPGnetWiki:General_disclaimer", 39 | "source": "https://wiki.rpg.net/index.php/Aspects_List", 40 | "changes": "Translation into JSON file format for generator usage" 41 | }, 42 | "licence": "https://creativecommons.org/licenses/by-sa/2.5/" 43 | ``` 44 | -------------------------------------------------------------------------------- /json/_file-format.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Simple NSC Generator", 3 | "note-on-names": "If you intend to call your generator from your other generators its name will have to follow the guidelines for table names!", 4 | "explanation": "Based on the file format defined at 'https://campaign-logger.com/generator/help', we will try out new ideas here to define an extended format for generator files. This 'explanation' property is one new extension which should contain details on the generator or a table (where it may occur, too). The following resultPattern demonstrates how to use special whitespace: \r = carriage return, \n = line feed, \t = tabulator.", 5 | "resultPattern": "{name} from {location} has {multiplicity}\r\n\tand is a {years}-years old {var:gender}", 6 | "variables": { 7 | "gender": "" 8 | }, 9 | "categories": [ 10 | "Names", 11 | "Characters" 12 | ], 13 | "tables": [{ 14 | "name": "name", 15 | "note-on-names": "A table name must start with a letter followed by any number of letters, digits, and spaces. Nothing else is allowed.", 16 | "explanation": "This table just defines the general layout of a table object. It also demonstrates how to set meta-information when selecting an entry.", 17 | "entries": [{ 18 | "v": "Adam", 19 | "set": { 20 | "gender": "male" 21 | } 22 | }, 23 | { 24 | "v": "Eve", 25 | "set": { 26 | "gender": "female" 27 | } 28 | } 29 | ] 30 | }, 31 | { 32 | "name": "location", 33 | "explanation": "This table calls into a library file to generate its results.", 34 | "entries": [ 35 | "{lib:nameLocation}" 36 | ] 37 | }, 38 | { 39 | "name": "multiplicity", 40 | "explanation": "This table demonstrates the new multiplicity-feature for entries.", 41 | "entries": [ 42 | "many friends", 43 | { 44 | "m": 30, 45 | "v": "a rather small family" 46 | } 47 | ] 48 | }, 49 | { 50 | "name": "years", 51 | "explanation": "This table shows the already supported dice feature.", 52 | "entries": [ 53 | "{dice:3d6+15}" 54 | ] 55 | } 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /json/_generator_RandomQuest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Random Quest Generator", 3 | "resultPattern": "A {race} {title} seeks heroes to {action} a {noun} called \"The {adjective} {var:noun} of {number} {condition}.\"", 4 | "explanation": "This generator is based on the Fri, Oct 20th musing e-mail of Johnn Four (https://roleplayingtips.com/) 'The Mad Lib d12 Random Quest Generator'. It was shared by Tony and adapted by Jochen Linnemann.", 5 | "howToUse": "Use {lib:_generator_RandomQuest} in your resultPattern.", 6 | "tables": [{ 7 | "name": "race", 8 | "entries": [ 9 | "human", 10 | "rlf", 11 | "dwarf", 12 | "halfling", 13 | "orc", 14 | "drow", 15 | "giant", 16 | "faerie", 17 | "gnome", 18 | "goblin", 19 | "merfolk", 20 | "dragon" 21 | ] 22 | }, 23 | { 24 | "name": "title", 25 | "entries": [ 26 | "master/mistress", 27 | "matron/patron/elder", 28 | "lord/lady", 29 | "duke/duchess", 30 | "earl/countess", 31 | "marquess/marchioness", 32 | "viscount/viscountess", 33 | "high priestess/magi", 34 | "baron/baroness", 35 | "prince/princess", 36 | "queen/king", 37 | "emperor/empress" 38 | ] 39 | }, 40 | { 41 | "name": "action", 42 | "entries": [ 43 | "find", 44 | "retrieve", 45 | "destroy/kill", 46 | "steal", 47 | "craft", 48 | "enchant", 49 | "disenchant", 50 | "banish", 51 | "repair/heal", 52 | "investigate", 53 | "deliver", 54 | "guard" 55 | ] 56 | }, 57 | { 58 | "name": "noun", 59 | "entries": [{ 60 | "v": "horse", 61 | "set": { 62 | "noun": "Horse" 63 | } 64 | }, 65 | { 66 | "v": "wizard", 67 | "set": { 68 | "noun": "Wizard" 69 | } 70 | }, 71 | { 72 | "v": "sage", 73 | "set": { 74 | "noun": "Sage" 75 | } 76 | }, 77 | { 78 | "v": "hermit", 79 | "set": { 80 | "noun": "Hermit" 81 | } 82 | }, 83 | { 84 | "v": "tomb", 85 | "set": { 86 | "noun": "Tomb" 87 | } 88 | }, 89 | { 90 | "v": "ghost", 91 | "set": { 92 | "noun": "Ghost" 93 | } 94 | }, 95 | { 96 | "v": "shield", 97 | "set": { 98 | "noun": "Shield" 99 | } 100 | }, 101 | { 102 | "v": "sword", 103 | "set": { 104 | "noun": "Sword" 105 | } 106 | }, 107 | { 108 | "v": "amulet", 109 | "set": { 110 | "noun": "Amulet" 111 | } 112 | }, 113 | { 114 | "v": "chalice", 115 | "set": { 116 | "noun": "Chalice" 117 | } 118 | }, 119 | { 120 | "v": "staff", 121 | "set": { 122 | "noun": "Staff" 123 | } 124 | }, 125 | { 126 | "v": "crown", 127 | "set": { 128 | "noun": "Crown" 129 | } 130 | } 131 | ] 132 | }, 133 | { 134 | "name": "adjective", 135 | "entries": [ 136 | "Defiant", 137 | "Feisty", 138 | "Gray", 139 | "Hallowed", 140 | "Honorable", 141 | "Dishonorable", 142 | "Sacred", 143 | "Noble", 144 | "Lost", 145 | "Frosty", 146 | "Androgynous", 147 | "Evil" 148 | ] 149 | }, 150 | { 151 | "name": "number", 152 | "entries": [ 153 | "Two", 154 | "Three", 155 | "Four", 156 | "Five", 157 | "Six", 158 | "Seven", 159 | "Eight", 160 | "Nine", 161 | "Ten", 162 | "Eleven", 163 | "Twelve", 164 | "Thirteen" 165 | ] 166 | }, 167 | { 168 | "name": "condition", 169 | "entries": [ 170 | "Blindnesses", 171 | "Deafenings", 172 | "Exhaustions", 173 | "Frightenings", 174 | "Incapacitations", 175 | "Invisibilities", 176 | "Paralysises", 177 | "Petrifications", 178 | "Poisonings", 179 | "Restraints", 180 | "Stunnings", 181 | "Unconsciousnesses" 182 | ] 183 | } 184 | ] 185 | } -------------------------------------------------------------------------------- /json/_template_librarycall.json: -------------------------------------------------------------------------------- 1 | { 2 | "resultPattern": "{lib:generator}" 3 | } 4 | -------------------------------------------------------------------------------- /json/_test_gen_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "test_gen_array", 4 | "explanation": "Private generators JSON array for testing.", 5 | "resultPattern": "{result}", 6 | "globals": { 7 | "shade": "", 8 | "shape": "" 9 | }, 10 | "tables": [ 11 | { 12 | "name": "result", 13 | "explanation": "Set variables for the _test_global_variable generator.", 14 | "export": { 15 | "shade": "{shade}", 16 | "shape": "square" 17 | }, 18 | "entries": [ 19 | "color = {global:color}, storedcolor = {global:storedcolor}. Setting also the 'shade' and 'shape' global variables." 20 | ] 21 | }, 22 | { 23 | "name": "shade", 24 | "explanation": "Shades of color.", 25 | "entries": [ 26 | "dark", 27 | "pale", 28 | "bright" 29 | ] 30 | } 31 | ] 32 | } 33 | ] 34 | -------------------------------------------------------------------------------- /json/_test_global_variable.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test_global_variable", 3 | "resultPattern": "{result}", 4 | "globals": { 5 | "color": "", 6 | "storedcolor": "", 7 | "shade": "", 8 | "shape": "round" 9 | }, 10 | "tables": [ 11 | { 12 | "name": "result", 13 | "explanation": "Calling the private 'test_gen' generator and outputting the set global variables.", 14 | "export": { 15 | "color": "{lib:color}", 16 | "storedcolor": "{global:color}" 17 | }, 18 | "entries": [ 19 | "Main generator: color = {global:color}, storedcolor = {global:storedcolor}, shape = {global:shape}, shade = {global:shade}. \r\nVisiting another generator: {gen:test_gen_array} \r\nBack in main generator: color = {global:color}, storedcolor = {global:storedcolor}, shape = {global:shape}, shade = {global:shade}." 20 | ] 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /json/adjColor.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Color Generator", 3 | "resultPattern": "{adjColor}", 4 | "tables": [ 5 | { 6 | "name": "adjColor", 7 | "entries": [ 8 | "amber", 9 | "aqua", 10 | "aquamarine", 11 | "azure", 12 | "black", 13 | "blue", 14 | "brown", 15 | "copper", 16 | "crimson", 17 | "fuchsia", 18 | "gold", 19 | "green", 20 | "grey", 21 | "ivory", 22 | "lavender", 23 | "ochre", 24 | "orange", 25 | "pink", 26 | "purple", 27 | "red", 28 | "sepia", 29 | "sienna", 30 | "silver", 31 | "tan", 32 | "turquoise", 33 | "umber", 34 | "violet", 35 | "white", 36 | "yellow" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/adjColor_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Color (formal) Generator", 3 | "resultPattern": "{adjColor formal}", 4 | "tables": [ 5 | { 6 | "name": "adjColor formal", 7 | "entries": [ 8 | "Amber", 9 | "Aqua", 10 | "Aquamarine", 11 | "Azure", 12 | "Black", 13 | "Blue", 14 | "Brown", 15 | "Copper", 16 | "Crimson", 17 | "Fuchsia", 18 | "Gold", 19 | "Green", 20 | "Grey", 21 | "Ivory", 22 | "Lavender", 23 | "Ochre", 24 | "Orange", 25 | "Pink", 26 | "Purple", 27 | "Red", 28 | "Sepia", 29 | "Sienna", 30 | "Silver", 31 | "Tan", 32 | "Turquoise", 33 | "Umber", 34 | "Violet", 35 | "White", 36 | "Yellow" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/adjColor_formal_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Color (formal with indefinitive article) Generator", 3 | "resultPattern": "{adjColor formal wia}", 4 | "tables": [ 5 | { 6 | "name": "adjColor formal wia", 7 | "entries": [ 8 | "An amber", 9 | "An aqua", 10 | "An aquamarine", 11 | "An azure", 12 | "A black", 13 | "A blue", 14 | "A brown", 15 | "A copper", 16 | "A crimson", 17 | "A fuchsia", 18 | "A gold", 19 | "A green", 20 | "A grey", 21 | "An ivory", 22 | "A lavender", 23 | "An ochre", 24 | "An orange", 25 | "A pink", 26 | "A purple", 27 | "A red", 28 | "A sepia", 29 | "A sienna", 30 | "A silver", 31 | "A tan", 32 | "A turquoise", 33 | "An umber", 34 | "A violet", 35 | "A white", 36 | "A yellow" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/adjColor_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Color (with indefinitive article) Generator", 3 | "resultPattern": "{adjColor wia}", 4 | "tables": [ 5 | { 6 | "name": "adjColor wia", 7 | "entries": [ 8 | "an amber", 9 | "an aqua", 10 | "an aquamarine", 11 | "an azure", 12 | "a black", 13 | "a blue", 14 | "a brown", 15 | "a copper", 16 | "a crimson", 17 | "a fuchsia", 18 | "a gold", 19 | "a green", 20 | "a grey", 21 | "an ivory", 22 | "a lavender", 23 | "an ochre", 24 | "an orange", 25 | "a pink", 26 | "a purple", 27 | "a red", 28 | "a sepia", 29 | "a sienna", 30 | "a silver", 31 | "a tan", 32 | "a turquoise", 33 | "an umber", 34 | "a violet", 35 | "a white", 36 | "a yellow" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/adjDirection.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Direction Generator", 3 | "resultPattern": "{adjDirection}", 4 | "tables": [ 5 | { 6 | "name": "adjDirection", 7 | "entries": [ 8 | "eastern", 9 | "northern", 10 | "northeastern", 11 | "northwestern", 12 | "southern", 13 | "southeastern", 14 | "southwestern", 15 | "western" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /json/adjPlace_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Place (with indefinitive article) Generator", 3 | "resultPattern": "{adjPlace wia}", 4 | "tables": [ 5 | { 6 | "name": "adjPlace wia", 7 | "entries": [ 8 | "an abandoned", 9 | "an accursed", 10 | "an aged", 11 | "an ancestral", 12 | "an ancient", 13 | "a brilliant", 14 | "a crumbling", 15 | "a cursed", 16 | "a decaying", 17 | "a desolate", 18 | "a diseased", 19 | "an eerie", 20 | "an enchanted", 21 | "an ethereal", 22 | "a fallen", 23 | "a flaming", 24 | "a flooded", 25 | "a forboding", 26 | "a frozen", 27 | "a ghostly", 28 | "a glorious", 29 | "a great", 30 | "a hallowed", 31 | "a haunted", 32 | "a horrific", 33 | "a holy", 34 | "a hidden", 35 | "a labyrinthine", 36 | "a lowly", 37 | "a magical", 38 | "a melancholic", 39 | "a menacing", 40 | "a monster-ridden", 41 | "a perilous", 42 | "a ruined", 43 | "a shadowy", 44 | "a spectral", 45 | "a sunken", 46 | "a thundering", 47 | "a treasure-filled" 48 | ] 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /json/adjThing_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adjective, Thing (with indefinitive article) Generator", 3 | "resultPattern": "{adjThing wia}", 4 | "tables": [ 5 | { 6 | "name": "adjThing wia", 7 | "entries": [ 8 | "an accursed", 9 | "an ancestral", 10 | "an ancient", 11 | "an animated", 12 | "a blinding", 13 | "a broken", 14 | "{lib:color_wia}", 15 | "a dancing", 16 | "an enchanted", 17 | "an ethereal", 18 | "a fiery", 19 | "a flaming", 20 | "a frosted", 21 | "a gilded", 22 | "a glamered", 23 | "a holy", 24 | "an infamous", 25 | "a lost", 26 | "a magical", 27 | "an ornate", 28 | "a powerful", 29 | "a royal", 30 | "a shadowy", 31 | "a shining", 32 | "a smoking", 33 | "a thundering", 34 | "an unholy", 35 | "a vicious" 36 | ] 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /json/advColor.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "adverb: color", 3 | "resultPattern": "{adverb}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Adverbs for colors.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "bugs": "", 11 | "to do": "", 12 | "see": "", 13 | "date": "2017-10-08", 14 | "authors": "Johnn Four, Jochen Linnemann, Esko Vesala.", 15 | "sources": "", 16 | "genre": "universal", 17 | "categories": [ 18 | "utility" 19 | ], 20 | "tags": "#color, #description", 21 | "tables": [ 22 | { 23 | "name": "adverb", 24 | "explanation": "Adverb rarity.", 25 | "entries": [ 26 | { 27 | "m": 10, 28 | "v": "{common}" 29 | }, 30 | "{rare}" 31 | ] 32 | }, 33 | { 34 | "name": "common", 35 | "explanation": "Common adverbs for colors.", 36 | "entries": [ 37 | "{brightness}", 38 | "{intensity}", 39 | "{temperature}" 40 | ] 41 | }, 42 | { 43 | "name": "brightness", 44 | "explanation": "Color adverb types by brightness.", 45 | "entries": [ 46 | "{shadowy}", 47 | "{medium}", 48 | "{bright}" 49 | ] 50 | }, 51 | { 52 | "name": "shadowy", 53 | "explanation": "Shadowy adverbs for colors.", 54 | "entries": [ 55 | "blurred", 56 | "cloudy", 57 | "deep", 58 | "foggy", 59 | "gloomy", 60 | "hazy", 61 | "leaden", 62 | "muddy", 63 | "shadowy" 64 | ] 65 | }, 66 | { 67 | "name": "medium", 68 | "explanation": "Medium adverbs for colors.", 69 | "entries": [ 70 | "bland", 71 | "flat", 72 | "intermediate", 73 | "medium", 74 | "moderate", 75 | "neutral" 76 | ] 77 | }, 78 | { 79 | "name": "bright", 80 | "explanation": "Bright adverbs for colors.", 81 | "entries": [ 82 | "bright", 83 | "fluorescent", 84 | "glowing", 85 | "iridescent", 86 | "opalescent" 87 | ] 88 | }, 89 | { 90 | "name": "intensity", 91 | "explanation": "Color adverb types by intensity.", 92 | "entries": [ 93 | "{vibrant}", 94 | "{muted}" 95 | ] 96 | }, 97 | { 98 | "name": "vibrant", 99 | "explanation": "Dark adverbs.", 100 | "entries": [ 101 | "lively", 102 | "pure", 103 | "rich", 104 | "vibrant", 105 | "vigorous", 106 | "vivid" 107 | ] 108 | }, 109 | { 110 | "name": "muted", 111 | "explanation": "Light adverbs.", 112 | "entries": [ 113 | "dim", 114 | "discolored", 115 | "dull", 116 | "dusty", 117 | "faint", 118 | "hazy", 119 | "light", 120 | "mellow", 121 | "muted", 122 | "opaque", 123 | "pale", 124 | "smokey", 125 | "soft", 126 | "sober", 127 | "subdued", 128 | "watery" 129 | ] 130 | }, 131 | { 132 | "name": "temperature", 133 | "explanation": "Color adverb types by temperature.", 134 | "entries": [ 135 | "{cold}", 136 | "{warm}" 137 | ] 138 | }, 139 | { 140 | "name": "cold", 141 | "explanation": "Cold adverbs for colors.", 142 | "entries": [ 143 | "bleak", 144 | "cold", 145 | "icy" 146 | ] 147 | }, 148 | { 149 | "name": "warm", 150 | "explanation": "Warm adverbs for colors.", 151 | "entries": [ 152 | "ardent", 153 | "fierce", 154 | "fiery", 155 | "intense", 156 | "strong", 157 | "warm" 158 | ] 159 | }, 160 | { 161 | "name": "rare", 162 | "explanation": "Rare adverbs for colors.", 163 | "entries": [ 164 | "{transparent}", 165 | "{uneven}" 166 | ] 167 | }, 168 | { 169 | "name": "transparent", 170 | "explanation": "Transparent adverbs for colors.", 171 | "entries": [ 172 | "glassy", 173 | "glazed", 174 | "semiopaque", 175 | "semitransparent", 176 | "translucent", 177 | "translucid", 178 | "vitreous" 179 | ] 180 | }, 181 | { 182 | "name": "uneven", 183 | "explanation": "Uneven adverbs for colors.", 184 | "entries": [ 185 | "dappled", 186 | "flecked", 187 | "mingled", 188 | "motley", 189 | "patched", 190 | "speckled", 191 | "spotted" 192 | ] 193 | } 194 | ] 195 | } 196 | -------------------------------------------------------------------------------- /json/advColor_formal_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adverb, Color (formal with indefinitive article) Generator", 3 | "resultPattern": "{advColor formal wia}", 4 | "tables": [ 5 | { 6 | "name": "advColor formal wia", 7 | "entries": [ 8 | "A bright", 9 | "A dappled", 10 | "A dark", 11 | "A deep", 12 | "A dusty", 13 | "A fluorescent", 14 | "A glowing", 15 | "An iridescent", 16 | "A light", 17 | "A medium", 18 | "A mellow", 19 | "A muted", 20 | "An opalescent", 21 | "A pale", 22 | "A pure", 23 | "A rich", 24 | "A smokey", 25 | "A sober", 26 | "A soft", 27 | "A translucent", 28 | "A vibrant", 29 | "A vivid", 30 | "A warm", 31 | "A watery" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /json/advColor_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adverb, Color (with indefinitive article) Generator", 3 | "resultPattern": "{advColor wia}", 4 | "tables": [ 5 | { 6 | "name": "advColor wia", 7 | "entries": [ 8 | "a bright", 9 | "a dappled", 10 | "a dark", 11 | "a deep", 12 | "a dusty", 13 | "a fluorescent", 14 | "a glowing", 15 | "an iridescent", 16 | "a light", 17 | "a medium", 18 | "a mellow", 19 | "a muted", 20 | "an opalescent", 21 | "a pale", 22 | "a pure", 23 | "a rich", 24 | "a smokey", 25 | "a sober", 26 | "a soft", 27 | "a translucent", 28 | "a vibrant", 29 | "a vivid", 30 | "a warm", 31 | "a watery" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /json/armor_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Armor (plural) Generator", 3 | "resultPattern": "{armor pl}", 4 | "tables": [ 5 | { 6 | "name": "armor pl", 7 | "entries": [ 8 | "breastplates", 9 | "suits of chain mail armor", 10 | "chain shirts", 11 | "suits of half plate armor", 12 | "helmets", 13 | "suits of hide armor", 14 | "suits of leather armor", 15 | "suits of padded armor", 16 | "suits of plate mail armor", 17 | "suits of ring mail armor", 18 | "suits of scale mail armor", 19 | "shields", 20 | "suits of splint mail armor", 21 | "suits of studded leather armor" 22 | ] 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /json/armor_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Armor (with indefinitive article) Generator", 3 | "resultPattern": "{armor wia}", 4 | "tables": [ 5 | { 6 | "name": "armor wia", 7 | "entries": [ 8 | "a breastplate", 9 | "a suit of chain mail armor", 10 | "a chain shirt", 11 | "a suit of half plate armor", 12 | "a helmet", 13 | "a suit of hide armor", 14 | "a suit of leather armor", 15 | "a suit of padded armor", 16 | "a suit of plate mail armor ", 17 | "a suit of ring mail armor", 18 | "a suit of scale mail armor", 19 | "a shield", 20 | "a suit of splint mail armor", 21 | "a suit of studded leather armor" 22 | ] 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /json/clue.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clue", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Random clues.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "format": "", 11 | "bugs": "", 12 | "to do": "", 13 | "see": "scene", 14 | "date": "2018-01-18", 15 | "authors": "Esko Vesala.", 16 | "sources": "", 17 | "genre": "universal", 18 | "categories": [ 19 | "story" 20 | ], 21 | "tables": [ 22 | { 23 | "name": "result", 24 | "explanation": "Verbosity of the resultPattern output.", 25 | "entries": [ 26 | "{summary}", 27 | "{detail}" 28 | ] 29 | }, 30 | { 31 | "name": "summary", 32 | "explanation": "Brief resultPattern output.", 33 | "entries": [ 34 | "{clue} about {subject}" 35 | ] 36 | }, 37 | { 38 | "name": "detail", 39 | "explanation": "Detailed resultPattern output variations.", 40 | "entries": [ 41 | "{attribute}, {clue} about {subject}" 42 | ] 43 | }, 44 | { 45 | "name": "clue", 46 | "explanation": "Clue types by rarity.", 47 | "entries": [ 48 | { 49 | "m": 10, 50 | "v": "{common}" 51 | }, 52 | "{rare}" 53 | ] 54 | }, 55 | { 56 | "name": "common", 57 | "explanation": "Common clues types.", 58 | "entries": [ 59 | "{note}" 60 | ] 61 | }, 62 | { 63 | "name": "rare", 64 | "explanation": "Rare clues types.", 65 | "entries": [ 66 | "{hint} hinting" 67 | ] 68 | }, 69 | { 70 | "**************************************************": "CLUES" 71 | }, 72 | { 73 | "name": "note", 74 | "explanation": "Clues in the form of notes.", 75 | "entries": [ 76 | "hastily scribbled note" 77 | ] 78 | }, 79 | { 80 | "name": "hint", 81 | "explanation": "Clues in the form of tiny details.", 82 | "entries": [ 83 | "placement of objects", 84 | "small details of the environment" 85 | ] 86 | }, 87 | { 88 | "**************************************************": "WORLD-SPECIFIC" 89 | }, 90 | { 91 | "name": "myth", 92 | "explanation": "Clues once rumoured to have existed.", 93 | "entries": [ 94 | "XXX" 95 | ] 96 | }, 97 | { 98 | "name": "fantasy", 99 | "explanation": "Clues for fantasy worlds (with no basis in myth).", 100 | "entries": [ 101 | "{myth}", 102 | "XXX" 103 | ] 104 | }, 105 | { 106 | "name": "modern", 107 | "explanation": "Clues for modern worlds.", 108 | "entries": [ 109 | "{common}", 110 | "XXX" 111 | ] 112 | }, 113 | { 114 | "name": "futuristic", 115 | "explanation": "Clues for science fiction worlds.", 116 | "entries": [ 117 | "{modern}", 118 | "XXX" 119 | ] 120 | }, 121 | { 122 | "**************************************************": "SPECIAL TABLES" 123 | }, 124 | { 125 | "name": "special", 126 | "explanation": "Special clue tables.", 127 | "entries": [ 128 | "{attribute}", 129 | "{subject}" 130 | ] 131 | }, 132 | { 133 | "name": "attribute", 134 | "explanation": "Attributes for clues.", 135 | "entries": [ 136 | "well-hidden", 137 | "poorly hidden", 138 | "camouflaged" 139 | ] 140 | }, 141 | { 142 | "name": "subject", 143 | "explanation": "Information helpful for solving the adventure.", 144 | "entries": [ 145 | "instructions for a ceremony", 146 | "the plans of the the villain", 147 | "a weakness of the villain", 148 | "the hiding place of a treasure", 149 | "dangers looming ahead" 150 | ] 151 | } 152 | ] 153 | } 154 | -------------------------------------------------------------------------------- /json/container.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "container", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Random containers for items and substances.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "bugs": "", 11 | "to do": "More container types for different worlds.", 12 | "see": "potion", 13 | "date": "2018-01-04", 14 | "authors": "Esko Vesala.", 15 | "sources": "", 16 | "genre": "universal", 17 | "categories": [ 18 | "item" 19 | ], 20 | "tables": [ 21 | { 22 | "name": "result", 23 | "explanation": "Verbosity of the resultPattern output.", 24 | "entries": [ 25 | "{summary}", 26 | "{detail}" 27 | ] 28 | }, 29 | { 30 | "name": "summary", 31 | "explanation": "Brief resultPattern output.", 32 | "entries": [ 33 | "{container}" 34 | ] 35 | }, 36 | { 37 | "name": "detail", 38 | "explanation": "Detailed resultPattern output variations.", 39 | "entries": [ 40 | "{lib:material#container} {container}" 41 | ] 42 | }, 43 | { 44 | "name": "container", 45 | "explanation": "Container types by rarity.", 46 | "entries": [ 47 | { 48 | "m": 10, 49 | "v": "{common}" 50 | }, 51 | "{rare}" 52 | ] 53 | }, 54 | { 55 | "name": "common", 56 | "explanation": "Common containers types", 57 | "entries": [ 58 | "{solid}", 59 | "{liquid}" 60 | ] 61 | }, 62 | { 63 | "name": "solid", 64 | "explanation": "Containers for solids.", 65 | "entries": [ 66 | "{box}", 67 | "{barrel}" 68 | ] 69 | }, 70 | { 71 | "name": "liquid", 72 | "explanation": "Containers for liquids.", 73 | "entries": [ 74 | "{barrel}", 75 | "{bottle}", 76 | "{vial}" 77 | ] 78 | }, 79 | { 80 | "name": "rare", 81 | "explanation": "Rare container types", 82 | "entries": [ 83 | "{gas}" 84 | ] 85 | }, 86 | { 87 | "name": "gas", 88 | "explanation": "Containers for gases.", 89 | "entries": [ 90 | "{bottle}" 91 | ] 92 | }, 93 | { 94 | "name": "barrel", 95 | "explanation": "Barrels.", 96 | "entries": [ 97 | "barrel" 98 | ] 99 | }, 100 | { 101 | "name": "bottle", 102 | "explanation": "Bottles.", 103 | "entries": [ 104 | "bottle" 105 | ] 106 | }, 107 | { 108 | "name": "box", 109 | "explanation": "Boxes.", 110 | "entries": [ 111 | "box" 112 | ] 113 | }, 114 | { 115 | "name": "vial", 116 | "explanation": "Containers for small amounts of liquid.", 117 | "entries": [ 118 | "vessel", 119 | "philter", 120 | "phial", 121 | "vial", 122 | "flagon", 123 | "flacon", 124 | "flask", 125 | "flasket", 126 | "bottle", 127 | "jar", 128 | "urn" 129 | ] 130 | }, 131 | { 132 | "**************************************************": "WORLDS" 133 | }, 134 | { 135 | "name": "myth", 136 | "explanation": "Containers once rumoured to have existed.", 137 | "entries": [ 138 | "XXX" 139 | ] 140 | }, 141 | { 142 | "name": "fantasy", 143 | "explanation": "Containers for fantasy worlds (with no basis in myth).", 144 | "entries": [ 145 | "{myth}", 146 | "XXX" 147 | ] 148 | }, 149 | { 150 | "name": "modern", 151 | "explanation": "Containers for modern worlds.", 152 | "entries": [ 153 | "{common}", 154 | "XXX" 155 | ] 156 | }, 157 | { 158 | "name": "futuristic", 159 | "explanation": "Containers for science fiction worlds.", 160 | "entries": [ 161 | "{modern}", 162 | "XXX" 163 | ] 164 | }, 165 | { 166 | "name": "special", 167 | "explanation": "Special container types.", 168 | "entries": [ 169 | "XXX" 170 | ] 171 | } 172 | ] 173 | } 174 | -------------------------------------------------------------------------------- /json/difficulty.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "difficulty", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Difficulty randomizer.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "format": "", 11 | "bugs": "", 12 | "to do": "Are world-specific difficulty descriptions useful?", 13 | "see": "motif-snake", 14 | "date": "2018-01-31", 15 | "authors": "Esko Vesala.", 16 | "sources": "Five_room_dungeon", 17 | "genre": "universal", 18 | "categories": [ 19 | "utility" 20 | ], 21 | "tables": [ 22 | { 23 | "name": "result", 24 | "explanation": "Verbosity of the resultPattern output.", 25 | "entries": [ 26 | "{summary}", 27 | "{detail}" 28 | ] 29 | }, 30 | { 31 | "name": "summary", 32 | "explanation": "Brief resultPattern output.", 33 | "entries": [ 34 | "{difficulty}" 35 | ] 36 | }, 37 | { 38 | "name": "detail", 39 | "explanation": "Detailed resultPattern output variations.", 40 | "entries": [ 41 | "{modifier} {difficulty}" 42 | ] 43 | }, 44 | { 45 | "**************************************************": "DIFFICULTY" 46 | }, 47 | { 48 | "name": "difficulty", 49 | "explanation": "Difficulty types by rarity.", 50 | "entries": [ 51 | { 52 | "m": 10, 53 | "v": "{common}" 54 | }, 55 | "{rare}" 56 | ] 57 | }, 58 | { 59 | "name": "common", 60 | "explanation": "Common levels of difficulty.", 61 | "entries": [ 62 | { 63 | "m": 5, 64 | "v": "{apprentice}" 65 | }, 66 | { 67 | "m": 4, 68 | "v": "{journeyman}" 69 | }, 70 | { 71 | "m": 3, 72 | "v": "{master}" 73 | } 74 | ] 75 | }, 76 | { 77 | "name": "rare", 78 | "explanation": "Rare levels of difficulty.", 79 | "entries": [ 80 | { 81 | "m": 2, 82 | "v": "{adept}" 83 | }, 84 | { 85 | "m": 1, 86 | "v": "{epic}" 87 | } 88 | ] 89 | }, 90 | { 91 | "**************************************************": "DIFFICULTIES" 92 | }, 93 | { 94 | "name": "apprentice", 95 | "explanation": "The easiest difficulty.", 96 | "entries": [ 97 | "apprentice" 98 | ] 99 | }, 100 | { 101 | "name": "journeyman", 102 | "explanation": "Easy difficulty.", 103 | "entries": [ 104 | "journeyman" 105 | ] 106 | }, 107 | { 108 | "name": "master", 109 | "explanation": "The medium difficulty.", 110 | "entries": [ 111 | "master" 112 | ] 113 | }, 114 | { 115 | "name": "adept", 116 | "explanation": "Hard difficulty.", 117 | "entries": [ 118 | "apprentice" 119 | ] 120 | }, 121 | { 122 | "name": "epic", 123 | "explanation": "The hardest difficulty.", 124 | "entries": [ 125 | "epic" 126 | ] 127 | }, 128 | { 129 | "**************************************************": "WORLD-SPECIFIC" 130 | }, 131 | { 132 | "name": "myth", 133 | "explanation": "Difficulty levels once rumoured to have existed.", 134 | "entries": [ 135 | "XXX" 136 | ] 137 | }, 138 | { 139 | "name": "fantasy", 140 | "explanation": "Difficulty levels for fantasy (with no basis in myth).", 141 | "entries": [ 142 | "{myth}", 143 | "XXX" 144 | ] 145 | }, 146 | { 147 | "name": "modern", 148 | "explanation": "Difficulty levels for modern worlds.", 149 | "entries": [ 150 | "{common}", 151 | "XXX" 152 | ] 153 | }, 154 | { 155 | "name": "futuristic", 156 | "explanation": "Difficulty levels for science fiction worlds.", 157 | "entries": [ 158 | "{modern}", 159 | "XXX" 160 | ] 161 | }, 162 | { 163 | "**************************************************": "SPECIAL TABLES" 164 | }, 165 | { 166 | "name": "special", 167 | "explanation": "Special difficulty tables.", 168 | "entries": [ 169 | "{modifier}" 170 | ] 171 | }, 172 | { 173 | "name": "modifier", 174 | "explanation": "Tweaks for difficulty levels.", 175 | "entries": [ 176 | "almost", 177 | "about the level of", 178 | "higher than" 179 | ] 180 | } 181 | ] 182 | } 183 | -------------------------------------------------------------------------------- /json/dungeon_vault.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dungeon_vault", 3 | "resultPattern": "{init}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Random dungeon vaults.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "bugs": "", 11 | "to do": "", 12 | "see": "Dungeon_adventure, dungeon_corridor, dungeon_entrance, dungeon_room, Five_room_dungeon", 13 | "date": "2018-02-03", 14 | "authors": "Esko Vesala.", 15 | "sources": "", 16 | "genre": "fantasy", 17 | "categories": [ 18 | "world" 19 | ], 20 | "tables": [ 21 | { 22 | "name": "init", 23 | "explanation": "Initializing the vault parameters.", 24 | "entries": [ 25 | "{result}" 26 | ] 27 | }, 28 | { 29 | "name": "result", 30 | "explanation": "Verbosity of the resultPattern output.", 31 | "entries": [ 32 | "{summary}", 33 | "{detail}" 34 | ] 35 | }, 36 | { 37 | "name": "summary", 38 | "explanation": "Brief resultPattern output.", 39 | "entries": [ 40 | "{attribute} {vault}." 41 | ] 42 | }, 43 | { 44 | "name": "detail", 45 | "explanation": "Detailed resultPattern output variations.", 46 | "entries": [ 47 | "{attribute} {vault}. {global:para}{extra}" 48 | ] 49 | }, 50 | { 51 | "name": "vault", 52 | "explanation": "Dungeon vault types by rarity.", 53 | "entries": [ 54 | { 55 | "m": 10, 56 | "v": "{common}" 57 | }, 58 | "{rare}" 59 | ] 60 | }, 61 | { 62 | "name": "common", 63 | "explanation": "Common vault types.", 64 | "entries": [ 65 | "{chamber}" 66 | ] 67 | }, 68 | { 69 | "name": "rare", 70 | "explanation": "Rare vault types.", 71 | "entries": [ 72 | "{open}" 73 | ] 74 | }, 75 | { 76 | "**************************************************": "VAULTS" 77 | }, 78 | { 79 | "name": "chamber", 80 | "explanation": "Chamber vaults.", 81 | "export": { 82 | "vault": "chamber" 83 | }, 84 | "entries": [ 85 | "throne room", 86 | "mausoleum", 87 | "tomb", 88 | "crypt", 89 | "sepulcher", 90 | "treasury", 91 | "treasure room" 92 | ] 93 | }, 94 | { 95 | "name": "open", 96 | "explanation": "Open space vaults.", 97 | "export": { 98 | "vault": "open" 99 | }, 100 | "entries": [ 101 | "cavern", 102 | "cave", 103 | "grotto", 104 | "hollow", 105 | "subterranean expanse" 106 | ] 107 | }, 108 | { 109 | "**************************************************": "WORLD-SPECIFIC" 110 | }, 111 | { 112 | "name": "myth", 113 | "explanation": "Vaults once rumoured to have existed.", 114 | "entries": [ 115 | "XXX" 116 | ] 117 | }, 118 | { 119 | "name": "fantasy", 120 | "explanation": "Vaults for fantasy worlds (with no basis in myth).", 121 | "entries": [ 122 | "{myth}", 123 | "XXX" 124 | ] 125 | }, 126 | { 127 | "name": "modern", 128 | "explanation": "Vaults for modern worlds.", 129 | "entries": [ 130 | "{common}", 131 | "XXX" 132 | ] 133 | }, 134 | { 135 | "name": "futuristic", 136 | "explanation": "Vaults for science fiction worlds.", 137 | "entries": [ 138 | "{modern}", 139 | "XXX" 140 | ] 141 | }, 142 | { 143 | "**************************************************": "SPECIAL CASES" 144 | }, 145 | { 146 | "name": "special", 147 | "explanation": "Special vault tables.", 148 | "entries": [ 149 | "{attribute}", 150 | "{extra}" 151 | ] 152 | }, 153 | { 154 | "name": "attribute", 155 | "explanation": "Attributes for dungeon vaults.", 156 | "entries": [ 157 | "concealed", 158 | "alien", 159 | "weird", 160 | "strange-looking", 161 | "bizarre", 162 | "massive", 163 | "exotic", 164 | "arcane", 165 | "mystical", 166 | "hermetic", 167 | "cabalistic", 168 | "glamorous", 169 | "expensively decorated", 170 | "outlandish", 171 | "awe-inspiring", 172 | "unearthly" 173 | ] 174 | }, 175 | { 176 | "**************************************************": "EXTRAS" 177 | }, 178 | { 179 | "name": "extra", 180 | "explanation": "Extra features for dungeon vaults.", 181 | "entries": [ 182 | "{complication}" 183 | ] 184 | }, 185 | { 186 | "name": "complication", 187 | "explanation": "Vault complications.", 188 | "entries": [ 189 | "The air is thick with incense, making breathing difficult.", 190 | "The entrances close, locking everyone in until they are able to find a hidden exit.", 191 | "A fire starts to spread in the area.", 192 | "A caged, hungry beast manages to break free.", 193 | "The area is filled with death traps.", 194 | "A swirling portal is slowly opening, soon offering an escape route for the villain." 195 | ] 196 | } 197 | ] 198 | } 199 | -------------------------------------------------------------------------------- /json/energy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "energy table", 3 | "resultPattern": "{energy}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Energy sources for resource tables.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 9 | "note": "", 10 | "to do": "", 11 | "see": "magic, temperature", 12 | "date": "2017-10-04", 13 | "authors": "Esko Vesala.", 14 | "sources": "Wikipedia.org", 15 | "genre": "universal", 16 | "categories": [ 17 | "utility" 18 | ], 19 | "tags": "#machine, #power, #resource", 20 | "tables": [ 21 | { 22 | "name": "energy", 23 | "explanation": "", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "explanation": "Common energies.", 35 | "entries": [ 36 | "heat", 37 | "gravity" 38 | ] 39 | }, 40 | { 41 | "name": "rare", 42 | "explanation": "Rare energies.", 43 | "entries": [ 44 | "magnetism", 45 | "steam" 46 | ] 47 | }, 48 | { 49 | "name": "myth", 50 | "explanation": "Imaginary energies once rumoured to have existed.", 51 | "entries": [ 52 | "earth energy", 53 | "aura (body energy field)", 54 | "mental energy", 55 | "animal magnetism (mesmerism)", 56 | "cosmic magnetism", 57 | "life energy", 58 | "qi (flowing life force)", 59 | "prana (vital principle)", 60 | "kundalini (primal body energy)", 61 | "shakti (primal cosmic energy)", 62 | "spiritual energy", 63 | "mana (magical energy)", 64 | "väki (power of local spirits)", 65 | "fate", 66 | "numen (divine will)" 67 | ] 68 | }, 69 | { 70 | "name": "fantasy", 71 | "explanation": "Imaginary energies for fantasy (with no basis in myth).", 72 | "entries": [ 73 | "{myth}", 74 | "magic", 75 | "orgone (esoteric energy)", 76 | "odic force (vital energy)", 77 | "telluric currents (earth electricity)" 78 | ] 79 | }, 80 | { 81 | "name": "modern", 82 | "explanation": "Energies for modern worlds.", 83 | "entries": [ 84 | "{common}", 85 | "electricity", 86 | "solar energy", 87 | "{rare modern}" 88 | ] 89 | }, 90 | { 91 | "name": "rare modern", 92 | "explanation": "Rare energies for modern worlds.", 93 | "entries": [ 94 | "radioactivity" 95 | ] 96 | }, 97 | { 98 | "name": "futuristic", 99 | "explanation": "Imaginary gases for science fiction worlds.", 100 | "entries": [ 101 | "{modern}", 102 | "geomagnetism", 103 | "tectonic force", 104 | "cosmic radiation", 105 | "space weather", 106 | "antimatter" 107 | ] 108 | } 109 | ] 110 | } 111 | -------------------------------------------------------------------------------- /json/gas.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gas table", 3 | "resultPattern": "{gas}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Gases for resource tables.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 9 | "note": "", 10 | "to do": "Expand genre-specific subtables.", 11 | "see": "liquid, material, metal.", 12 | "date": "2017-10-04", 13 | "authors": "Esko Vesala.", 14 | "sources": "Wikipedia.org", 15 | "genre": "universal", 16 | "categories": [ 17 | "item" 18 | ], 19 | "tags": "#material, #resource", 20 | "tables": [ 21 | { 22 | "name": "gas", 23 | "explanation": "Gas types.", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "explanation": "Common gases.", 35 | "entries": [ 36 | "{air}", 37 | "steam", 38 | "colorless vapor" 39 | ] 40 | }, 41 | { 42 | "name": "air", 43 | "explanation": "Water types.", 44 | "entries": [ 45 | "air", 46 | "warm air", 47 | "cold air", 48 | "pure air", 49 | "smoky air", 50 | "dusty air", 51 | "stale air", 52 | "foul reeking air", 53 | "sulphuric air", 54 | "air bearing a pleasant scent" 55 | ] 56 | }, 57 | { 58 | "name": "rare", 59 | "explanation": "Rare gases.", 60 | "entries": [ 61 | "natural gas", 62 | "volcanic gas" 63 | ] 64 | }, 65 | { 66 | "name": "myth", 67 | "explanation": "Imaginary gases once rumoured to have existed.", 68 | "entries": [ 69 | "miasma", 70 | "aether (celestial air)", 71 | "akasha (upper sky)" 72 | ] 73 | }, 74 | { 75 | "name": "fantasy", 76 | "explanation": "Imaginary gases for fantasy (with no basis in myth).", 77 | "entries": [ 78 | "{myth}" 79 | ] 80 | }, 81 | { 82 | "name": "modern", 83 | "explanation": "Gases for modern worlds.", 84 | "entries": [ 85 | "{common}", 86 | "saturated steam (at boiling point)", 87 | "hydrogen", 88 | "nitrogen", 89 | "oxygen", 90 | "methane", 91 | "{rare modern}" 92 | ] 93 | }, 94 | { 95 | "name": "rare modern", 96 | "explanation": "Rare gases for modern worlds.", 97 | "entries": [ 98 | "dry steam (slightly superheated)", 99 | "helium", 100 | "neon", 101 | "argon", 102 | "krypton", 103 | "xenon", 104 | "radon", 105 | "fluorine", 106 | "chlorine" 107 | ] 108 | }, 109 | { 110 | "name": "futuristic", 111 | "explanation": "Imaginary gases for science fiction worlds.", 112 | "entries": [ 113 | "{modern}", 114 | "superheated steam" 115 | ] 116 | } 117 | ] 118 | } 119 | -------------------------------------------------------------------------------- /json/gem_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Gem (plural) Generator", 3 | "resultPattern": "{gem pl} gemstones", 4 | "tables": [ 5 | { 6 | "name": "gem pl", 7 | "entries": [ 8 | "agate", 9 | "alexandrite", 10 | "amber", 11 | "amethyst", 12 | "aquamarine", 13 | "azurite", 14 | "black pearl", 15 | "bloodstone", 16 | "carnelian", 17 | "chalcedony", 18 | "chrysoberyl", 19 | "chrysoprase", 20 | "citrine", 21 | "coral", 22 | "diamond", 23 | "emerald", 24 | "garnet", 25 | "hematite", 26 | "jacinth", 27 | "jade", 28 | "jasper", 29 | "jet", 30 | "lapis lazuli", 31 | "malachite", 32 | "moonstone", 33 | "obsidian", 34 | "opal", 35 | "pearl", 36 | "peridot", 37 | "quartz", 38 | "rhodochrosite", 39 | "ruby", 40 | "sapphire", 41 | "sardonyx", 42 | "spinel", 43 | "tiger eye", 44 | "topaz", 45 | "tourmaline", 46 | "turquoise", 47 | "zircon" 48 | ] 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /json/gem_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Gem (with indefinitive article) Generator", 3 | "resultPattern": "{gem wia} gemstone", 4 | "tables": [ 5 | { 6 | "name": "gem wia", 7 | "entries": [ 8 | "an agate", 9 | "an alexandrite", 10 | "an amber", 11 | "an amethyst", 12 | "an aquamarine", 13 | "an azurite", 14 | "a black pearl", 15 | "a bloodstone", 16 | "a carnelian", 17 | "a chalcedony", 18 | "a chrysoberyl", 19 | "a chrysoprase", 20 | "a citrine", 21 | "a coral", 22 | "a diamond", 23 | "an emerald", 24 | "a garnet", 25 | "a hematite", 26 | "a jacinth", 27 | "a jade", 28 | "a jasper", 29 | "a jet", 30 | "a lapis lazuli", 31 | "a malachite", 32 | "a moonstone", 33 | "an obsidian", 34 | "an opal", 35 | "a pearl", 36 | "a peridot", 37 | "a quartz", 38 | "a rhodochrosite", 39 | "a ruby", 40 | "a sapphire", 41 | "a sardonyx", 42 | "a spinel", 43 | "a tiger eye", 44 | "a topaz", 45 | "a tourmaline", 46 | "a turquoise", 47 | "a zircon" 48 | ] 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /json/goal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "goal", 3 | "resultPattern": "{init}{result}", 4 | "globals": { 5 | "variable": "value" 6 | }, 7 | "variables": { 8 | "footnote": "" 9 | }, 10 | "explanation": "Goals and objectives for characters.", 11 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 12 | "note": "", 13 | "format": "", 14 | "bugs": "", 15 | "to do": "", 16 | "see": "", 17 | "date": "2018-03-10", 18 | "authors": "ELF Vesala.", 19 | "sources": "", 20 | "genre": "universal", 21 | "categories": [ 22 | "character" 23 | ], 24 | "tables": [ 25 | { 26 | "name": "init", 27 | "explanation": "Initializing the required global variables, if any.", 28 | "entries": [ 29 | { 30 | "v": "", 31 | "export": { 32 | "": "" 33 | } 34 | } 35 | ] 36 | }, 37 | { 38 | "name": "result", 39 | "explanation": "Verbosity of the resultPattern output.", 40 | "entries": [ 41 | "{summary}", 42 | "{detail}" 43 | ] 44 | }, 45 | { 46 | "name": "summary", 47 | "explanation": "Brief resultPattern output.", 48 | "entries": [ 49 | "{goal}" 50 | ] 51 | }, 52 | { 53 | "name": "detail", 54 | "explanation": "Detailed resultPattern output variations.", 55 | "entries": [ 56 | "{goal} {timeframe}" 57 | ] 58 | }, 59 | { 60 | "name": "goal", 61 | "explanation": "The goal types by rarity.", 62 | "entries": [ 63 | { 64 | "m": 10, 65 | "v": "{common}" 66 | }, 67 | "{rare}" 68 | ] 69 | }, 70 | { 71 | "name": "common", 72 | "explanation": "Common goal types.", 73 | "entries": [ 74 | "{good}", 75 | "{neutral}" 76 | ] 77 | }, 78 | { 79 | "name": "rare", 80 | "explanation": "Rare goal types.", 81 | "entries": [ 82 | "{evil}" 83 | ] 84 | }, 85 | { 86 | "**************************************************": "GOALS" 87 | }, 88 | { 89 | "name": "evil", 90 | "explanation": "Villainous goals.", 91 | "entries": [ 92 | "gain wealth", 93 | "gain power", 94 | "achieve infamy", 95 | "cause suffering", 96 | "serve evil", 97 | "dominate the world" 98 | ] 99 | }, 100 | { 101 | "name": "neutral", 102 | "explanation": "Neutral goals.", 103 | "entries": [ 104 | "start a new career", 105 | "avenge the death of their family" 106 | ] 107 | }, 108 | { 109 | "name": "good", 110 | "explanation": "Positive goals.", 111 | "entries": [ 112 | "fight for the cause of good" 113 | ] 114 | }, 115 | { 116 | "**************************************************": "WORLD-SPECIFIC" 117 | }, 118 | { 119 | "name": "myth", 120 | "explanation": "Goals once rumoured to have existed.", 121 | "entries": [ 122 | "XXX" 123 | ] 124 | }, 125 | { 126 | "name": "fantasy", 127 | "explanation": "Goals for fantasy worlds (with no basis in myth).", 128 | "entries": [ 129 | "{myth}", 130 | "XXX" 131 | ] 132 | }, 133 | { 134 | "name": "modern", 135 | "explanation": "Goals for modern worlds.", 136 | "entries": [ 137 | "{common}", 138 | "XXX" 139 | ] 140 | }, 141 | { 142 | "name": "futuristic", 143 | "explanation": "Goals for science fiction worlds.", 144 | "entries": [ 145 | "{modern}", 146 | "XXX" 147 | ] 148 | }, 149 | { 150 | "**************************************************": "SPECIAL TABLES" 151 | }, 152 | { 153 | "name": "special", 154 | "explanation": "Special goal tables.", 155 | "entries": [ 156 | "{timeframe}" 157 | ] 158 | }, 159 | { 160 | "name": "timeframe", 161 | "explanation": "Time frame.", 162 | "entries": [ 163 | "as soon as possible", 164 | "before settling down", 165 | "before death" 166 | ] 167 | }, 168 | { 169 | "name": "test", 170 | "explanation": "Test routine for checking the generator functionality.", 171 | "entries": [ 172 | "{init}result: {result}, summary: {summary}, detail: {detail}, common: {common}, rare: {rare}, myth: {myth}, fantasy: {fantasy}, modern: {modern}, futuristic: {futuristic}, special: {special}." 173 | ] 174 | } 175 | ] 176 | } 177 | -------------------------------------------------------------------------------- /json/jewelry_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Jewelry (plural) Generator", 3 | "resultPattern": "{jewelry pl}", 4 | "tables": [ 5 | { 6 | "name": "jewelry pl", 7 | "entries": [ 8 | "amulets", 9 | "anklets", 10 | "armlets", 11 | "bangles", 12 | "bracelets", 13 | "brooches", 14 | "chains", 15 | "charm bracelets", 16 | "chatelaines", 17 | "chokers", 18 | "earrings", 19 | "gorgerines", 20 | "lockets", 21 | "medallions", 22 | "necklaces", 23 | "pendants", 24 | "periapts", 25 | "pins", 26 | "rings", 27 | "scarabs", 28 | "torcs" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /json/jewelry_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Jewelry (with indefinitive article) Generator", 3 | "resultPattern": "{jewelry wia}", 4 | "tables": [ 5 | { 6 | "name": "jewelry wia", 7 | "entries": [ 8 | "an amulet", 9 | "an anklet", 10 | "an armlet", 11 | "a bangle", 12 | "a bracelet", 13 | "a brooch", 14 | "a chain", 15 | "a charm bracelet", 16 | "a chatelaine", 17 | "a choker", 18 | "an earring", 19 | "a gorgerine", 20 | "a locket", 21 | "a medallion", 22 | "a necklace", 23 | "a pendant", 24 | "a periapt", 25 | "a pin", 26 | "a ring", 27 | "a scarab", 28 | "a torc" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /json/key.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "key", 3 | "resultPattern": "{result}", 4 | "globals": { 5 | "variable": "" 6 | }, 7 | "variables": { 8 | "footnote": "" 9 | }, 10 | "explanation": "Random keys", 11 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 12 | "note": "", 13 | "format": "", 14 | "bugs": "", 15 | "to do": "", 16 | "see": "lock", 17 | "date": "2018-05-27", 18 | "authors": "ELF Vesala.", 19 | "sources": "", 20 | "genre": "universal", 21 | "categories": [ 22 | "item" 23 | ], 24 | "tables": [ 25 | { 26 | "name": "result", 27 | "explanation": "Verbosity of the resultPattern output.", 28 | "entries": [ 29 | "{summary}", 30 | "{detail}" 31 | ] 32 | }, 33 | { 34 | "name": "summary", 35 | "explanation": "Brief resultPattern output.", 36 | "entries": [ 37 | "{key}" 38 | ] 39 | }, 40 | { 41 | "name": "detail", 42 | "explanation": "Detailed resultPattern output variations.", 43 | "entries": [ 44 | "{lib:condition} {key}" 45 | ] 46 | }, 47 | { 48 | "name": "key", 49 | "explanation": "Key types by rarity.", 50 | "entries": [ 51 | { 52 | "m": 10, 53 | "v": "{common}" 54 | }, 55 | "{rare}" 56 | ] 57 | }, 58 | { 59 | "name": "common", 60 | "explanation": "Common keys.", 61 | "entries": [ 62 | "{ordinary}" 63 | ] 64 | }, 65 | { 66 | "name": "rare", 67 | "explanation": "Rare keys.", 68 | "entries": [ 69 | "{ornate}" 70 | ] 71 | }, 72 | { 73 | "**************************************************": "KEYS" 74 | }, 75 | { 76 | "name": "ordinary", 77 | "explanation": "Ordinary keys.", 78 | "entries": [ 79 | "small, nondescript key", 80 | "small {lib:metal} key", 81 | "medium-sized {lib:metal} key", 82 | "large {lib:metal} key", 83 | "large iron key", 84 | "rusty iron key" 85 | ] 86 | }, 87 | { 88 | "name": "ornate", 89 | "explanation": "Ornate keys.", 90 | "entries": [ 91 | "ornate key", 92 | "ornate key inset with a {lib:gem}", 93 | "ornate {lib:metal#precious} key", 94 | "ornate {lib:metal#precious} key inset with a {lib:gem}" 95 | ] 96 | }, 97 | { 98 | "**************************************************": "WORLD-SPECIFIC" 99 | }, 100 | { 101 | "name": "myth", 102 | "explanation": "Keys once rumoured to have existed.", 103 | "entries": [ 104 | "unfaltering faith" 105 | ] 106 | }, 107 | { 108 | "name": "fantasy", 109 | "explanation": "Keys for fantasy worlds (with no basis in myth).", 110 | "entries": [ 111 | "{myth}", 112 | "{magic}" 113 | ] 114 | }, 115 | { 116 | "name": "modern", 117 | "explanation": "Keys for modern worlds.", 118 | "entries": [ 119 | "{common}", 120 | "fingerprint", 121 | "iris scan" 122 | ] 123 | }, 124 | { 125 | "name": "futuristic", 126 | "explanation": "Keys for science fiction worlds.", 127 | "entries": [ 128 | "{modern}", 129 | "voice sample", 130 | "DNA sample" 131 | ] 132 | }, 133 | { 134 | "**************************************************": "SPECIAL TABLES" 135 | }, 136 | { 137 | "name": "special", 138 | "explanation": "Special key tables.", 139 | "entries": [ 140 | "{knot}", 141 | "{magic}", 142 | "{pressure}" 143 | ] 144 | }, 145 | { 146 | "name": "knot", 147 | "explanation": "Knot-based keys.", 148 | "format": "requiring X", 149 | "entries": [ 150 | "untying a simple knot", 151 | "untying a complex knot", 152 | "untying an extremely complicated knot" 153 | ] 154 | }, 155 | { 156 | "name": "magic", 157 | "explanation": "Magical keys.", 158 | "format": "requiring X", 159 | "entries": [ 160 | "a spoken password", 161 | "a specific ceremony", 162 | "a specific command word", 163 | "that a specific artifact is shown" 164 | ] 165 | }, 166 | { 167 | "name": "pressure", 168 | "explanation": "Pressure keys.", 169 | "format": "requiring X", 170 | "entries": [ 171 | "at least slight pressure", 172 | "heavy pressure", 173 | "just the right amount of pressure" 174 | ] 175 | } 176 | ] 177 | } 178 | -------------------------------------------------------------------------------- /json/lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lock", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Random locks.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "format": "", 11 | "bugs": "", 12 | "to do": "", 13 | "see": "door, key", 14 | "date": "2018-01-10", 15 | "authors": "Esko Vesala", 16 | "sources": "", 17 | "genre": "universal", 18 | "categories": [ 19 | "item", 20 | "world" 21 | ], 22 | "tables": [ 23 | { 24 | "name": "result", 25 | "explanation": "Verbosity of the resultPattern output.", 26 | "entries": [ 27 | "{summary}", 28 | "{detail}" 29 | ] 30 | }, 31 | { 32 | "name": "summary", 33 | "explanation": "Brief resultPattern output.", 34 | "entries": [ 35 | "{lock}" 36 | ] 37 | }, 38 | { 39 | "name": "detail", 40 | "explanation": "Detailed resultPattern output variations.", 41 | "entries": [ 42 | "{lock}" 43 | ] 44 | }, 45 | { 46 | "name": "lock", 47 | "explanation": "Lock types by rarity.", 48 | "entries": [ 49 | { 50 | "m": 10, 51 | "v": "{common}" 52 | }, 53 | "{rare}" 54 | ] 55 | }, 56 | { 57 | "name": "common", 58 | "explanation": "Common locks.", 59 | "entries": [ 60 | "{door}", 61 | "{padlock}" 62 | ] 63 | }, 64 | { 65 | "name": "rare", 66 | "explanation": "Rare locks.", 67 | "entries": [ 68 | "{knot} (requiring {lib:key#knot})", 69 | "{mechanism}" 70 | ] 71 | }, 72 | { 73 | "**************************************************": "LOCKS" 74 | }, 75 | { 76 | "name": "door", 77 | "explanation": "Door locks.", 78 | "entries": [ 79 | "lock (requiring a {lib:key})" 80 | ] 81 | }, 82 | { 83 | "name": "padlock", 84 | "explanation": "Padlocks.", 85 | "entries": [ 86 | "padlock (requiring a {lib:key})", 87 | "heavy iron padlock (requiring a {lib:key})" 88 | ] 89 | }, 90 | { 91 | "name": "mechanism", 92 | "explanation": "Pressure plate locks.", 93 | "entries": [ 94 | "complex locking mechanism [containing a hard-to-reach pressure plate (requiring {lib:key#pressure})]", 95 | "complex locking mechanism [requires solving a puzzle]" 96 | ] 97 | }, 98 | { 99 | "**************************************************": "WORLD-SPECIFIC" 100 | }, 101 | { 102 | "name": "myth", 103 | "explanation": "Locks once rumoured to have existed.", 104 | "entries": [ 105 | "spirit guardian (requiring {lib:key#magic})" 106 | ] 107 | }, 108 | { 109 | "name": "fantasy", 110 | "explanation": "Locks for fantasy worlds (with no basis in myth).", 111 | "entries": [ 112 | "{myth} (requiring {lib:key#magic})", 113 | "{magic} (requiring {lib:key#magic})" 114 | ] 115 | }, 116 | { 117 | "name": "modern", 118 | "explanation": "Locks for modern worlds.", 119 | "entries": [ 120 | "{common}", 121 | "{rare modern}", 122 | "combination lock" 123 | ] 124 | }, 125 | { 126 | "name": "rare modern", 127 | "explanation": "Rare locks for modern worlds.", 128 | "entries": [ 129 | "touch pad", 130 | "camera" 131 | ] 132 | }, 133 | { 134 | "name": "futuristic", 135 | "explanation": "Locks for science fiction worlds.", 136 | "entries": [ 137 | "{modern}", 138 | "remote scanner" 139 | ] 140 | }, 141 | { 142 | "**************************************************": "SPECIAL TABLES" 143 | }, 144 | { 145 | "name": "special", 146 | "explanation": "Special lock tables.", 147 | "entries": [ 148 | "{magic}", 149 | "{primitive}" 150 | ] 151 | }, 152 | { 153 | "name": "magic", 154 | "explanation": "Magical locks.", 155 | "entries": [ 156 | "locking spell", 157 | "sigil", 158 | "magical seal", 159 | "magic mouth" 160 | ] 161 | }, 162 | { 163 | "name": "plate", 164 | "explanation": "Pressure plate locks.", 165 | "entries": [ 166 | "complex locking mechanism [containgin a hard to reach pressure plate (requiring {lib:key#pressure})]" 167 | ] 168 | }, 169 | { 170 | "name": "knot", 171 | "explanation": "Knot-based locks.", 172 | "entries": [ 173 | "closed with vines", 174 | "closed with ropes", 175 | "closed with cords", 176 | "closed with leather straps" 177 | ] 178 | } 179 | ] 180 | } 181 | -------------------------------------------------------------------------------- /json/magical_technique.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "magical technique table", 3 | "resultPattern": "{magic}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Magical techniques for magic tables.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 9 | "note": "", 10 | "to do": "myth, fantasy, modern and futuristic subtables?", 11 | "see": "energy, magic, magical_instrument, spellcasting", 12 | "date": "2017-10-06", 13 | "authors": "Esko Vesala", 14 | "sources": "powerlisting.wikia.com, Wikipedia.org.", 15 | "genre": "universal", 16 | "categories": [ 17 | "magic" 18 | ], 19 | "tags": "#magic, #spell", 20 | "tables": [ 21 | { 22 | "name": "magical technique", 23 | "explanation": "Types of magical techniques.", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "explanation": "Common magical techniques.", 35 | "entries": [ 36 | "legerdemain", 37 | "illusionism (creating illusions)", 38 | "malediction (cursing)", 39 | "banishing (eliminating forces)", 40 | "purification", 41 | "consecration", 42 | "incantation", 43 | "enchanting (attaching spells to objects)", 44 | "invocation (calling entities)", 45 | "conjuration (invoking spirits)", 46 | "summoning", 47 | "exorcism (evicting entities)", 48 | "evocation (obtaining obedience)", 49 | "divination (obtaining information)", 50 | "transmutation (changing properties)", 51 | "transfiguration (changing form)" 52 | ] 53 | }, 54 | { 55 | "name": "rare", 56 | "explanation": "Rare magical techniques.", 57 | "entries": [ 58 | "astral travel", 59 | "eucharism (infusing with divine properties)" 60 | ] 61 | } 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /json/magicitem_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Magic Item (formal) Generator", 3 | "resultPattern": "{magicitem formal}", 4 | "tables": [ 5 | { 6 | "name": "magicitem formal", 7 | "entries": [ 8 | "Bag", 9 | "Banner", 10 | "Bead", 11 | "Belt", 12 | "Boots", 13 | "Bottle", 14 | "Bowl", 15 | "Bracelet", 16 | "Bracers", 17 | "Brazier", 18 | "Brooch", 19 | "Broom", 20 | "Candle", 21 | "Cap", 22 | "Cape", 23 | "Censer", 24 | "Chain", 25 | "Circlet", 26 | "Cloak", 27 | "Codex", 28 | "Cube", 29 | "Deck", 30 | "Dust", 31 | "Figurine", 32 | "Flask", 33 | "Gauntlets", 34 | "Gem", 35 | "Gloves", 36 | "Hat", 37 | "Headband", 38 | "Helm", 39 | "Horn", 40 | "Jewel", 41 | "Key", 42 | "Libram", 43 | "Lyre", 44 | "Mantle", 45 | "Manual", 46 | "Medallion", 47 | "Necklace", 48 | "Pendant", 49 | "Periapt", 50 | "Pipes", 51 | "Potion", 52 | "Quiver", 53 | "Relic", 54 | "Ring", 55 | "Robe", 56 | "Rod", 57 | "Rope", 58 | "Scarab", 59 | "Seashell", 60 | "Scroll", 61 | "Slippers", 62 | "Stone", 63 | "Talisman", 64 | "Tome", 65 | "Wand" 66 | ] 67 | } 68 | ] 69 | } -------------------------------------------------------------------------------- /json/magicitem_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Magic Item (plural) Generator", 3 | "resultPattern": "{magicitem pl}", 4 | "tables": [ 5 | { 6 | "name": "magicitem pl", 7 | "entries": [ 8 | "bags", 9 | "banners", 10 | "beads", 11 | "belts", 12 | "boots", 13 | "bottles", 14 | "bowls", 15 | "bracelets", 16 | "bracers", 17 | "braziers", 18 | "brooches", 19 | "brooms", 20 | "candles", 21 | "caps", 22 | "capes", 23 | "censers", 24 | "chains", 25 | "circlets", 26 | "cloaks", 27 | "codexes", 28 | "cubes", 29 | "decks", 30 | "dust", 31 | "figurines", 32 | "flasks", 33 | "gauntlets", 34 | "gems", 35 | "gloves", 36 | "hats", 37 | "headbands", 38 | "helms", 39 | "horns", 40 | "jewels", 41 | "keys", 42 | "librams", 43 | "lyres", 44 | "mantles", 45 | "manuals", 46 | "medallions", 47 | "necklaces", 48 | "pendants", 49 | "periapts", 50 | "pipes", 51 | "potions", 52 | "quivers", 53 | "relics", 54 | "rings", 55 | "robes", 56 | "rods", 57 | "ropes", 58 | "scarabs", 59 | "seashells", 60 | "scrolls", 61 | "slippers", 62 | "stones", 63 | "talismans", 64 | "tomes", 65 | "wands" 66 | ] 67 | } 68 | ] 69 | } -------------------------------------------------------------------------------- /json/magicitem_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Magic Item (with indefinitive article) Generator", 3 | "resultPattern": "{magicitem wia}", 4 | "tables": [ 5 | { 6 | "name": "magicitem wia", 7 | "entries": [ 8 | "a bag", 9 | "a banner", 10 | "a bead", 11 | "a belt", 12 | "a pair of boots", 13 | "a bottle", 14 | "a bowl", 15 | "a bracelet", 16 | "a set of bracers", 17 | "a brazier", 18 | "a brooch", 19 | "a broom", 20 | "a candle", 21 | "a cap", 22 | "a cape", 23 | "a censer", 24 | "a chain", 25 | "a circlet", 26 | "a cloak", 27 | "a codex", 28 | "a cube", 29 | "a deck", 30 | "a dust", 31 | "a figurine", 32 | "a flask", 33 | "a pair of gauntlets", 34 | "a gem", 35 | "a pair of gloves", 36 | "a hat", 37 | "a headband", 38 | "a helm", 39 | "a horn", 40 | "a jewel", 41 | "a key", 42 | "a libram", 43 | "a lyre", 44 | "a mantle", 45 | "a manual", 46 | "a medallion", 47 | "a necklace", 48 | "a pendant", 49 | "a periapt", 50 | "a set of pipes", 51 | "a potion", 52 | "a quiver", 53 | "a relic", 54 | "a ring", 55 | "a robe", 56 | "a rod", 57 | "a coil of rope", 58 | "a scarab", 59 | "a seashell", 60 | "a scroll", 61 | "a pair of slippers", 62 | "a stone", 63 | "a talisman", 64 | "a tome", 65 | "a wand" 66 | ] 67 | } 68 | ] 69 | } -------------------------------------------------------------------------------- /json/metal_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Metal (with indefinitive article) Generator", 3 | "resultPattern": "{metal wia}", 4 | "tables": [ 5 | { 6 | "name": "metal wia", 7 | "entries": [ 8 | "an adamantite", 9 | "a brass", 10 | "a copper", 11 | "an electrum", 12 | "a gold", 13 | "an iron", 14 | "a lead", 15 | "a mithral", 16 | "a pewter", 17 | "a platinum", 18 | "a silver", 19 | "a steel" 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /json/mission.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mission", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "mission generator", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "bugs": "", 11 | "to do": "Categorize quests by type.", 12 | "see": "", 13 | "date": "2017-12-15", 14 | "authors": "Esko Vesala.", 15 | "sources": "", 16 | "genre": "fantasy", 17 | "categories": [ 18 | "" 19 | ], 20 | "tables": [ 21 | { 22 | "name": "result", 23 | "explanation": "Variations for resultPattern output.", 24 | "entries": [ 25 | "{task}" 26 | ] 27 | }, 28 | { 29 | "name": "task", 30 | "explanation": "Task types by rarity.", 31 | "entries": [ 32 | { 33 | "m": 10, 34 | "v": "{common}" 35 | }, 36 | "{rare}" 37 | ] 38 | }, 39 | { 40 | "name": "common", 41 | "explanation": "Common task types.", 42 | "entries": [ 43 | "{obtain}" 44 | ] 45 | }, 46 | { 47 | "name": "rare", 48 | "explanation": "Rare task types.", 49 | "entries": [ 50 | "{destroy}" 51 | ] 52 | }, 53 | { 54 | "name": "obtain", 55 | "explanation": "Missions to get something.", 56 | "entries": [ 57 | "obtain {attribute} {item} from {lib:location}" 58 | ] 59 | }, 60 | { 61 | "name": "destroy", 62 | "explanation": "Missions to obliterate something.", 63 | "entries": [ 64 | "destroy {attribute} {item} in {lib:location}" 65 | ] 66 | }, 67 | { 68 | "name": "special", 69 | "explanation": "Special quest types.", 70 | "entries": [ 71 | "XXX" 72 | ] 73 | }, 74 | { 75 | "name": "attribute", 76 | "explanation": "Attributes describing the quest item.", 77 | "entries": [ 78 | "rare", 79 | "fabled", 80 | "sacred", 81 | "holy" 82 | ] 83 | }, 84 | { 85 | "name": "item", 86 | "explanation": "Target item of the quest.", 87 | "entries": [ 88 | "{lib:weapon}", 89 | "{lib:magicitem}" 90 | ] 91 | }, 92 | { 93 | "name": "complication", 94 | "explanation": "Complications for the quest.", 95 | "entries": [ 96 | "The mission giver is not the rightful owner of the target item." 97 | ] 98 | } 99 | ] 100 | } 101 | -------------------------------------------------------------------------------- /json/modifier.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "modifier table", 3 | "resultPattern": "{modifier}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Strengthening intensifiers and weakening mitigators for adjectives in descriptions.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 9 | "note": "Does not include 'quite', as its meaning can vary.", 10 | "to do": "Genre-specific modifiers?", 11 | "see": "", 12 | "date": "2017-10-06", 13 | "authors": "Esko Vesala", 14 | "sources": "BritishCouncil.org, EF.com.", 15 | "genre": "universal", 16 | "categories": [ 17 | "utility" 18 | ], 19 | "tags": "#language", 20 | "tables": [ 21 | { 22 | "name": "modifier", 23 | "explanation": "Basic modifiers.", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "explanation": "Common modifiers.", 35 | "entries": [ 36 | "{weak}", 37 | "{neutral}", 38 | "{intermediate}", 39 | "{strong}" 40 | ] 41 | }, 42 | { 43 | "name": "rare", 44 | "explanation": "Rare modifiers.", 45 | "entries": [ 46 | "{zero}", 47 | "{absolute}" 48 | ] 49 | }, 50 | { 51 | "name": "zero", 52 | "explanation": "Nullifying mitigators.", 53 | "entries": [ 54 | "nothing like", 55 | "not at all", 56 | "not even nearly", 57 | "a great deal less than" 58 | ] 59 | }, 60 | { 61 | "name": "weak", 62 | "explanation": "Weak mitigators.", 63 | "entries": [ 64 | "not especially", 65 | "not particularly", 66 | "just a little bit", 67 | "a little bit", 68 | "just a bit", 69 | "a bit", 70 | "a little", 71 | "slightly", 72 | "fairly", 73 | "rather", 74 | "pretty", 75 | "somewhat" 76 | ] 77 | }, 78 | { 79 | "name": "neutral", 80 | "explanation": "Neutral modifiers.", 81 | "entries": [ 82 | " ", 83 | "kind of", 84 | "no less than", 85 | "nothing less than", 86 | "nothing more than", 87 | "nothing short of", 88 | "clearly", 89 | "positevely", 90 | "undoubtedly", 91 | "unquestionably" 92 | ] 93 | }, 94 | { 95 | "name": "intermediate", 96 | "explanation": "intermediate intensifiers.", 97 | "entries": [ 98 | "very", 99 | "really", 100 | "highly", 101 | "downright", 102 | "truly" 103 | ] 104 | }, 105 | { 106 | "name": "strong", 107 | "explanation": "Strong intensifiers.", 108 | "entries": [ 109 | "remarkably", 110 | "significantly", 111 | "especially", 112 | "exceedingly", 113 | "exceptionally", 114 | "extremely", 115 | "seriously", 116 | "particularly", 117 | "uncommonly", 118 | "unusually", 119 | "terribly", 120 | "amazingly", 121 | "incredibly", 122 | "insanely" 123 | ] 124 | }, 125 | { 126 | "name": "absolute", 127 | "explanation": "Absolute intensifiers.", 128 | "entries": [ 129 | "completely", 130 | "entirely", 131 | "totally", 132 | "utterly", 133 | "perfectly", 134 | "absolutely", 135 | "ultimately" 136 | ] 137 | } 138 | ] 139 | } 140 | -------------------------------------------------------------------------------- /json/monsterAberration.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Aberration Generator", 3 | "resultPattern": "{monsterAberration}", 4 | "tables": [ 5 | { 6 | "name": "monsterAberration", 7 | "entries": [ 8 | "aboleth", 9 | "beholder", 10 | "blue slaad", 11 | "chuul", 12 | "cloaker", 13 | "death slaad", 14 | "gibbering mouther", 15 | "gray slaad", 16 | "green slaad", 17 | "grell", 18 | "intellect devourer", 19 | "mind flayer", 20 | "mind flayer arcanist", 21 | "nothic", 22 | "red slaad", 23 | "spectator" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterAberration_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Aberration (plural) Generator", 3 | "resultPattern": "{monsterAberration pl}", 4 | "tables": [ 5 | { 6 | "name": "monsterAberration pl", 7 | "entries": [ 8 | "aboleths", 9 | "beholders", 10 | "blue slaads", 11 | "chuuls", 12 | "cloakers", 13 | "death slaads", 14 | "gibbering mouthers", 15 | "gray slaads", 16 | "green slaads", 17 | "grells", 18 | "intellect devourers", 19 | "mind flayers", 20 | "mind flayer arcanists", 21 | "nothics", 22 | "red slaads", 23 | "spectators" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterAberration_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Aberration (with indefinitive article) Generator", 3 | "resultPattern": "{monsterAberration wia}", 4 | "tables": [ 5 | { 6 | "name": "monsterAberration wia", 7 | "entries": [ 8 | "an aboleth", 9 | "a beholder", 10 | "a blue slaad", 11 | "a chuul", 12 | "a cloaker", 13 | "a death slaad", 14 | "a gibbering mouther", 15 | "a gray slaad", 16 | "a green slaad", 17 | "a grell", 18 | "an intellect devourer", 19 | "a mind flayer", 20 | "a mind flayer arcanist", 21 | "a nothic", 22 | "a red slaad", 23 | "a spectator" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterConstruct.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Construct Generator", 3 | "resultPattern": "{monsterConstruct}", 4 | "tables": [ 5 | { 6 | "name": "monsterConstruct", 7 | "entries": [ 8 | "suit of animated armor", 9 | "clay golem", 10 | "duodrone", 11 | "flesh golem", 12 | "flying sword", 13 | "helmed horror", 14 | "homunculus", 15 | "iron golem", 16 | "monodrone", 17 | "pentadrone", 18 | "quadrone", 19 | "rug of smothering", 20 | "scarecrow", 21 | "shield guardian", 22 | "stone golem", 23 | "tridrone" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterConstruct_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Construct (plural) Generator", 3 | "resultPattern": "{monsterConstruct pl}", 4 | "tables": [ 5 | { 6 | "name": "monsterConstruct pl", 7 | "entries": [ 8 | "suits of animated armor", 9 | "clay golems", 10 | "duodrones", 11 | "flesh golems", 12 | "flying swords", 13 | "helmed horrors", 14 | "homunculi", 15 | "iron golems", 16 | "monodrones", 17 | "pentadrones", 18 | "quadrones", 19 | "rugs of smothering", 20 | "scarecrows", 21 | "shield guardians", 22 | "stone golems", 23 | "tridrones" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterConstruct_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Construct (with indefinitive article) Generator", 3 | "resultPattern": "{monsterConstruct wia}", 4 | "tables": [ 5 | { 6 | "name": "monsterConstruct wia", 7 | "entries": [ 8 | "a suit of animated armor", 9 | "a clay golem", 10 | "a duodrone", 11 | "a flesh golem", 12 | "a flying sword", 13 | "a helmed horror", 14 | "a homunculus", 15 | "an iron golem", 16 | "a monodrone", 17 | "a pentadrone", 18 | "a quadrone", 19 | "a rug of smothering", 20 | "a scarecrow", 21 | "a shield guardian", 22 | "a stone golem", 23 | "a tridrone" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /json/monsterElemental.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Elemental Generator", 3 | "resultPattern": "{monsterElemental}", 4 | "tables": [ 5 | { 6 | "name": "monsterElemental", 7 | "entries": [ 8 | "air elemental", 9 | "azer", 10 | "dao", 11 | "djinni", 12 | "dust mephit", 13 | "earth elemental", 14 | "efreeti", 15 | "fire elemental", 16 | "fire snake", 17 | "galeb duhr", 18 | "gargoyle", 19 | "ice mephit", 20 | "invisible stalker", 21 | "magma mephit", 22 | "magmin", 23 | "marid", 24 | "mud mephit", 25 | "salamander", 26 | "smoke mephit", 27 | "steam mephit", 28 | "water elemental", 29 | "water weird", 30 | "xorn" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /json/monsterElemental_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Elemental Generator", 3 | "resultPattern": "{monsterElemental}", 4 | "tables": [ 5 | { 6 | "name": "monsterElemental", 7 | "entries": [ 8 | "air elementals", 9 | "azers", 10 | "daos", 11 | "djinnis", 12 | "dust mephits", 13 | "earth elementals", 14 | "efreetis", 15 | "fire elementals", 16 | "fire snakes", 17 | "galeb duhrs", 18 | "gargoyles", 19 | "ice mephits", 20 | "invisible stalkers", 21 | "magma mephits", 22 | "magmins", 23 | "marids", 24 | "mud mephits", 25 | "salamanders", 26 | "smoke mephits", 27 | "steam mephits", 28 | "water elementals", 29 | "water weirds", 30 | "xorns" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /json/monsterElemental_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Elemental (with indefinitive article) Generator", 3 | "resultPattern": "{monsterElemental wia}", 4 | "tables": [ 5 | { 6 | "name": "monsterElemental wia", 7 | "entries": [ 8 | "an air elemental", 9 | "an azer", 10 | "a dao", 11 | "a djinni", 12 | "a dust mephit", 13 | "an earth elemental", 14 | "an efreeti", 15 | "a fire elemental", 16 | "a fire snake", 17 | "a galeb duhr", 18 | "a gargoyle", 19 | "an ice mephit", 20 | "an invisible stalker", 21 | "a magma mephit", 22 | "a magmin", 23 | "a marid", 24 | "a mud mephit", 25 | "a salamander", 26 | "a smoke mephit", 27 | "a steam mephit", 28 | "a water elemental", 29 | "a water weird", 30 | "a xorn" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /json/monsterEpic.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Epic Generator", 3 | "resultPattern": "{monsterEpic}", 4 | "tables": [ 5 | { 6 | "name": "monsterEpic", 7 | "entries": [ 8 | "Banshee", 9 | "Beholder", 10 | "Chimera", 11 | "Death Knight", 12 | "Demon", 13 | "Devil", 14 | "Dragon", 15 | "Empyrean", 16 | "Ghost", 17 | "Giant", 18 | "Gorgon", 19 | "Hydra", 20 | "Kraken", 21 | "Lich", 22 | "Medusa", 23 | "Mind Flayer", 24 | "Mummy", 25 | "Rakshasa", 26 | "Slaad", 27 | "Troll", 28 | "Vampire", 29 | "Wraith", 30 | "Wyvern", 31 | "Wolf" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /json/monsterGiant.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Giant Generator", 3 | "resultPattern": "{monsterGiant}", 4 | "tables": [ 5 | { 6 | "name": "monsterGiant", 7 | "entries": [ 8 | "cloud giant", 9 | "cyclops", 10 | "ettin", 11 | "fire giant", 12 | "fomorian", 13 | "frost giant", 14 | "half-ogre", 15 | "hill giant", 16 | "ogre", 17 | "oni", 18 | "stone giant", 19 | "storm giant", 20 | "troll" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/monsterGiant_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Giant Generator", 3 | "resultPattern": "{monsterGiant}", 4 | "tables": [ 5 | { 6 | "name": "monsterGiant", 7 | "entries": [ 8 | "cloud giants", 9 | "cyclopes", 10 | "ettins", 11 | "fire giants", 12 | "fomorians", 13 | "frost giants", 14 | "half-ogres", 15 | "hill giants", 16 | "ogres", 17 | "oni", 18 | "stone giants", 19 | "storm giants", 20 | "trolls" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/monsterGiant_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Giant (with indefinitive article) Generator", 3 | "resultPattern": "{monsterGiant wia}", 4 | "tables": [ 5 | { 6 | "name": "monsterGiant wia", 7 | "entries": [ 8 | "a cloud giant", 9 | "a cyclops", 10 | "an ettin", 11 | "a fire giant", 12 | "a fomorian", 13 | "a frost giant", 14 | "a half-ogre", 15 | "a hill giant", 16 | "an ogre", 17 | "an oni", 18 | "a stone giant", 19 | "a storm giant", 20 | "a troll" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/monsterHumanoid.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Humanoid Generator", 3 | "resultPattern": "{monsterHumanoid}", 4 | "tables": [ 5 | { 6 | "name": "monsterHumanoid", 7 | "entries": [ 8 | "aarakocra", 9 | "bugbear", 10 | "bullywug", 11 | "drow", 12 | "duergar", 13 | "githyanki", 14 | "githzerai", 15 | "gnoll", 16 | "goblin", 17 | "grimlock", 18 | "hobgoblin", 19 | "jackalwere", 20 | "kenku", 21 | "kobold", 22 | "kuo-toa", 23 | "lizardfolk", 24 | "merfolk", 25 | "orc", 26 | "quaggoth", 27 | "sahuagin", 28 | "svirfneblin", 29 | "thri-kreen", 30 | "troglodyte", 31 | "werebear", 32 | "wereboar", 33 | "wererat", 34 | "weretiger", 35 | "werewolf", 36 | "yuan-ti pureblood" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/monsterHumanoid_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Humanoid (plural) Generator", 3 | "resultPattern": "{monsterHumanoid pl}", 4 | "tables": [ 5 | { 6 | "name": "monsterHumanoid pl", 7 | "entries": [ 8 | "aarakocra", 9 | "bugbears", 10 | "bullywugs", 11 | "drow", 12 | "duergar", 13 | "githyanki", 14 | "githzerai", 15 | "gnolls", 16 | "goblins", 17 | "grimlocks", 18 | "hobgoblins", 19 | "jackalweres", 20 | "kenku", 21 | "kobolds", 22 | "kuo-toa", 23 | "lizardfolk", 24 | "merfolk", 25 | "orcs", 26 | "quaggoths", 27 | "sahuagin", 28 | "svirfneblin", 29 | "thri-kreen", 30 | "troglodytes", 31 | "werebears", 32 | "wereboars", 33 | "wererats", 34 | "weretigers", 35 | "werewolves", 36 | "yuan-ti purebloods" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/monsterHumanoid_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Monster, Humanoid (with indefinitive article) Generator", 3 | "resultPattern": "{monsterHumanoid wia}", 4 | "tables": [ 5 | { 6 | "name": "monsterHumanoid wia", 7 | "entries": [ 8 | "an aarakocra", 9 | "a bugbear", 10 | "a bullywug", 11 | "a drow", 12 | "a duergar", 13 | "a githyanki", 14 | "a githzerai", 15 | "a gnoll", 16 | "a goblin", 17 | "a grimlock", 18 | "a hobgoblin", 19 | "a jackalwere", 20 | "a kenku", 21 | "a kobold", 22 | "a kuo-toa", 23 | "a lizardfolk", 24 | "a merfolk", 25 | "an orc", 26 | "a quaggoth", 27 | "a sahuagin", 28 | "a svirfneblin", 29 | "a thri-kreen", 30 | "a troglodyte", 31 | "a werebear", 32 | "a wereboar", 33 | "a wererat", 34 | "a weretiger", 35 | "a werewolf", 36 | "a yuan-ti pureblood" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/nameInn.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Inn Name Generator", 3 | "resultPattern": "{prefix} {suffix}", 4 | "tables": [ 5 | { 6 | "name": "prefix", 7 | "entries": [ 8 | "Adorable", 9 | "Adult", 10 | "Ancient", 11 | "Angry", 12 | "Annoyed", 13 | "Arrogant", 14 | "Awoken", 15 | "Beautiful", 16 | "Biased", 17 | "Blazed", 18 | "Bloody", 19 | "Bored", 20 | "Brave", 21 | "Broken", 22 | "Busy", 23 | "Cheap", 24 | "Cheerful", 25 | "Clever", 26 | "{lib:adjColor}", 27 | "Confused", 28 | "Crazed", 29 | "Crazy", 30 | "Creepy", 31 | "Cruel", 32 | "Curious", 33 | "Cute", 34 | "Dead", 35 | "Depressed", 36 | "Drinking", 37 | "Drunk", 38 | "Eastern", 39 | "Eating", 40 | "Embarrassed", 41 | "Energetic", 42 | "Evil", 43 | "Excited", 44 | "Famous", 45 | "Fat", 46 | "Fighting", 47 | "Flying", 48 | "Foolish", 49 | "Gigantic", 50 | "Glamorous", 51 | "Glorious", 52 | "Good", 53 | "Happy", 54 | "Hidden", 55 | "Horrible", 56 | "Huge", 57 | "Hunting", 58 | "Hurt", 59 | "Ill", 60 | "Innocent", 61 | "Invisible", 62 | "Jealous", 63 | "Kind", 64 | "Lively", 65 | "Lonely", 66 | "Long", 67 | "Lovely", 68 | "Mad", 69 | "Magic", 70 | "Mighty", 71 | "Mysterious", 72 | "Nervous", 73 | "Northern", 74 | "Offensive", 75 | "Poor", 76 | "Powerful", 77 | "Proud", 78 | "Quick", 79 | "Random", 80 | "Rich", 81 | "Rough", 82 | "Running", 83 | "Sacred", 84 | "Sad", 85 | "Secret", 86 | "Short", 87 | "Silly", 88 | "Slow", 89 | "Smiling", 90 | "Southern", 91 | "Strange", 92 | "Strong", 93 | "Sweet", 94 | "Talented", 95 | "Tall", 96 | "Tasty", 97 | "Tearful", 98 | "Thoughtful", 99 | "Tiny", 100 | "Tired", 101 | "Ugly", 102 | "Undead", 103 | "Upset", 104 | "Walking", 105 | "Wandering", 106 | "Weak", 107 | "Weary", 108 | "Western", 109 | "Wild", 110 | "Woeful", 111 | "Wonderful" 112 | ] 113 | }, 114 | { 115 | "name": "suffix", 116 | "entries": [ 117 | "Aborigine", 118 | "Archer", 119 | "Artist", 120 | "Assistant", 121 | "Baby", 122 | "Baker", 123 | "Barbarian", 124 | "Bard", 125 | "Bear", 126 | "Beauty", 127 | "Bird", 128 | "Blacksmith", 129 | "Boar", 130 | "Bug", 131 | "Butterfly", 132 | "Camper", 133 | "Captain", 134 | "Cat", 135 | "Chief", 136 | "Comedian", 137 | "Cow", 138 | "Dancer", 139 | "Deer", 140 | "Devil", 141 | "Dog", 142 | "Enemy", 143 | "Engineer", 144 | "Farmer", 145 | "Fighter", 146 | "Foe", 147 | "Friend", 148 | "Ghoul", 149 | "Giant", 150 | "God", 151 | "Governor", 152 | "Guardian", 153 | "Guru", 154 | "Guy", 155 | "Hero", 156 | "Horde", 157 | "Horse", 158 | "Hound", 159 | "Hunter", 160 | "Husband", 161 | "Inhabitant", 162 | "Islander", 163 | "Jurist", 164 | "King", 165 | "Kitty", 166 | "Laborer", 167 | "Lady", 168 | "Lord", 169 | "Loser", 170 | "Lumberjack", 171 | "Mage", 172 | "Man", 173 | "Merchant", 174 | "Mermaid", 175 | "Miner", 176 | "Monk", 177 | "Nanny", 178 | "Necromant", 179 | "Nurse", 180 | "Nymph", 181 | "Ogre", 182 | "Optimist", 183 | "Overlord", 184 | "Pastor", 185 | "Peacock", 186 | "Phantom", 187 | "Philosopher", 188 | "Pig", 189 | "Poet", 190 | "Prisoner", 191 | "Puppy", 192 | "Rabbit", 193 | "Rat", 194 | "Sheep", 195 | "Singer", 196 | "Skeleton", 197 | "Soldier", 198 | "Spectator", 199 | "Thief", 200 | "Trickster", 201 | "Troll", 202 | "Tyrant", 203 | "Villain", 204 | "Virgin", 205 | "Wanderer", 206 | "Warrior", 207 | "Wife", 208 | "Witch", 209 | "Women", 210 | "Worker", 211 | "Worm", 212 | "Zombie" 213 | ] 214 | } 215 | ] 216 | } -------------------------------------------------------------------------------- /json/nameLocation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name, Location Generator", 3 | "resultPattern": "{nameLocation}", 4 | "tables": [ 5 | { 6 | "name": "nameLocation", 7 | "entries": [ 8 | "Aorgareth", 9 | "Abdoreen", 10 | "Albastria", 11 | "Alucan", 12 | "Argir", 13 | "Atelleis", 14 | "Avalla", 15 | "Azene", 16 | "Bantaron", 17 | "Bolori", 18 | "Bolstea", 19 | "Borelia", 20 | "Braud", 21 | "Brayvir", 22 | "Calthaysia", 23 | "Caroch", 24 | "Cavalair", 25 | "Corothon", 26 | "Covylis", 27 | "Croistlan", 28 | "Cylenen", 29 | "Dalcrist", 30 | "Deksleigh", 31 | "Dimrasul", 32 | "Dunnigem", 33 | "Dwien", 34 | "Dyrm", 35 | "Efarwyre", 36 | "Eimidlis", 37 | "Embrosio", 38 | "Enwerona", 39 | "Ephelian", 40 | "Erysmic", 41 | "Essibale", 42 | "Etherrard", 43 | "Excheth", 44 | "Falkyrne", 45 | "Falosia", 46 | "Fendawnin", 47 | "Folbrig", 48 | "Forkrith", 49 | "Fosinvero", 50 | "Gabradot", 51 | "Gaizronia", 52 | "Galewyn", 53 | "Glere", 54 | "Galilvany", 55 | "Hazrathi", 56 | "Heldend", 57 | "Iblaseen", 58 | "Ibriem", 59 | "Illistri", 60 | "Illmes", 61 | "Ithia", 62 | "Itrepis", 63 | "Jagonesse", 64 | "Jerabeleth", 65 | "Jendia", 66 | "Kaekris", 67 | "Kedir", 68 | "Kolcia", 69 | "Kirgath", 70 | "Llorjik", 71 | "Lothanyth", 72 | "Markythria", 73 | "Miroreth", 74 | "Myreddoden", 75 | "Nagendel", 76 | "Najanisse", 77 | "Nochwold", 78 | "Nold", 79 | "Ophidia", 80 | "Oralfuir", 81 | "Ouslisal", 82 | "Ovangal", 83 | "Pavyr", 84 | "Pirlanin", 85 | "Pontreath", 86 | "Pyruvia", 87 | "Quokorri", 88 | "Rylmaria", 89 | "Roinad", 90 | "Rhyndach", 91 | "Samertsi", 92 | "Selbaneth", 93 | "Sevusa", 94 | "Sibellicus", 95 | "Sorsahl", 96 | "Stelkander", 97 | "Suinorar", 98 | "Taldyan", 99 | "Tamich", 100 | "Tealdoran", 101 | "Teirynwaith", 102 | "Threnendel", 103 | "Ticuscea", 104 | "Trothera", 105 | "Tuginai", 106 | "Tyconig", 107 | "Ulsedauron", 108 | "Umbilar", 109 | "Usti", 110 | "Vereclya", 111 | "Veynstahz", 112 | "Welcuria", 113 | "Widrotia", 114 | "Wynvastle", 115 | "Xaelfyrn", 116 | "Ylcott", 117 | "Yotte", 118 | "Yres", 119 | "Zambrastil" 120 | ] 121 | } 122 | ] 123 | } -------------------------------------------------------------------------------- /json/nameRiver.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name, River Generator", 3 | "resultPattern": "{river}", 4 | "tables": [ 5 | { 6 | "name": "river", 7 | "entries": [ 8 | "{lib:nameLocation} {river suffix}", 9 | "{river prefix1} {river suffix}", 10 | "{river prefix1}{river prefix2} {river suffix}", 11 | "{river prefix3} {river suffix}" 12 | ] 13 | }, 14 | { 15 | "name": "river prefix1", 16 | "entries": [ 17 | "Berry", 18 | "Black", 19 | "Blue", 20 | "Clear", 21 | "Deep", 22 | "Ever", 23 | "Fire", 24 | "Frost", 25 | "Froth", 26 | "Green", 27 | "Lotus", 28 | "Peace", 29 | "Red", 30 | "Tremble", 31 | "Wild" 32 | ] 33 | }, 34 | { 35 | "name": "river prefix2", 36 | "entries": [ 37 | "bend", 38 | " Cascade", 39 | "drop", 40 | "falls", 41 | "feather", 42 | "flood", 43 | "flow", 44 | "glow", 45 | "light", 46 | "oak", 47 | " {lib:placeTerrain_formal}", 48 | " Point", 49 | " Rock", 50 | " Slide", 51 | "wander", 52 | "waters", 53 | "wine" 54 | ] 55 | }, 56 | { 57 | "name": "river prefix3", 58 | "entries": [ 59 | "Amber", 60 | "Cascading", 61 | "Deeping", 62 | "Diamond", 63 | "Ebony", 64 | "Emerald", 65 | "Enchanted", 66 | "Middle", 67 | "{lib:nameLocation}", 68 | "Placid", 69 | "Roaring", 70 | "Sacred", 71 | "Thundering", 72 | "Vanishing", 73 | "Wailing", 74 | "Willow" 75 | ] 76 | }, 77 | { 78 | "name": "river suffix", 79 | "entries": [ 80 | "Course", 81 | "Fork", 82 | "Rapids", 83 | "River", 84 | "Run", 85 | "Tributary" 86 | ] 87 | } 88 | ] 89 | } -------------------------------------------------------------------------------- /json/nameVillage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Village Name Generator", 3 | "resultPattern": "{prefix}{suffix}", 4 | "tables": [ 5 | { 6 | "name": "prefix", 7 | "entries": [ 8 | "Anvil", 9 | "Apple", 10 | "Ash", 11 | "Autumn", 12 | "Ax", 13 | "Barley", 14 | "Bear", 15 | "Bed", 16 | "Berry", 17 | "Black", 18 | "Blood", 19 | "Blue", 20 | "Broad", 21 | "Cat", 22 | "Coal", 23 | "Corn", 24 | "Cow", 25 | "Cross", 26 | "Dagger", 27 | "Deep", 28 | "East", 29 | "Fairy", 30 | "Farn", 31 | "Farns", 32 | "Fox", 33 | "Goat", 34 | "Grass", 35 | "Great", 36 | "Green", 37 | "Hay", 38 | "Holy", 39 | "Hunger", 40 | "Hunting", 41 | "Ivy", 42 | "June", 43 | "Killing", 44 | "Kings", 45 | "Knight", 46 | "Lady", 47 | "Little", 48 | "Lost", 49 | "Lower", 50 | "Man", 51 | "Mans", 52 | "March", 53 | "May", 54 | "Meadow", 55 | "Mine", 56 | "Moss", 57 | "New", 58 | "North", 59 | "Oak", 60 | "Old", 61 | "Ox", 62 | "Peach", 63 | "Red", 64 | "Smith", 65 | "South", 66 | "Spring", 67 | "Stead", 68 | "Summer", 69 | "Sunder", 70 | "Sword", 71 | "Upper", 72 | "War", 73 | "Water", 74 | "West", 75 | "Wheat", 76 | "White", 77 | "Winter" 78 | ] 79 | }, 80 | { 81 | "name": "suffix", 82 | "entries": [ 83 | "beach", 84 | "bog", 85 | "bourne", 86 | "bridge", 87 | "brook", 88 | "burgh", 89 | "castle", 90 | "church", 91 | "combe", 92 | "creek", 93 | "cross", 94 | "dale", 95 | "falls", 96 | "farm", 97 | "field", 98 | "ford", 99 | "grave", 100 | "grove", 101 | "hall", 102 | "haven", 103 | "hill", 104 | "house", 105 | "isle", 106 | "kirk", 107 | "lake", 108 | "land", 109 | "lands", 110 | "marsh", 111 | "mere", 112 | "moor", 113 | "pool", 114 | "port", 115 | "sea", 116 | "side", 117 | "stone", 118 | "thorne", 119 | "ton", 120 | "vale", 121 | "ville", 122 | "well", 123 | "wick", 124 | "wood" 125 | ] 126 | } 127 | ] 128 | } -------------------------------------------------------------------------------- /json/name_f_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name (Female) 1 Generator", 3 | "resultPattern": "{name f 1}", 4 | "tables": [ 5 | { 6 | "name": "name f 1", 7 | "entries": [ 8 | "Adah", 9 | "Adaline", 10 | "Adriel", 11 | "Anya", 12 | "Briseis", 13 | "Cara", 14 | "Cora", 15 | "Dagmar", 16 | "Delena", 17 | "Dionna", 18 | "Evadne", 19 | "Hana", 20 | "Hermelinda", 21 | "Hortensia", 22 | "Jynerva", 23 | "Lanelle", 24 | "Leisa", 25 | "Lizbeth", 26 | "Lorena", 27 | "Milanthe", 28 | "Petronila", 29 | "Qiana", 30 | "Quyen", 31 | "Sarielle", 32 | "Theia", 33 | "Urielle", 34 | "Valene", 35 | "Valeria", 36 | "Verda", 37 | "Xara" 38 | ] 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /json/name_f_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name (Female) Generator", 3 | "resultPattern": "{name f}", 4 | "tables": [ 5 | { 6 | "name": "name f", 7 | "entries": [ 8 | "Abriella", 9 | "Ahlia", 10 | "Beaunyld", 11 | "Caili", 12 | "Danyell", 13 | "Delma", 14 | "Eavella", 15 | "Faustina", 16 | "Florine", 17 | "Gwynn", 18 | "Ivoris", 19 | "Jacinta", 20 | "Johana", 21 | "Karri", 22 | "Kimber", 23 | "Kirstalia", 24 | "Naida", 25 | "Nakesha", 26 | "Noelia", 27 | "Olvyris", 28 | "Raina", 29 | "Rosalind", 30 | "Salema", 31 | "Tiania", 32 | "Ursula", 33 | "Usha", 34 | "Xiomara", 35 | "Yrnette", 36 | "Zenia", 37 | "Zoraida" 38 | ] 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /json/name_m_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name (Male) 1 Generator", 3 | "resultPattern": "{name m 1}", 4 | "tables": [ 5 | { 6 | "name": "name m 1", 7 | "entries": [ 8 | "Abarden", 9 | "Ambrose", 10 | "Boaldeir", 11 | "Brylant", 12 | "Crestin", 13 | "Dagos", 14 | "Garith", 15 | "Heramon", 16 | "Iagan", 17 | "Kibidon", 18 | "Kael", 19 | "Lyron", 20 | "Merkesh", 21 | "Modesteles", 22 | "Monterareis", 23 | "Nyfain", 24 | "Orellis", 25 | "Pasquale", 26 | "Phairidon", 27 | "Porfirio", 28 | "Qysan", 29 | "Rhillion", 30 | "Rogist", 31 | "Rythern", 32 | "Sebastian", 33 | "Thaniel", 34 | "Tyralis", 35 | "Urien", 36 | "Virgilis", 37 | "Welentor" 38 | ] 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /json/name_m_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name (Female) Generator", 3 | "resultPattern": "{name f}", 4 | "tables": [ 5 | { 6 | "name": "name f", 7 | "entries": [ 8 | "Akarzil", 9 | "Barryn", 10 | "Bregan", 11 | "Casdin", 12 | "Celbahr", 13 | "Daermond", 14 | "Defyrion", 15 | "Elidigon", 16 | "Guthford", 17 | "Halmar", 18 | "Ilengar", 19 | "Iredorn", 20 | "Jespar", 21 | "Jathinest", 22 | "Larwahl", 23 | "Malhshenz", 24 | "Namourn", 25 | "Ocarin", 26 | "Omarion", 27 | "Pelebroc", 28 | "Ranbalin", 29 | "Rhygel", 30 | "Sil'forrin", 31 | "Sothales", 32 | "Trendall", 33 | "Uerthin", 34 | "Vared", 35 | "Voudim", 36 | "Yveserin", 37 | "Zecane" 38 | ] 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /json/nounDirection.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Noun, Direction Generator", 3 | "resultPattern": "{nounDirection}", 4 | "tables": [ 5 | { 6 | "name": "nounDirection", 7 | "entries": [ 8 | "east", 9 | "north", 10 | "northeast", 11 | "northwest", 12 | "south", 13 | "southeast", 14 | "southwest", 15 | "west" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /json/personAppearance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Appearance Generator", 3 | "resultPattern": "{personAppearance}", 4 | "tables": [ 5 | { 6 | "name": "personAppearance", 7 | "entries": [ 8 | "albino", 9 | "attractive", 10 | "bald", 11 | "bearded", 12 | "blind", 13 | "crippled", 14 | "drunken", 15 | "emaciated", 16 | "foreign", 17 | "long-haired", 18 | "muscular", 19 | "obese", 20 | "odorous", 21 | "old", 22 | "one-armed", 23 | "one-eyed", 24 | "rotund", 25 | "petite", 26 | "scantily-clad", 27 | "scarred", 28 | "short", 29 | "skinny", 30 | "tall", 31 | "tattooed", 32 | "ugly" 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /json/personAppearance_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Appearance (with indefinitive article) Generator", 3 | "resultPattern": "{personAppearance wia}", 4 | "tables": [ 5 | { 6 | "name": "personAppearance wia", 7 | "entries": [ 8 | "an albino", 9 | "an attractive", 10 | "a bald", 11 | "a bearded", 12 | "a blind", 13 | "a crippled", 14 | "a drunken", 15 | "an emaciated", 16 | "a foreign", 17 | "a long-haired", 18 | "a muscular", 19 | "an obese", 20 | "an odorous", 21 | "an old", 22 | "a one-armed", 23 | "a one-eyed", 24 | "a rotund", 25 | "a petite", 26 | "a scantily-clad", 27 | "a scarred", 28 | "a short", 29 | "a skinny", 30 | "a tall", 31 | "a tattooed", 32 | "an ugly" 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /json/personAppellationHero.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Hero Appellation Generator", 3 | "resultPattern": "{personAppellationHero}", 4 | "tables": [ 5 | { 6 | "name": "personAppellationHero", 7 | "entries": [ 8 | "Artisan", 9 | "Bane", 10 | "Champion", 11 | "Conqueror", 12 | "Crusader", 13 | "Defender", 14 | "Explorer", 15 | "Guardian", 16 | "Herald", 17 | "Hunter", 18 | "Illuminator", 19 | "Justiciar", 20 | "Keeper", 21 | "Light", 22 | "Lord", 23 | "Loremaster", 24 | "Luminary", 25 | "Pacifier", 26 | "Patron", 27 | "Peacekeeper", 28 | "Pilgrim", 29 | "Preserver", 30 | "Protector", 31 | "Purifier", 32 | "Sage", 33 | "Savior", 34 | "Scion", 35 | "Seeker", 36 | "Shield", 37 | "Siegebreaker", 38 | "Spear", 39 | "Star", 40 | "Storm", 41 | "Sword", 42 | "Tamer", 43 | "Vanquisher", 44 | "Warden", 45 | "Warlord", 46 | "Wrath" 47 | ] 48 | } 49 | ] 50 | } -------------------------------------------------------------------------------- /json/personAppellationHero_adj.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Hero Appellation (Adjective) Generator", 3 | "resultPattern": "{personAppellationHero adj}", 4 | "tables": [ 5 | { 6 | "name": "personAppellationHero adj", 7 | "entries": [ 8 | "Beloved", 9 | "Beneficent", 10 | "Blessed", 11 | "Enlightened", 12 | "Exalted", 13 | "Favored", 14 | "Fearless", 15 | "Great", 16 | "Illustrious", 17 | "Indomitable", 18 | "Legendary", 19 | "Lucid", 20 | "Lucky", 21 | "Merciless", 22 | "Noble", 23 | "Patient", 24 | "Prestigious", 25 | "Primal", 26 | "Proven", 27 | "Provident", 28 | "Purified", 29 | "Relentess", 30 | "Silent", 31 | "Tranquil", 32 | "Undaunted", 33 | "Undying", 34 | "Unrelenting" 35 | ] 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /json/personClass.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Class Generator", 3 | "resultPattern": "{personClass}", 4 | "tables": [ 5 | { 6 | "name": "personClass", 7 | "entries": [ 8 | "barbarian", 9 | "bard", 10 | "cleric", 11 | "druid", 12 | "figter", 13 | "monk", 14 | "paladin", 15 | "ranger", 16 | "rogue", 17 | "sorcerer", 18 | "warlock", 19 | "wizard" 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /json/personCraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Craft Generator", 3 | "resultPattern": "{personCraft}", 4 | "tables": [ 5 | { 6 | "name": "personCraft", 7 | "entries": [ 8 | "alchemist", 9 | "armorer", 10 | "baker", 11 | "basketweaver", 12 | "blacksmith", 13 | "bookbinder", 14 | "bowyer", 15 | "brewer", 16 | "broderer", 17 | "brownsmith", 18 | "builder", 19 | "butcher", 20 | "carpenter", 21 | "cartwright", 22 | "chandler", 23 | "clockmaker", 24 | "cobbler", 25 | "cook", 26 | "cooper", 27 | "cutler", 28 | "dyer", 29 | "embosser", 30 | "enameler", 31 | "engraver", 32 | "fletcher", 33 | "founder", 34 | "fuller", 35 | "furrier", 36 | "gemcutter", 37 | "girdler", 38 | "glassblower", 39 | "glazier", 40 | "glover", 41 | "goldsmith", 42 | "habberdasher", 43 | "hatmaker", 44 | "herbalist", 45 | "horner", 46 | "illuminator", 47 | "instrumentalist", 48 | "knitter", 49 | "leatherworker", 50 | "locksmith", 51 | "luthier", 52 | "mason", 53 | "miller", 54 | "netmaker", 55 | "oculist", 56 | "painter", 57 | "papermaker", 58 | "perfumier", 59 | "pewterer", 60 | "potter", 61 | "pyrographer", 62 | "ropemaker", 63 | "saddler", 64 | "shipwright", 65 | "silversmith", 66 | "skinner", 67 | "spicer", 68 | "spinner", 69 | "stationer", 70 | "tailor", 71 | "tanner", 72 | "thatcher", 73 | "tinker", 74 | "tobacconist", 75 | "trap maker", 76 | "turner", 77 | "vintner", 78 | "weaponsmith", 79 | "weaver", 80 | "wireworker" 81 | ] 82 | } 83 | ] 84 | } -------------------------------------------------------------------------------- /json/personCraft_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Craft (with indefinitive article) Generator", 3 | "resultPattern": "{personCraft wia}", 4 | "tables": [ 5 | { 6 | "name": "personCraft wia", 7 | "entries": [ 8 | "an alchemist", 9 | "an armorer", 10 | "a baker", 11 | "a basketweaver", 12 | "a blacksmith", 13 | "a bookbinder", 14 | "a bowyer", 15 | "a brewer", 16 | "a broderer", 17 | "a brownsmith", 18 | "a builder", 19 | "a butcher", 20 | "a carpenter", 21 | "a cartwright", 22 | "a chandler", 23 | "a clockmaker", 24 | "a cobbler", 25 | "a cook", 26 | "a cooper", 27 | "a cutler", 28 | "a dyer", 29 | "an embosser", 30 | "an enameler", 31 | "an engraver", 32 | "a fletcher", 33 | "a founder", 34 | "a fuller", 35 | "a furrier", 36 | "a gemcutter", 37 | "a girdler", 38 | "a glassblower", 39 | "a glazier", 40 | "a glover", 41 | "a goldsmith", 42 | "a habberdasher", 43 | "a hatmaker", 44 | "a herbalist", 45 | "a horner", 46 | "an illuminator", 47 | "an instrumentalist", 48 | "a knitter", 49 | "a leatherworker", 50 | "a locksmith", 51 | "a luthier", 52 | "a mason", 53 | "a miller", 54 | "a netmaker", 55 | "an oculist", 56 | "a painter", 57 | "a papermaker", 58 | "a perfumier", 59 | "a pewterer", 60 | "a potter", 61 | "a pyrographer", 62 | "a ropemaker", 63 | "a saddler", 64 | "a shipwright", 65 | "a silversmith", 66 | "a skinner", 67 | "a spicer", 68 | "a spinner", 69 | "a stationer", 70 | "a tailor", 71 | "a tanner", 72 | "a thatcher", 73 | "a tinker", 74 | "a tobacconist", 75 | "a trap maker", 76 | "a turner", 77 | "a vintner", 78 | "a weaponsmith", 79 | "a weaver", 80 | "a wireworker" 81 | ] 82 | } 83 | ] 84 | } -------------------------------------------------------------------------------- /json/personDisposition.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Disposition Generator", 3 | "resultPattern": "{personDisposition}", 4 | "tables": [ 5 | { 6 | "name": "personDisposition", 7 | "entries": [ 8 | "absorbed", 9 | "agitated", 10 | "aggressive", 11 | "argumentative", 12 | "assertive", 13 | "charming", 14 | "confused", 15 | "conscientious", 16 | "crazed", 17 | "curious", 18 | "dazed", 19 | "distracted", 20 | "domineering", 21 | "eager", 22 | "enthusiastic", 23 | "exhausted", 24 | "extroverted", 25 | "frightened", 26 | "homeless", 27 | "humorous", 28 | "incensed", 29 | "inconsiderate", 30 | "indiscreet", 31 | "impassioned", 32 | "impatient", 33 | "impetuous", 34 | "introverted", 35 | "irritating", 36 | "jolly", 37 | "local", 38 | "mysterious", 39 | "mute", 40 | "nauseating", 41 | "overbearing", 42 | "overzealous", 43 | "nervous", 44 | "passive", 45 | "reserved", 46 | "rude", 47 | "serious", 48 | "shy", 49 | "timid", 50 | "well-mannered", 51 | "wounded" 52 | ] 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /json/personDisposition_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Disposition (with indefinitive article) Generator", 3 | "resultPattern": "{personDisposition wia}", 4 | "tables": [ 5 | { 6 | "name": "personDisposition wia", 7 | "entries": [ 8 | "an absorbed", 9 | "an agitated", 10 | "an aggressive", 11 | "an argumentative", 12 | "an assertive", 13 | "a charming", 14 | "a confused", 15 | "a conscientious", 16 | "a crazed", 17 | "a curious", 18 | "a dazed", 19 | "a distracted", 20 | "a domineering", 21 | "an eager", 22 | "an enthusiastic", 23 | "an exhausted", 24 | "an extroverted", 25 | "a frightened", 26 | "a homeless", 27 | "a humorous", 28 | "an incensed", 29 | "an inconsiderate", 30 | "an indiscreet", 31 | "an impassioned", 32 | "an impatient", 33 | "an impetuous", 34 | "an introverted", 35 | "an irritating", 36 | "a jolly", 37 | "a local", 38 | "a mysterious", 39 | "a mute", 40 | "a nauseating", 41 | "an overbearing", 42 | "an overzealous", 43 | "a nervous", 44 | "a passive", 45 | "a reserved", 46 | "a rude", 47 | "a serious", 48 | "a shy", 49 | "a timid", 50 | "a well-mannered", 51 | "a wounded" 52 | ] 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /json/personGender.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Gender Generator", 3 | "resultPattern": "{personGender}", 4 | "tables": [ 5 | { 6 | "name": "personGender", 7 | "entries": [ 8 | "female", 9 | "male" 10 | ] 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /json/personProfession.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Profession Generator", 3 | "resultPattern": "{personProfession}", 4 | "tables": [ 5 | { 6 | "name": "personProfession", 7 | "entries": [ 8 | "acrobat", 9 | "adventurer", 10 | "animal handler", 11 | "apothecary", 12 | "appraiser", 13 | "arbitrator", 14 | "architect", 15 | "armorist", 16 | "arms instructor", 17 | "artist", 18 | "assassin", 19 | "assayer", 20 | "barber", 21 | "barrister", 22 | "beggar", 23 | "bouncer", 24 | "brawler", 25 | "breeder", 26 | "calligraphist", 27 | "caravaneer", 28 | "carriage driver", 29 | "cartographer", 30 | "chimney sweep", 31 | "chirugeon", 32 | "clergyman", 33 | "clerk", 34 | "clothier", 35 | "courtesan", 36 | "dancer", 37 | "dentist", 38 | "entertainer", 39 | "escape artist", 40 | "fence", 41 | "ferrier", 42 | "fisherman", 43 | "fishmonger", 44 | "forrester", 45 | "fortune teller", 46 | "fruiterer", 47 | "gambler", 48 | "gardener", 49 | "gladiator", 50 | "grave digger", 51 | "grocier", 52 | "guard", 53 | "guide", 54 | "herald", 55 | "herder", 56 | "hunter", 57 | "innkeeper", 58 | "interpreter", 59 | "juggler", 60 | "landlord", 61 | "launderer", 62 | "logger", 63 | "mercer", 64 | "messenger", 65 | "money lender", 66 | "musician", 67 | "navigator", 68 | "noble", 69 | "novitiate", 70 | "painter", 71 | "patternmaker", 72 | "pavier", 73 | "plasterer", 74 | "plumber", 75 | "poet", 76 | "poulterer", 77 | "priest", 78 | "rancher", 79 | "rat catcher", 80 | "robber", 81 | "sage", 82 | "sailor", 83 | "sapper", 84 | "scavenger", 85 | "scholar", 86 | "scout", 87 | "scribe", 88 | "server", 89 | "shearer", 90 | "slaver", 91 | "spy", 92 | "squire", 93 | "stable hand", 94 | "stainer", 95 | "tavernkeeper", 96 | "teacher", 97 | "teamster", 98 | "thug", 99 | "trader", 100 | "trapper", 101 | "tutor", 102 | "veterinarian", 103 | "wrestler", 104 | "writer" 105 | ] 106 | } 107 | ] 108 | } -------------------------------------------------------------------------------- /json/personProfession_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Profession (with indefinitive article) Generator", 3 | "resultPattern": "{personProfession wia}", 4 | "tables": [ 5 | { 6 | "name": "personProfession wia", 7 | "entries": [ 8 | "an acrobat", 9 | "an adventurer", 10 | "an animal handler", 11 | "an apothecary", 12 | "an appraiser", 13 | "an arbitrator", 14 | "an architect", 15 | "an armorist", 16 | "an arms instructor", 17 | "an artist", 18 | "an assassin", 19 | "an assayer", 20 | "a barber", 21 | "a barrister", 22 | "a beggar", 23 | "a bouncer", 24 | "a brawler", 25 | "a breeder", 26 | "a calligraphist", 27 | "a caravaneer", 28 | "a carriage driver", 29 | "a cartographer", 30 | "a chimney sweep", 31 | "a chirugeon", 32 | "a clergyman", 33 | "a clerk", 34 | "a clothier", 35 | "a courtesan", 36 | "a dancer", 37 | "a dentist", 38 | "an entertainer", 39 | "an escape artist", 40 | "a fence", 41 | "a ferrier", 42 | "a fisherman", 43 | "a fishmonger", 44 | "a forrester", 45 | "a fortune teller", 46 | "a fruiterer", 47 | "a gambler", 48 | "a gardener", 49 | "a gladiator", 50 | "a grave digger", 51 | "a grocier", 52 | "a guard", 53 | "a guide", 54 | "a herald", 55 | "a herder", 56 | "a hunter", 57 | "an innkeeper", 58 | "an interpreter", 59 | "a juggler", 60 | "a landlord", 61 | "a launderer", 62 | "a logger", 63 | "a mercer", 64 | "a messenger", 65 | "a money lender", 66 | "a musician", 67 | "a navigator", 68 | "a noble", 69 | "a novitiate", 70 | "a painter", 71 | "a patternmaker", 72 | "a pavier", 73 | "a pirate", 74 | "a plasterer", 75 | "a plumber", 76 | "a poet", 77 | "a poltier", 78 | "a priest", 79 | "a rancher", 80 | "a rat catcher", 81 | "a robber", 82 | "a sage", 83 | "a sailor", 84 | "a sapper", 85 | "a scavenger", 86 | "a scholar", 87 | "a scout", 88 | "a scribe", 89 | "a server", 90 | "a shearer", 91 | "a slaver", 92 | "a spy", 93 | "a squire", 94 | "a stable hand", 95 | "a stainer", 96 | "a tavernkeeper", 97 | "a teacher", 98 | "a teamster", 99 | "a thug", 100 | "a trader", 101 | "a trapper", 102 | "a tutor", 103 | "a veterinarian", 104 | "a wrestler", 105 | "a writer" 106 | ] 107 | } 108 | ] 109 | } -------------------------------------------------------------------------------- /json/personRace.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Race Generator", 3 | "resultPattern": "{personRace}", 4 | "tables": [ 5 | { 6 | "name": "personRace", 7 | "entries": [ 8 | "aasimar", 9 | "dwarf", 10 | "elf", 11 | "halfling", 12 | "human", 13 | "dragonborn", 14 | "gnome", 15 | "half-elf", 16 | "half-orc", 17 | "tiefling" 18 | ] 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /json/personRace_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Race (plural) Generator", 3 | "resultPattern": "{personRace pl}", 4 | "tables": [ 5 | { 6 | "name": "personRace pl", 7 | "entries": [ 8 | "aasimar", 9 | "dwarves", 10 | "elves", 11 | "halflings", 12 | "humans", 13 | "dragonborn", 14 | "gnomes", 15 | "half-elves", 16 | "half-orcs", 17 | "tieflings" 18 | ] 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /json/personRace_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Race (with indefinitive article) Generator", 3 | "resultPattern": "{personRace wia}", 4 | "tables": [ 5 | { 6 | "name": "personRace wia", 7 | "entries": [ 8 | "an aasimar", 9 | "a dwarf", 10 | "an elf", 11 | "a halfling", 12 | "a human", 13 | "a dragonborn", 14 | "a gnome", 15 | "a half-elf", 16 | "a half-orc", 17 | "a tiefling" 18 | ] 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /json/personRelation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Relation", 3 | "resultPattern": "{personRelation}", 4 | "tables": [ 5 | { 6 | "name": "personRelation", 7 | "entries": [ 8 | {"m": 10, 9 | "v": "{common}" 10 | }, 11 | "{rare}" 12 | ] 13 | }, 14 | { 15 | "name": "common", 16 | "entries": [ 17 | "mother", 18 | "father", 19 | "sister", 20 | "brother", 21 | "aunt", 22 | "uncle", 23 | "niece", 24 | "nephew" 25 | ] 26 | }, 27 | { 28 | "name": "rare", 29 | "entries": [ 30 | "twin brother", 31 | "twin sister" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /json/personReputation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Reputation Generator", 3 | "resultPattern": "{personReputation}", 4 | "tables": [ 5 | { 6 | "name": "personReputation", 7 | "entries": [ 8 | "ancient", 9 | "blind", 10 | "dishonorable", 11 | "evil", 12 | "famous", 13 | "good", 14 | "heartless", 15 | "holy", 16 | "honorable", 17 | "infamous", 18 | "lecherous", 19 | "legendary", 20 | "long lost", 21 | "mad", 22 | "maniacal", 23 | "mute", 24 | "murderous", 25 | "mysterious", 26 | "pompous", 27 | "traitorous", 28 | "tyrannical", 29 | "undead", 30 | "undying", 31 | "venerable", 32 | "wandering" 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /json/personReputation_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Person, Reputation (with indefinitive article) Generator", 3 | "resultPattern": "{personReputation wia}", 4 | "tables": [ 5 | { 6 | "name": "personReputation wia", 7 | "entries": [ 8 | "an ancient", 9 | "a blind", 10 | "a dishonorable", 11 | "an evil", 12 | "a famous", 13 | "a good", 14 | "a heartless", 15 | "a holy", 16 | "an honorable", 17 | "an infamous", 18 | "a lecherous", 19 | "a legendary", 20 | "a long lost", 21 | "a mad", 22 | "a maniacal", 23 | "a mute", 24 | "a murderous", 25 | "a mysterious", 26 | "a pompous", 27 | "a traitorous", 28 | "a tyrannical", 29 | "an undead", 30 | "an undying", 31 | "a venerable", 32 | "a wandering" 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /json/placeAdventure.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Adventure Generator", 3 | "resultPattern": "{placeAdventure}", 4 | "tables": [ 5 | { 6 | "name": "placeAdventure", 7 | "entries": [ 8 | "archive", 9 | "barrow", 10 | "bastion", 11 | "cave", 12 | "chamber", 13 | "chapel", 14 | "citadel", 15 | "crypt", 16 | "dungeon", 17 | "forge", 18 | "garden", 19 | "grotto", 20 | "hall", 21 | "labyrinth", 22 | "lair", 23 | "library", 24 | "maze", 25 | "mine", 26 | "monastery", 27 | "necropolis", 28 | "pit", 29 | "quarry", 30 | "rift", 31 | "sanctuary", 32 | "sewer", 33 | "ship", 34 | "spire", 35 | "tomb", 36 | "tunnel", 37 | "undercroft", 38 | "vessel", 39 | "warren", 40 | "well", 41 | "wizard's tower" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /json/placeAdventure_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Adventure (formal) Generator", 3 | "resultPattern": "{placeAdventure formal}", 4 | "tables": [ 5 | { 6 | "name": "placeAdventure formal", 7 | "entries": [ 8 | "Archive", 9 | "Barrow", 10 | "Bastion", 11 | "Cave", 12 | "Chamber", 13 | "Chapel", 14 | "Citadel", 15 | "Crypt", 16 | "Dungeon", 17 | "Forge", 18 | "Garden", 19 | "Grotto", 20 | "Hall", 21 | "Labyrinth", 22 | "Lair", 23 | "Library", 24 | "Maze", 25 | "Mine", 26 | "Monastery", 27 | "Necropolis", 28 | "Pit", 29 | "Quarry", 30 | "Rift", 31 | "Sanctuary", 32 | "Sewer", 33 | "Ship", 34 | "Spire", 35 | "Tomb", 36 | "Tunnel", 37 | "Undercroft", 38 | "Vessel", 39 | "Warren", 40 | "Well", 41 | "Wizard's Tower" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /json/placeAdventure_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Adventure (plural) Generator", 3 | "resultPattern": "{placeAdventure pl}", 4 | "tables": [ 5 | { 6 | "name": "placeAdventure pl", 7 | "entries": [ 8 | "archives", 9 | "barrows", 10 | "bastions", 11 | "caves", 12 | "chambers", 13 | "chapels", 14 | "citadels", 15 | "crypts", 16 | "dungeons", 17 | "forges", 18 | "gardens", 19 | "grottoes", 20 | "halls", 21 | "labyrinths", 22 | "lairs", 23 | "libraries", 24 | "mazes", 25 | "mines", 26 | "monasteries", 27 | "necropolises", 28 | "pits", 29 | "quarries", 30 | "rifts", 31 | "sanctuaries", 32 | "sewers", 33 | "ships", 34 | "spires", 35 | "tombs", 36 | "tunnels", 37 | "undercrofts", 38 | "vessels", 39 | "warrens", 40 | "wells", 41 | "wizard's towers" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /json/placeAdventure_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Adventure (with indefinitive article) Generator", 3 | "resultPattern": "{placeAdventure wia}", 4 | "tables": [ 5 | { 6 | "name": "placeAdventure wia", 7 | "entries": [ 8 | "an archive", 9 | "a barrow", 10 | "a bastion", 11 | "a cave", 12 | "a chamber", 13 | "a chapel", 14 | "a citadel", 15 | "a crypt", 16 | "a dungeon", 17 | "a forge", 18 | "a garden", 19 | "a grotto", 20 | "a hall", 21 | "a labyrinth", 22 | "a lair", 23 | "a library", 24 | "a maze", 25 | "a mine", 26 | "a monastery", 27 | "a necropolis", 28 | "a pit", 29 | "a quarry", 30 | "a rift", 31 | "a sanctuary", 32 | "a sewer", 33 | "a ship", 34 | "a spire", 35 | "a tomb", 36 | "a tunnel", 37 | "an undercroft", 38 | "a vessel", 39 | "a warren", 40 | "a well", 41 | "a wizard's tower" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /json/placeHyborianKingdomNames.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Hyborian Kingdom Generator", 3 | "resultPattern": "{placeHyborianKingdom}", 4 | "tables": [ 5 | { 6 | "name": "placeHyborianKingdom", 7 | "explanation": "Hyborian Kingdoms.", 8 | "entries": [ 9 | { 10 | "m": 10, 11 | "v": "{common}" 12 | }, 13 | { 14 | "m": 3, 15 | "v": "{rare}" 16 | }, 17 | "{very rare}" 18 | ] 19 | }, 20 | { 21 | "name": "common", 22 | "entries": [ 23 | "Aquilonia", 24 | "Argos", 25 | "Asgard", 26 | "Border Kingdoms", 27 | "Bossonian Marches", 28 | "Brythunia", 29 | "Cimmeria", 30 | "Corinthia", 31 | "Gunderland", 32 | "Hyperborea", 33 | "Hyrkania", 34 | "Iranistan", 35 | "Khoraja", 36 | "Koth", 37 | "Nemedia", 38 | "Ophir", 39 | "Picts", 40 | "Poitain", 41 | "Shem", 42 | "Stygia", 43 | "Turan", 44 | "Vanaheim", 45 | "Zamora", 46 | "Zingara" 47 | ] 48 | }, 49 | { 50 | "name": "rare", 51 | "entries": [ 52 | "Afghulistan", 53 | "Amazon", 54 | "Barachan Islands", 55 | "Darfar", 56 | "Kambuja", 57 | "Keshan", 58 | "Khauran", 59 | "Khitai", 60 | "Kosala", 61 | "Kusan", 62 | "Kush", 63 | "Punt", 64 | "Vendhya", 65 | "Zembabwei" 66 | ] 67 | }, 68 | { 69 | "name": "very rare", 70 | "entries": [ 71 | "Acheron", 72 | "Alkmeenon", 73 | "Kozaki", 74 | "Meru", 75 | "Pathenia", 76 | "Pelishtim", 77 | "Uttara Kuru", 78 | "Yamatai", 79 | "Wadai", 80 | "Wazuli", 81 | "Zuagir" 82 | ] 83 | } 84 | ] 85 | } -------------------------------------------------------------------------------- /json/placePlane.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Plane Generator", 3 | "resultPattern": "{placePlane}", 4 | "tables": [ 5 | { 6 | "name": "placePlane", 7 | "entries": [ 8 | "the Abyss", 9 | "Acheron", 10 | "Arborea", 11 | "Arcadia", 12 | "the Astral Plane", 13 | "the Beastlands", 14 | "Bytopia", 15 | "Carceri", 16 | "the Elemental Chaos", 17 | "Elysium", 18 | "the Ethereal Plane", 19 | "the Feywild", 20 | "Gehenna", 21 | "Hades", 22 | "Limbo", 23 | "Mechanus", 24 | "Mount Celstia", 25 | "the Nine Hells", 26 | "the Outlands", 27 | "Pandemonium", 28 | "the Plane of Air", 29 | "the Plane of Earth", 30 | "the Plane of Fire", 31 | "the Plane of Water", 32 | "Shadowfell", 33 | "Ysgard" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/placeSettlement.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Settlement Generator", 3 | "resultPattern": "{placeSettlement}", 4 | "tables": [ 5 | { 6 | "name": "placeSettlement", 7 | "entries": [ 8 | "castle", 9 | "city", 10 | "conurbation", 11 | "fort", 12 | "fortified city", 13 | "fortified town", 14 | "fortress", 15 | "hamlet", 16 | "metropolis", 17 | "thorpe", 18 | "town", 19 | "village" 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /json/placeSettlement_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Settlement (formal) Generator", 3 | "resultPattern": "{placeSettlement formal}", 4 | "tables": [ 5 | { 6 | "name": "placeSettlement formal", 7 | "entries": [ 8 | "Castle", 9 | "City", 10 | "Conurbation", 11 | "Fort", 12 | "Fortified City", 13 | "Fortified Town", 14 | "Fortress", 15 | "Hamlet", 16 | "Metropolis", 17 | "Thorpe", 18 | "Town", 19 | "Village" 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /json/placeSettlement_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Settlement (plural) Generator", 3 | "resultPattern": "{placeSettlement pl}", 4 | "tables": [ 5 | { 6 | "name": "placeSettlement pl", 7 | "entries": [ 8 | "castles", 9 | "cities", 10 | "conurbations", 11 | "forts", 12 | "fortified cities", 13 | "fortified towns", 14 | "fortresses", 15 | "hamlets", 16 | "metropolises", 17 | "thorpes", 18 | "towns", 19 | "villages" 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /json/placeState.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, State Generator", 3 | "resultPattern": "{placeState}", 4 | "tables": [ 5 | { 6 | "name": "placeState", 7 | "entries": [ 8 | "archbarony", 9 | "archclericy", 10 | "archduchy", 11 | "barony", 12 | "brotherhood", 13 | "city-state", 14 | "clericy", 15 | "county", 16 | "duchy", 17 | "earldom", 18 | "empire", 19 | "free city", 20 | "free town", 21 | "hold", 22 | "kingdom", 23 | "land", 24 | "league", 25 | "march", 26 | "mark", 27 | "prelacy", 28 | "principality", 29 | "province", 30 | "society", 31 | "stratocracy", 32 | "theocracy", 33 | "tribe" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/placeState_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, State (formal) Generator", 3 | "resultPattern": "{placeState formal}", 4 | "tables": [ 5 | { 6 | "name": "placeState formal", 7 | "entries": [ 8 | "Archbarony", 9 | "Archclericy", 10 | "Archduchy", 11 | "Barony", 12 | "Brotherhood", 13 | "City-State", 14 | "Clericy", 15 | "County", 16 | "Duchy", 17 | "Earldom", 18 | "Empire", 19 | "Free City", 20 | "Free Town", 21 | "Hold", 22 | "Kingdom", 23 | "Land", 24 | "League", 25 | "March", 26 | "Mark", 27 | "Prelacy", 28 | "Principality", 29 | "Province", 30 | "Society", 31 | "Stratocracy", 32 | "Theocracy", 33 | "Tribe" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/placeState_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, State (plural) Generator", 3 | "resultPattern": "{placeState pl}", 4 | "tables": [ 5 | { 6 | "name": "placeState pl", 7 | "entries": [ 8 | "archbaronies", 9 | "archclericies", 10 | "archduchies", 11 | "baronies", 12 | "brotherhoods", 13 | "city-states", 14 | "clericies", 15 | "counties", 16 | "duchies", 17 | "earldoms", 18 | "empires", 19 | "free cities", 20 | "free towns", 21 | "holds", 22 | "kingdoms", 23 | "lands", 24 | "leagues", 25 | "marches", 26 | "marks", 27 | "prelacies", 28 | "principalities", 29 | "provinces", 30 | "societies", 31 | "stratocracies", 32 | "theocracies", 33 | "tribes" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/placeState_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, State (with indefinitive article) Generator", 3 | "resultPattern": "{placeState wia}", 4 | "tables": [ 5 | { 6 | "name": "placeState wia", 7 | "entries": [ 8 | "an archbarony", 9 | "an archclericy", 10 | "an archduchy", 11 | "a barony", 12 | "a brotherhood", 13 | "a city-state", 14 | "a clericy", 15 | "a county", 16 | "a duchy", 17 | "an earldom", 18 | "an empire", 19 | "a free city", 20 | "a free town", 21 | "a hold", 22 | "a kingdom", 23 | "a land", 24 | "a league", 25 | "a march", 26 | "a mark", 27 | "a prelacy", 28 | "a principality", 29 | "a province", 30 | "a society", 31 | "a stratocracy", 32 | "a theocracy", 33 | "a tribe" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/placeTerrain.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Terrain Generator", 3 | "resultPattern": "{placeTerrain}", 4 | "tables": [ 5 | { 6 | "name": "placeTerrain", 7 | "entries": [ 8 | "canyon", 9 | "cliff", 10 | "desert", 11 | "field", 12 | "forest", 13 | "grassland", 14 | "hill", 15 | "jungle", 16 | "marsh", 17 | "mountain", 18 | "scrubland", 19 | "swamp", 20 | "tundra", 21 | "valley", 22 | "volcano", 23 | "wasteland", 24 | "wilderness" 25 | ] 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /json/placeTerrain_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Terrain (formal) Generator", 3 | "resultPattern": "{placeTerrain formal}", 4 | "tables": [ 5 | { 6 | "name": "placeTerrain formal", 7 | "entries": [ 8 | "Canyon", 9 | "Cliff", 10 | "Desert", 11 | "Field", 12 | "Forest", 13 | "Grassland", 14 | "Hill", 15 | "Jungle", 16 | "Marsh", 17 | "Mountain", 18 | "Scrubland", 19 | "Swamp", 20 | "Tundra", 21 | "Valley", 22 | "Volcano", 23 | "Wasteland", 24 | "Wilderness" 25 | ] 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /json/placeTerrain_formal_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Terrain (formal plural) Generator", 3 | "resultPattern": "{placeTerrain formal pl}", 4 | "tables": [ 5 | { 6 | "name": "placeTerrain formal pl", 7 | "entries": [ 8 | "Canyons", 9 | "Cliffs", 10 | "Deserts", 11 | "Fields", 12 | "Forests", 13 | "Grasslands", 14 | "Highlands", 15 | "Hills", 16 | "Jungles", 17 | "Lowlands", 18 | "Marshes", 19 | "Mountains", 20 | "Plains", 21 | "Scrublands", 22 | "Swamps", 23 | "Uplands", 24 | "Valleys", 25 | "Volcanoes", 26 | "Wastelands", 27 | "Wastes", 28 | "Woods", 29 | "Wilds" 30 | ] 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /json/placeTerrain_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Terrain (plural) Generator", 3 | "resultPattern": "{placeTerrain pl}", 4 | "tables": [ 5 | { 6 | "name": "placeTerrain pl", 7 | "entries": [ 8 | "canyons", 9 | "cliffs", 10 | "deserts", 11 | "fields", 12 | "forests", 13 | "grasslands", 14 | "highlands", 15 | "hills", 16 | "jungles", 17 | "lowlands", 18 | "marshes", 19 | "mountains", 20 | "plains", 21 | "scrublands", 22 | "swamps", 23 | "uplands", 24 | "valleys", 25 | "volcanoes", 26 | "wastelands", 27 | "wastes", 28 | "woods", 29 | "wilds" 30 | ] 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /json/placeTerrain_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Place, Terrain (with indefinitive article) Generator", 3 | "resultPattern": "{placeTerrain wia}", 4 | "tables": [ 5 | { 6 | "name": "placeTerrain wia", 7 | "entries": [ 8 | "a canyon", 9 | "a cliff", 10 | "a desert", 11 | "a field", 12 | "a forest", 13 | "a grassland", 14 | "a hill", 15 | "a jungle", 16 | "a marsh", 17 | "a mountain", 18 | "a scrubland", 19 | "a swamp", 20 | "a tundra", 21 | "a valley", 22 | "a volcano", 23 | "a wasteland", 24 | "a wilderness" 25 | ] 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /json/priest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "priest", 3 | "resultPattern": "{priest}", 4 | "variables": { 5 | "actant": "priest", 6 | "actants": "priests", 7 | "actantgroup": "group", 8 | "actantaction": "lost in their thoughts", 9 | "actantattribute": "devout", 10 | "actantdescription": "The priest seems to be praying silently.", 11 | "attitude": "neutral", 12 | "footnote": "" 13 | }, 14 | "explanation": "Variations of priests.", 15 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 16 | "note": "", 17 | "to do": "Different religions and monastic orders. The myth, fantasy and futuristic subtables.", 18 | "see": "fighter, magician", 19 | "date": "2018-01-21", 20 | "authors": "Esko Vesala", 21 | "sources": "Wikipedia.org", 22 | "genre": "universal", 23 | "categories": [ 24 | "character" 25 | ], 26 | "tags": "#person, #religion", 27 | "tables": [ 28 | { 29 | "name": "priest", 30 | "explanation": "Priest types.", 31 | "entries": [ 32 | { 33 | "m": 10, 34 | "v": "{common}" 35 | }, 36 | "{rare}" 37 | ] 38 | }, 39 | { 40 | "name": "common", 41 | "explanation": "Common priests.", 42 | "entries": [ 43 | "priest", 44 | "cleric", 45 | "preacher", 46 | "pulpiter", 47 | "acolyte", 48 | "chaplain", 49 | "pastor", 50 | "minister", 51 | "parson", 52 | "reverend", 53 | "prelate", 54 | "ecclesiastic", 55 | "{inexperienced}", 56 | "{experienced}", 57 | "{monk}", 58 | "{nun}" 59 | ] 60 | }, 61 | { 62 | "name": "inexperienced", 63 | "explanation": "Inexperienced priests.", 64 | "entries": [ 65 | "novice", 66 | "initiate", 67 | "neophyte" 68 | ] 69 | }, 70 | { 71 | "name": "experienced", 72 | "explanation": "Experienced priests.", 73 | "entries": [ 74 | "elder", 75 | "patriarch", 76 | "matriarch" 77 | ] 78 | }, 79 | { 80 | "name": "monk", 81 | "explanation": "Male monastics.", 82 | "entries": [ 83 | "monk", 84 | "abbot", 85 | "cenobite", 86 | "anchorite", 87 | "hesychast", 88 | "hermit", 89 | "solitary monk" 90 | ] 91 | }, 92 | { 93 | "name": "nun", 94 | "explanation": "Female monastics.", 95 | "entries": [ 96 | "nun", 97 | "sister", 98 | "abbess" 99 | ] 100 | }, 101 | { 102 | "name": "rare", 103 | "explanation": "Rare priests.", 104 | "entries": [ 105 | "chosen", 106 | "prophet", 107 | "godtalker", 108 | "{male}", 109 | "{female}", 110 | "{jewish}", 111 | "{highranking}" 112 | ] 113 | }, 114 | { 115 | "name": "male", 116 | "explanation": "Male priests.", 117 | "entries": [ 118 | "clergyman" 119 | ] 120 | }, 121 | { 122 | "name": "female", 123 | "explanation": "Female priests.", 124 | "entries": [ 125 | "clergywoman", 126 | "abbess", 127 | "matron", 128 | "matriarch" 129 | ] 130 | }, 131 | { 132 | "name": "jewish", 133 | "explanation": "Priests of the Jewish faith.", 134 | "entries": [ 135 | "rabbi", 136 | "maggid", 137 | "kohen" 138 | ] 139 | }, 140 | { 141 | "name": "highranking", 142 | "explanation": "High-ranking priests.", 143 | "entries": [ 144 | "bishop", 145 | "archbishop", 146 | "cardinal", 147 | "hierarch" 148 | ] 149 | }, 150 | { 151 | "name": "myth", 152 | "explanation": "Priests once rumoured to have existed.", 153 | "entries": [ 154 | "XXX", 155 | "{rare myth}" 156 | ] 157 | }, 158 | { 159 | "name": "rare myth", 160 | "explanation": "Rare imaginary priests once rumoured to have existed.", 161 | "entries": [ 162 | "XXX" 163 | ] 164 | }, 165 | { 166 | "name": "fantasy", 167 | "explanation": "Priests for fantasy (with no basis in myth).", 168 | "entries": [ 169 | "{myth}", 170 | "XXX", 171 | "{rare fantasy}" 172 | ] 173 | }, 174 | { 175 | "name": "rare fantasy", 176 | "explanation": "Rare priests for fantasy (with no basis in myth).", 177 | "entries": [ 178 | "XXX" 179 | ] 180 | }, 181 | { 182 | "name": "modern", 183 | "explanation": "Priests for modern worlds.", 184 | "entries": [ 185 | "{common}", 186 | "XXX", 187 | "{rare modern}" 188 | ] 189 | }, 190 | { 191 | "name": "rare modern", 192 | "explanation": "Rare priests for modern worlds.", 193 | "entries": [ 194 | "XXX" 195 | ] 196 | }, 197 | { 198 | "name": "futuristic", 199 | "explanation": "Imaginary priests for science fiction worlds.", 200 | "entries": [ 201 | "{modern}", 202 | "XXX", 203 | "{rare futuristic}" 204 | ] 205 | }, 206 | { 207 | "name": "rare futuristic", 208 | "explanation": "Rare imaginary priests for science fiction worlds.", 209 | "entries": [ 210 | "XXX" 211 | ] 212 | } 213 | ] 214 | } 215 | -------------------------------------------------------------------------------- /json/set-city.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-city", 3 | "resultPattern": "{init}{result}", 4 | "globals": { 5 | "setadjective": "{adjective}", 6 | "setarea": "{area}", 7 | "setlocale": "{locale}", 8 | "setboundary": "{boundary}", 9 | "setentrance": "{entrance}", 10 | "setlocation": "{location}", 11 | "setpassage": "{passage}", 12 | "setvault": "{vault}", 13 | "setdoor": "{door}", 14 | "setnook": "{nook}", 15 | "setprop": "{prop}" 16 | }, 17 | "variables": { 18 | "footnote": "" 19 | }, 20 | "explanation": "Template for a themed location.", 21 | "structure": "Global variables fitting a common environment.", 22 | "note": "This table does not produce immediate output, only sets global variables for later use.", 23 | "format": "Global variable definitions.", 24 | "bugs": "", 25 | "to do": "", 26 | "see": "Dungeon_adventure", 27 | "date": "2018-09-20", 28 | "authors": "ELF Vesala.", 29 | "sources": "", 30 | "genre": "universal", 31 | "categories": [ 32 | "world" 33 | ], 34 | "tables": [ 35 | { 36 | "name": "init", 37 | "explanation": "Setting the relevant global variables.", 38 | "entries": [ 39 | { 40 | "m": 1, 41 | "v": "", 42 | "export": {} 43 | } 44 | ] 45 | }, 46 | { 47 | "name": "result", 48 | "explanation": ".", 49 | "entries": [ 50 | "{summary}", 51 | "{detail}" 52 | ] 53 | }, 54 | { 55 | "name": "summary", 56 | "explanation": "Brief description of the randomized set.", 57 | "entries": [ 58 | "{global:setlocation}" 59 | ] 60 | }, 61 | { 62 | "name": "detail", 63 | "explanation": "Detailed description of the randomized set.", 64 | "entries": [ 65 | "{global:setadjective} {global:setlocation}", 66 | "{global:setlocation} with {global:setprop}", 67 | "{global:setadjective} {global:setlocation} with {global:setprop}" 68 | ] 69 | }, 70 | { 71 | "name": "locale", 72 | "explanation": "Location types on the set.", 73 | "entries": [ 74 | "{entrance}", 75 | "{location}", 76 | "{passage}", 77 | "{vault}" 78 | ] 79 | }, 80 | { 81 | "**************************************************": "AREAS" 82 | }, 83 | { 84 | "name": "entrance", 85 | "explanation": "Entrances matching the set.", 86 | "entries": [ 87 | "city gate", 88 | "city gates", 89 | "toll gate" 90 | ] 91 | }, 92 | { 93 | "name": "location", 94 | "explanation": "Locations matching the set.", 95 | "entries": [ 96 | "tavern", 97 | "inn", 98 | "market square", 99 | "guildhall", 100 | "warehouse", 101 | "bath house", 102 | "docks" 103 | ] 104 | }, 105 | { 106 | "name": "passage", 107 | "explanation": "Corridors matching the set.", 108 | "entries": [ 109 | "passageway", 110 | "alleyway", 111 | "alley", 112 | "back street", 113 | "street", 114 | "lane", 115 | "avenue" 116 | ] 117 | }, 118 | { 119 | "name": "vault", 120 | "explanation": "Centerpiece locations matching the set.", 121 | "entries": [ 122 | "mansion", 123 | "town hall", 124 | "temple", 125 | "courthouse" 126 | ] 127 | }, 128 | { 129 | "**************************************************": "DETAILS" 130 | }, 131 | { 132 | "name": "adjective", 133 | "explanation": "Adjectives for the set locations.", 134 | "entries": [ 135 | "soot-covered", 136 | "noisy" 137 | ] 138 | }, 139 | { 140 | "name": "door", 141 | "explanation": "Doors matching the set.", 142 | "entries": [ 143 | "door", 144 | "gate", 145 | "arched entranceway" 146 | ] 147 | }, 148 | { 149 | "name": "prop", 150 | "explanation": "Potential properties for the set.", 151 | "entries": [ 152 | "cart", 153 | "street-vendor's stall" 154 | ] 155 | }, 156 | { 157 | "**************************************************": "SPECIAL TABLES" 158 | }, 159 | { 160 | "name": "test", 161 | "explanation": "Testing tool for dumping the set global variables.", 162 | "entries": [ 163 | "{global:setlocale} walkthrough: {global:setentrance} to {global:setpassage} leads to {global:setadjective} {global:setlocation} with {global:setprop}. Behind {global:setdoor} is the {global:setvault}." 164 | ] 165 | } 166 | ] 167 | } 168 | -------------------------------------------------------------------------------- /json/set-dungeon.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-dungeon", 3 | "resultPattern": "{init}{result}", 4 | "globals": { 5 | "setadjective": "{adjective}", 6 | "setarea": "{area}", 7 | "setlocale": "{locale}", 8 | "setboundary": "{boundary}", 9 | "setentrance": "{entrance}", 10 | "setlocation": "{location}", 11 | "setpassage": "{passage}", 12 | "setvault": "{vault}", 13 | "setdoor": "{door}", 14 | "setnook": "{nook}", 15 | "setprop": "{prop}" 16 | }, 17 | "variables": { 18 | "footnote": "" 19 | }, 20 | "explanation": "Dungeon-themed locations.", 21 | "structure": "Global variables fitting a common environment.", 22 | "note": "This table does not produce immediate output, only sets global variables for later use.", 23 | "format": "Global variable definitions.", 24 | "bugs": "", 25 | "to do": "", 26 | "see": "Dungeon_adventure", 27 | "date": "2018-09-20", 28 | "authors": "ELF Vesala.", 29 | "sources": "", 30 | "genre": "fantasy", 31 | "categories": [ 32 | "world" 33 | ], 34 | "tables": [ 35 | { 36 | "name": "init", 37 | "explanation": "Setting the relevant global variables.", 38 | "entries": [ 39 | { 40 | "m": 1, 41 | "v": "", 42 | "export": {} 43 | } 44 | ] 45 | }, 46 | { 47 | "name": "result", 48 | "explanation": ".", 49 | "entries": [ 50 | "{summary}", 51 | "{detail}" 52 | ] 53 | }, 54 | { 55 | "name": "summary", 56 | "explanation": "Brief description of the randomized set.", 57 | "entries": [ 58 | "{global:setlocation}" 59 | ] 60 | }, 61 | { 62 | "name": "detail", 63 | "explanation": "Detailed description of the randomized set.", 64 | "entries": [ 65 | "{global:setadjective} {global:setlocale}", 66 | "{global:setlocale} with {global:setprop}", 67 | "{global:setadjective} {global:setlocale} with {global:setprop}" 68 | ] 69 | }, 70 | { 71 | "name": "locale", 72 | "explanation": "Location types on the set.", 73 | "entries": [ 74 | "{entrance}", 75 | "{location}", 76 | "{passage}", 77 | "{vault}" 78 | ] 79 | }, 80 | { 81 | "**************************************************": "LOCALES" 82 | }, 83 | { 84 | "name": "boundary", 85 | "explanation": "Borders around the set.", 86 | "entries": [ 87 | "outer wall" 88 | ] 89 | }, 90 | { 91 | "name": "entrance", 92 | "explanation": "Entrances matching the set.", 93 | "entries": [ 94 | "entrance", 95 | "entranceway", 96 | "entryway", 97 | "opening", 98 | "doorway", 99 | "gateway", 100 | "gate", 101 | "double gates", 102 | "portcullis gate" 103 | ] 104 | }, 105 | { 106 | "name": "area", 107 | "explanation": "Areas containing several locations.", 108 | "entries": [ 109 | "first level", 110 | "second level", 111 | "third level" 112 | ] 113 | }, 114 | { 115 | "name": "location", 116 | "explanation": "Locations matching the set.", 117 | "entries": [ 118 | "room", 119 | "chamber", 120 | "hall", 121 | "forge", 122 | "library", 123 | "armory", 124 | "distillery", 125 | "dormitory", 126 | "guardroom", 127 | "laboratory", 128 | "torture chamber" 129 | ] 130 | }, 131 | { 132 | "name": "nook", 133 | "explanation": "Compartments matching the set.", 134 | "entries": [ 135 | "pit", 136 | "cell", 137 | "store room", 138 | "storage room" 139 | ] 140 | }, 141 | { 142 | "name": "passage", 143 | "explanation": "Corridors matching the set.", 144 | "entries": [ 145 | "corridor", 146 | "passage", 147 | "passageway" 148 | ] 149 | }, 150 | { 151 | "name": "vault", 152 | "explanation": "Centerpiece locations matching the set.", 153 | "entries": [ 154 | "vault", 155 | "crypt", 156 | "tomb", 157 | "sepulcher", 158 | "catacomb", 159 | "mausoleum", 160 | "treasure chamber", 161 | "invocation chamber" 162 | ] 163 | }, 164 | { 165 | "**************************************************": "DETAILS" 166 | }, 167 | { 168 | "name": "adjective", 169 | "explanation": "Adjectives for the set locations.", 170 | "entries": [ 171 | "candle-lit", 172 | "darkness-engulfed" 173 | ] 174 | }, 175 | { 176 | "name": "door", 177 | "explanation": "Doors matching the set.", 178 | "entries": [ 179 | "door", 180 | "double doors", 181 | "gate", 182 | "double gates", 183 | "portcullis" 184 | ] 185 | }, 186 | { 187 | "name": "prop", 188 | "explanation": "Potential properties for the set.", 189 | "entries": [ 190 | "extinguished torch", 191 | "empty chest" 192 | ] 193 | }, 194 | { 195 | "**************************************************": "SPECIAL TABLES" 196 | }, 197 | { 198 | "name": "test", 199 | "explanation": "Testing tool for dumping the set global variables.", 200 | "entries": [ 201 | "{global:setlocale} walkthrough: to pass the {global:setboundary}, enter {global:setentrance} to {global:setarea} via {global:setpassage} that leads to {global:setadjective} {global:setlocation} and {global:setnook} with {global:setprop} inside. Behind {global:setdoor} is the {global:setvault}." 202 | ] 203 | } 204 | ] 205 | } 206 | -------------------------------------------------------------------------------- /json/set-forest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-forest", 3 | "resultPattern": "{init}{result}", 4 | "globals": { 5 | "setadjective": "{adjective}", 6 | "setarea": "{area}", 7 | "setlocale": "{locale}", 8 | "setboundary": "{boundary}", 9 | "setentrance": "{entrance}", 10 | "setlocation": "{location}", 11 | "setpassage": "{passage}", 12 | "setvault": "{vault}", 13 | "setdoor": "{door}", 14 | "setnook": "{nook}", 15 | "setprop": "{prop}" 16 | }, 17 | "variables": { 18 | "footnote": "" 19 | }, 20 | "explanation": "Template for a themed location.", 21 | "structure": "Global variables fitting a common environment.", 22 | "note": "This table does not produce immediate output, only sets global variables for later use.", 23 | "format": "Global variable definitions.", 24 | "bugs": "", 25 | "to do": "", 26 | "see": "Dungeon_adventure", 27 | "date": "2018-09-20", 28 | "authors": "ELF Vesala.", 29 | "sources": "", 30 | "genre": "universal", 31 | "categories": [ 32 | "world" 33 | ], 34 | "tables": [ 35 | { 36 | "name": "init", 37 | "explanation": "Setting the relevant global variables.", 38 | "entries": [ 39 | { 40 | "m": 1, 41 | "v": "", 42 | "export": {} 43 | } 44 | ] 45 | }, 46 | { 47 | "name": "result", 48 | "explanation": ".", 49 | "entries": [ 50 | "{summary}", 51 | "{detail}" 52 | ] 53 | }, 54 | { 55 | "name": "summary", 56 | "explanation": "Brief description of the randomized set.", 57 | "entries": [ 58 | "{global:setlocation}" 59 | ] 60 | }, 61 | { 62 | "name": "detail", 63 | "explanation": "Detailed description of the randomized set.", 64 | "entries": [ 65 | "{global:setadjective} {global:setlocation}", 66 | "{global:setlocation} with {global:setprop}", 67 | "{global:setadjective} {global:setlocation} with {global:setprop}" 68 | ] 69 | }, 70 | { 71 | "name": "locale", 72 | "explanation": "Location types on the set.", 73 | "entries": [ 74 | "{entrance}", 75 | "{location}", 76 | "{passage}", 77 | "{vault}" 78 | ] 79 | }, 80 | { 81 | "**************************************************": "AREAS" 82 | }, 83 | { 84 | "name": "entrance", 85 | "explanation": "Entrances matching the set.", 86 | "entries": [ 87 | "pathway to forest", 88 | "forest entrance" 89 | ] 90 | }, 91 | { 92 | "name": "area", 93 | "explanation": "Areas containing several locations.", 94 | "entries": [ 95 | "forest edge", 96 | "hear of the forest" 97 | ] 98 | }, 99 | { 100 | "name": "location", 101 | "explanation": "Locations matching the set.", 102 | "entries": [ 103 | "thicket", 104 | "shrubbery", 105 | "undergrowth", 106 | "coppice", 107 | "copse of trees", 108 | "weald", 109 | "woods", 110 | "wildwood", 111 | "backwoods" 112 | ] 113 | }, 114 | { 115 | "name": "passage", 116 | "explanation": "Corridors matching the set.", 117 | "entries": [ 118 | "walk", 119 | "stroll", 120 | "hike", 121 | "path", 122 | "pathway", 123 | "logging road", 124 | "forest road" 125 | ] 126 | }, 127 | { 128 | "name": "vault", 129 | "explanation": "Centerpiece locations matching the set.", 130 | "entries": [ 131 | "orchard", 132 | "grove", 133 | "tall oak tree", 134 | "spring", 135 | "mound", 136 | "standing stones" 137 | ] 138 | }, 139 | { 140 | "**************************************************": "DETAILS" 141 | }, 142 | { 143 | "name": "adjective", 144 | "explanation": "Adjectives for the set locations.", 145 | "entries": [ 146 | "cobwebbed", 147 | "mist-filled" 148 | ] 149 | }, 150 | { 151 | "name": "door", 152 | "explanation": "Doors matching the set.", 153 | "entries": [ 154 | "fallen treetrunk", 155 | "thick vines" 156 | ] 157 | }, 158 | { 159 | "name": "prop", 160 | "explanation": "Potential properties for the set.", 161 | "entries": [ 162 | "mushroom ring", 163 | "anthill", 164 | "dead tree", 165 | "fallen tree", 166 | "tall tree stump", 167 | "two trees grown together", 168 | "giant boulder", 169 | "old firepit", 170 | "old campsite", 171 | "menhir", 172 | "circle of stones" 173 | ] 174 | }, 175 | { 176 | "**************************************************": "SPECIAL TABLES" 177 | }, 178 | { 179 | "name": "test", 180 | "explanation": "Testing tool for dumping the set global variables.", 181 | "entries": [ 182 | "{global:setlocale} walkthrough: {global:setentrance} to {global:setpassage} leads to {global:setadjective} {global:setlocation} with {global:setprop}. Behind {global:setdoor} is the {global:setvault}." 183 | ] 184 | } 185 | ] 186 | } 187 | -------------------------------------------------------------------------------- /json/social_class.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "social_class", 3 | "resultPattern": "{init}{result}", 4 | "globals": { 5 | "variable": "value" 6 | }, 7 | "variables": { 8 | "footnote": "" 9 | }, 10 | "explanation": "The social class of a character.", 11 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 12 | "note": "", 13 | "format": "", 14 | "bugs": "", 15 | "to do": "", 16 | "see": "", 17 | "date": "2018-08-21", 18 | "authors": "ELF Vesala.", 19 | "sources": "", 20 | "genre": "universal", 21 | "categories": [ 22 | "character" 23 | ], 24 | "tables": [ 25 | { 26 | "name": "init", 27 | "explanation": "Initializing the required global variables, if any.", 28 | "entries": [ 29 | { 30 | "v": "", 31 | "export": { 32 | "": "" 33 | } 34 | } 35 | ] 36 | }, 37 | { 38 | "name": "result", 39 | "explanation": "Verbosity of the resultPattern output.", 40 | "entries": [ 41 | "{summary}", 42 | "{detail}" 43 | ] 44 | }, 45 | { 46 | "name": "summary", 47 | "explanation": "Brief resultPattern output.", 48 | "entries": [ 49 | "{social class}" 50 | ] 51 | }, 52 | { 53 | "name": "detail", 54 | "explanation": "Detailed resultPattern output variations.", 55 | "entries": [ 56 | "{social class}" 57 | ] 58 | }, 59 | { 60 | "name": "social class", 61 | "explanation": "The social class types by rarity.", 62 | "entries": [ 63 | { 64 | "m": 10, 65 | "v": "{common}" 66 | }, 67 | "{rare}" 68 | ] 69 | }, 70 | { 71 | "name": "common", 72 | "explanation": "Common social classes.", 73 | "entries": [ 74 | { 75 | "m": 50, 76 | "v": "lower class", 77 | "export": { 78 | "social_class": "lower class", 79 | "occupation": "{lib:occupation#lower class}", 80 | "outfitattribute": "{lib:clothing#lower class attribute}" 81 | } 82 | }, 83 | { 84 | "m": 30, 85 | "v": "middle class", 86 | "export": { 87 | "social_class": "middle class", 88 | "occupation": "{lib:occupation#middle class}", 89 | "outfitattribute": "{lib:clothing#middle class attribute}" 90 | } 91 | }, 92 | { 93 | "m": 10, 94 | "v": "upper class", 95 | "export": { 96 | "social_class": "upper class", 97 | "occupation": "{lib:occupation#upper class}", 98 | "outfitattribute": "{lib:clothing#upper class attribute}" 99 | } 100 | } 101 | ] 102 | }, 103 | { 104 | "name": "rare", 105 | "explanation": "Rare social classes.", 106 | "entries": [ 107 | { 108 | "m": 5, 109 | "v": "poor", 110 | "export": { 111 | "social_class": "poor", 112 | "occupation": "{lib:occupation#poor}", 113 | "outfitattribute": "{lib:clothing#poor attribute}" 114 | } 115 | }, 116 | { 117 | "m": 5, 118 | "v": "rich", 119 | "export": { 120 | "socia_class": "rich", 121 | "occupation": "{lib:occupation#rich}", 122 | "outfitattribute": "{lib:clothing#rich attribute}" 123 | } 124 | } 125 | ] 126 | }, 127 | { 128 | "**************************************************": "WORLD-SPECIFIC" 129 | }, 130 | { 131 | "name": "myth", 132 | "explanation": "Social classes once rumoured to have existed.", 133 | "entries": [ 134 | "XXX" 135 | ] 136 | }, 137 | { 138 | "name": "fantasy", 139 | "explanation": "Social classes for fantasy worlds (with no basis in myth).", 140 | "entries": [ 141 | "{myth}", 142 | "XXX" 143 | ] 144 | }, 145 | { 146 | "name": "modern", 147 | "explanation": "Social classes for modern worlds.", 148 | "entries": [ 149 | "{common}", 150 | "XXX" 151 | ] 152 | }, 153 | { 154 | "name": "futuristic", 155 | "explanation": "Social classes for science fiction worlds.", 156 | "entries": [ 157 | "{modern}", 158 | "XXX" 159 | ] 160 | }, 161 | { 162 | "**************************************************": "SPECIAL TABLES" 163 | }, 164 | { 165 | "name": "special", 166 | "explanation": "Special social class tables.", 167 | "entries": [ 168 | "{modifier}" 169 | ] 170 | }, 171 | { 172 | "name": "modifier", 173 | "explanation": "Modifiers for social classes.", 174 | "entries": [ 175 | "and losing prestige", 176 | "with no sign of change visible", 177 | "and gaining prestige" 178 | ] 179 | }, 180 | { 181 | "name": "test", 182 | "explanation": "Test routine for checking the generator functionality.", 183 | "entries": [ 184 | "{init}result: {result}, summary: {summary}, detail: {detail}, common: {common}, rare: {rare}, myth: {myth}, fantasy: {fantasy}, modern: {modern}, futuristic: {futuristic}, special: {special}." 185 | ] 186 | } 187 | ] 188 | } 189 | -------------------------------------------------------------------------------- /json/spell_target.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spell target", 3 | "resultPattern": "{result}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Random spell target generation.", 8 | "structure": "", 9 | "note": "", 10 | "bugs": "", 11 | "to do": "", 12 | "see": "energy, magic, magical_technique, magical_instrument, spell_name, spell_intention, spellcasting", 13 | "date": "2017-12-10", 14 | "authors": "Esko Vesala.", 15 | "sources": "", 16 | "genre": "fantasy", 17 | "categories": [ 18 | "" 19 | ], 20 | "tables": [ 21 | { 22 | "name": "result", 23 | "explanation": "Variations for resultPattern output.", 24 | "entries": [ 25 | "{realm}" 26 | ] 27 | }, 28 | { 29 | "name": "realm", 30 | "explanation": "Spell realm types.", 31 | "entries": [ 32 | "{elemental}" 33 | ] 34 | }, 35 | { 36 | "name": "elemental", 37 | "explanation": "Elemental realms.", 38 | "entries": [ 39 | "{air}", 40 | "{earth}", 41 | "{water}", 42 | "{fire}" 43 | ] 44 | }, 45 | { 46 | "name": "air", 47 | "explanation": "Air targets.", 48 | "entries": [ 49 | "air", 50 | "wind", 51 | "scent" 52 | ] 53 | }, 54 | { 55 | "name": "earth", 56 | "explanation": "Earth targets.", 57 | "entries": [ 58 | "stone", 59 | "earth", 60 | "pit" 61 | ] 62 | }, 63 | { 64 | "name": "water", 65 | "explanation": "Water targets.", 66 | "entries": [ 67 | "water", 68 | "drought" 69 | ] 70 | }, 71 | { 72 | "name": "fire", 73 | "explanation": "Fire targets.", 74 | "entries": [ 75 | "fire" 76 | ] 77 | } 78 | ] 79 | } 80 | -------------------------------------------------------------------------------- /json/spellcasting.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spellcasting method table", 3 | "resultPattern": "{spellcasting method}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Spellcasting methods for magic tables.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly.", 9 | "note": "", 10 | "to do": "", 11 | "see": "magic, magician, magical_technique, magical_instrument", 12 | "date": "2018-04-29", 13 | "authors": "ELF Vesala", 14 | "sources": "powerlisting.wikia.com, Wikipedia.org.", 15 | "genre": "universal", 16 | "categories": [ 17 | "magic" 18 | ], 19 | "tags": "#magic, #spell", 20 | "tables": [ 21 | { 22 | "name": "spellcasting method", 23 | "explanation": "Methods of using magic.", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "explanation": "Common spellcasting methods.", 35 | "entries": [ 36 | "speaking words of power", 37 | "incantation (speaking a magical formula)", 38 | "chanting", 39 | "singing", 40 | "repeating a mantra", 41 | "praying", 42 | "touching a charm", 43 | "waving a {lib:magical_instrument}" 44 | ] 45 | }, 46 | { 47 | "name": "rare", 48 | "explanation": "Rare spellcasting methods.", 49 | "entries": [ 50 | "dancing", 51 | "dreaming", 52 | "writing", 53 | "tying knots (the spell is released when the knot is untied)", 54 | "ceremonial mass" 55 | ] 56 | }, 57 | { 58 | "name": "myth", 59 | "explanation": "Imaginary spellcasting methods once rumoured to have existed.", 60 | "entries": [ 61 | "{rare}", 62 | "spellbinding (binding spells to objects)", 63 | "spell tattooing (binding spells to tattoos)", 64 | "{rare myth}" 65 | ] 66 | }, 67 | { 68 | "name": "rare myth", 69 | "explanation": "Imaginary spellcasting methods once rumoured to have existed.", 70 | "entries": [ 71 | "{myth}", 72 | "englightenment (achieving oneness with divinity)" 73 | ] 74 | }, 75 | { 76 | "name": "fantasy", 77 | "explanation": "Fantasy spellcasting methods (with no basis in myth).", 78 | "entries": [ 79 | "{myth}", 80 | "spellsinging", 81 | "playing a magical musical instrument", 82 | "{rare fantasy}" 83 | ] 84 | }, 85 | { 86 | "name": "rare fantasy", 87 | "explanation": "Rare fantasy casting methods (with no basis in myth).", 88 | "entries": [ 89 | "{fantasy}", 90 | "creating art with magical equipment" 91 | ] 92 | }, 93 | { 94 | "name": "modern", 95 | "explanation": "Spellcasting methods for modern worlds.", 96 | "entries": [ 97 | "{common}", 98 | "concentrating", 99 | "practicing yoga", 100 | "vibration of divine names", 101 | "{rare modern}" 102 | ] 103 | }, 104 | { 105 | "name": "rare modern", 106 | "explanation": "Rare spellcasting methods for modern worlds.", 107 | "entries": [ 108 | "attaining an altered state of consciousness", 109 | "opening a dimensional portal", 110 | "asterokinesis (cosmic manipulation)", 111 | "essokinesis (altering reality by thought)", 112 | "science manipulation (altering the laws of science)", 113 | "logic manipulation (controlling rules of logic)" 114 | ] 115 | }, 116 | { 117 | "name": "futuristic", 118 | "explanation": "Imaginary spellcasting methods for science fiction worlds.", 119 | "entries": [ 120 | "{modern}", 121 | "data manipulation (altered data affects reality)", 122 | "techno magic (combining magic and technology)", 123 | "{rare futuristic}" 124 | ] 125 | }, 126 | { 127 | "name": "rare futuristic", 128 | "explanation": "Imaginary spellcasting methods for science fiction worlds.", 129 | "entries": [ 130 | "{futuristic}", 131 | "meta-tech (technology affecting other realities)", 132 | "techno mysticism (extending mental capacity with technology)" 133 | ] 134 | } 135 | ] 136 | } 137 | -------------------------------------------------------------------------------- /json/stone.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Stone table", 3 | "resultPattern": "{stone}", 4 | "variables": { 5 | "footnote": "" 6 | }, 7 | "explanation": "Stones for resource and construction tables.", 8 | "structure": "Produces entries for different types of genres and worlds. The 'common' and 'rare' tables are generic and should be compatible with almost any world. To retain compatibility with most settings, the non-generic tables should be called only from other tables by specifying their name directly. Some subtables intentionally overlap.", 9 | "note": "", 10 | "to do": "", 11 | "see": "material, metal", 12 | "date": "2017-10-06", 13 | "authors": "Johnn Four, Jochen Linnemann, Esko Vesala.", 14 | "sources": "Wikipedia.org.", 15 | "genre": "universal", 16 | "categories": [ 17 | "world" 18 | ], 19 | "tags": "#material, #resource", 20 | "tables": [ 21 | { 22 | "name": "stone", 23 | "explanation": "Stone types.", 24 | "entries": [ 25 | { 26 | "m": 10, 27 | "v": "{common}" 28 | }, 29 | "{rare}" 30 | ] 31 | }, 32 | { 33 | "name": "common", 34 | "entries": [ 35 | "granite", 36 | "limestone", 37 | "sandstone", 38 | "shale", 39 | "slate" 40 | ] 41 | }, 42 | { 43 | "name": "rare", 44 | "entries": [ 45 | "alabaster", 46 | "basalt", 47 | "fossilstone", 48 | "marble", 49 | "pumice", 50 | "quartz", 51 | "serpentine", 52 | "soapstone", 53 | "travertine" 54 | ] 55 | }, 56 | { 57 | "name": "myth", 58 | "explanation": "Imaginary stone types once rumoured to have existed.", 59 | "entries": [ 60 | "lodestone", 61 | "{rare myth}" 62 | ] 63 | }, 64 | { 65 | "name": "rare myth", 66 | "explanation": "Rare imaginary stone types once rumoured to have existed.", 67 | "entries": [ 68 | "piece of the Symplegade (clashing rocks destroying boats)" 69 | ] 70 | }, 71 | { 72 | "name": "fantasy", 73 | "explanation": "Fantasy stone types (with no basis in myth).", 74 | "entries": [ 75 | "{myth}", 76 | "weirdstone (containing captured magical essence)", 77 | "wyrdstone (containing magical energy)", 78 | "{rare fantasy}" 79 | ] 80 | }, 81 | { 82 | "name": "rare fantasy", 83 | "explanation": "Rare fantasy stone types (with no basis in myth).", 84 | "entries": [ 85 | "{fantasy}", 86 | "hellstone", 87 | "warpstone (causes chaotic mutations)", 88 | "sentient stone" 89 | ] 90 | }, 91 | { 92 | "name": "modern", 93 | "explanation": "Stone types for modern worlds.", 94 | "entries": [ 95 | "{common}", 96 | "spectrolite", 97 | "{rare modern}" 98 | ] 99 | }, 100 | { 101 | "name": "rare modern", 102 | "explanation": "Rare stone types for modern worlds.", 103 | "entries": [ 104 | "carbonatite", 105 | "ijolite", 106 | "jadeitite" 107 | ] 108 | }, 109 | { 110 | "name": "futuristic", 111 | "explanation": "Imaginary stone types for science fiction worlds.", 112 | "entries": [ 113 | "{modern}", 114 | "meteor stone", 115 | "space rock", 116 | "{rare futuristic}" 117 | ] 118 | }, 119 | { 120 | "name": "rare futuristic", 121 | "explanation": "Rare imaginary stone types for science fiction worlds.", 122 | "entries": [ 123 | "growing stone (self-replicating nano structure)" 124 | ] 125 | } 126 | ] 127 | } 128 | -------------------------------------------------------------------------------- /json/superstition.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "superstition", 3 | "resultPattern": "{result}", 4 | "explanation": "Generates random superstitions for creating local color.", 5 | "structure": "The result table contains different basic formats for the superstition, based on common elements.", 6 | "note": "I took the liberty of replacing 'thrown' from the effect list with 'near', as the original sometimes produced strange combinations. For similarr reasons, replaced 'the temperature' with 'the sky' and 'color' with 'heard'.", 7 | "bugs": "", 8 | "to do": "", 9 | "see": "", 10 | "date": "2017-11-15", 11 | "authors": "Esko Vesala, adapting the 'Superstition Generator' from Johnn Four's Role Playing Tips #356.", 12 | "sources": "Role Playing Tips #356", 13 | "genre": "universal", 14 | "categories": [ 15 | "world" 16 | ], 17 | "tables": [ 18 | { 19 | "name": "result", 20 | "explanation": "Variations for resultPattern output.", 21 | "entries": [ 22 | "When {trigger} is {feature}, it means that {effect}. ", 23 | "Sometimes, when {trigger} is {feature}, {effect}. ", 24 | "If {trigger} is {feature}, then {effect}. " 25 | ] 26 | }, 27 | { 28 | "name": "trigger", 29 | "explanation": ".", 30 | "entries": [ 31 | "{weather}", 32 | "{symbol}", 33 | "{animal}", 34 | "{event}", 35 | "{item}", 36 | "{person}" 37 | ] 38 | }, 39 | { 40 | "name": "weather", 41 | "explanation": ".", 42 | "entries": [ 43 | "the wind", 44 | "light", 45 | "the sky", 46 | "a storm", 47 | "a rainbow", 48 | "rare weather" 49 | ] 50 | }, 51 | { 52 | "name": "symbol", 53 | "explanation": ".", 54 | "entries": [ 55 | "a word", 56 | "a letter", 57 | "a number", 58 | "a phrase", 59 | "a gesture", 60 | "a sound" 61 | ] 62 | }, 63 | { 64 | "name": "animal", 65 | "explanation": ".", 66 | "entries": [ 67 | "a wild animal", 68 | "a domestic animal", 69 | "a pest", 70 | "a bird", 71 | "a unique animal", 72 | "a pet" 73 | ] 74 | }, 75 | { 76 | "name": "event", 77 | "explanation": ".", 78 | "entries": [ 79 | "a regular event", 80 | "a religious event", 81 | "a social event", 82 | "an accident", 83 | "a harmless event", 84 | "a crime" 85 | ] 86 | }, 87 | { 88 | "name": "item", 89 | "explanation": ".", 90 | "entries": [ 91 | "a weapon", 92 | "a tool", 93 | "money", 94 | "spice", 95 | "a vehicle", 96 | "a luxury item" 97 | ] 98 | }, 99 | { 100 | "name": "person", 101 | "explanation": ".", 102 | "entries": [ 103 | "a man", 104 | "a woman", 105 | "an old person", 106 | "a young person", 107 | "a healthy person", 108 | "a sick person", 109 | "a dead body", 110 | "a virgin", 111 | "a pregnant woman", 112 | "a familiar person", 113 | "a foreign person", 114 | "someone rich", 115 | "someone poor" 116 | ] 117 | }, 118 | { 119 | "name": "feature", 120 | "explanation": ".", 121 | "entries": [ 122 | "heard", 123 | "seen", 124 | "passed", 125 | "touched", 126 | "near", 127 | "lost" 128 | ] 129 | }, 130 | { 131 | "name": "effect", 132 | "explanation": ".", 133 | "entries": [ 134 | "good luck will come", 135 | "bad luck will come", 136 | "safety will be found", 137 | "a wedding is coming", 138 | "a contract will be made", 139 | "a contract will be broken", 140 | "a birth will take place", 141 | "death will visit", 142 | "love will be found", 143 | "love will be lost", 144 | "money will come", 145 | "an accident will happen", 146 | "people will be at risk" 147 | ] 148 | } 149 | ] 150 | } 151 | -------------------------------------------------------------------------------- /json/titleFantasy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Fantasy Generator", 3 | "resultPattern": "{titleFantasy}", 4 | "tables": [ 5 | { 6 | "name": "titleFantasy", 7 | "entries": [ 8 | "abjurer", 9 | "acrobat", 10 | "aeromancer", 11 | "alchemist", 12 | "animist", 13 | "anti-paladin", 14 | "apparitionist", 15 | "archdruid", 16 | "archer", 17 | "archmage", 18 | "assassin", 19 | "auramancer", 20 | "barbarian", 21 | "bard", 22 | "battlemage", 23 | "burglar", 24 | "cabalist", 25 | "cavalier", 26 | "champion", 27 | "charlatan", 28 | "chevalier", 29 | "chronomancer", 30 | "cleric", 31 | "druid", 32 | "conjurer", 33 | "cutpurse", 34 | "cryomancer", 35 | "defender", 36 | "distortionist", 37 | "diviner", 38 | "electromancer", 39 | "elementalist", 40 | "enchanter", 41 | "evoker", 42 | "fighter", 43 | "filcher", 44 | "footpad", 45 | "gallant", 46 | "geomancer", 47 | "guardian", 48 | "hedge wizard", 49 | "hero", 50 | "hydromancer", 51 | "illusionist", 52 | "justiciar", 53 | "keeper", 54 | "mage", 55 | "magic-user", 56 | "magician", 57 | "magsman", 58 | "mentalist", 59 | "monk", 60 | "myrmidon", 61 | "mystic", 62 | "necromancer", 63 | "paladin", 64 | "phantasmist", 65 | "pickpocket", 66 | "pirate", 67 | "prestidigitator", 68 | "priest", 69 | "protector", 70 | "pyromancer", 71 | "ranger", 72 | "rogue", 73 | "runecaster", 74 | "seer", 75 | "skald", 76 | "sorcerer", 77 | "spellbinder", 78 | "summoner", 79 | "swashbuckler", 80 | "swindler", 81 | "swordsman", 82 | "thaumaturgist", 83 | "theurgist", 84 | "thief", 85 | "transmuter", 86 | "veteran", 87 | "warder", 88 | "warlock", 89 | "warrior", 90 | "wild mage", 91 | "witch", 92 | "wizard" 93 | ] 94 | } 95 | ] 96 | } -------------------------------------------------------------------------------- /json/titleFantasy_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Fantasy (formal) Generator", 3 | "resultPattern": "{titleFantasy formal}", 4 | "tables": [ 5 | { 6 | "name": "titleFantasy formal", 7 | "entries": [ 8 | "Abjurer", 9 | "Acrobat", 10 | "Aeromancer", 11 | "Alchemist", 12 | "Animist", 13 | "Anti-paladin", 14 | "Apparitionist", 15 | "Archdruid", 16 | "Archer", 17 | "Archmage", 18 | "Assassin", 19 | "Auramancer", 20 | "Barbarian", 21 | "Bard", 22 | "Battlemage", 23 | "Burglar", 24 | "Cabalist", 25 | "Cavalier", 26 | "Champion", 27 | "Charlatan", 28 | "Chevalier", 29 | "Chronomancer", 30 | "Cleric", 31 | "Druid", 32 | "Conjurer", 33 | "Cutpurse", 34 | "Cryomancer", 35 | "Defender", 36 | "Distortionist", 37 | "Diviner", 38 | "Electromancer", 39 | "Elementalist", 40 | "Enchanter", 41 | "Evoker", 42 | "Fighter", 43 | "Filcher", 44 | "Footpad", 45 | "Gallant", 46 | "Geomancer", 47 | "Guardian", 48 | "Hedge wizard", 49 | "Hero", 50 | "Hydromancer", 51 | "Illusionist", 52 | "Justiciar", 53 | "Keeper", 54 | "Mage", 55 | "Magic-user", 56 | "Magician", 57 | "Magsman", 58 | "Mentalist", 59 | "Monk", 60 | "Myrmidon", 61 | "Mystic", 62 | "Necromancer", 63 | "Paladin", 64 | "Phantasmist", 65 | "Pickpocket", 66 | "Pirate", 67 | "Prestidigitator", 68 | "Priest", 69 | "Protector", 70 | "Pyromancer", 71 | "Ranger", 72 | "Rogue", 73 | "Runecaster", 74 | "Seer", 75 | "Skald", 76 | "Sorcerer", 77 | "Spellbinder", 78 | "Summoner", 79 | "Swashbuckler", 80 | "Swindler", 81 | "Swordsman", 82 | "Thaumaturgist", 83 | "Theurgist", 84 | "Thief", 85 | "Transmuter", 86 | "Veteran", 87 | "Warder", 88 | "Warlock", 89 | "Warrior", 90 | "Wild Mage", 91 | "Witch", 92 | "Wizard" 93 | ] 94 | } 95 | ] 96 | } -------------------------------------------------------------------------------- /json/titleFantasy_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Fantasy (with indefinitive article) Generator", 3 | "resultPattern": "{titleFantasy wia}", 4 | "tables": [ 5 | { 6 | "name": "titleFantasy wia", 7 | "entries": [ 8 | "an abjurer", 9 | "an acrobat", 10 | "an aeromancer", 11 | "an alchemist", 12 | "an animist", 13 | "an anti-paladin", 14 | "an apparitionist", 15 | "an archdruid", 16 | "an archer", 17 | "an archmage", 18 | "an assassin", 19 | "an auramancer", 20 | "a barbarian", 21 | "a bard", 22 | "a battlemage", 23 | "a burglar", 24 | "a cabalist", 25 | "a cavalier", 26 | "a champion", 27 | "a charlatan", 28 | "a chevalier", 29 | "a chronomancer", 30 | "a cleric", 31 | "a druid", 32 | "a conjurer", 33 | "a cutpurse", 34 | "a cryomancer", 35 | "a defender", 36 | "a distortionist", 37 | "a diviner", 38 | "an electromancer", 39 | "an elementalist", 40 | "an enchanter", 41 | "an evoker", 42 | "a fighter", 43 | "a filcher", 44 | "a footpad", 45 | "a gallant", 46 | "a geomancer", 47 | "a guardian", 48 | "a hedge wizard", 49 | "a hero", 50 | "a hydromancer", 51 | "a illusionist", 52 | "a justiciar", 53 | "a keeper", 54 | "a mage", 55 | "a magic-user", 56 | "a magician", 57 | "a magsman", 58 | "a mentalist", 59 | "a monk", 60 | "a myrmidon", 61 | "a mystic", 62 | "a necromancer", 63 | "a paladin", 64 | "a phantasmist", 65 | "a pickpocket", 66 | "a pirate", 67 | "a prestidigitator", 68 | "a priest", 69 | "a protector", 70 | "a pyromancer", 71 | "a ranger", 72 | "a rogue", 73 | "a runecaster", 74 | "a seer", 75 | "a skald", 76 | "a sorcerer", 77 | "a spellbinder", 78 | "a summoner", 79 | "a swashbuckler", 80 | "a swindler", 81 | "a swordsman", 82 | "a thaumaturgist", 83 | "a theurgist", 84 | "a thief", 85 | "a transmuter", 86 | "a veteran", 87 | "a warder", 88 | "a warlock", 89 | "a warrior", 90 | "a wild mage", 91 | "a witch", 92 | "a wizard" 93 | ] 94 | } 95 | ] 96 | } -------------------------------------------------------------------------------- /json/titleMilitary.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Military Generator", 3 | "resultPattern": "{titleMilitary}", 4 | "tables": [ 5 | { 6 | "name": "titleMilitary", 7 | "entries": [ 8 | "captain", 9 | "commander", 10 | "corporal", 11 | "general", 12 | "lieutenant", 13 | "lord", 14 | "lord marshal", 15 | "major", 16 | "marshal", 17 | "overseer", 18 | "sergeant" 19 | ] 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /json/titleMilitary_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Military (Formal) Generator", 3 | "resultPattern": "{titleMilitary formal}", 4 | "tables": [ 5 | { 6 | "name": "titleMilitary formal", 7 | "entries": [ 8 | "Captain", 9 | "Commander", 10 | "Corporal", 11 | "General", 12 | "Lieutenant", 13 | "Lord", 14 | "Lord Marshal", 15 | "Major", 16 | "Marshal", 17 | "Overseer", 18 | "Sergeant" 19 | ] 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /json/titleMilitary_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Military Generator", 3 | "resultPattern": "{titleMilitary wia}", 4 | "tables": [ 5 | { 6 | "name": "titleMilitary wia", 7 | "entries": [ 8 | "a captain", 9 | "a commander", 10 | "a corporal", 11 | "a general", 12 | "a lieutenant", 13 | "a lord", 14 | "a lord marshal", 15 | "a major", 16 | "a marshal", 17 | "an overseer", 18 | "a sergeant" 19 | ] 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /json/titleNoble.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Noble Generator", 3 | "resultPattern": "{titleNoble}", 4 | "tables": [ 5 | { 6 | "name": "titleNoble", 7 | "entries": [ 8 | "archduchess", 9 | "archduke", 10 | "baron", 11 | "baroness", 12 | "baronet", 13 | "baronetess", 14 | "count", 15 | "countess", 16 | "duchess", 17 | "duke", 18 | "emperor", 19 | "empress", 20 | "grand duchess", 21 | "grand duke", 22 | "hedge knight", 23 | "king", 24 | "knight", 25 | "knight errant", 26 | "lord", 27 | "marquis", 28 | "marquess", 29 | "prince", 30 | "princess", 31 | "queen", 32 | "viscount", 33 | "viscountess" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/titleNoble_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Noble (Formal) Generator", 3 | "resultPattern": "{titleNoble formal}", 4 | "tables": [ 5 | { 6 | "name": "titleNoble formal", 7 | "entries": [ 8 | "Archduchess", 9 | "Archduke", 10 | "Baron", 11 | "Baroness", 12 | "Baronet", 13 | "Baronetess", 14 | "Count", 15 | "Countess", 16 | "Duchess", 17 | "Duke", 18 | "Emperor", 19 | "Empress", 20 | "Grand Duchess", 21 | "Grand Duke", 22 | "Hedge Knight", 23 | "King", 24 | "Knight", 25 | "Knight Errant", 26 | "Lord", 27 | "Marquis", 28 | "Marquess", 29 | "Prince", 30 | "Princess", 31 | "Queen", 32 | "Viscount", 33 | "Viscountess" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/titleNoble_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Noble (Plural) Generator", 3 | "resultPattern": "{titleNoble pl}", 4 | "tables": [ 5 | { 6 | "name": "titleNoble pl", 7 | "entries": [ 8 | "archduchesses", 9 | "archdukes", 10 | "barons", 11 | "baronesses", 12 | "baronets", 13 | "baronetesses", 14 | "counts", 15 | "countesses", 16 | "duchesses", 17 | "dukes", 18 | "emperors", 19 | "empresses", 20 | "grand duchesses", 21 | "grand dukes", 22 | "hedge knights", 23 | "kings", 24 | "knights", 25 | "knights errant", 26 | "lords", 27 | "marquises", 28 | "marquesses", 29 | "princes", 30 | "princesses", 31 | "queens", 32 | "viscounts", 33 | "viscountesses" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/titleNoble_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Noble (with indefinitive article) Generator", 3 | "resultPattern": "{titleNoble wia}", 4 | "tables": [ 5 | { 6 | "name": "titleNoble wia", 7 | "entries": [ 8 | "an archduchess", 9 | "an archduke", 10 | "a baron", 11 | "a baroness", 12 | "a baronet", 13 | "a baronetess", 14 | "a count", 15 | "a countess", 16 | "a duchess", 17 | "a duke", 18 | "an emperor", 19 | "an empress", 20 | "a grand duchess", 21 | "a grand duke", 22 | "a hedge knight", 23 | "a king", 24 | "a knight", 25 | "a knight errant", 26 | "a lord", 27 | "a marquis", 28 | "a marquess", 29 | "a prince", 30 | "a princess", 31 | "a queen", 32 | "a viscount", 33 | "a viscountess" 34 | ] 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /json/titleSoldier.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Soldier Generator", 3 | "resultPattern": "{titleSoldier}", 4 | "tables": [ 5 | { 6 | "name": "titleSoldier", 7 | "entries": [ 8 | "archer", 9 | "billman", 10 | "cavalryman", 11 | "crossbowman", 12 | "guard", 13 | "halberdier", 14 | "hoplite", 15 | "infantryman", 16 | "knight", 17 | "man-at-arms", 18 | "mercenary", 19 | "sapper", 20 | "siege engineer" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/titleSoldier_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Soldier (plural) Generator", 3 | "resultPattern": "{titleSoldier pl}", 4 | "tables": [ 5 | { 6 | "name": "titleSoldier pl", 7 | "entries": [ 8 | "archers", 9 | "billmen", 10 | "cavalrymen", 11 | "crossbowmen", 12 | "guards", 13 | "halberdiers", 14 | "hoplites", 15 | "infantrymen", 16 | "knights", 17 | "men-at-arms", 18 | "mercenaries", 19 | "sappers", 20 | "siege engineers" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/titleSoldier_wia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title, Soldier (with indefinitive article) Generator", 3 | "resultPattern": "{titleSoldier wia}", 4 | "tables": [ 5 | { 6 | "name": "titleSoldier wia", 7 | "entries": [ 8 | "an archer", 9 | "a billman", 10 | "a cavalryman", 11 | "a crossbowman", 12 | "a guard", 13 | "a halberdier", 14 | "a hoplite", 15 | "an infantryman", 16 | "a knight", 17 | "a man-at-arms", 18 | "a mercenary", 19 | "a sapper", 20 | "a siege engineer" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /json/verb_baseForm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Verb (base form) Generator", 3 | "resultPattern": "{verb baseForm}", 4 | "tables": [ 5 | { 6 | "name": "verb baseForm", 7 | "entries": [ 8 | "babble", 9 | "chuckle", 10 | "cough", 11 | "cry", 12 | "dance", 13 | "drool", 14 | "gibber", 15 | "hobble", 16 | "hum", 17 | "jeer", 18 | "lament", 19 | "laugh", 20 | "loiter", 21 | "limp", 22 | "pass", 23 | "quake", 24 | "quiver", 25 | "smile", 26 | "smoke", 27 | "snicker", 28 | "sob", 29 | "stagger", 30 | "stutter", 31 | "sway", 32 | "sweat", 33 | "twitch", 34 | "wander", 35 | "wheeze", 36 | "whistle" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/verb_ingForm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Verb (-ing form) Generator", 3 | "resultPattern": "{verb ingForm}", 4 | "tables": [ 5 | { 6 | "name": "verb ingForm", 7 | "entries": [ 8 | "babbling", 9 | "chuckling", 10 | "coughing", 11 | "crying", 12 | "dancing", 13 | "drooling", 14 | "gibbering", 15 | "hobbling", 16 | "humming", 17 | "jeering", 18 | "lamenting", 19 | "laughing", 20 | "loitering", 21 | "limping", 22 | "passing", 23 | "quaking", 24 | "quivering", 25 | "smiling", 26 | "smoking", 27 | "snickering", 28 | "sobbing", 29 | "staggering", 30 | "stuttering", 31 | "swaying", 32 | "sweating", 33 | "twitching", 34 | "wandering", 35 | "wheezing", 36 | "whistling" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/verb_pastForm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Verb (past form) Generator", 3 | "resultPattern": "{verb pastForm}", 4 | "tables": [ 5 | { 6 | "name": "verb pastForm", 7 | "entries": [ 8 | "babbled", 9 | "chuckled", 10 | "coughed", 11 | "cried", 12 | "danced", 13 | "drooled", 14 | "gibbered", 15 | "hobbled", 16 | "hummed", 17 | "jeered", 18 | "lamented", 19 | "laughed", 20 | "loitered", 21 | "limped", 22 | "passed", 23 | "quaked", 24 | "quivered", 25 | "smiled", 26 | "smoked", 27 | "snickered", 28 | "sobbed", 29 | "staggered", 30 | "stuttered", 31 | "swayed", 32 | "sweated", 33 | "twitched", 34 | "wandered", 35 | "wheezed", 36 | "whistled" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/verb_sForm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Verb (-s form) Generator", 3 | "resultPattern": "{verb sForm}", 4 | "tables": [ 5 | { 6 | "name": "verb sForm", 7 | "entries": [ 8 | "babbles", 9 | "chuckles", 10 | "coughs", 11 | "cries", 12 | "dances", 13 | "drools", 14 | "gibbers", 15 | "hobbles", 16 | "hums", 17 | "jeers", 18 | "laments", 19 | "laughs", 20 | "loiters", 21 | "limps", 22 | "passes", 23 | "quakes", 24 | "quivers", 25 | "smiles", 26 | "smokes", 27 | "snickers", 28 | "sobs", 29 | "staggers", 30 | "stutters", 31 | "sways", 32 | "sweats", 33 | "twitches", 34 | "wanders", 35 | "wheezes", 36 | "whistles" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /json/weaponEpic.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weapon, Epic Generator", 3 | "resultPattern": "{weaponEpic}", 4 | "tables": [ 5 | { 6 | "name": "weaponEpic", 7 | "entries": [ 8 | "{weapon prefix1}{weapon suffix1}", 9 | "the {weapon prefix2} {weaponType}", 10 | "the {weapon prefix2} {weaponType} of {hero}", 11 | "the {weaponType} of {weapon suffix2}" 12 | ] 13 | }, 14 | { 15 | "name": "weapon prefix1", 16 | "entries": [ 17 | "Angel", 18 | "Black", 19 | "Blue", 20 | "Dawn", 21 | "Demon", 22 | "Diamond", 23 | "Dragon", 24 | "Fire", 25 | "Mourn", 26 | "Sky", 27 | "Sorrow", 28 | "Soul", 29 | "White", 30 | "Witch", 31 | "Wolf" 32 | ] 33 | }, 34 | { 35 | "name": "weapon suffix1", 36 | "entries": [ 37 | "bane", 38 | "blade", 39 | "bringer", 40 | "fang", 41 | "fate", 42 | "grieve", 43 | "guard", 44 | "reave", 45 | "rend", 46 | "spite", 47 | "storm", 48 | "tear" 49 | ] 50 | }, 51 | { 52 | "name": "weapon prefix2", 53 | "entries": [ 54 | "Adamantine", 55 | "Black", 56 | "Blazing", 57 | "Blue", 58 | "Celestial", 59 | "Ebony", 60 | "Emblazoned", 61 | "Fabled", 62 | "Fiery", 63 | "Flaming", 64 | "Golden", 65 | "Green", 66 | "Holy", 67 | "Illustrious", 68 | "Indestructible", 69 | "Ivory", 70 | "Liberating", 71 | "Mithral", 72 | "Petrifying", 73 | "Red", 74 | "Shining", 75 | "Silvered", 76 | "Singing", 77 | "Thundering", 78 | "Yellow", 79 | "White" 80 | ] 81 | }, 82 | { 83 | "name": "weapon suffix2", 84 | "entries": [ 85 | "Angels", 86 | "Damnation", 87 | "Demons", 88 | "Destruction", 89 | "Doom", 90 | "the Dragon", 91 | "the East", 92 | "Fire", 93 | "the Gods", 94 | "{hero}", 95 | "Lightning", 96 | "King {nameMale}", 97 | "the {lib:monsterEpic}", 98 | "{lib:nameLocation}", 99 | "the North", 100 | "Peace", 101 | "Queen {nameFemale}", 102 | "Rending", 103 | "Ruination", 104 | "the Sea", 105 | "Shadows", 106 | "Sorrow", 107 | "Souls", 108 | "the South", 109 | "the Stars", 110 | "Sundering", 111 | "the Swan", 112 | "Tears", 113 | "the West", 114 | "the Wind" 115 | ] 116 | }, 117 | { 118 | "name": "weaponType", 119 | "entries": [ 120 | "{lib:weaponMelee_formal}", 121 | "{lib:weaponRanged_formal}" 122 | ] 123 | }, 124 | { 125 | "name": "hero", 126 | "entries": [ 127 | "{lib:name_f_1} the {lib:personAppellationHero_adj}", 128 | "{lib:name_f_1} the {lib:personAppellationHero}", 129 | "{lib:name_f_1} the {lib:personAppellationHero_adj} {lib:personAppellationHero}", 130 | "{lib:name_m_1} the {lib:personAppellationHero_adj}", 131 | "{lib:name_m_1} the {lib:personAppellationHero}", 132 | "{lib:name_m_1} the {lib:personAppellationHero_adj} {lib:personAppellationHero}" 133 | ] 134 | }, 135 | { 136 | "name": "nameFemale", 137 | "entries": [ 138 | "{lib:name_f_1}", 139 | "{lib:name_f_2}" 140 | ] 141 | }, 142 | { 143 | "name": "nameMale", 144 | "entries": [ 145 | "{lib:name_m_1}", 146 | "{lib:name_m_2}" 147 | ] 148 | } 149 | ] 150 | } -------------------------------------------------------------------------------- /json/weaponMelee.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weapon, Melee Generator", 3 | "resultPattern": "{weaponMelee}", 4 | "tables": [ 5 | { 6 | "name": "weaponMelee", 7 | "entries": [ 8 | "battleaxe", 9 | "club", 10 | "dagger", 11 | "flail", 12 | "glaive", 13 | "greataxe", 14 | "greatclub", 15 | "greatsword", 16 | "halberd", 17 | "handaxe", 18 | "javelin", 19 | "lance", 20 | "light hammer", 21 | "longsword", 22 | "mace", 23 | "maul", 24 | "morningstar", 25 | "pike", 26 | "quarterstaff", 27 | "rapier", 28 | "scimitar", 29 | "shortsword", 30 | "sickle", 31 | "spear", 32 | "trident", 33 | "war pick", 34 | "warhammer", 35 | "whip" 36 | ] 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /json/weaponMelee_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weapon, Melee (formal) Generator", 3 | "resultPattern": "{weaponMelee formal}", 4 | "tables": [ 5 | { 6 | "name": "weaponMelee formal", 7 | "entries": [ 8 | "Battleaxe", 9 | "Club", 10 | "Dagger", 11 | "Flail", 12 | "Glaive", 13 | "Greataxe", 14 | "Greatclub", 15 | "Greatsword", 16 | "Halberd", 17 | "Handaxe", 18 | "Javelin", 19 | "Lance", 20 | "Light Hammer", 21 | "Longsword", 22 | "Mace", 23 | "Maul", 24 | "Morningstar", 25 | "Pike", 26 | "Quarterstaff", 27 | "Rapier", 28 | "Scimitar", 29 | "Shortsword", 30 | "Sickle", 31 | "Spear", 32 | "Trident", 33 | "War Pick", 34 | "Warhammer", 35 | "Whip" 36 | ] 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /json/weaponRanged.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weapon, Ranged Generator", 3 | "resultPattern": "{weaponRanged}", 4 | "tables": [ 5 | { 6 | "name": "weaponRanged", 7 | "entries": [ 8 | "blowgun", 9 | "dagger", 10 | "dart", 11 | "handaxe", 12 | "hand crossbow", 13 | "heavy crossbow", 14 | "javelin", 15 | "light crossbow", 16 | "light hammer", 17 | "longbow", 18 | "net", 19 | "shortbow", 20 | "sling", 21 | "spear", 22 | "trident" 23 | ] 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /json/weaponRanged_formal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weapon, Ranged (formal) Generator", 3 | "resultPattern": "{weaponRanged formal}", 4 | "tables": [ 5 | { 6 | "name": "weaponRanged formal", 7 | "entries": [ 8 | "Blowgun", 9 | "Dagger", 10 | "Dart", 11 | "Handaxe", 12 | "Hand Crossbow", 13 | "Heavy Crossbow", 14 | "Javelin", 15 | "Light Crossbow", 16 | "Light Hammer", 17 | "Longbow", 18 | "Net", 19 | "Shortbow", 20 | "Sling", 21 | "Spear", 22 | "Trident" 23 | ] 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /log/log-NPC.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NPC log", 3 | "resultPattern": "{result}", 4 | "explanation": "Creates static log entries for NPC records.", 5 | "date": "2018-03-12", 6 | "authors": "ELF Vesala.", 7 | "genre": "universal", 8 | "categories": [ 9 | "log", 10 | "character" 11 | ], 12 | "tables": [ 13 | { 14 | "name": "result", 15 | "explanation": "Verbosity of the resultPattern output.", 16 | "entries": [ 17 | "{b|Name}: @\"{lib:name-american-modern#detail}\"\r\n{b|Group}: ^\" \"\r\n{b|Location}: #\" \"\r\n{b|Profession}: \r\n{b|Background}: \r\n{b|Relationship}: \r\n{b|Appearance}: \r\n{b|Speech}: \r\n{b|Gestures}: \r\n{b|Behavior}: \r\n{b|Personality}: \r\n{b|Goal}: \r\n{b|Secret}: \r\n" 18 | ] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /yaml/_template_librarycall.yml: -------------------------------------------------------------------------------- 1 | resultPattern: '{lib:generator}' 2 | --------------------------------------------------------------------------------