Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,9 @@ jobs:

- name: Validate ancestries
run: npx -y ajv-cli validate -s schema/ancestry.json -d "data/ancestry/*.json"

- name: Validate gear
run: npx -y ajv-cli validate -s schema/item.json -r schema/coins.json -d "data/gear/*.json"

- name: Validate monsters
run: npx -y ajv-cli validate -s schema/monster.json -r schema/distance.json -d "data/monster/*.json"
7 changes: 7 additions & 0 deletions data/ancestry/goblin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "../../schema/ancestry.json",
"name": "Goblin",
"ability": "Keen Senses. You can't be surprised.",
"languages": ["Common", "Goblin"],
"source": "data/source/quickstart-set.json"
}
7 changes: 7 additions & 0 deletions data/ancestry/half-orc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "../../schema/ancestry.json",
"name": "Half-Orc",
"ability": "Mighty. You have a +1 bonus to attack and damage rolls with melee weapons.",
"languages": ["Common", "Orcish"],
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/arrows.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Arrows (20)",
"description": "Ammunition for shortbows or longbows.",
"cost": { "gp": 1 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/backpack.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Backpack",
"description": "Holds all the gear you can carry. Don't lose it.",
"cost": { "gp": 2 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/caltrops.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Caltrops (one bag)",
"description": "Tiny, triangle-shaped iron spikes. Living creatures who step on caltrops take 1 damage and can only move at half speed for 10 rounds.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/crossbow-bolts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Crossbow Bolts (20)",
"description": "Ammunition for crossbows.",
"cost": { "gp": 1 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/crowbar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Crowbar",
"description": "Grants advantage on checks to pry open stuck objects.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/flask-or-bottle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Flask or Bottle",
"description": "Glass containers that hold one draught of liquid.",
"cost": { "sp": 3 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/flint-and-steel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Flint and Steel",
"description": "A small fire starter. With it, routine attempts to light a fire always succeed.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/grappling-hook.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Grappling Hook",
"description": "A rope anchor with three curved tines.",
"cost": { "gp": 1 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/iron-spikes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Iron Spikes (10)",
"description": "Strong spikes. Each has a hole for threading rope. Can be hammered in with weapons or other iron spikes.",
"cost": { "gp": 1 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/lantern.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Lantern",
"description": "Casts light up to a double near distance. Requires oil. Has a shutter to hide the light.",
"cost": { "gp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/mirror.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Mirror",
"description": "A small, polished mirror.",
"cost": { "gp": 10 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/oil-flask.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Oil, Flask",
"description": "Fuels a lantern for one hour of real time. One flask covers a close area and burns for 4 rounds, dealing 1d4 damage each round.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/pole.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Pole",
"description": "Wooden, 10' long.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/rations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Rations (3)",
"description": "One day of food and water supply for one person.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/rope.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Rope, 60'",
"description": "Hemp, 60' long.",
"cost": { "gp": 1 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
8 changes: 8 additions & 0 deletions data/gear/torch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "../../schema/item.json",
"name": "Torch",
"description": "Sheds light to a near distance. Burns for one hour of real time.",
"cost": { "sp": 5 },
"slots": 1,
"source": "data/source/quickstart-set.json"
}
21 changes: 21 additions & 0 deletions data/monster/aboleth.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "../../schema/monster.json",
"name": "Aboleth",
"description": "Enormous, antediluvian catfish covered in slime and tentacles. They hate all intelligent beings.",
"ac": 16,
"hp": 39,
"attacks": [
{ "name": "tentacle", "count": 2, "range": "Near", "bonus": 5, "damage": "1d8", "special": "curse" },
{ "name": "tail", "count": 1, "bonus": 5, "damage": "3d6" }
],
"movement": "Near (swim)",
"stats": { "str": 4, "dex": -1, "con": 3, "int": 4, "wis": 2, "cha": 2 },
"alignment": "C",
"level": 8,
"special_abilities": [
{ "name": "Curse", "description": "DC 15 CON or target gains a magical curse, turning into a deep one over 2d10 days." },
{ "name": "Enslave", "description": "In place of attacks, one creature within far must make DC 15 WIS or the aboleth controls it for 1d4 rounds." },
{ "name": "Telepathic", "description": "Read the thoughts of all creatures within far." }
],
"source": "data/source/quickstart-set.json"
}
19 changes: 19 additions & 0 deletions data/monster/acolyte.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "../../schema/monster.json",
"name": "Acolyte",
"description": "A religious trainee who knows basic rites and rituals.",
"ac": 12,
"hp": 4,
"attacks": [
{ "name": "mace", "count": 1, "bonus": 1, "damage": "1d6" },
{ "name": "spell", "count": 1, "bonus": 2, "damage": "1d4" }
],
"movement": "Near",
"stats": { "str": 1, "dex": -1, "con": 0, "int": -1, "wis": 2, "cha": 0 },
"alignment": "L",
"level": 1,
"special_abilities": [
{ "name": "Healing Touch (WIS Spell)", "description": "DC 11. Heal one creature within close for 1d4 HP." }
],
"source": "data/source/quickstart-set.json"
}
18 changes: 18 additions & 0 deletions data/monster/animated-armor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "../../schema/monster.json",
"name": "Animated Armor",
"description": "An old suit of armor magically animated by a vengeful spirit.",
"ac": 15,
"hp": 11,
"attacks": [
{ "name": "longsword", "count": 1, "bonus": 3, "damage": "1d8" }
],
"movement": "Near",
"stats": { "str": 3, "dex": -1, "con": 2, "int": -1, "wis": 1, "cha": 0 },
"alignment": "C",
"level": 2,
"special_abilities": [
{ "name": "Statue", "description": "When standing still, looks exactly like a suit of armor." }
],
"source": "data/source/quickstart-set.json"
}
19 changes: 19 additions & 0 deletions data/monster/bandit.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "../../schema/monster.json",
"name": "Bandit",
"description": "Hard-bitten rogue in tattered leathers and a hooded cloak.",
"ac": 13,
"hp": 4,
"attacks": [
{ "name": "club", "count": 1, "bonus": 1, "damage": "1d4" },
{ "name": "shortbow", "count": 1, "range": "Far", "bonus": 0, "damage": "1d4" }
],
"movement": "Near",
"stats": { "str": 1, "dex": 0, "con": 0, "int": -1, "wis": 0, "cha": -1 },
"alignment": "C",
"level": 1,
"special_abilities": [
{ "name": "Ambush", "description": "Deal an extra die of damage when undetected." }
],
"source": "data/source/quickstart-set.json"
}
15 changes: 15 additions & 0 deletions data/monster/bat-giant.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "../../schema/monster.json",
"name": "Bat, Giant",
"description": "Leathery, eagle-sized mammal with a taste for flesh.",
"ac": 12,
"hp": 9,
"attacks": [
{ "name": "bite", "count": 1, "bonus": 2, "damage": "1d6" }
],
"movement": "Near (fly)",
"stats": { "str": -1, "dex": 2, "con": 0, "int": -3, "wis": 1, "cha": -3 },
"alignment": "N",
"level": 2,
"source": "data/source/quickstart-set.json"
}
18 changes: 18 additions & 0 deletions data/monster/bear-brown.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "../../schema/monster.json",
"name": "Bear, Brown",
"description": "A hulking, swaying brute with claws as long as a finger.",
"ac": 13,
"hp": 25,
"attacks": [
{ "name": "claw", "count": 2, "bonus": 4, "damage": "1d8" }
],
"movement": "Near (climb)",
"stats": { "str": 4, "dex": 1, "con": 3, "int": -2, "wis": 1, "cha": -2 },
"alignment": "N",
"level": 5,
"special_abilities": [
{ "name": "Crush", "description": "Deals an extra die of damage if it hits the same target with both claws." }
],
"source": "data/source/quickstart-set.json"
}
18 changes: 18 additions & 0 deletions data/monster/beastman.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "../../schema/monster.json",
"name": "Beastman",
"description": "A cave hominid with scraggly fur and a stone-tipped spear.",
"ac": 12,
"hp": 5,
"attacks": [
{ "name": "spear", "count": 1, "bonus": 2, "damage": "1d6" }
],
"movement": "Near",
"stats": { "str": 2, "dex": 1, "con": 1, "int": -2, "wis": 1, "cha": -1 },
"alignment": "C",
"level": 1,
"special_abilities": [
{ "name": "Brutal", "description": "+1 damage with melee weapons (included in damage)." }
],
"source": "data/source/quickstart-set.json"
}
18 changes: 18 additions & 0 deletions data/monster/boar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "../../schema/monster.json",
"name": "Boar",
"description": "Ornery wild pig with bristly, russet hair and yellowed tusks.",
"ac": 12,
"hp": 14,
"attacks": [
{ "name": "tusk", "count": 2, "bonus": 3, "damage": "1d6" }
],
"movement": "Near",
"stats": { "str": 3, "dex": 0, "con": 1, "int": -2, "wis": 1, "cha": -2 },
"alignment": "N",
"level": 3,
"special_abilities": [
{ "name": "Gore", "description": "Deals an extra die of damage if it hits the same target with both tusks." }
],
"source": "data/source/quickstart-set.json"
}
19 changes: 19 additions & 0 deletions data/monster/cave-brute.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "../../schema/monster.json",
"name": "Cave Brute",
"description": "A hulking, insectoid beast with long mandibles, four eyes, and thick arms covered in bristles.",
"ac": 14,
"hp": 28,
"attacks": [
{ "name": "claw", "count": 2, "bonus": 5, "damage": "1d8" },
{ "name": "mandible", "count": 1, "bonus": 5, "damage": "1d10" }
],
"movement": "Near (burrow)",
"stats": { "str": 4, "dex": 1, "con": 1, "int": -3, "wis": 1, "cha": -3 },
"alignment": "N",
"level": 6,
"special_abilities": [
{ "name": "Bewilder", "description": "Creatures within near that see the cave brute's eyes must make DC 12 CHA at the start of their turn or be dazed and lose their action." }
],
"source": "data/source/quickstart-set.json"
}
19 changes: 19 additions & 0 deletions data/monster/cave-creeper.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "../../schema/monster.json",
"name": "Cave Creeper",
"description": "Chittering centipedes the size of horses with grasping tentacles.",
"ac": 12,
"hp": 18,
"attacks": [
{ "name": "bite", "count": 1, "bonus": 3, "damage": "1d6" },
{ "name": "tentacles", "count": 1, "bonus": 3, "damage": "1d8", "special": "toxin" }
],
"movement": "Near (climb)",
"stats": { "str": 2, "dex": 2, "con": 0, "int": -3, "wis": 1, "cha": -3 },
"alignment": "N",
"level": 4,
"special_abilities": [
{ "name": "Toxin", "description": "DC 12 CON or paralyzed 1d4 rounds." }
],
"source": "data/source/quickstart-set.json"
}
15 changes: 15 additions & 0 deletions data/monster/crocodile.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "../../schema/monster.json",
"name": "Crocodile",
"description": "Fat, scaly reptiles with stumpy legs and long, thrashing tails.",
"ac": 14,
"hp": 20,
"attacks": [
{ "name": "bite", "count": 2, "bonus": 3, "damage": "1d8" }
],
"movement": "Near (swim)",
"stats": { "str": 3, "dex": 1, "con": 2, "int": -2, "wis": 1, "cha": -2 },
"alignment": "N",
"level": 4,
"source": "data/source/quickstart-set.json"
}
Loading
Loading