├── .replit ├── replit.nix ├── .github └── FUNDING.yml ├── AUTHORS.md ├── src ├── activities │ ├── real_life │ │ ├── playing.json │ │ ├── reading.json │ │ ├── coding.json │ │ └── writing.json │ └── fictional │ │ └── fantasy.json ├── entity │ ├── size.json │ ├── mood.json │ └── health.json ├── people │ ├── class.json │ └── npcs.json ├── attributes │ ├── adverbs.json │ ├── colors.json │ └── adjectives.json ├── weapons │ ├── siege.json │ ├── ranged.json │ ├── melee.json │ └── magical.json ├── locations │ ├── rooms.json │ ├── places.json │ └── weather.json ├── items │ ├── magical.json │ ├── treasure.json │ └── food.json ├── rpg │ ├── status-effects.json │ ├── classes.json │ ├── skills.json │ └── spells.json ├── manifest.json ├── equipment │ ├── potions.json │ ├── siege-weapons.json │ ├── mounts.json │ ├── tools.json │ ├── traps.json │ ├── armor.json │ ├── artifacts.json │ └── jewelry.json ├── characters │ ├── personalities.json │ └── backstories.json ├── world │ ├── factions.json │ └── cultures.json ├── story │ ├── plot-twists.json │ └── dialogue.json ├── animals │ ├── monsters.json │ └── animals.json └── situations │ ├── errands.json │ ├── errands-mysterious.json │ ├── adventures.json │ ├── quests.json │ └── encounters.json ├── viewer ├── README.md ├── index.html ├── style.css └── app.js ├── manifest.json ├── README.md └── LICENSE /.replit: -------------------------------------------------------------------------------- 1 | run = "cowsay Configure me!" 2 | 3 | [nix] 4 | channel = "stable-22_11" -------------------------------------------------------------------------------- /replit.nix: -------------------------------------------------------------------------------- 1 | { pkgs }: { 2 | deps = [ 3 | pkgs.cowsay 4 | ]; 5 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: triptych 4 | ko_fi: triptych 5 | custom: ["https://paypal.me/AndrewWooldridge?country.x=US&locale.x=en_US"] 6 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | This repo is an original work created by Andrew Wooldridge ( triptych ). 2 | Please read the LICENSE file for license usage. 3 | 4 | Other contributors to this repo are listed below. -------------------------------------------------------------------------------- /src/activities/real_life/playing.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of ways to play", 3 | "items": [ 4 | "Go play Skyrim on Steam", 5 | "Go play chess with a friend" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /src/activities/real_life/reading.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of good books to read", 3 | "items": [ 4 | "Uprooted by Naomi Novik", 5 | "The Arabian Nights" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /src/activities/real_life/coding.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of coding exercises", 3 | "items": [ 4 | "visit FreeCodecamp.org and check out their coding tutorials", 5 | "visit dev.to and look up some coding tutorials" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /src/entity/size.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of sizes", 3 | "items": [ 4 | "small", 5 | "large", 6 | "tiny", 7 | "huge", 8 | "miniscule", 9 | "immense", 10 | "extremely large", 11 | "super small", 12 | "medium sized", 13 | "barely visible" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/entity/mood.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of moods", 3 | "items": [ 4 | "happy", 5 | "sad", 6 | "melancholy", 7 | "aloof", 8 | "calm", 9 | "carefee", 10 | "synical", 11 | "cautious", 12 | "ambitious", 13 | "dour", 14 | "angry", 15 | "anxious", 16 | "dour" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /src/people/class.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of character classes.", 3 | "items": [ 4 | "fighter", 5 | "wizard", 6 | "bard", 7 | "thief", 8 | "ranger", 9 | "cleric", 10 | "rogue", 11 | "knight", 12 | "barbarian", 13 | "assassin", 14 | "ninja", 15 | "mage", 16 | "berserker" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /src/entity/health.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of health states", 3 | "items": [ 4 | "healthy", 5 | "sick", 6 | "verge of death", 7 | "under the weather", 8 | "resting", 9 | "anemic", 10 | "poisoned", 11 | "envigorated", 12 | "exhausted", 13 | "dying", 14 | "bleeding", 15 | "dead" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/attributes/adverbs.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of fun adverbs for games, bots, etc.", 3 | "items": [ 4 | "broadly", 5 | "cautiously", 6 | "merrily", 7 | "sneakily", 8 | "viciously", 9 | "easily", 10 | "quickly", 11 | "coyly", 12 | "sharply", 13 | "too", 14 | "finally", 15 | "naturally", 16 | "crazily", 17 | "merrilly" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /src/attributes/colors.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of colors", 3 | "items": [ 4 | "black", 5 | "blue", 6 | "brown", 7 | "green", 8 | "orange", 9 | "pink", 10 | "purple", 11 | "red", 12 | "white", 13 | "silver", 14 | "gray", 15 | "white", 16 | "maroon", 17 | "fuschia", 18 | "lime", 19 | "olive", 20 | "yellow", 21 | "navy", 22 | "teal", 23 | "aqua" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/weapons/siege.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A collection of siege weapons and war machines", 3 | "items": [ 4 | "ballista", 5 | "battering ram", 6 | "bombard", 7 | "catapult", 8 | "demolition tower", 9 | "fire projector", 10 | "greek fire thrower", 11 | "heavy mangonel", 12 | "helepolis", 13 | "onager", 14 | "petrary", 15 | "pierrière", 16 | "ram tower", 17 | "repeating ballista", 18 | "scorpion", 19 | "siege tower", 20 | "springald", 21 | "stone thrower", 22 | "trebuchet", 23 | "war wagon" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/weapons/ranged.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A comprehensive list of ranged weapons for distance combat", 3 | "items": [ 4 | "arbalest", 5 | "atlatl", 6 | "blowgun", 7 | "boomerang", 8 | "composite bow", 9 | "compound bow", 10 | "crossbow", 11 | "dart", 12 | "hand crossbow", 13 | "heavy crossbow", 14 | "javelin", 15 | "light crossbow", 16 | "long bow", 17 | "net", 18 | "recurve bow", 19 | "repeating crossbow", 20 | "shortbow", 21 | "sling", 22 | "throwing axe", 23 | "throwing dagger", 24 | "throwing knife", 25 | "throwing spear", 26 | "war javelin" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /src/locations/rooms.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of rooms in a house", 3 | "items": [ 4 | "kitchen", 5 | "foyer", 6 | "living room", 7 | "rec room", 8 | "bathroom", 9 | "dining room", 10 | "hallway", 11 | "library room", 12 | "attic", 13 | "bedroom", 14 | "entertainment room", 15 | "game room", 16 | "solarium", 17 | "craft room", 18 | "porch", 19 | "butler's pantry", 20 | "sauna", 21 | "steam room", 22 | "stairwell", 23 | "widow's walk", 24 | "ballroom", 25 | "tower room", 26 | "hidden room", 27 | "pool room", 28 | "parlor", 29 | "work room", 30 | "roof" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /src/items/magical.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of magical items.", 3 | "items": [ 4 | "Wand of Fire", 5 | "Potion of Invisibility", 6 | "Book of Spells", 7 | "Crystal Ball", 8 | "Amulet of Protection", 9 | "Ring of teleportation", 10 | "Cauldron of Brewing", 11 | "Enchanted Mirror", 12 | "Phoenix Feather Quill", 13 | "Candle of Summoning", 14 | "Eldritch Scrying Stones", 15 | "Sonic Screwdriver", 16 | "Divination Deck", 17 | "Rune Stones", 18 | "Staff of the Archmage", 19 | "Hourglass of Time Control", 20 | "Dragon Scale Talisman", 21 | "Brooch of Shielding", 22 | "Elemental Orb of Air", 23 | "Rabbit's Foot of Luck", 24 | "Blackthorn Walking Stick" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /src/rpg/status-effects.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of status conditions that can affect characters.", 3 | "items": [ 4 | "asleep", 5 | "blessed", 6 | "blinded", 7 | "burning", 8 | "charmed", 9 | "confused", 10 | "cursed", 11 | "deafened", 12 | "diseased", 13 | "drunk", 14 | "energized", 15 | "enraged", 16 | "exhausted", 17 | "frightened", 18 | "frozen", 19 | "hasted", 20 | "invisible", 21 | "invulnerable", 22 | "levitating", 23 | "paralyzed", 24 | "petrified", 25 | "poisoned", 26 | "possessed", 27 | "prone", 28 | "regenerating", 29 | "resistant", 30 | "silenced", 31 | "slowed", 32 | "stunned", 33 | "transformed", 34 | "vulnerable", 35 | "weakened", 36 | "wet" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /src/locations/places.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of places.", 3 | "items": [ 4 | "cave", 5 | "forest", 6 | "desert", 7 | "plains", 8 | "grassland", 9 | "yard", 10 | "field", 11 | "garden", 12 | "pond", 13 | "meadow", 14 | "beach", 15 | "alley", 16 | "cliff", 17 | "mountaintop", 18 | "hole", 19 | "swamp", 20 | "house", 21 | "jungle", 22 | "woods", 23 | "mountain", 24 | "hill", 25 | "dune", 26 | "ocean", 27 | "island", 28 | "canyon", 29 | "lake", 30 | "river", 31 | "valley", 32 | "falls", 33 | "glacier", 34 | "ravine", 35 | "fjord", 36 | "geyser", 37 | "volcano", 38 | "coral reef", 39 | "archipelago", 40 | "seashore", 41 | "bay", 42 | "gulf", 43 | "strait", 44 | "sound" 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of all the lists!", 3 | "items": [ 4 | "animals/animals.json", 5 | "animals/monsters.json", 6 | "attributes/adjectives.json", 7 | "attributes/adverbs.json", 8 | "attributes/colors.json", 9 | "items/food.json", 10 | "items/treasure.json", 11 | "items/magical.json", 12 | "locations/places.json", 13 | "locations/rooms.json", 14 | "locations/weather.json", 15 | "people/class.json", 16 | "people/npcs.json", 17 | "situations/adventures.json", 18 | "situations/encounters.json", 19 | "situations/errands-mysterious.json", 20 | "situations/errands.json", 21 | "situations/quests.json", 22 | "weapons/melee.json", 23 | "weapons/ranged.json", 24 | "entity/health.json", 25 | "entity/mood.json", 26 | "entity/size.json" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /src/weapons/melee.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A comprehensive list of melee weapons for close combat", 3 | "items": [ 4 | "bastard sword", 5 | "battle axe", 6 | "broadsword", 7 | "claymore", 8 | "club", 9 | "dagger", 10 | "estoc", 11 | "falchion", 12 | "flail", 13 | "glaive", 14 | "greataxe", 15 | "greatsword", 16 | "halberd", 17 | "hand axe", 18 | "katana", 19 | "khopesh", 20 | "knife", 21 | "kukri", 22 | "longsword", 23 | "mace", 24 | "maul", 25 | "morning star", 26 | "naginata", 27 | "partisan", 28 | "pike", 29 | "quarterstaff", 30 | "rapier", 31 | "sabre", 32 | "scimitar", 33 | "shortsword", 34 | "spear", 35 | "staff", 36 | "tanto", 37 | "trident", 38 | "war hammer", 39 | "war pick", 40 | "whip", 41 | "zweihander" 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /src/rpg/classes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of character classes and professions.", 3 | "items": [ 4 | "alchemist", 5 | "arcane archer", 6 | "assassin", 7 | "barbarian", 8 | "battle mage", 9 | "beastmaster", 10 | "berserker", 11 | "blade dancer", 12 | "blood mage", 13 | "bounty hunter", 14 | "cleric", 15 | "druid", 16 | "elementalist", 17 | "enchanter", 18 | "fighter", 19 | "ghost hunter", 20 | "gladiator", 21 | "healer", 22 | "illusionist", 23 | "inquisitor", 24 | "knight", 25 | "monk", 26 | "necromancer", 27 | "ninja", 28 | "oracle", 29 | "paladin", 30 | "ranger", 31 | "rogue", 32 | "runesmith", 33 | "samurai", 34 | "shadow walker", 35 | "shaman", 36 | "sorcerer", 37 | "spellblade", 38 | "summoner", 39 | "swashbuckler", 40 | "thief", 41 | "warlock", 42 | "warrior", 43 | "wizard" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /src/items/treasure.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of treasures.", 3 | "items": [ 4 | "gold coin", 5 | "gold bar", 6 | "gold nugget", 7 | "diamond ring", 8 | "diamond", 9 | "emerald", 10 | "ruby", 11 | "sapphire", 12 | "amethyst", 13 | "quartz", 14 | "obsidian", 15 | "golden crown", 16 | "a large diamond", 17 | "a golden cup", 18 | "a jeweled sword", 19 | "a silver mirror", 20 | "a magic staff", 21 | "a dragon bracelet", 22 | "silver coin", 23 | "silver bar", 24 | "platinum nugget", 25 | "jade pendant", 26 | "jade stone", 27 | "topaz", 28 | "pearl", 29 | "peridot", 30 | "lapis lazuli", 31 | "citrine", 32 | "aquamarine", 33 | "bronze figurine", 34 | "silver goblet", 35 | "a ruby-encrusted scepter", 36 | "a gold-plated harp", 37 | "a sapphire-studded cloak", 38 | "a diamond-tipped cane", 39 | "a magical crystal ball" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/rpg/skills.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of character skills and abilities.", 3 | "items": [ 4 | "acrobatics", 5 | "alchemy", 6 | "animal handling", 7 | "arcana", 8 | "athletics", 9 | "blacksmithing", 10 | "brewing", 11 | "cartography", 12 | "cooking", 13 | "deception", 14 | "diplomacy", 15 | "disguise", 16 | "enchanting", 17 | "engineering", 18 | "fishing", 19 | "forgery", 20 | "healing", 21 | "herbalism", 22 | "history", 23 | "hunting", 24 | "intimidation", 25 | "investigation", 26 | "lockpicking", 27 | "medicine", 28 | "meditation", 29 | "navigation", 30 | "negotiation", 31 | "performance", 32 | "persuasion", 33 | "pickpocketing", 34 | "riding", 35 | "sailing", 36 | "smithing", 37 | "sneak", 38 | "stealth", 39 | "survival", 40 | "swimming", 41 | "tracking", 42 | "trap making", 43 | "woodworking" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /src/equipment/potions.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of magical potions and elixirs.", 3 | "items": [ 4 | "antidote", 5 | "arcane sight elixir", 6 | "berserker's brew", 7 | "bottled moonlight", 8 | "breath of fire", 9 | "clarity of mind", 10 | "cure wounds", 11 | "dragon's breath", 12 | "draught of dreams", 13 | "elixir of invisibility", 14 | "essence of speed", 15 | "fairy wine", 16 | "flying potion", 17 | "frost resistance", 18 | "giant's strength", 19 | "healing potion", 20 | "heroic might", 21 | "liquid courage", 22 | "liquid luck", 23 | "love potion", 24 | "mage's focus", 25 | "night vision", 26 | "phoenix tears", 27 | "poison resistance", 28 | "potion of growth", 29 | "potion of shrinking", 30 | "regeneration elixir", 31 | "sleeping draught", 32 | "stone skin", 33 | "truth serum", 34 | "underwater breathing", 35 | "vigor potion", 36 | "water walking", 37 | "wisdom draft", 38 | "youth elixir" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /src/equipment/siege-weapons.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of large-scale military equipment and siege weapons.", 3 | "items": [ 4 | "arcane cannon", 5 | "ballista", 6 | "battering ram", 7 | "bombard", 8 | "catapult", 9 | "dwarven flame thrower", 10 | "earthquake machine", 11 | "elven arrow tower", 12 | "fire projector", 13 | "floating fortress", 14 | "frost cannon", 15 | "giant crossbow", 16 | "goblin doom roller", 17 | "gravity well", 18 | "harpoon launcher", 19 | "lightning tower", 20 | "magical barrier generator", 21 | "mana cannon", 22 | "mantlet", 23 | "mobile tower", 24 | "onager", 25 | "plague catapult", 26 | "portal generator", 27 | "ram tower", 28 | "repeating ballista", 29 | "rolling fortress", 30 | "scorpion", 31 | "siege tower", 32 | "soul cannon", 33 | "storm generator", 34 | "trebuchet", 35 | "war wagon", 36 | "warp cannon", 37 | "weather control device", 38 | "witch-fire projector" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /src/rpg/spells.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of magical spells and incantations.", 3 | "items": [ 4 | "acid arrow", 5 | "animate dead", 6 | "arcane lock", 7 | "astral projection", 8 | "banishment", 9 | "charm person", 10 | "clone", 11 | "control weather", 12 | "cure wounds", 13 | "darkness", 14 | "detect magic", 15 | "dimension door", 16 | "dispel magic", 17 | "earthquake", 18 | "enchant weapon", 19 | "feather fall", 20 | "fireball", 21 | "fly", 22 | "force field", 23 | "gate", 24 | "greater healing", 25 | "haste", 26 | "ice storm", 27 | "identify", 28 | "invisibility", 29 | "levitate", 30 | "light", 31 | "lightning bolt", 32 | "magic missile", 33 | "mass healing", 34 | "meteor swarm", 35 | "mind control", 36 | "polymorph", 37 | "resurrection", 38 | "scrying", 39 | "shield", 40 | "sleep", 41 | "telekinesis", 42 | "teleport", 43 | "time stop", 44 | "wall of fire", 45 | "wish" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /src/equipment/mounts.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of creatures and vehicles used for transportation.", 3 | "items": [ 4 | "armored war horse", 5 | "battle elephant", 6 | "black stallion", 7 | "bronze chariot", 8 | "carpet of flying", 9 | "celestial pegasus", 10 | "crystal carriage", 11 | "desert camel", 12 | "dire wolf", 13 | "dragon turtle", 14 | "dwarven steam tank", 15 | "elven stag", 16 | "enchanted broom", 17 | "flying carpet", 18 | "giant eagle", 19 | "giant owl", 20 | "griffon", 21 | "hippogriff", 22 | "ice drake", 23 | "iron horse construct", 24 | "magical airship", 25 | "mechanical horse", 26 | "nightmare steed", 27 | "phantom steed", 28 | "planar ship", 29 | "riding drake", 30 | "royal carriage", 31 | "sailing ship", 32 | "shadow mare", 33 | "skeletal horse", 34 | "spirit wolf", 35 | "storm griffin", 36 | "unicorn", 37 | "war elephant", 38 | "water strider", 39 | "wind runner", 40 | "winter wolf", 41 | "wyvern" 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /src/equipment/tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of utility items and tools.", 3 | "items": [ 4 | "alchemist's kit", 5 | "arcane compass", 6 | "astrolabe", 7 | "blacksmith's hammer", 8 | "cartographer's tools", 9 | "climbing gear", 10 | "crystal ball", 11 | "divining rod", 12 | "enchanted lockpicks", 13 | "explorer's pack", 14 | "fishing rod", 15 | "forgery kit", 16 | "ghost detector", 17 | "grappling hook", 18 | "healer's kit", 19 | "herbalism kit", 20 | "jeweler's loupe", 21 | "lantern of truth", 22 | "magnifying glass", 23 | "mason's tools", 24 | "merchant's scale", 25 | "miner's pick", 26 | "navigator's tools", 27 | "poisoner's kit", 28 | "portable forge", 29 | "rope of climbing", 30 | "scribe's quill", 31 | "seer's stones", 32 | "smith's tools", 33 | "spyglass", 34 | "thieves' tools", 35 | "tinker's tools", 36 | "trap detector", 37 | "truth serum vial", 38 | "water purifier", 39 | "weaver's tools", 40 | "woodcarver's tools" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /src/weapons/magical.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A collection of magical and enchanted weapons", 3 | "items": [ 4 | "blade of eternal frost", 5 | "bow of the phoenix", 6 | "chaos scepter", 7 | "dagger of venom", 8 | "demon-slayer sword", 9 | "dragon's breath bow", 10 | "elemental staff", 11 | "flame tongue sword", 12 | "frost brand axe", 13 | "hammer of thunderbolts", 14 | "holy avenger", 15 | "lightning javelin", 16 | "mage slayer blade", 17 | "moonlight greatsword", 18 | "nightmare blade", 19 | "oracle's staff", 20 | "phantom dagger", 21 | "planar blade", 22 | "prismatic staff", 23 | "runic warhammer", 24 | "shadowblade", 25 | "soul reaver", 26 | "spellbreaker sword", 27 | "staff of power", 28 | "star forged blade", 29 | "storm bow", 30 | "sunblade", 31 | "sword of life stealing", 32 | "thundering maul", 33 | "vampiric dagger", 34 | "voidblade", 35 | "wand of wonder", 36 | "wind caller bow", 37 | "witch hunter's blade", 38 | "wyrm slayer sword" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /src/equipment/traps.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of mechanical and magical traps.", 3 | "items": [ 4 | "acid spray", 5 | "animated statue", 6 | "arrow trap", 7 | "bear trap", 8 | "blade wall", 9 | "collapsing ceiling", 10 | "crushing walls", 11 | "curse rune", 12 | "dart trap", 13 | "descending ceiling", 14 | "electric floor", 15 | "exploding runes", 16 | "falling net", 17 | "fire geyser", 18 | "flame jet", 19 | "flooding room", 20 | "force field", 21 | "freezing trap", 22 | "gas trap", 23 | "giant swinging blade", 24 | "gravity reversal", 25 | "lightning arc", 26 | "magical sigil", 27 | "mind control rune", 28 | "pit trap", 29 | "poison dart", 30 | "poison gas", 31 | "portal trap", 32 | "rolling boulder", 33 | "scything blade", 34 | "sleeping gas", 35 | "spiked pit", 36 | "spring trap", 37 | "teleportation circle", 38 | "time loop trap", 39 | "trap door", 40 | "tripwire", 41 | "water trap", 42 | "web trap", 43 | "whirling blades" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /src/attributes/adjectives.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of fun adjectives for items, creatures, etc.", 3 | "items": [ 4 | "adventurous", 5 | "agile", 6 | "alert", 7 | "aggressive", 8 | "alive", 9 | "amazing", 10 | "anxious", 11 | "apprehensive", 12 | "arctic", 13 | "arrogant", 14 | "ashamed", 15 | "awesome", 16 | "beautiful", 17 | "brave", 18 | "courageous", 19 | "devilish", 20 | "determined", 21 | "distracted", 22 | "dynamic", 23 | "elegant", 24 | "elusive", 25 | "energetic", 26 | "enormous", 27 | "enthusiastic", 28 | "exuberant", 29 | "fancy", 30 | "fantastic", 31 | "friendly", 32 | "frightened", 33 | "gigantic", 34 | "glamorous", 35 | "gleaming", 36 | "gleeful", 37 | "gloomy", 38 | "gorgeous", 39 | "graceful", 40 | "gentle", 41 | "golden", 42 | "grumpy", 43 | "huge", 44 | "numberless", 45 | "periodic", 46 | "sharp", 47 | "sleepy", 48 | "sincere", 49 | "second-hand", 50 | "stolid", 51 | "unwritten", 52 | "vengeful", 53 | "wise", 54 | "young" 55 | ] 56 | } 57 | -------------------------------------------------------------------------------- /src/characters/personalities.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of character personality traits.", 3 | "items": [ 4 | "absent-minded", 5 | "adventurous", 6 | "ambitious", 7 | "analytical", 8 | "artistic", 9 | "brave", 10 | "cautious", 11 | "charismatic", 12 | "cheerful", 13 | "clever", 14 | "curious", 15 | "determined", 16 | "diplomatic", 17 | "eccentric", 18 | "empathetic", 19 | "energetic", 20 | "enthusiastic", 21 | "focused", 22 | "friendly", 23 | "generous", 24 | "gentle", 25 | "honest", 26 | "honorable", 27 | "humble", 28 | "humorous", 29 | "idealistic", 30 | "imaginative", 31 | "independent", 32 | "intelligent", 33 | "intuitive", 34 | "kind", 35 | "loyal", 36 | "mysterious", 37 | "optimistic", 38 | "passionate", 39 | "patient", 40 | "perceptive", 41 | "persistent", 42 | "philosophical", 43 | "practical", 44 | "reliable", 45 | "resourceful", 46 | "romantic", 47 | "scholarly", 48 | "sensitive", 49 | "serious", 50 | "sincere", 51 | "spiritual", 52 | "stoic", 53 | "thoughtful" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /src/equipment/armor.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of protective gear and armor types.", 3 | "items": [ 4 | "adamantine full plate", 5 | "assassin's shroud", 6 | "blessed chainmail", 7 | "bone armor", 8 | "bracers of defense", 9 | "celestial shield", 10 | "cloak of displacement", 11 | "crystal aegis", 12 | "dragon scale mail", 13 | "dwarven plate", 14 | "elven chain shirt", 15 | "ethereal armor", 16 | "frost-forged plate", 17 | "gauntlets of protection", 18 | "ghostweave robes", 19 | "gladiator's armor", 20 | "helm of clarity", 21 | "ironbark armor", 22 | "leather armor", 23 | "mage's barrier", 24 | "mithril plate", 25 | "monk's vestments", 26 | "obsidian shield", 27 | "phoenix feather cloak", 28 | "platemail of the deep", 29 | "ranger's camouflage", 30 | "rogue's leather", 31 | "royal guard armor", 32 | "runic shield", 33 | "scale mail", 34 | "shadow cloak", 35 | "spiked armor", 36 | "studded leather", 37 | "sunforged plate", 38 | "thief's leather", 39 | "titan's aegis", 40 | "tower shield", 41 | "vampiric plate", 42 | "void-touched armor", 43 | "warrior's plate" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /src/equipment/artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of unique and powerful magical artifacts.", 3 | "items": [ 4 | "amulet of the ancient kings", 5 | "blade of eternal frost", 6 | "book of forgotten spells", 7 | "bracelet of time control", 8 | "crown of mind reading", 9 | "crystal of infinite knowledge", 10 | "cube of reality bending", 11 | "dagger of soul stealing", 12 | "drum of earthquake", 13 | "eye of the oracle", 14 | "flute of the wind spirits", 15 | "gauntlet of divine power", 16 | "gem of true seeing", 17 | "heart of the mountain", 18 | "helm of dragon control", 19 | "horn of the valkyries", 20 | "key of all doors", 21 | "lamp of endless wishes", 22 | "mask of a thousand faces", 23 | "mirror of parallel worlds", 24 | "orb of destiny", 25 | "pearl of the seas", 26 | "pendant of life force", 27 | "ring of cosmic power", 28 | "rod of resurrection", 29 | "scepter of dominion", 30 | "scroll of universal truth", 31 | "shield of reflection", 32 | "staff of the elements", 33 | "sword of light", 34 | "talisman of protection", 35 | "tear of the goddess", 36 | "tome of ancient wisdom", 37 | "torch of eternal flame", 38 | "wand of wonder" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /src/equipment/jewelry.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of magical and decorative jewelry items.", 3 | "items": [ 4 | "amulet of health", 5 | "anklet of speed", 6 | "band of brotherhood", 7 | "bracelet of shielding", 8 | "brooch of protection", 9 | "chain of command", 10 | "charm of good fortune", 11 | "circlet of wisdom", 12 | "crown of leadership", 13 | "crystal pendant", 14 | "diadem of pure thought", 15 | "earrings of whispers", 16 | "emerald necklace", 17 | "friendship rings", 18 | "gem of insight", 19 | "golden torc", 20 | "healing crystal", 21 | "jade bracelet", 22 | "locket of memories", 23 | "medallion of thoughts", 24 | "moonstone ring", 25 | "necklace of adaptation", 26 | "pearl of power", 27 | "periapt of proof against poison", 28 | "ring of elemental command", 29 | "ring of feather falling", 30 | "ring of invisibility", 31 | "ring of mind shielding", 32 | "ring of regeneration", 33 | "ring of spell storing", 34 | "ring of the ram", 35 | "ruby pendant", 36 | "scarab of protection", 37 | "silver circlet", 38 | "talisman of pure good", 39 | "tiara of telepathy", 40 | "torque of transformation", 41 | "wedding bands of devotion" 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /src/world/factions.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of organizations, guilds, and political groups.", 3 | "items": [ 4 | "ancient order of dreamweavers", 5 | "arcane brotherhood", 6 | "assassins' guild", 7 | "black rose syndicate", 8 | "brotherhood of the eternal flame", 9 | "circle of mystic scholars", 10 | "council of elder druids", 11 | "crimson hand mercenaries", 12 | "crown's secret service", 13 | "cult of the dragon god", 14 | "dwarven craftsmen guild", 15 | "emerald enclave", 16 | "guild of alchemists", 17 | "hand of shadows", 18 | "harpers' alliance", 19 | "imperial legion", 20 | "iron circle merchants", 21 | "keepers of ancient lore", 22 | "knights of the sacred oath", 23 | "league of monster hunters", 24 | "merchants' consortium", 25 | "order of the crystal star", 26 | "order of the phoenix knights", 27 | "pirates' confederation", 28 | "royal mage academy", 29 | "scarlet brotherhood", 30 | "seekers of enlightenment", 31 | "silver hand paladins", 32 | "society of planar travelers", 33 | "sons of the mountain", 34 | "temple of eternal light", 35 | "thieves' guild", 36 | "twilight council", 37 | "wardens of nature", 38 | "wizards' conclave" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /src/activities/real_life/writing.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of writing prompts", 3 | "items": [ 4 | "Write about your first crush", 5 | "Write about your favorite Original Character", 6 | "Write about a time you got lost", 7 | "Write about a time you overcame fear", 8 | "Write about a time you took a risk", 9 | "Write about a place that holds special meaning to you", 10 | "Write about your most cherished childhood memory", 11 | "Write about a person who has inspired you", 12 | "Write about a moment that changed your life forever", 13 | "Write about a character from a book that resonates with you", 14 | "Write about a talent or skill you wish you had", 15 | "Write about a dream that has stuck with you", 16 | "Write about a person you admire and why", 17 | "Write about a time when you were proud of yourself", 18 | "Write about a person who has helped you through a tough time", 19 | "Write about a place you have visited and loved", 20 | "Write about a lesson you learned the hard way", 21 | "Write about a favorite teacher or mentor", 22 | "Write about a moment of pure happiness", 23 | "Write about a book or movie that impacted you deeply", 24 | "Write about a time you faced adversity and how you handled it", 25 | "Write about a time when you stepped out of your comfort zone." 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /src/characters/backstories.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of character origin stories and backgrounds.", 3 | "items": [ 4 | "abandoned at birth and raised by monks", 5 | "apprentice to a legendary craftsman", 6 | "born during a solar eclipse", 7 | "child of traveling merchants", 8 | "descendant of a fallen noble house", 9 | "discovered in a dragon's lair as a baby", 10 | "escaped slave seeking freedom", 11 | "exiled prince from a distant land", 12 | "former circus performer", 13 | "grew up in a thieves' guild", 14 | "last survivor of a destroyed village", 15 | "lived alone in the wilderness", 16 | "orphaned by a great war", 17 | "raised by druids in a sacred grove", 18 | "raised by wolves in the forest", 19 | "retired soldier seeking peace", 20 | "royal guard who failed their duty", 21 | "runaway noble seeking adventure", 22 | "scholar from a hidden library", 23 | "sole survivor of a shipwreck", 24 | "street urchin turned adventurer", 25 | "student of forbidden magic", 26 | "survivor of a magical catastrophe", 27 | "sworn to an ancient oath", 28 | "trained by mystical warriors", 29 | "transformed by a magical accident", 30 | "village healer's apprentice", 31 | "wandering sage's protégé", 32 | "witness to a divine miracle", 33 | "youngest child of a famous hero" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /src/locations/weather.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of various types of weather for your encounters.", 3 | "items": [ 4 | "cold, foggy, and a light drizzle of rain", 5 | "windy and sunny", 6 | "autumn winds blowing dry leaves around", 7 | "a loud and wet thunderstorm", 8 | "sunny and bright, but a bit too warm", 9 | "overcast and gloomy", 10 | "sunny with blue skies, a perfect day", 11 | "the sky is full of clouds, hiding an angry orange sun", 12 | "the sun is relentlessly hot today", 13 | "foggy and gloomy", 14 | "mid morning, the dew is just beginning to burn off", 15 | "a relentless pouring rain", 16 | "hurricane force winds, blowing down trees and damaging homes", 17 | "a cold, clear, calm day", 18 | "chilly and misty, with a light rain", 19 | "breezy and partly sunny", 20 | "fall breezes rustling the crisp leaves", 21 | "a sudden and intense downpour", 22 | "sunny but humid", 23 | "gloomy and drizzling", 24 | "a bright sunny day with clear skies", 25 | "the sky is covered by dark clouds, with a setting sun", 26 | "the heat is unbearable today", 27 | "dreary and damp", 28 | "early afternoon, the fog is slowly lifting", 29 | "a relentless rain shower", 30 | "tropical storm winds, causing power outages and flooding", 31 | "a crisp, clear, and quiet day" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /src/story/plot-twists.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of unexpected story turns and revelations.", 3 | "items": [ 4 | "ally was the villain all along", 5 | "ancient prophecy was misinterpreted", 6 | "believed enemy is actually a long-lost sibling", 7 | "curse was actually a blessing in disguise", 8 | "dead character returns mysteriously changed", 9 | "destiny was actually a carefully crafted lie", 10 | "faithful companion is a shapeshifted dragon", 11 | "family heirloom contains a trapped spirit", 12 | "hero's mentor is working for the enemy", 13 | "inherited power comes with a terrible price", 14 | "kingdom's founder was actually a demon", 15 | "magical artifact is actually alive", 16 | "mysterious benefactor is future self", 17 | "parent thought dead is the main antagonist", 18 | "peaceful village is an illusion", 19 | "precious treasure is actually worthless", 20 | "prophecied chosen one is the wrong person", 21 | "rival is secretly in love with the hero", 22 | "sacred ritual was maintaining world balance", 23 | "saving the world would destroy another", 24 | "simple quest reveals ancient conspiracy", 25 | "trusted advisor is a foreign spy", 26 | "villain and hero share the same goal", 27 | "villain is actually trying to prevent catastrophe", 28 | "what seemed like magic was advanced technology" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/world/cultures.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of cultural practices, traditions, and societal norms.", 3 | "items": [ 4 | "age of ascension ritual", 5 | "ancestor worship", 6 | "annual fire festival", 7 | "arranged marriages", 8 | "blood oath ceremonies", 9 | "coming of age trials", 10 | "council of elders governance", 11 | "crystal meditation", 12 | "death celebration feast", 13 | "dream walking tradition", 14 | "elemental worship", 15 | "first hunt ceremony", 16 | "full moon gatherings", 17 | "great migration festival", 18 | "harvest moon celebration", 19 | "honor duels", 20 | "initiation rites", 21 | "knowledge sharing circles", 22 | "lunar new year feast", 23 | "marriage binding ritual", 24 | "matriarchal leadership", 25 | "memory keeping tradition", 26 | "naming ceremony", 27 | "nature communion", 28 | "oath of silence periods", 29 | "oral history tradition", 30 | "peace pipe ceremony", 31 | "rite of passage quest", 32 | "sacred animal bonds", 33 | "seasonal equinox festival", 34 | "spirit journey quest", 35 | "story telling circles", 36 | "sun worship", 37 | "tribal council meetings", 38 | "vision quest tradition", 39 | "warrior's oath taking", 40 | "water blessing ritual", 41 | "winter solstice feast", 42 | "wisdom sharing circle", 43 | "yearly pilgrimage" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /viewer/README.md: -------------------------------------------------------------------------------- 1 | # Opera Omnia Viewer 2 | 3 | A simple web-based viewer for exploring the Opera Omnia dataset collection. 4 | 5 | ## Features 6 | 7 | - Browse all categories and files in the Opera Omnia repository 8 | - View file descriptions and contents 9 | - Modern, responsive interface 10 | - No build process required - pure HTML, CSS, and JavaScript 11 | 12 | ## Usage 13 | 14 | 1. Simply open `index.html` in a web browser 15 | 2. Select a category from the dropdown menu 16 | 3. Select a file from the second dropdown menu 17 | 4. View the file's description and contents 18 | 19 | ## Development 20 | 21 | The viewer is built with vanilla JavaScript and uses the GitHub raw content URLs to fetch data directly from the repository. The main components are: 22 | 23 | - `index.html`: Main structure and layout 24 | - `style.css`: Modern, responsive styling 25 | - `app.js`: Handles data fetching and display logic 26 | 27 | ## Structure 28 | 29 | - Uses the repository's manifest.json to dynamically populate categories and files 30 | - Fetches JSON content directly from GitHub 31 | - Displays both file metadata and content items 32 | - Handles nested directory structures 33 | 34 | ## Contributing 35 | 36 | Feel free to enhance the viewer with new features or improvements. Some ideas: 37 | - Search functionality 38 | - Filtering options 39 | - Data visualization 40 | - Export capabilities 41 | 42 | ## License 43 | 44 | This viewer is part of the Opera Omnia project and is available under the same license. 45 | -------------------------------------------------------------------------------- /viewer/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Opera Omnia Viewer 7 | 8 | 9 | 10 |
11 |
12 |

Opera Omnia Viewer

13 |

A simple viewer for the Opera Omnia dataset collection

14 |
15 | 16 |
17 |
18 | 21 | 24 |
25 | 26 |
27 | 31 |
32 |
    33 |
    34 |
    35 |
    36 | 37 | 40 |
    41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/people/npcs.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of NPC's suitable for fantasy settings.", 3 | "items": [ 4 | "A small boy with a lame leg", 5 | "A seductive woman", 6 | "A businessman looking for new opportunities", 7 | "A strong barbarian woman", 8 | "A blind wizard", 9 | "A young adventurer learning swordsmanship", 10 | "A talking dog", 11 | "A talking bird that was once a powerful magician", 12 | "A humanoid cat who talks with a lisp", 13 | "A fairy with a vendetta", 14 | "A golem who has gained sentience", 15 | "A playful dragon", 16 | "An old pirate", 17 | "A beautiful singer", 18 | "A lonely poet", 19 | "A masked thief", 20 | "A common townswoman", 21 | "A gaunt and mysterious butler", 22 | "A scarred veteran of many battles", 23 | "A kind-hearted healer", 24 | "A mad alchemist experimenting with dangerous chemicals", 25 | "A timid bard searching for inspiration", 26 | "A cunning rogue with a quick wit", 27 | "A grumpy old dwarf blacksmith", 28 | "A wise old man with a vast knowledge of ancient lore", 29 | "A charismatic cult leader", 30 | "A strong-willed mermaid", 31 | "A shape-shifting trickster", 32 | "A proud centaur warrior", 33 | "A mischievous imp always seeking trouble", 34 | "A charismatic street performer", 35 | "An ambitious young noblewoman", 36 | "A powerful sorceress with a dark past", 37 | "A quiet monk searching for enlightenment" 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /src/animals/monsters.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of fantasy creature / monster names", 3 | "items": [ 4 | "banshee", 5 | "bigfoot", 6 | "bogeyman", 7 | "centaur", 8 | "chimera", 9 | "chupacabra", 10 | "cyclops", 11 | "demon", 12 | "devil", 13 | "dire wolf", 14 | "dragon", 15 | "fairy", 16 | "Frankenstein's monster", 17 | "ghost", 18 | "giant", 19 | "giant snake", 20 | "giant spider", 21 | "goblin", 22 | "gorgon", 23 | "grendel", 24 | "harpy", 25 | "imp", 26 | "kraken", 27 | "Loch Ness monster", 28 | "medusa", 29 | "mermaid", 30 | "minotaur", 31 | "mothman", 32 | "mummy", 33 | "ogre", 34 | "orc", 35 | "phantom", 36 | "sasquatch", 37 | "sphinx", 38 | "troll", 39 | "unicorn", 40 | "vampire", 41 | "warlock", 42 | "wendigo", 43 | "werewolf", 44 | "witch", 45 | "wraith", 46 | "yeti", 47 | "zombie", 48 | "angel", 49 | "behemoth", 50 | "black knight", 51 | "cerberus", 52 | "djinn", 53 | "dwarf", 54 | "elf", 55 | "genie", 56 | "ghoul", 57 | "giant octopus", 58 | "griffin", 59 | "halfling", 60 | "haunt", 61 | "hydra", 62 | "jinn", 63 | "leprechaun", 64 | "manticore", 65 | "minotaur", 66 | "nectar", 67 | "ogre mage", 68 | "pegasus", 69 | "quester", 70 | "redcap", 71 | "siren", 72 | "succubus", 73 | "troll king", 74 | "valkyrie", 75 | "wizard", 76 | "xorn", 77 | "yaksha", 78 | "zombie king" 79 | ] 80 | } 81 | -------------------------------------------------------------------------------- /src/situations/errands.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "a list of common errands", 3 | "items": [ 4 | "clean the kitchen", 5 | "wash the clothes", 6 | "go to the nearby store and get food staples", 7 | "deliver a package to a nearby patron", 8 | "deliver a bottle of medicine to a sick person", 9 | "sort all the books in the library by author's name", 10 | "feed the pet", 11 | "take out the trash", 12 | "clean up the attic", 13 | "water the garden", 14 | "paint the outside of the house", 15 | "deliver money to the bank", 16 | "pay the bills", 17 | "clean the living room", 18 | "find missing glasses", 19 | "go buy a book from the local bookstore", 20 | "sweep all the floors", 21 | "weed the garden", 22 | "water the flowers", 23 | "bake bread", 24 | "prepare dinner", 25 | "wash dishes", 26 | "prepare lunch", 27 | "repare clothing", 28 | "wash the windows", 29 | "Dust the furniture", 30 | "Vacuum the carpets", 31 | "Clean the bathroom", 32 | "Mop the floors", 33 | "Take the dog for a walk", 34 | "Sort the laundry", 35 | "Do the grocery shopping", 36 | "Go to the post office and mail a package", 37 | "Pick up dry cleaning", 38 | "Organize the pantry", 39 | "Clean the oven", 40 | "Do yard work", 41 | "Run errands for an elderly neighbor", 42 | "Do the dishes and put them away", 43 | "Clean the car", 44 | "Sweep the patio", 45 | "Mow the lawn", 46 | "Change the bed linens", 47 | "Take out the recycling", 48 | "Buy pet food and supplies" 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "opera-omnia", 3 | "description": "A collection of JSON-based data sets for games, storytelling, and bot development", 4 | "version": "2.0.0", 5 | "license": "MIT", 6 | "directories": { 7 | "src": { 8 | "activities": { 9 | "fictional": [ 10 | "fantasy.json" 11 | ] 12 | }, 13 | "animals": [ 14 | "animals.json", 15 | "monsters.json" 16 | ], 17 | "attributes": [ 18 | "adjectives.json" 19 | ], 20 | "characters": [ 21 | "personalities.json", 22 | "backstories.json" 23 | ], 24 | "entity": [ 25 | "health.json", 26 | "mood.json", 27 | "size.json" 28 | ], 29 | "equipment": [ 30 | "armor.json", 31 | "tools.json", 32 | "potions.json", 33 | "artifacts.json", 34 | "jewelry.json", 35 | "mounts.json", 36 | "siege-weapons.json", 37 | "traps.json" 38 | ], 39 | "items": [ 40 | "food.json", 41 | "magical.json", 42 | "treasure.json" 43 | ], 44 | "locations": [ 45 | "places.json", 46 | "rooms.json", 47 | "weather.json" 48 | ], 49 | "people": [ 50 | "npcs.json" 51 | ], 52 | "rpg": [ 53 | "classes.json", 54 | "skills.json", 55 | "status-effects.json", 56 | "spells.json" 57 | ], 58 | "situations": [ 59 | "adventures.json", 60 | "errands.json", 61 | "quests.json" 62 | ], 63 | "story": [ 64 | "plot-twists.json", 65 | "dialogue.json" 66 | ], 67 | "weapons": [ 68 | "melee.json", 69 | "ranged.json", 70 | "magical.json", 71 | "siege.json" 72 | ], 73 | "world": [ 74 | "factions.json", 75 | "cultures.json" 76 | ] 77 | } 78 | }, 79 | "fileTypes": { 80 | "json": { 81 | "encoding": "utf-8", 82 | "indentation": "2 spaces" 83 | } 84 | }, 85 | "metadata": { 86 | "lastUpdated": "2024-11-15", 87 | "contributors": [] 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/animals/animals.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of common animals.", 3 | "items": [ 4 | "alligator", 5 | "alpaca", 6 | "ant", 7 | "anteater", 8 | "ape", 9 | "baboon", 10 | "badger", 11 | "beaver", 12 | "bird", 13 | "bison", 14 | "buffalo", 15 | "bull", 16 | "cat", 17 | "camel", 18 | "cheeta", 19 | "chicken", 20 | "cow", 21 | "deer", 22 | "dog", 23 | "dolphin", 24 | "elephant", 25 | "elk", 26 | "ferret", 27 | "fish", 28 | "fox", 29 | "goat", 30 | "hedgehog", 31 | "horse", 32 | "hyena", 33 | "jackal", 34 | "jaguar", 35 | "kangaroo", 36 | "kitten", 37 | "leopard", 38 | "lion", 39 | "llama", 40 | "mouse", 41 | "opossum", 42 | "otter", 43 | "pig", 44 | "puma", 45 | "rabbit", 46 | "racoon", 47 | "rat", 48 | "reindeer", 49 | "skunk", 50 | "snake", 51 | "sheep", 52 | "squirrel", 53 | "tiger", 54 | "turtle", 55 | "weasel", 56 | "whale", 57 | "wolf", 58 | "zebra", 59 | "ant", 60 | "bear", 61 | "bee", 62 | "butterfly", 63 | "cat", 64 | "chameleon", 65 | "chicken", 66 | "cow", 67 | "crocodile", 68 | "crab", 69 | "deer", 70 | "dolphin", 71 | "dog", 72 | "eagle", 73 | "elephant", 74 | "fish", 75 | "flamingo", 76 | "fox", 77 | "frog", 78 | "giraffe", 79 | "gorilla", 80 | "horse", 81 | "kangaroo", 82 | "koala", 83 | "leopard", 84 | "lion", 85 | "lizard", 86 | "lobster", 87 | "monkey", 88 | "octopus", 89 | "owl", 90 | "panda", 91 | "parrot", 92 | "peacock", 93 | "penguin", 94 | "pig", 95 | "rabbit", 96 | "seal", 97 | "shark", 98 | "sheep", 99 | "shrimp", 100 | "snake", 101 | "spider", 102 | "squirrel", 103 | "tiger", 104 | "turtle", 105 | "whale", 106 | "wolf", 107 | "zebra" 108 | ] 109 | } 110 | -------------------------------------------------------------------------------- /src/activities/fictional/fantasy.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A collection of activities and pastimes found in fantasy worlds", 3 | "items": [ 4 | "attending a magical creature race", 5 | "brewing potions in an enchanted cauldron", 6 | "carving runes into magical staves", 7 | "catching fairy lights in crystal jars", 8 | "challenging a wizard to a spell duel", 9 | "charming wild griffins for riding", 10 | "collecting dragon scales after molting season", 11 | "competing in a levitation tournament", 12 | "crafting enchanted jewelry", 13 | "crystal ball scrying competitions", 14 | "dancing with dryads under moonlight", 15 | "designing magical gardens", 16 | "divining fortunes using enchanted cards", 17 | "dragon egg watching", 18 | "exploring ancient magical ruins", 19 | "familiar training and competitions", 20 | "gathering glowing mushrooms at midnight", 21 | "ghost storytelling in haunted taverns", 22 | "harvesting mana crystals", 23 | "hunting for phoenix feathers", 24 | "illusion painting contests", 25 | "magical artifact restoration", 26 | "magical beast taming", 27 | "magical cooking competitions", 28 | "magical fireworks crafting", 29 | "magical instrument playing", 30 | "mapping ley lines", 31 | "meditation with earth elementals", 32 | "merfolk song listening parties", 33 | "mining for enchanted gems", 34 | "mixing color-changing drinks", 35 | "moonlight butterfly catching", 36 | "navigating mirror mazes", 37 | "negotiating with portal spirits", 38 | "participating in flying carpet races", 39 | "performing ritual dances", 40 | "phoenix egg warming duty", 41 | "playing chess with living pieces", 42 | "playing riddle games with sphinxes", 43 | "practicing telepathy with crystals", 44 | "reading ancient spell tomes", 45 | "riding cloud horses", 46 | "seeking out wish-granting wells", 47 | "shadow puppetry with real shadows", 48 | "shapeshifting contests", 49 | "singing to growing plants", 50 | "sky fishing for floating fish", 51 | "starlight weaving", 52 | "studying magical creatures", 53 | "tending to enchanted gardens" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /src/situations/errands-mysterious.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "errands of a mysterious nature", 3 | "items": [ 4 | "deliver a package to a mysterious man at the docks", 5 | "paint a picture of a hole and place it on the floor", 6 | "transcribe a book of magical spells", 7 | "keep a baby dragon's egg under a heat lamp", 8 | "place a bag of gold under an old oak tree", 9 | "guide a young witch to a secret glen", 10 | "take a talisman to an old goblin in a cave in the mountains", 11 | "take a bucket of water and leave it in the middle of the road at night", 12 | "read out loud a magical spell near a spring", 13 | "find a lost elf girl in the nearby forest using a magic ring", 14 | "dance with a talking cat on the roof of the house at midnight", 15 | "put on a strange mask and walk around town all day aimlessly", 16 | "find the hidden entrance to an underground temple using a magic map", 17 | "collect ingredients for a potion from a haunted garden", 18 | "summon a spirit from the underworld using a mysterious incantation", 19 | "place a silver coin under each window of an abandoned house", 20 | "leave three red roses at the entrance of the fairy circle", 21 | "plant a mysterious seed in the light of the full moon", 22 | "carry an enchanted mirror through the town square at dawn", 23 | "deliver a letter written in invisible ink to the wise woman", 24 | "follow a black cat through the city for an entire day", 25 | "place a crystal ball at the crossroads at midnight", 26 | "light a blue candle in every window of your house", 27 | "whisper a secret to a tree in the ancient forest", 28 | "leave a bowl of milk for the house spirits", 29 | "ring a silver bell at sunset in the town square", 30 | "draw a magical symbol in the sand at low tide", 31 | "burn a special incense at the top of the hill", 32 | "feed breadcrumbs to the ravens at dawn", 33 | "place a mirror facing the moon during the eclipse", 34 | "walk backwards around a sacred well three times", 35 | "tie red ribbons to the branches of the oldest tree", 36 | "scatter rose petals along the path to the witch's house", 37 | "leave a golden key at the threshold of the fairy door", 38 | "sing an ancient lullaby to the sleeping stones" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /viewer/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --primary-color: #2c3e50; 3 | --secondary-color: #3498db; 4 | --background-color: #f5f6fa; 5 | --text-color: #2c3e50; 6 | --border-color: #dcdde1; 7 | } 8 | 9 | * { 10 | margin: 0; 11 | padding: 0; 12 | box-sizing: border-box; 13 | } 14 | 15 | body { 16 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 17 | line-height: 1.6; 18 | background-color: var(--background-color); 19 | color: var(--text-color); 20 | } 21 | 22 | .container { 23 | max-width: 1200px; 24 | margin: 0 auto; 25 | padding: 2rem; 26 | } 27 | 28 | header { 29 | text-align: center; 30 | margin-bottom: 2rem; 31 | } 32 | 33 | header h1 { 34 | color: var(--primary-color); 35 | margin-bottom: 0.5rem; 36 | } 37 | 38 | .controls { 39 | display: flex; 40 | gap: 1rem; 41 | margin-bottom: 2rem; 42 | } 43 | 44 | select { 45 | padding: 0.5rem; 46 | border: 1px solid var(--border-color); 47 | border-radius: 4px; 48 | font-size: 1rem; 49 | flex: 1; 50 | background-color: white; 51 | } 52 | 53 | .viewer { 54 | background-color: white; 55 | border-radius: 8px; 56 | padding: 2rem; 57 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); 58 | } 59 | 60 | .metadata { 61 | margin-bottom: 2rem; 62 | padding-bottom: 1rem; 63 | border-bottom: 1px solid var(--border-color); 64 | } 65 | 66 | .metadata h2 { 67 | color: var(--primary-color); 68 | margin-bottom: 0.5rem; 69 | } 70 | 71 | .content ul { 72 | list-style: none; 73 | display: grid; 74 | grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); 75 | gap: 1rem; 76 | } 77 | 78 | .content li { 79 | padding: 1rem; 80 | background-color: var(--background-color); 81 | border-radius: 4px; 82 | transition: transform 0.2s; 83 | } 84 | 85 | .content li:hover { 86 | transform: translateY(-2px); 87 | } 88 | 89 | footer { 90 | text-align: center; 91 | margin-top: 2rem; 92 | padding-top: 2rem; 93 | border-top: 1px solid var(--border-color); 94 | } 95 | 96 | footer a { 97 | color: var(--secondary-color); 98 | text-decoration: none; 99 | } 100 | 101 | footer a:hover { 102 | text-decoration: underline; 103 | } 104 | -------------------------------------------------------------------------------- /src/items/food.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of food items.", 3 | "items": [ 4 | "apple", 5 | "grape", 6 | "bread", 7 | "egg", 8 | "steak", 9 | "chicken leg", 10 | "chicken breast", 11 | "banana", 12 | "orange", 13 | "strawberry", 14 | "blueberry", 15 | "raspberry", 16 | "watermelon", 17 | "lemon", 18 | "lime", 19 | "pear", 20 | "peach", 21 | "plum", 22 | "apricot", 23 | "mango", 24 | "kiwi", 25 | "pineapple", 26 | "grapefruit", 27 | "cantaloupe", 28 | "tomato", 29 | "carrot", 30 | "broccoli", 31 | "cauliflower", 32 | "cabbage", 33 | "lettuce", 34 | "spinach", 35 | "kale", 36 | "collard greens", 37 | "mustard greens", 38 | "turnip greens", 39 | "brussels sprouts", 40 | "asparagus", 41 | "green beans", 42 | "peas", 43 | "corn", 44 | "potato", 45 | "sweet potato", 46 | "yam", 47 | "pumpkin", 48 | "squash", 49 | "onion", 50 | "garlic", 51 | "ginger", 52 | "chocolate", 53 | "vanilla", 54 | "caramel", 55 | "peanut butter", 56 | "almond butter", 57 | "cashew butter", 58 | "honey", 59 | "maple syrup", 60 | "sugar", 61 | "salt", 62 | "pepper", 63 | "oregano", 64 | "basil", 65 | "rosemary", 66 | "thyme", 67 | "parsley", 68 | "cilantro", 69 | "sage", 70 | "dill", 71 | "tuna fish", 72 | "salmon", 73 | "cod", 74 | "shrimp", 75 | "crab", 76 | "lobster", 77 | "scallops", 78 | "clams", 79 | "oysters", 80 | "mussels", 81 | "octopus", 82 | "calamari", 83 | "sardines", 84 | "anchovies", 85 | "halibut", 86 | "tilapia", 87 | "catfish", 88 | "trout", 89 | "red snapper", 90 | "pork chops", 91 | "pork roast", 92 | "ham", 93 | "bacon", 94 | "sausage", 95 | "hot dogs", 96 | "beef roast", 97 | "ground beef", 98 | "lamb chops", 99 | "lamb roast", 100 | "veal chops", 101 | "veal roast", 102 | "turkey", 103 | "duck", 104 | "quail", 105 | "rabbit", 106 | "venison", 107 | "rice", 108 | "pasta", 109 | "noodles", 110 | "bread crumbs", 111 | "flour", 112 | "cornmeal", 113 | "baking powder", 114 | "yeast" 115 | ] 116 | } 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Opera Omnia 2 | 3 | A comprehensive collection of JSON-based datasets for games, storytelling, and creative bot development. 4 | 5 | ## Overview 6 | 7 | Opera Omnia provides a rich collection of creative content in JSON format, perfect for: 8 | - Game Development 9 | - Interactive Fiction 10 | - Chatbots and AI Projects 11 | - Creative Writing 12 | - RPG Campaigns 13 | 14 | ## Directory Structure 15 | 16 | ``` 17 | src/ 18 | ├── attributes/ # Descriptive elements 19 | │ └── adjectives.json 20 | ├── characters/ # Character-related content 21 | │ ├── personalities.json 22 | │ └── backstories.json 23 | ├── equipment/ # Items and gear 24 | │ ├── armor.json 25 | │ ├── tools.json 26 | │ ├── potions.json 27 | │ ├── artifacts.json 28 | │ ├── jewelry.json 29 | │ ├── mounts.json 30 | │ ├── siege-weapons.json 31 | │ └── traps.json 32 | ├── rpg/ # Role-playing game elements 33 | │ ├── classes.json 34 | │ ├── skills.json 35 | │ ├── status-effects.json 36 | │ └── spells.json 37 | ├── situations/ # Quest and event templates 38 | │ ├── errands.json 39 | │ └── quests.json 40 | ├── story/ # Narrative elements 41 | │ └── plot-twists.json 42 | └── world/ # World-building components 43 | ├── factions.json 44 | └── cultures.json 45 | ``` 46 | 47 | ## File Format 48 | 49 | All files follow a consistent JSON structure: 50 | ```json 51 | { 52 | "description": "Description of the content", 53 | "items": [ 54 | "item1", 55 | "item2", 56 | ... 57 | ] 58 | } 59 | ``` 60 | 61 | ## Tools and Resources 62 | 63 | - Opera Omnia Viewer: [View Collections](https://observablehq.com/@triptych/hello-opera-omnia) 64 | - Opera Omnia Builder: [Create Lists](https://observablehq.com/@triptych/opera-omnia-builder) 65 | 66 | ## Contributing 67 | 68 | 1. All contributions must follow the established JSON format 69 | 2. Content should be family-friendly and setting-neutral where possible 70 | 3. Submit contributions via Pull Request 71 | 4. By contributing, you agree that your content will be released under the same license 72 | 73 | ## License 74 | 75 | Free to use without attribution. All contributions must be made under the same terms. 76 | 77 | ## Project Status 78 | 79 | This is a living project that continues to grow. Check the manifest.json file for the latest list of available datasets. 80 | 81 | --- 82 | 83 | Check out the [Opera Omnia Viewer](https://observablehq.com/@triptych/hello-opera-omnia) to explore the collections! 84 | Want to contribute? Use the [Opera Omnia Builder](https://observablehq.com/@triptych/opera-omnia-builder) to create and submit new lists! 85 | -------------------------------------------------------------------------------- /src/situations/adventures.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A collection of diverse adventure scenarios for storytelling and gaming", 3 | "items": [ 4 | "a cruise around the world", 5 | "a race against time to prevent an ancient prophecy", 6 | "an expedition to map uncharted territories", 7 | "ascending a legendary mountain peak", 8 | "breaking into a floating sky fortress", 9 | "charting a course through the endless mists", 10 | "chasing a mysterious signal across dimensions", 11 | "collecting pieces of a shattered artifact", 12 | "crossing the desert of illusions", 13 | "deciphering the riddles of an ancient temple", 14 | "defending a moving caravan from raiders", 15 | "discovering a hidden city beneath the waves", 16 | "escaping from a collapsing pocket dimension", 17 | "establishing first contact with a lost civilization", 18 | "excavating ruins of a forgotten civilization", 19 | "exploring a recently appeared mysterious island", 20 | "finding a way home through parallel worlds", 21 | "following the trail of a legendary creature", 22 | "gathering rare ingredients for a world-saving ritual", 23 | "guiding refugees through dangerous territories", 24 | "hunting down a shapeshifting infiltrator", 25 | "infiltrating a sky pirate's floating base", 26 | "investigating disappearances in a cursed forest", 27 | "journeying to the center of the earth", 28 | "leading an expedition into the frozen wastes", 29 | "liberating a city from mind-controlling crystals", 30 | "navigating through a maze of time", 31 | "negotiating peace between warring elemental tribes", 32 | "organizing a rescue mission in hostile territory", 33 | "participating in a magical tournament", 34 | "protecting a sacred grove from corruption", 35 | "racing to close dimensional rifts", 36 | "rebuilding a broken mechanical person", 37 | "recovering lost technology from ancient ruins", 38 | "replacing all the broken magical gems across the world", 39 | "rescuing survivors from a sinking island", 40 | "restoring power to an ancient defense system", 41 | "sailing through a storm of living lightning", 42 | "searching for a legendary lost library", 43 | "seeking the source of mysterious dreams", 44 | "solving the mystery of vanishing stars", 45 | "surviving in a world where magic is failing", 46 | "taking a transformed person to a magical place to lift a curse", 47 | "tracking down pieces of a scattered artifact", 48 | "traversing the ever-changing crystal caverns", 49 | "uncovering the truth behind ancient prophecies", 50 | "undertaking a pilgrimage to sacred sites", 51 | "unraveling the secrets of an abandoned city", 52 | "venturing into the realm of eternal twilight", 53 | "waking ancient guardians to prevent catastrophe" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /src/story/dialogue.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A collection of dialogue templates and snippets for various narrative situations.", 3 | "items": [ 4 | "I've been expecting you, though not quite so soon", 5 | "The answers you seek lie beyond that door, but I warn you...", 6 | "We don't speak of what happened that night", 7 | "In all my years, I've never seen anything quite like it", 8 | "There's more to this than meets the eye", 9 | "The old prophecy speaks of a day when...", 10 | "I could tell you, but then I'd have to... well, you know", 11 | "They say the treasure is cursed. I say it's protected", 12 | "You remind me of someone I used to know", 13 | "That's not just any ordinary [item]", 14 | "I've got a bad feeling about this", 15 | "The secret dies with me", 16 | "You're either very brave or very foolish", 17 | "There are things in this world best left undisturbed", 18 | "I know things others don't want known", 19 | "The truth isn't always what we want to hear", 20 | "Sometimes the old ways are best", 21 | "Not all who wander are lost, but you... you seem truly lost", 22 | "I've seen that mark before, long ago", 23 | "The answers lie in the ancient texts", 24 | "They called it 'the incident.' We called it the end of everything", 25 | "Your gold is no good here, stranger", 26 | "Some secrets are worth dying for", 27 | "The walls have ears, and the shadows have eyes", 28 | "I thought they were just stories to scare children", 29 | "You're asking dangerous questions", 30 | "That's not how the story really ends", 31 | "The price is higher than you know", 32 | "I've been waiting years for someone to ask that question", 33 | "There's a storm coming, and I don't mean the weather", 34 | "You look like you've seen a ghost... or worse", 35 | "That's impossible... unless...", 36 | "The legends speak of a chosen one, but they got the details wrong", 37 | "I remember when these ruins were a thriving city", 38 | "Some doors are best left closed", 39 | "What you seek and what you need are two different things", 40 | "I've traveled far and seen much, but this...", 41 | "The answer is hidden in plain sight", 42 | "Time has a way of revealing all truths", 43 | "Not everything that glitters is gold, and not every shadow hides evil", 44 | "I know that symbol. It belongs to an ancient order", 45 | "The real treasure isn't what you think it is", 46 | "There are older and stranger things in these lands", 47 | "That name hasn't been spoken here in generations", 48 | "I've been keeping this secret for far too long", 49 | "The stories don't tell the whole truth", 50 | "You're asking the right questions, but to the wrong person", 51 | "What you're suggesting is impossible... and yet...", 52 | "I've seen that look before, right before everything went wrong", 53 | "The key isn't what opens the door, it's what keeps it closed" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /viewer/app.js: -------------------------------------------------------------------------------- 1 | // Constants 2 | const REPO_URL = 'https://raw.githubusercontent.com/triptych/opera-omnia/main'; 3 | const MANIFEST_URL = `${REPO_URL}/manifest.json`; 4 | 5 | // DOM Elements 6 | const categorySelect = document.getElementById('categorySelect'); 7 | const fileSelect = document.getElementById('fileSelect'); 8 | const currentFile = document.getElementById('currentFile'); 9 | const description = document.getElementById('description'); 10 | const itemList = document.getElementById('itemList'); 11 | 12 | // State 13 | let manifest = null; 14 | 15 | // Fetch the manifest file 16 | async function fetchManifest() { 17 | try { 18 | const response = await fetch(MANIFEST_URL); 19 | manifest = await response.json(); 20 | populateCategories(); 21 | } catch (error) { 22 | console.error('Error fetching manifest:', error); 23 | description.textContent = 'Error loading manifest. Please try again later.'; 24 | } 25 | } 26 | 27 | // Populate category dropdown 28 | function populateCategories() { 29 | const categories = Object.keys(manifest.directories.src); 30 | categorySelect.innerHTML = ''; 31 | 32 | categories.forEach(category => { 33 | const option = document.createElement('option'); 34 | option.value = category; 35 | option.textContent = category; 36 | categorySelect.appendChild(option); 37 | }); 38 | } 39 | 40 | // Populate file dropdown based on selected category 41 | function populateFiles(category) { 42 | fileSelect.innerHTML = ''; 43 | 44 | const files = getFilesForCategory(category); 45 | files.forEach(file => { 46 | const option = document.createElement('option'); 47 | option.value = file; 48 | option.textContent = file.replace('.json', ''); 49 | fileSelect.appendChild(option); 50 | }); 51 | } 52 | 53 | // Get files for a category (handles nested directories) 54 | function getFilesForCategory(category) { 55 | const categoryData = manifest.directories.src[category]; 56 | if (Array.isArray(categoryData)) { 57 | return categoryData; 58 | } 59 | 60 | // Handle nested directories 61 | return Object.values(categoryData).flat(); 62 | } 63 | 64 | // Fetch and display file content 65 | async function fetchFileContent(category, file) { 66 | try { 67 | const path = `src/${category}/${file}`; 68 | const response = await fetch(`${REPO_URL}/${path}`); 69 | const data = await response.json(); 70 | 71 | displayContent(data, file); 72 | } catch (error) { 73 | console.error('Error fetching file:', error); 74 | description.textContent = 'Error loading file. Please try again later.'; 75 | itemList.innerHTML = ''; 76 | } 77 | } 78 | 79 | // Display content in the viewer 80 | function displayContent(data, filename) { 81 | currentFile.textContent = filename.replace('.json', ''); 82 | description.textContent = data.description || 'No description available'; 83 | 84 | itemList.innerHTML = ''; 85 | if (Array.isArray(data.items)) { 86 | data.items.forEach(item => { 87 | const li = document.createElement('li'); 88 | li.textContent = item; 89 | itemList.appendChild(li); 90 | }); 91 | } 92 | } 93 | 94 | // Event Listeners 95 | categorySelect.addEventListener('change', (e) => { 96 | const category = e.target.value; 97 | if (category) { 98 | populateFiles(category); 99 | } else { 100 | fileSelect.innerHTML = ''; 101 | } 102 | currentFile.textContent = 'No file selected'; 103 | description.textContent = ''; 104 | itemList.innerHTML = ''; 105 | }); 106 | 107 | fileSelect.addEventListener('change', (e) => { 108 | const file = e.target.value; 109 | const category = categorySelect.value; 110 | if (file && category) { 111 | fetchFileContent(category, file); 112 | } 113 | }); 114 | 115 | // Initialize the app 116 | fetchManifest(); 117 | -------------------------------------------------------------------------------- /src/situations/quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of quest templates suitable for fantasy settings.", 3 | "items": [ 4 | "kill 10 rats", 5 | "collect 100 gold", 6 | "find the antidote for a poison", 7 | "escort the princess to her wedding", 8 | "free the village from a curse", 9 | "collect the three pieces of a broken magical artifact", 10 | "give away 5 bottles of healing potion to reluctant villagers", 11 | "steal back a suit of armor from a knight thief", 12 | "make magical bread with herbs from a witch", 13 | "find the ancient book in an ancient abandoned library", 14 | "help a young man break a curse with a kiss", 15 | "evil plants are attacking - put an end to them", 16 | "find the missing prince", 17 | "collect 100 magical plants", 18 | "win an eating contest", 19 | "make a magical artifact", 20 | "pretend to be royalty at a ball", 21 | "thwart the local hudlum's plot", 22 | "an ancient evil is awakening, put it back to sleep", 23 | "rescue a captive dragon", 24 | "retrieve a stolen relic from the underworld", 25 | "break the curse on a haunted mansion", 26 | "uncover the mystery behind a series of disappearances in a village", 27 | "stop an evil sorceress from destroying the kingdom", 28 | "find the lost city of gold", 29 | "cleanse an evil temple of dark magic", 30 | "retrieve the powerful staff of an ancient wizard", 31 | "discover the secrets of an enchanted forest", 32 | "defend a village from rampaging orcs", 33 | "bring back a rare flower from a treacherous mountain path", 34 | "deliver a love letter to a lost mermaid", 35 | "protect a kingdom from a deadly invasion of mythical creatures", 36 | "recover a stolen spell book from a band of rogue wizards", 37 | "investigate the disappearance of the town's blacksmith", 38 | "explore a mysterious cave filled with traps and treasure", 39 | "solve the mystery of a ghostly ship that appears only during a full moon", 40 | "acquire a rare ingredient from a dangerous creature's lair", 41 | "assist a ghost in completing their unfinished business", 42 | "banish an ancient demon terrorizing the countryside", 43 | "break a curse affecting an entire bloodline", 44 | "broker peace between warring magical creatures", 45 | "collect ancient artifacts before they fall into wrong hands", 46 | "convince a dragon to protect a vulnerable village", 47 | "cure a mysterious plague spreading through the city", 48 | "defeat a corrupted guardian of nature", 49 | "defend a sacred site from desecration", 50 | "deliver a message across enemy territory", 51 | "discover the truth behind a prophecy", 52 | "escort a caravan through monster-infested lands", 53 | "establish a trading route through dangerous territory", 54 | "expose a shapeshifter infiltrating the noble court", 55 | "find a way to reverse a magical catastrophe", 56 | "forge an alliance with a hostile tribe", 57 | "gather ingredients for a legendary potion", 58 | "help a deity regain their lost power", 59 | "infiltrate a cult to prevent a dark ritual", 60 | "investigate mysterious disappearances in the forest", 61 | "liberate a town from tyrannical rule", 62 | "locate a missing heir to prevent civil war", 63 | "negotiate peace between humans and magical creatures", 64 | "obtain a rare artifact from a cursed tomb", 65 | "prevent an assassination during a royal ceremony", 66 | "protect a sacred artifact from thieves", 67 | "prove the innocence of a wrongly accused mage", 68 | "recover stolen magical artifacts", 69 | "rescue prisoners from a witch's tower", 70 | "restore power to an ancient magical device", 71 | "retrieve a powerful weapon from the underworld", 72 | "solve the riddle of an ancient prophecy", 73 | "stop a magical experiment threatening reality", 74 | "track down a legendary creature", 75 | "uncover a conspiracy within the mages' guild", 76 | "unite warring factions against a common threat", 77 | "vanquish an ancient evil awakening from slumber", 78 | "win a magical tournament to prevent war", 79 | "protect a mystical spring from corruption" 80 | ] 81 | } 82 | -------------------------------------------------------------------------------- /src/situations/encounters.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "A list of rpg style encounters.", 3 | "items": [ 4 | "A natural disaster.", 5 | "A plague sweeps through.", 6 | "A member of royalty is kidnapped.", 7 | "A goblin enters the village.", 8 | "A zombie terrifies travellers.", 9 | "A small child is lost.", 10 | "A travelling adventurer wants to swap stories.", 11 | "A travelling peddler seeks to sell their wares.", 12 | "A witch arrives seeking someone to acquire ingredients.", 13 | "A wild boar breaks into a nearby farmland.", 14 | "A greedy thief is on the loose.", 15 | "Two women escape a prison and seek asylum.", 16 | "A magical sword stuck in a tree is found.", 17 | "A giant threatens to destroy the village.", 18 | "A nest of giant spiders is unearthed while digging a house foundation.", 19 | "A vampire is lonely and seeks someone for a companion.", 20 | "A mysterious plague leaves its victims turned to stone.", 21 | "A young girl wants to join the party.", 22 | "A cooking contest is tomorrow - the main ingredient is dragon.", 23 | "A mysterious ship with no crew arrives at a nearby port.", 24 | "A dragon's nest has been discovered. The eggs are about to hatch.", 25 | "You are mistaken for a bounty hunter's target.", 26 | "A guild of sorcerers want you to join their group.", 27 | "Everyone in a small village has disappeared except for a single cat.", 28 | "A ghost starts haunting you until you help them resolve their unfinished task.", 29 | "A young girl has lost her sister to a group of slavers", 30 | "A key is left at your doorstep. It talks.", 31 | "A young woman seeks revenge after being betrayed by her boyfriend.", 32 | "An old baker needs someone to help him deliver his goods for the day.", 33 | "You are suddenly surrounded by a party of thieves. You recognise one of them.", 34 | "A dog comes up to you and asks for help finding its owner.", 35 | "A warrior appears on the path before you with no clothes and no memory.", 36 | "A knight is looking for a last adventure before retiring.", 37 | "You accidentally open a box containing an evil spirit.", 38 | "You find a magic ring that makes you invisible.", 39 | "A crystal box has been unearthed with a sleeping princess in it.", 40 | "A locked box of treasure has been found.", 41 | "A travelling teacher offers to give you lessons on a topic of your choice.", 42 | "A avalanche blocks the only road out of town.", 43 | "You have been kidnapped by pirates.", 44 | "You wake up in jail with no idea how you got there.", 45 | "The local lord's wife has been kidnapped.", 46 | "A local wizard posts a help wanted poster.", 47 | "A party of orcs emerge from the forest looking angry.", 48 | "You encounter an abandoned house. No one has been there for years it seems.", 49 | "A trading caravan has been stopped on the road due to one of the carriages breaking down.", 50 | "A nearby forest seems to be filled with ghosts at night", 51 | "A desperate boy accosts you with a knife", 52 | "A huge nests of insects is discovered nearby", 53 | "A old man gives you a magical paintbrush set", 54 | "You stumble across an esoteric ritual taking place in a forest", 55 | "A vistor from a distant land seeks someone to escort them around and see the local sights", 56 | "A villager comes to ask you to help with a construction project", 57 | "A young girl comes up to you and says she is your daughter.", 58 | "You find a magic mirror. It says it has one last wish left in it. What will you asked to see?", 59 | "A huge wyvern blocks your path. It says it must give someone a ride to their destiny to lift a curse on it.", 60 | "You find a diary from a famous adventurer who passed away years ago.", 61 | "A ghostly woman beckons you to a nearby haunted house.", 62 | "A dragon hoards all the town's gold, threatening to burn it down if they don't get more.", 63 | "A group of bandits have taken over a nearby pass, charging tolls to anyone who wants to use it.", 64 | "A sea monster is terrorizing the local fishing boats and the town is offering a reward for its defeat.", 65 | "A young prince is rumored to have gone missing while on a hunting trip.", 66 | "A mysterious curse has befallen the town and the local priest needs help lifting it.", 67 | "A powerful warlock is seeking a magical artifact that is rumored to be in the area.", 68 | "A group of travelers have reported being attacked by werewolves on the road at night.", 69 | "A powerful demon has been summoned and is rampaging through the countryside.", 70 | "A mysterious tower has appeared in the distance and strange energy can be felt emanating from it.", 71 | "A famous alchemist is looking for rare ingredients for a powerful potion and is willing to pay top dollar.", 72 | "A powerful sorceress is rumored to have set up a secret laboratory in the nearby mountains.", 73 | "A young woman has asked for help finding her missing fiancé who was last seen exploring an ancient ruin.", 74 | "A powerful ice elemental has taken control of a nearby village and is demanding tribute.", 75 | "A fire-breathing dragon is sleeping on a pile of treasure and the town wants you to get it.", 76 | "A group of adventurers has gone missing while exploring a haunted dungeon.", 77 | "A group of dwarves is seeking help to reclaim their lost mines from an unknown evil force.", 78 | "A powerful wizard has disappeared, leaving behind a dangerous magic portal.", 79 | "A powerful monster is rumored to have taken up residency in a nearby lake.", 80 | "A young woman is seeking help in finding her missing father who was last seen exploring a dark forest.", 81 | "A powerful artifact has been discovered that is said to grant immense power, but it is guarded by dangerous traps and puzzles.", 82 | "A mysterious figure has been seen on the outskirts of town, watching and following travelers." 83 | ] 84 | } 85 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | --------------------------------------------------------------------------------