├── .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 |
28 |
No file selected
29 |
30 |
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 |
--------------------------------------------------------------------------------