Skip to content

Commit ae8b5e0

Browse files
authored
feat(2024): Add 2024 Poisons (#1151)
## What does this do? Adds the 2024 SRD data for Poisons ## How was it tested? Locally using `npm test` ## Is there a Github issue this is resolving? No ## Did you update the docs in the API? Please link an associated PR if applicable. No ## Here's a fun image for your troubles I got a FoundryVTT license! <img width="921" height="768" alt="image" src="https://github.com/user-attachments/assets/64caaea6-4a0d-4882-bfcc-737b452409fa" />
1 parent 367bbe3 commit ae8b5e0

3 files changed

Lines changed: 127 additions & 0 deletions

File tree

src/2024/en/5e-SRD-Poisons.json

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
[
2+
{
3+
"index": "assassins-blood",
4+
"name": "Assassin's Blood",
5+
"url": "/api/2024/poisons/assassins-blood",
6+
"cost": 150,
7+
"type": "ingested",
8+
"description": "A creature subjected to Assassin's Blood makes a DC 10 Constitution saving throw. On a failed save, the creature takes 6 (1d12) Poison damage and has the Poisoned condition for 24 hours. On a successful save, the creature takes half as much damage only."
9+
},
10+
{
11+
"index": "burnt-othur-fumes",
12+
"name": "Burnt Othur Fumes",
13+
"url": "/api/2024/poisons/burnt-othur-fumes",
14+
"cost": 500,
15+
"type": "inhaled",
16+
"description": "A creature subjected to Burnt Othur Fumes must succeed on a DC 13 Constitution saving throw or take 10 (3d6) Poison damage, and it must repeat the save at the start of each of its turns. On each successive failed save, the creature takes 3 (1d6) Poison damage. After three successful saves, the poison ends."
17+
},
18+
{
19+
"index": "crawler-mucus",
20+
"name": "Crawler Mucus",
21+
"url": "/api/2024/poisons/crawler-mucus",
22+
"cost": 200,
23+
"type": "contact",
24+
"description": "A creature subjected to Crawler Mucus must succeed on a DC 13 Constitution saving throw or have the Poisoned condition for 1 minute. The creature also has the Paralyzed condition while Poisoned in this way. The creature repeats the save at the end of each of its turns, ending the effect on itself on a success."
25+
},
26+
{
27+
"index": "essence-of-ether",
28+
"name": "Essence of Ether",
29+
"url": "/api/2024/poisons/essence-of-ether",
30+
"cost": 300,
31+
"type": "inhaled",
32+
"description": "A creature subjected to Essence of Ether must succeed on a DC 15 Constitution saving throw or have the Poisoned condition for 8 hours. The creature also has the Unconscious condition while Poisoned in this way. The creature wakes up if it takes damage or if another creature takes an action to shake it awake."
33+
},
34+
{
35+
"index": "malice",
36+
"name": "Malice",
37+
"url": "/api/2024/poisons/malice",
38+
"cost": 250,
39+
"type": "inhaled",
40+
"description": "A creature subjected to Malice must succeed on a DC 15 Constitution saving throw or have the Poisoned condition for 1 hour. The creature also has the Blinded condition while Poisoned in this way."
41+
},
42+
{
43+
"index": "midnight-tears",
44+
"name": "Midnight Tears",
45+
"url": "/api/2024/poisons/midnight-tears",
46+
"cost": 1500,
47+
"type": "ingested",
48+
"description": "A creature that ingests Midnight Tears suffers no effect until the stroke of midnight. Any effect that ends the Poisoned condition neutralizes this poison. If the poison hasn't been neutralized before midnight, the creature makes a DC 17 Constitution saving throw, taking 31 (9d6) Poison damage on a failed save or half as much damage on a successful one."
49+
},
50+
{
51+
"index": "oil-of-taggit",
52+
"name": "Oil of Taggit",
53+
"url": "/api/2024/poisons/oil-of-taggit",
54+
"cost": 400,
55+
"type": "contact",
56+
"description": "A creature subjected to Oil of Taggit must succeed on a DC 13 Constitution saving throw or have the Poisoned condition for 24 hours. The creature also has the Unconscious condition while Poisoned in this way. It wakes up if it takes damage."
57+
},
58+
{
59+
"index": "pale-tincture",
60+
"name": "Pale Tincture",
61+
"url": "/api/2024/poisons/pale-tincture",
62+
"cost": 250,
63+
"type": "ingested",
64+
"description": "A creature subjected to Pale Tincture must succeed on a DC 16 Constitution saving throw or take 3 (1d6) Poison damage and have the Poisoned condition. The Poisoned creature repeats the save every 24 hours, taking 3 (1d6) Poison damage on a failed save. The damage the poison deals can't be healed by any means while the creature remains Poisoned. After seven successful saves against the poison, the creature is no longer Poisoned."
65+
},
66+
{
67+
"index": "purple-worm-poison",
68+
"name": "Purple Worm Poison",
69+
"url": "/api/2024/poisons/purple-worm-poison",
70+
"cost": 2000,
71+
"type": "injury",
72+
"description": "A creature subjected to Purple Worm Poison makes a DC 21 Constitution saving throw, taking 35 (10d6) Poison damage on a failed save or half as much damage on a successful one."
73+
},
74+
{
75+
"index": "serpent-venom",
76+
"name": "Serpent Venom",
77+
"url": "/api/2024/poisons/serpent-venom",
78+
"cost": 200,
79+
"type": "injury",
80+
"description": "A creature subjected to Serpent Venom must succeed on a DC 11 Constitution saving throw, taking 10 (3d6) Poison damage on a failed save or half as much damage on a successful one."
81+
},
82+
{
83+
"index": "spiders-sting",
84+
"name": "Spider's Sting",
85+
"url": "/api/2024/poisons/spiders-sting",
86+
"cost": 200,
87+
"type": "injury",
88+
"description": "A creature subjected to Spider's Sting must succeed on a DC 13 Constitution saving throw or have the Poisoned condition for 1 hour. If the creature fails the save by 5 or more, the creature also has the Unconscious condition while Poisoned in this way. The creature wakes up if it takes damage or if another creature takes an action to shake it awake."
89+
},
90+
{
91+
"index": "torpor",
92+
"name": "Torpor",
93+
"url": "/api/2024/poisons/torpor",
94+
"cost": 600,
95+
"type": "ingested",
96+
"description": "A creature subjected to Torpor poison must succeed on a DC 15 Constitution saving throw or have the Poisoned condition for 4d6 hours. The creature's Speed is halved while the creature is Poisoned in this way."
97+
},
98+
{
99+
"index": "truth-serum",
100+
"name": "Truth Serum",
101+
"url": "/api/2024/poisons/truth-serum",
102+
"cost": 150,
103+
"type": "ingested",
104+
"description": "A creature subjected to Truth Serum must succeed on a DC 11 Constitution saving throw or have the Poisoned condition for 1 hour. The Poisoned creature can't knowingly communicate a lie."
105+
},
106+
{
107+
"index": "wyvern-poison",
108+
"name": "Wyvern Poison",
109+
"url": "/api/2024/poisons/wyvern-poison",
110+
"cost": 1200,
111+
"type": "injury",
112+
"description": "A creature subjected to Wyvern Poison makes a DC 14 Constitution saving throw, taking 24 (7d6) Poison damage on a failed save or half as much damage on a successful one."
113+
}
114+
]

src/2024/schemas/5e-SRD-Poisons.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { z } from 'zod';
2+
3+
export const PoisonSchema = z.strictObject({
4+
index: z.string(),
5+
name: z.string(),
6+
cost: z.number(),
7+
type: z.string(),
8+
description: z.string(),
9+
url: z.string(),
10+
});

src/2024/tests/schemas.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import Languages from '../en/5e-SRD-Languages.json' with { type: 'json' };
1515
import MagicItems from '../en/5e-SRD-Magic-Items.json' with { type: 'json' };
1616
import MagicSchools from '../en/5e-SRD-Magic-Schools.json' with { type: 'json' };
1717
import Monsters from '../en/5e-SRD-Monsters.json' with { type: 'json' };
18+
import Poisons from '../en/5e-SRD-Poisons.json' with { type: 'json' };
1819
import Proficiencies from '../en/5e-SRD-Proficiencies.json' with { type: 'json' };
1920
import Skills from '../en/5e-SRD-Skills.json' with { type: 'json' };
2021
import Species from '../en/5e-SRD-Species.json' with { type: 'json' };
@@ -38,6 +39,7 @@ import { LanguageSchema } from '../schemas/5e-SRD-Languages';
3839
import { MagicItemSchema } from '../schemas/5e-SRD-Magic-Items';
3940
import { MagicSchoolSchema } from '../schemas/5e-SRD-Magic-Schools';
4041
import { MonsterSchema } from '../schemas/5e-SRD-Monsters';
42+
import { PoisonSchema } from '../schemas/5e-SRD-Poisons';
4143
import { ProficiencySchema } from '../schemas/5e-SRD-Proficiencies';
4244
import { SkillSchema } from '../schemas/5e-SRD-Skills';
4345
import { SpeciesSchema } from '../schemas/5e-SRD-Species';
@@ -69,6 +71,7 @@ describe('2024 schemas', () => {
6971
it('magic items', () => testAll(MagicItems, MagicItemSchema));
7072
it('magic schools', () => testAll(MagicSchools, MagicSchoolSchema));
7173
it('monsters', () => testAll(Monsters, MonsterSchema));
74+
it('poisons', () => testAll(Poisons, PoisonSchema));
7275
it('proficiencies', () => testAll(Proficiencies, ProficiencySchema));
7376
it('skills', () => testAll(Skills, SkillSchema));
7477
it('species', () => testAll(Species, SpeciesSchema));

0 commit comments

Comments
 (0)