Compare commits

...

3 Commits

Author SHA1 Message Date
15d51f4e1e moar updates 2025-04-05 19:47:36 -04:00
c89bc36fd7 updates 2025-04-05 17:03:48 -04:00
176b8abdcf 99% of the bestiary updates 2025-03-09 12:05:43 -04:00
450 changed files with 9303 additions and 4415 deletions

60
.vscode/settings.json vendored
View File

@ -1,4 +1,62 @@
{
"cSpell.words": ["chainmail"],
"cSpell.words": [
"aeryon",
"Barbarosa",
"Belz",
"Blacktyde",
"Bumo",
"Burowao",
"Celzik",
"chainmail",
"Daas",
"Elendean",
"Esun",
"Fendo",
"Freki",
"ghroudrru",
"Infravision",
"iughrioth",
"Jaxxa",
"Kho'pru",
"Koma",
"lajatang",
"Lor'nath",
"Lufa",
"Mantru",
"Mararo",
"Melfora",
"Nyssa",
"Oorg",
"Panitube",
"Pordo",
"Porma",
"psionic",
"Rhirkas",
"Rowr",
"Saedo",
"Sorris",
"spellbook",
"spellbooks",
"spellcaster",
"spellcasters",
"spellcasting",
"Tanaroa",
"Thoryio",
"Toric",
"Trado",
"Trama",
"Treuplea",
"Tudo",
"Umlatta",
"Umlatta's",
"uncharmed",
"undeciphered",
"werelion",
"werelions",
"werespider",
"werespiders",
"wurms",
"Zhoszer"
],
"files.eol": "\n"
}

15
deploy.sh Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/bash
echo "Commencing with the site build..."
echo
nvm use 18
cd pv-web
git pull origin main
npx weevr build
rm -rf old
mv public old
mv out public
echo "All done!"
echo

View File

@ -0,0 +1,2 @@
- Usually found in frozen regions.
- Immune to damage from cold and non-magical, non-silver weapons.

View File

@ -0,0 +1,6 @@
### Life Drain
Damage inflicted by this attack reduces the target's maximum HP.
- A humanoid killed by this ability becomes a draugr in 1 day, under the control of the one that killed them.
- The victim gains back 1 hit die worth of hit points to their maximum after each long rest they take, until they return to their original total.

View File

@ -0,0 +1,3 @@
- Typically found haunting ruins and tombs.
- Immune to all damage except fire or magic.
- Any damage taken is reduced by 50%.

View File

@ -0,0 +1,11 @@
### Disease
Anyone touched by this creature must **Save** or contract a rotting disease.
- Must save after each touch (unless infected).
- While infected:
- Can't regain hit points,
- Loses 1 HD every day.
- If HD drops to 0, victim dies and turns to dust.
- Healing occurs at 10% normal rate.
- Disease can only be removed by magic (ex: Cure Disease spell)

View File

@ -0,0 +1,5 @@
### Paralyzing Fear
Anyone seeing this creature must **Save** or be [paralyzed](/rules/adventuring.html#paralyzed) with terror.
- Paralysis is broken if mummy lord attacks them or goes out of sight.

View File

@ -0,0 +1,8 @@
### Frenzy
Frenzy triggered by blood in water within 300'.
During frenzy:
- Attacks each round, and
- Skips morale checks.

View File

@ -20,4 +20,4 @@
When a humanoid loses more than 1/2 of their max hit points from the natural attacks of a werebeast (ex: bite or claw), they must **Save vs Poison** or become infected with therianthropy.
- The disease takes 2d12 days to fully infect, with signs of infection appearing halfway through.
- Humanoids become the same type of werebeasts (and are typically run by the referee, at least while transformed).
- Humanoids become the same type of werebeasts (and are typically run by the GM, at least while transformed).

View File

@ -1,6 +1,7 @@
1. **Berserker**: After striking a killing blow while in melee with multiple foes, may immediately make a free attack against another foe at 2.
2. **Dual-Wielder**: Gains [Dual Wielding](/rules/combat.md#dual-wielding). If DEX > 13 and wielding both a one-handed weapon and a Light weapon in off hand, may make an attack with each one.
3. **Hunter**: +1 to attack and damage rolls when in combat with foes of a specific type (ex: undead, clerics, dragons, giants, etc.). The type must be chosen when this talent is selected.
4. **Leader**: Mercenaries or retainers under command and within 60' gain a +1 bonus to morale and loyalty checks. All allies within 60' get +1 bonus to saves against fear effects.
5. **Specialist**: Expertise with a specific type of weapon (ex: whips, one-handed swords, crossbows, etc.) grants +1 to attack and damage rolls when using one.
6. **Tank**: When in melee with a foe, any attacks the foe makes at anyone else get 2.
2. **Dual-Wielder**: Gains [Dual Wielding](/rules/combat.html#dual-wielding). If DEX > 13 and wielding both a one-handed weapon and a Light weapon (in off hand), may make an attack with each weapon.
3. **Environmental Expert**: Can either ignore any special restrictions on combat while in a specific environment (ex: underwater) or gains +1 to attack and damage rolls while in combat in that environment (ex: aerial, astral). The environment type (and resulting effect) must be determined when this expertise is selected.
4. **Hunter**: +1 to attack and damage rolls when in combat with foes of a specific type (ex: undead, clerics, dragons, giants). The type of foe must be chosen when this expertise is selected.
5. **Leader**: Mercenaries or retainers under command and within 60' gain a +1 bonus to morale and loyalty checks. All allies within 60' get +1 bonus to saves against fear effects.
6. **Specialist**: Expertise with a specific type of weapon (ex: whips, one-handed swords, crossbows, etc.) grants +1 to attack and damage rolls when using one. The type of weapon must be chosen when this expertise is selected.
7. **Tank**: While in melee with an adjacent foe, if that foe tries to attack anyone else, that attack gets 2.

View File

@ -0,0 +1,76 @@
### 1st Level
1. [Calm / Scare](/spells/calm.html)
2. [Cure Light Wounds / Cause Light Wounds](/spells/cure-light-wounds.html)
3. Detect Evil / Detect Good
4. [Detect Magic](/spells/detct-magic.html)
5. [Light / Darkness](/spells/light.html)
6. Protection from Evil / Protection from Good
7. Purify Food and Water / Spoil Food and Water
8. Resist Cold / Remove Cold Resistance
### 2nd Level
1. Bless / Blight
2. [Continual Light (Continual Darkness)](/spells/continual-light.html)
3. Find Traps
4. Know Alignment / Hide Alignment
5. Resist Fire / Remove Fire Resistance
6. Silence 15 Radius / Startling Noise
7. Snake Charm
8. Speak with Animals
### 3rd Level
1. Cure Blindness / Blind
2. Cure Disease / Cause Disease
3. Grow Animal / Shrink Animal
4. Hold Person
5. Locate Object / Hide Object
6. Remove Curse / Curse
7. [Speak with Dead / Silence Dead](/spells/speak-with-dead.html)
8. Striking
### 4th Level
1. Peaceful Respite / Animate Dead
2. Create Water
3. Cure Serious Wounds / Cause Serious Wounds
4. Dispel Magic
5. Neutralize Poison
6. Protection from Evil 10 Radius / Protection from Good 10 Radius
7. Speak with Plants
8. Sticks to Snakes / Snakes to Sticks
### 5th Level
1. Commune
2. Create Food
3. Cure Critical Wounds
4. [Dispel Evil](/spells/dispel-evil.html)
5. Banish Insects / Insect Plague
6. Quest / Remove Quest
7. Raise Dead / Finger of Death
8. Truesight
### 6th Level
1. Aerial Servant
2. Animate Objects
3. Barrier / Remove Barrier
4. Create Normal Animals
5. Cureall / Killall
6. Find the Path
7. Speak with Monsters / Babble
8. Word of Recall
### 7th Level
1. Earthquake
2. Holy Word
3. Raise Dead Fully / Obliterate
4. Restore / Life Drain
5. Survival
6. Travel
7. Wish
8. Wizardry

View File

@ -0,0 +1,8 @@
### Decapitation
On a successful attack, the target may be decapitated.
- Against a target of stone or metal, a decapitation only occurs on a critical hit (regardless of size).
- Against a target of size large or bigger, a decapitation only occurs on a natural 19 or 20.
- Against a medium-sized or smaller target, a decapitation occurs on a natural 18, 19, or 20
- Some creatures may either be immune to or unaffected by decapitation (ex: creatures without a head, elementals).

View File

@ -8,6 +8,6 @@ Version 0.15.1 / 2024-11-10
- [Combat](/rules/combat.html)
- [Adventuring](/rules/adventuring.html)
- [Magic](/rules/magic.html)
- [Referees Only](/rules/referees.html)
- [GM Notes](/rules/gm-notes.html)
</div>

View File

@ -1,9 +1,8 @@
- **Blunt**: Can be wielded by cleric.
- **Charge**: Doubles any damage done after moving at least 60' while mounted before attacking.
- **Entangle**: On successful hit, target must **Save vs Paralyze** to be able to move or attack.
- Entangled victims can make new saves each round.
- **Blunt**: No cutting edge, may be wielded by a cleric.
- **Charge**: While mounted, damage may be doubled by moving at least 60' before attacking.
- **Entangle**: On successful hit, target must **Save** or become [Entangled](/rules/adventuring.html#entangled).
- **Light**: May be used in offhand when [dual-wielding](#dual-wielding).
- **Reach**: Grants a extra 5' reach for determining melee range.
- **Reach**: Grants extra 5' reach for determining melee range.
- **Reload**: Takes a round to reload, can only be fired every other round.
- **Slow**: Always attacks last in a round.
- **Stealth**: May only be used to attack unaware humanoid creature from behind (4+1 HD max).

View File

@ -0,0 +1,5 @@
### Battle Axe Properties
- **Versatile**: At start of combat round, if offhand is free, may choose to have sword deal 1d10 base damage for that round while gaining the following properties:
- **Slow**: Always attacks last in a round.
- **Two-handed**: Requires two hands to use.

View File

@ -0,0 +1,3 @@
### Mace Properties
- **Blunt**: No cutting edge, may be wielded by a cleric.

View File

@ -0,0 +1,5 @@
### Polearm Properties
- **Reach**: Grants extra 5' reach for determining melee range.
- **Slow**: Always attacks last in a round.
- **Two-handed**: Requires two hands to use.

View File

@ -0,0 +1,4 @@
### Whip Properties
- **Entangle**: On successful hit, target must **Save** or become [Entangled](/rules/adventuring.html#entangled).
- **Reach**: Grants extra 5' reach for determining melee range.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 294 KiB

After

Width:  |  Height:  |  Size: 294 KiB

View File

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 137 KiB

View File

@ -28,7 +28,8 @@ export default (() => {
*/
document.addEventListener('DOMContentLoaded', () => {
setTimeout(() => {
let to = null;
to = setTimeout(() => {
// Lazy-Load Media
if (typeof loadMedia === 'function') {
loadMedia('.js-lazyLoader', null, true);
@ -65,6 +66,25 @@ export default (() => {
' site:' + window.location.hostname;
});
// Make table captions into collapsable toggles
document
.querySelectorAll('.dividedTableWrapper > table > caption')
.forEach((caption) => {
const theClass = 'js-hideContent',
wrapper = caption.closest('.dividedTableWrapper');
// removes inline-styled override from markdown-it-multimd-table
caption.removeAttribute('style');
if (!wrapper) return;
wrapper.classList.add('js-toggleable');
caption.addEventListener('click', (e) => {
wrapper.classList.toggle(theClass);
});
});
// Add shadow to toolDetails that have extra content
// I know - ALL OF THIS CODE just for that little effect
const details = document.querySelectorAll('.toolDetails'),
@ -118,6 +138,8 @@ export default (() => {
});
details.forEach((detail) => setBottomShadow(detail));
clearTimeout(to);
}, 1);
});
})();

View File

@ -28,7 +28,7 @@ html {
body {
background: #2c0f2a;
/* Old browsers */
background: url("/images/site-bg.jpg") bottom fixed;
background: url("/images/site-bg.jpg") top fixed;
background-size: cover;
color: #fadbb0;
font-family: sans-serif;
@ -228,13 +228,6 @@ li {
margin-bottom: 0.6em;
}
/* turn on for that authentic OSE feel! */
/*
ul li::marker {
content: "▶ ";
}
*/
li ul {
margin-top: 0.6em;
}
@ -344,21 +337,34 @@ table th {
background: rgba(37, 40, 55, 0.6);
}
.clearBoth {
clear: both;
}
.contentWarning {
font-style: italic;
}
.dividedTableWrapper {
display: block;
box-shadow: none;
margin: 1rem 0;
max-height: 5000px;
max-width: 100%;
overflow-x: auto;
transition: box-shadow 0.3s ease-out, max-height 0.3s ease-out;
}
.dividedTableWrapper h4 {
text-align: center;
}
.dividedTableWrapper table caption {
padding: .5rem 1.5rem;
position: relative;
}
.dividedTableWrapper table td {
border: 1px dashed #f6bc43;
}
@ -440,26 +446,34 @@ a.hiddenLink:hover {
}
.imgWrapper {
float: right;
margin: 0 -0.5rem 0 1rem;
max-width: 50%;
align-items: center;
clear: both;
display: flex;
flex-wrap: wrap;
justify-content: center;
max-width: 100%;
position: relative;
text-align: center;
z-index: 0;
}
.imgWrapper figure>a {
.imgWrapper figure {
margin: 0;
max-width: 50%;
}
.imgWrapper figure > a {
border-color: transparent;
display: inline-block;
padding: 0.5rem 0.5rem 0.25rem;
}
.imgWrapper figure>a:hover {
.imgWrapper figure > a:hover {
border-color: #e94e5c;
}
.levelTable table thead tr:first-child th {
border-bottom-style: dashed;
.imgWrapper figure > figcaption {
backdrop-filter: blur(1rem);
}
.licenseLink {
@ -596,53 +610,6 @@ a.licenseLink:hover {
top: 1rem;
}
/**
* Scrolling shadows by https://kizu.dev/ and https://lea.verou.me/
* Only works in browsers supporting background-attachment: local; & CSS gradients
* Degrades gracefully
*/
.menubar {
html {
background: white;
font: 120% sans-serif;
}
.scrollbox {
overflow: auto;
width: 200px;
max-height: 200px;
margin: 50px auto;
background:
/* Shadow covers */
linear-gradient(white 30%, rgba(255,255,255,0)),
linear-gradient(rgba(255,255,255,0), white 70%) 0 100%,
/* Shadows */
radial-gradient(50% 0, farthest-side, rgba(0,0,0,.2), rgba(0,0,0,0)),
radial-gradient(50% 100%,farthest-side, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%;
background:
/* Shadow covers */
linear-gradient(white 30%, rgba(255,255,255,0)),
linear-gradient(rgba(255,255,255,0), white 70%) 0 100%,
/* Shadows */
radial-gradient(farthest-side at 50% 0, rgba(0,0,0,.2), rgba(0,0,0,0)),
radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%;
background-repeat: no-repeat;
background-color: white;
background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
/* Opera doesn't support this in the shorthand */
background-attachment: local, local, scroll, scroll;
}
background: #282c32;
display: static;
max-height: 1px;
}
.navBar {
background: #282c32;
display: none;
@ -894,7 +861,7 @@ a.licenseLink:hover {
}
.pageMain {
padding: 1em;
padding: 0 1em 1em;
}
.pageTitle {
@ -1063,6 +1030,7 @@ a.pageTitle-sublink {
}
.sectionBackLink-wrapper {
clear: both;
margin-top: 2rem;
}
@ -1239,6 +1207,34 @@ a.pageTitle-sublink {
* JS Overrides
****************************************************************************/
.js .dividedTableWrapper.js-toggleable {
display: inline-block;
}
.js .dividedTableWrapper.js-hideContent {
box-shadow: rgba(0, 0, 0, 0.35) 0px -50px 36px -28px inset;
max-height: 6rem;
overflow: hidden;
}
.js .dividedTableWrapper.js-toggleable table caption::before {
content: "\25BC";
left: .5rem;
position: absolute;
transform: rotate(0deg);
transition: transform 0.5s ease-out;
}
.js .dividedTableWrapper.js-toggleable table caption {
cursor: pointer;
pointer-events: all;
}
.js .dividedTableWrapper.js-toggleable.js-hideContent table caption::before {
transform: rotate(-90deg);
}
.js .pubDate.isDone {
-webkit-transition: 0.3s visibility;
transition: 0.3s visibility;
@ -1253,7 +1249,6 @@ a.pageTitle-sublink {
visibility: visible;
}
/****************************************************************************
* Media Queries
****************************************************************************/
@ -1269,32 +1264,20 @@ a.pageTitle-sublink {
font-size: 18px;
}
/*
h2 {
background-color: transparent;
}
*/
.imgWrapper {
max-width: 33%;
}
float: right;
margin: 0 -0.5rem 0 1rem;
max-width: 30%;
}
.imgWrapper figure {
max-width: 100%;
}
.menubar {
height: auto;
}
/*
.navBar {
display: block;
}
*/
/*
.pageTitle {
margin-top: 2rem;
}
*/
.siteTitle-text {
text-align: center;
}
@ -1375,10 +1358,6 @@ a.pageTitle-sublink {
max-width: 960px;
}
.pageMain {
padding: 2em 1em 1em;
}
.pageTitle {
margin-top: 2rem;
}

View File

@ -21,6 +21,8 @@ var titlesBySection = {
"dragons-crystalline": "Crystalline Dragons",
"dragons-metallic": "Metallic Dragons",
"herd-mammals": "Herd Mammals",
},
unlistedSections = ['main'],
fixedSection = page?.section?.replace(/\s+/, '-');

View File

@ -45,7 +45,7 @@
both used under the SIL Open Font License, Version 1.1.
</p>
<p>
Background image created with <a href="https://labs.openai.com/" target="_blank">DALL-E</a> released under a <a href="/licenses/cc0/">CC0</a> license.
Background image released under a <a href="/licenses/cc0/">CC0</a> license.
</p>
<a href="#top" class="topLink">Back to Top</a>
</div>

View File

@ -6,7 +6,7 @@ var menuLinksByOption = {
Adventuring: "/rules/adventuring.html",
Equipment: "/rules/equipment/fantasy.html",
Magic: "/rules/magic.html",
"Referees Only": "/rules/referees.html",
"GM Notes": "/rules/gm-notes.html",
};
var title = (page.title ?? '').replace('HOSR ', '');
@ -35,7 +35,7 @@ var title = (page.title ?? '').replace('HOSR ', '');
<div class="rulesMenu">
<div class="rulesVersion">
Version 0.14.6 / 2024-08-05
Version Beta-0.20.0 / 2025-03-16
<!--
<%=site.version ?? '0.0.0' %>
<%=site.lastUpdated ?? '0.0.0' %>

View File

@ -1,9 +1,25 @@
<!-- TOP BEGIN -->
<% const getPageField=(field_name)=> {
return page[field_name] || site[field_name] || '';
<%
const getPageField=(field_name)=> {
return page[field_name] || site[field_name] || '';
},
getUrl = () => site.base_uri + (site.base_uri.endsWith('/') ? '' : '/') + page.path;
-%>
let title = page?.title ?? '';
if (page.title && page.section && !page.path.endsWith(`${page.section.replace(' ', '-')}/index.html`)) {
if (page.section === 'bestiary') {
title = `${title} (Creature)`;
}
else if (page.section === 'classes') {
title = `${title} (Class)`;
}
else if (page.section === 'races') {
title = `${title} (Race)`;
}
else if (page.section === 'magic items') {
title = `${title} (Magic Item)`;
}
}
-%>
<!doctype html>
<html class="no-js" lang="en" xmlns:fb="http://ogp.me/ns/fb#">
<head>
@ -20,7 +36,7 @@
<base href="<%= getUrl() %>" />
<title>
<%= page.title ? page.title + ' | ' : '' %>
<%= title ? title + ' | ' : '' %>
<%= page.sub_title ? page.sub_title + ' | ' : '' %>
<%= site.title %>
</title>

View File

@ -31,7 +31,7 @@ Below is a timeline of major events in (this section of) the astral plane:
| **circa 3,000 CAC**<br />_(ca. 2,000 years ago)_ | The Drahki arrive in the astral plane, establishing the [Drahki Federation](/astral/factions/index.html#drahki-federation). |
| **3961 CAC**<br />_(1062 years ago)_ | The Stral slay the Dwarf king Thurborg Goldhelm and claim ownership of the Forge. |
| **4759 CAC**<br />_(264 years ago)_ | The Lyffan Expeditionary Force arrives in the astral plane. |
| **4644 CAC**<br />_(379 years ago)_ | Lord Xynohpus arrives in the astral plane from Ayreon. |
| **4644 CAC**<br />_(379 years ago)_ | Lord Xynohpus arrives in the astral plane from Aeryon. |
| **4925 CAC**<br />_(98 years ago)_ | Lord Xynohpus establishes Xynohpus (Sapphire) Cove. |
</div>

View File

@ -11,12 +11,12 @@ short_code: atr
The steps to take for each phase of astral travel:
1. **Setup**: Referee describes the situation
1. **Setup**: GM describes the situation
2. **Decide Course**: Players decide on their course of travel for the phase and any planned activities for the day.
3. **Complication Check**: Referee makes a complication check.
4. **Description**: Referee describes the regions passed through, any points of interest that the party comes across, and any complications they encounter.
5. **Actions / Responses / Complications** - Party declares actions, referee describes the results.
6. **End of Phase**: The referee updates time records.
3. **Complication Check**: GM makes a complication check.
4. **Description**: GM describes the regions passed through, any points of interest that the party comes across, and any complications they encounter.
5. **Actions / Responses / Complications** - Players declare actions, GM describes the results.
6. **End of Phase**: The GM updates time records.
7. **Repeat**: Return to step 2 and repeat until travel ends.
#### Complication Check

View File

@ -108,35 +108,256 @@ During each round of pursuit or combat, PCs occupying these roles may attempt to
### Ship Statistics
- Cargo capacity is listed in astral-tons, with each one being equivalent to roughly 50 cubic yards.
- Cost does not include the cost of the console.
- Gnomish ships have a base 80% chance of success on each landing.
- Lyffan ships always carry a Bombard as one of their weapons
<!--
<div class="dividedTableWrapper">
| Vessel | Cost (gp)[^1] | Cargo Capacity (lbs) | Length | Beam | Crew | Weapons | Ram | Landing Types | AC | HP |
| --------------------- | :-----------: | :------------------: | :-------: | :-------: | :--: | :-----: | :-: | :-----------: | :-: | :-----: |
| Caravel | 10,000 | 10,000 | 60'-80' | 20'-30' | 10 | 1 | N | Water | 11 | 90-120 |
| Galleon | 20,000 | 30,000 | 100'-150' | 25'-30' | 20 | 3 | N | Water | 12 | 180-240 |
| Warship, Sm | 6,600 | 10,000 | 60'-80' | 20'-30' | 10 | 1/2 | Y | Water | 11 | 90-120 |
| Warship, Lg | 26,600 | 30,000 | 100'-150' | 25'-30' | 20 | 2/4 | Y | Water | 12 | 210-270 |
| Lyffan Corvette | 15,000 | 25,000 | 100'-150' | 25'-35' | 10 | 1/2 | N | Water | 12 | 120-180 |
| Lyffan Battlecruiser | 45,000 | 45,000 | 220'-280' | 20'-30' | 24 | 3/4 | Y | None | 12 | 270-330 |
| Stral Destroyer | 40,000 (est) | 35,000 | 150'-200' | 25'-35' | 10 | 5 lg | Y | None | 12 | 210-270 |
| Stral Dreadnought | 50,000 (est) | 60,000 | 220'-280' | 20'-30' | 24 | 3 lg | Y | None | 12 | 270-330 |
| Dwarven Fortress | 100,000 | 300,000 | 200'-300' | 150'-250' | 10 | 10 lg | Y | Land | 12 | 480-960 |
| Gnomish SteamJammer | 40,000 | 30,000 | 100'-150' | 20'-30' | 20 | 1 lg | N | Land, Water | 12 | 120-150 |
| Drahki Dragonship, Sm | 60,000 | 15,000 | 80'-120' | 10'-15' | 10 | 1 lg | Y | Water | 12 | 180-240 |
| Drahki Dragonship, Lg | 60,000 | 45,000 | 150'-200' | 15'-20' | 20 | 3 lg | Y | Water | 12 | 270-330 |
| Vessel | Cost (gp)[^1] | Cargo Capacity (tons) | Length | Beam | Crew | Weapons | Ram | Landing Types | AC | HP |
| --------------------- | :-----------: | :-------------------: | :-------: | :-------: | :--: | :-----: | :-: | :-----------: | :-: | :-----: |
| Caravel | 10,000 | 10 | 60'-80' | 20'-30' | 10 | 1 | N | Water | 11 | 90-120 |
| Galleon | 20,000 | 30 | 100'-150' | 25'-30' | 20 | 3 | N | Water | 12 | 180-240 |
| Warship, Sm | 6,600 | 10 | 60'-80' | 20'-30' | 10 | 1/2 | Y | Water | 11 | 90-120 |
| Warship, Lg | 26,600 | 30 | 100'-150' | 25'-30' | 20 | 2/4 | Y | Water | 12 | 210-270 |
| Lyffan Corvette | 15,000 | 25 | 100'-150' | 25'-35' | 10 | 1/2 | N | Water | 12 | 120-180 |
| Lyffan Battlecruiser | 45,000 | 45 | 220'-280' | 20'-30' | 24 | 3/4 | Y | None | 12 | 270-330 |
| Stral Destroyer | 40,000 (est) | 35 | 150'-200' | 25'-35' | 10 | 5 lg | Y | None | 12 | 210-270 |
| Stral Dreadnought | 50,000 (est) | 60 | 220'-280' | 20'-30' | 24 | 3 lg | Y | None | 12 | 270-330 |
| Dwarven Fortress | 100,000 | 300 | 200'-300' | 150'-250' | 10 | 10 lg | Y | Land | 12 | 480-960 |
| Gnomish SteamJammer | 40,000 | 30 | 100'-150' | 20'-30' | 20 | 1 lg | N | Land, Water | 12 | 120-150 |
| Drahki Dragonship, Sm | 60,000 | 15 | 80'-120' | 10'-15' | 10 | 1 lg | Y | Water | 12 | 180-240 |
| Drahki Dragonship, Lg | 60,000 | 45 | 150'-200' | 15'-20' | 20 | 3 lg | Y | Water | 12 | 270-330 |
[Ship Statistics]
</div>
[^1]: Does not include the cost of the console.
[^1]:
Does not include the cost of the console.
-->
### Ship Notes
#### Caravel
- **Drahki ships**: Always carry a Fire Cannon as one of their weapons.
- **Gnomish ships**: Base 80% chance of success on each landing.
- **Lyffan ships**: Always carry a Bombard as one of their weapons
<!-- - **Stral ships**: -->
<div class='headlessTableWrapper'>
| | |
| -------------------- | --------- |
| **Cost** | 10,000 gp |
| **Cargo Capacity** | 10 tons |
| **Length** | 60'-80' |
| **Beam** | 20'-30' |
| **Crew** | 10 |
| **Weapons** | 1 medium |
| **Ram** | N |
| **Landing Types** | Water |
| **AC** | 11 |
| **Damage Threshold** | 5 |
| **HP** | 90-120 |
</div>
#### Galleon
<div class='headlessTableWrapper'>
| | |
| -------------------- | --------- |
| **Cost** | 20,000 gp |
| **Cargo Capacity** | 30 tons |
| **Length** | 100'-150' |
| **Beam** | 25'-30' |
| **Crew** | 20 |
| **Weapons** | 3 medium |
| **Ram** | N |
| **Landing Types** | Water |
| **AC** | 12 |
| **Damage Threshold** | 5 |
| **HP** | 180-240 |
</div>
#### Warship, Small
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------------- |
| **Cost** | 6,600 gp |
| **Cargo Capacity** | 10 tons |
| **Length** | 60'-80' |
| **Beam** | 20'-30' |
| **Crew** | 10 |
| **Weapons** | 1 large or 2 medium |
| **Ram** | Y |
| **Landing Types** | Water |
| **AC** | 11 |
| **Damage Threshold** | 6 |
| **HP** | 90-120 |
#### Warship, Large
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------------- |
| **Cost** | 26,600 gp |
| **Cargo Capacity** | 30 tons |
| **Length** | 100'-150' |
| **Beam** | 25'-30' |
| **Crew** | 20 |
| **Weapons** | 2 large or 4 medium |
| **Ram** | Y |
| **Landing Types** | Water |
| **AC** | 12 |
| **Damage Threshold** | 6 |
| **HP** | 210-270 |
#### Lyffan Corvette
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------------- |
| **Cost** | 15,000 gp |
| **Cargo Capacity** | 25 tons |
| **Length** | 100'-150' |
| **Beam** | 25'-35' |
| **Crew** | 10 |
| **Weapons** | 1 large or 2 medium |
| **Ram** | N |
| **Landing Types** | Water |
| **AC** | 12 |
| **Damage Threshold** | 6 |
| **HP** | 120-180 |
#### Lyffan Battlecruiser
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------------- |
| **Cost** | 45,000 gp |
| **Cargo Capacity** | 45 tons |
| **Length** | 220'-280' |
| **Beam** | 20'-30' |
| **Crew** | 24 |
| **Weapons** | 3 large or 4 medium |
| **Ram** | Y |
| **Landing Types** | None |
| **AC** | 12 |
| **Damage Threshold** | 6 |
| **HP** | 270-330 |
#### Stral Destroyer
<div class='headlessTableWrapper'>
| | |
| -------------------- | --------------------- |
| **Cost** | 40,000 gp (estimated) |
| **Cargo Capacity** | 35 tons |
| **Length** | 150'-200' |
| **Beam** | 25'-35' |
| **Crew** | 10 |
| **Weapons** | 5 large |
| **Ram** | Y |
| **Landing Types** | None |
| **AC** | 12 |
| **Damage Threshold** | 6 |
| **HP** | 210-270 |
#### Stral Dreadnought
<div class='headlessTableWrapper'>
| | |
| -------------------- | --------------------- |
| **Cost** | 50,000 gp (estimated) |
| **Cargo Capacity** | 60 tons |
| **Length** | 220'-280' |
| **Beam** | 20'-30' |
| **Crew** | 24 |
| **Weapons** | 3 large |
| **Ram** | Y |
| **Landing Types** | None |
| **AC** | 12 |
| **Damage Threshold** | 6 |
| **HP** | 270-330 |
#### Dwarven Fortress
<div class='headlessTableWrapper'>
| | |
| -------------------- | ---------------------- |
| **Cost** | 500,000 gp (estimated) |
| **Cargo Capacity** | 300 tons |
| **Length** | 200'-300' |
| **Beam** | 150'-250' |
| **Crew** | 10 |
| **Weapons** | 10 large |
| **Ram** | Y |
| **Landing Types** | Land |
| **AC** | 12 |
| **Damage Threshold** | 8 |
| **HP** | 480-9601 |
#### Gnomish SteamJammer
<div class='headlessTableWrapper'>
| | |
| -------------------- | ----------- |
| **Cost** | 40,000 gp |
| **Cargo Capacity** | 30 tons |
| **Length** | 100'-150' |
| **Beam** | 20'-30' |
| **Crew** | 20 |
| **Weapons** | 1 large |
| **Ram** | N |
| **Landing Types** | Land, Water |
| **AC** | 12 |
| **Damage Threshold** | 4 |
| **HP** | 120-150 |
#### Drahki Dragonship, Small
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------- |
| **Cost** | 60,000 gp |
| **Cargo Capacity** | 15 tons |
| **Length** | 80'-120' |
| **Beam** | 10'-15' |
| **Crew** | 10 |
| **Weapons** | 1 Fire Cannon |
| **Ram** | Y |
| **Landing Types** | Water |
| **AC** | 12 |
| **Damage Threshold** | 5 |
| **HP** | 180-240 |
#### Drahki Dragonship, Large
<div class='headlessTableWrapper'>
| | |
| -------------------- | ------------------------------------------ |
| **Cost** | 60,000 gp |
| **Cargo Capacity** | 45 tons |
| **Length** | 150'-200' |
| **Beam** | 15'-20' |
| **Crew** | 20 |
| **Weapons** | 3 large (including at least 1 Fire Cannon) |
| **Ram** | Y |
| **Landing Types** | Water |
| **AC** | 12 |
| **Damage Threshold** | 5 |
| **HP** | 270-330 |
### Upgrades
@ -153,13 +374,20 @@ The hide of one (or more) animals is spread out across the hull.
- **+2** costs 40% of capacity in gp.
- **+3** costs 80% of capacity in gp.
#### Plating
Metal plates are attached to the hull.
- Grants an AC bonus of +3.
- Increases ship hit points by 25%.
### Weapons
#### Ballistae
Fire large bolts (arrows) of wood and iron.
**Cargo Space**: A medium ballista plus twenty bolts requires 6,000 coins of cargo space, and a heavy ballista plus twenty bolts occupies 12,000 coins worth (both subtracted from the ships cargo allowance).
**Cargo Space**: A medium ballista plus twenty bolts requires 1 ton of cargo space, and a heavy ballista plus twenty bolts occupies 2 tons of space (both subtracted from the ships cargo allowance).
**Attack modifiers**: May be applied for environmental conditions, maneuverability, etc.
@ -169,8 +397,8 @@ Fire large bolts (arrows) of wood and iron.
**Attack rolls and rate of fire**: Depend on the number of crew manning the ballista:
- 2 crew (minimum): Attacks with THAC0 15 [+4]. Fires every 3 rounds.
- 3 crew (maximum): Attacks with THAC0 14 [+5]. Fires every 2 rounds.
- 2 crew (minimum): Attacks at +4, fires every 3 rounds.
- 3 crew (maximum): Attacks at +5, fires every 2 rounds.
**Damage**: 3d6 hit points.
@ -180,8 +408,8 @@ Fire large bolts (arrows) of wood and iron.
**Attack rolls and rate of fire**: Depend on the number of crew manning the ballista:
- 4 crew (minimum): Attacks with THAC0 15 [+4]. Fires every 4 rounds.
- 5 crew (maximum): Attacks with THAC0 14 [+5]. Fires every 3 rounds.
- 4 crew (minimum): Attacks at +4, fires every 4 rounds.
- 5 crew (maximum): Attacks at +5, fires every 3 rounds.
**Damage**: 3d10 hit points.
@ -189,7 +417,7 @@ Fire large bolts (arrows) of wood and iron.
Fire magically-propelled large balls of iron.
**Cargo Space**: A bombard plus twenty cannonballs requires 10,000 coins of cargo space (subtracted from the ships cargo allowance).
**Cargo Space**: A bombard plus twenty cannonballs requires 2 tons of cargo space (subtracted from the ships cargo allowance).
**Range**: 1,000 yards.
@ -197,8 +425,8 @@ Fire magically-propelled large balls of iron.
**Attack rolls and rate of fire**: Depend on the number of crew manning the bombards:
- 3 crew (minimum): Attacks with THAC0 17 [+2]. Fires every 3 rounds.
- 4 crew (maximum): Attacks with THAC0 16 [+3]. Fires every 2 rounds.
- 3 crew (minimum): Attacks at +2, fires every 3 rounds.
- 4 crew (maximum): Attacks at +3, fires every 2 rounds.
**Damage**: 2d10 hit points.
@ -216,8 +444,8 @@ Fire dragon's flame. Can be tuned to fire in a cloud, cone, or line. Requires a
**Attack rolls and rate of fire**: Depend on the number of crew manning the cannons:
- 2 crew (minimum): Attacks with THAC0 15 [+4]. Fires every 2 rounds.
- 3 crew (maximum): Attacks with THAC0 14 [+5]. Fires each round.
- 2 crew (minimum): Attacks at +4, fires every 2 rounds.
- 3 crew (maximum): Attacks at +5, fires each round.
**Damage**: 1d6+5 x 10 hit points
@ -239,9 +467,9 @@ Fire energy bolts that function like magic missiles. Requires 2 common Eye Tyran
#### Rams
Can be used against ships or giant creatures. Small individuals cannot be targeted.
Can be used against ships or giant creatures, small individuals cannot be targeted.
**Attack rolls**: Are made using a THAC0 of 19 [0] and occur at the same point in the combat sequence as missile fire.
**Attack rolls**: Are made at +0 and occur at the same point in the combat sequence as missile fire.
**Attack modifiers**: May be applied for environmental conditions, maneuverability, etc.

View File

@ -8,13 +8,68 @@ short_code: axc
status: hidden
---
A relatively small port on the outer rim of the Astral Trade Zone, Xynohpus Cove is a collection of small wooden buildings on a carved fragment from the earth plane, complete with its own magic shop, blacksmith, and a single, two-story warehouse.
A relatively small port on the outer rim of the Astral Trade Zone, Xynohpus Cove is a collection of small wooden buildings on a carved fragment from the earth plane, complete with its own magic shop, blacksmith, guard house, and a single, two-story warehouse.
- Located on a oblong fragment of earth, about 200' across by 50' around.
- 20' diameter portal to the warehouse district of the aptly named Portown, a city on the material plane.
- A large magical clock above the portal shows the [current time](./adventuring.html#calendar) both on the astral plane and in Portown.
- Usually has 1-2 ships in dock.
- Founded almost [100 years ago](./timeline.html) by the wizard Xynohpus.
- Controlled by the Portown government.
- Portown city guards have a special detail assigned here, in the guard house (complete with a holding cell).
- Generally aligned with Trade Union and
### NPCs
- **Lord Stengar Muziv**
- Human noble harbormaster (Level 0)
- Harbormaster of Xynohpus Cove
- Tradelord in the Astral Trade Union
- Dresses in fine purple silks
- Appointed by (and reports directly to) the lord mayor of Portown.
- Hopes to use his title to gain favor with the ruling houses of Portown.
- **Fenwick C. Fizzlebell**
- Gnomish male
- Assistant to Lord Stengar Muziv
- Fussy gnome dressed all in yellow
- Always appears to be in over his head
- **Zohar, Keeper of the Obelisk**
- Half-elven male cleric of Phoris.
- Chatty and personable, he tries to be helpful when he can.
- **Amaryllis (Amary), the Alchemist**
- Owns and ran Amary's Emporium
- Polite and pretty (but bored) human female
- Smarter than she appears.
- Wears long, dark-colored dresses.
- Close ties with the Grand Consortium.
- Daughter of the wizard Lord Xynohpus, but doesn't like to talk about it.
- **Rocky**
- Fenwick's liviing statue / bodyguard
- Idyllic human male shape
- Made of magical marble
- Apparently mute
- **Unkhlar Thildison**
- Dwarven blacksmith
- Thin and kinda shifty, with short copper hair and green eyes.
- Had a pet spider named Therva that occasionally hangs out on his shoulder.
- **Zoviar of the Black Tower**
- Spindly human male wizard with a thin mustache.
- Dresses in black silken robes.
- Snide, insinuating, and all-around unpleasant to deal with.
#### Former NPCs
### Locations

View File

@ -5,21 +5,21 @@ date_pub: 2023-07-04T16:41:00-04:00
section: bestiary
content_type: feature
short_code: baj
hd: 1
---
A mythical, one-horned hare or rabbit.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ----------------------- |
| **Hit Dice** | 1 (5hp) |
| **Armor Class** | 13 |
| **Attacks** | 1 (+0) @ 1d4 (horn) |
| **Movement** | 60' |
| **Saving Throws** | D12 W13 P14 B15 S16 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
| **XP** | 10 |
| | |
| --------------- | ------------------- |
| **Hit Dice** | 1 (5hp) |
| **Armor Class** | 13 |
| **Attacks** | 1 (+0) @ 1d4 (horn) |
| **Movement** | 60' |
| **Save** | 12 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
</div>

View File

@ -1,26 +1,27 @@
---
title: Assassin (Creature)
title: Assassin
description: Someone skilled at stealth-based murder-for-hire.
date_pub: 2024-07-06T21:50:50.000-04:00
section: bestiary
content_type: feature
short_code: bas
hd: 1+
---
Someone skilled at stealth-based elimination.
<div class='headlessTableWrapper'>
| | |
| ------------------- | ---------------------------------------------- |
| **Hit Dice** | 1d6\* (4hp) |
| **Armor Class** | 13 (leather) |
| **Movement** | 40' |
| **Attacks** | 1 @ weapon (1d6) or assassinate |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save As** | [Assassin](/classes/assassin.html#advancement) |
| **Morale** | 4 |
| | |
| ------------------- | -------------------------------------------------------------- |
| **Hit Dice** | 1d6\* (4hp) |
| **Armor Class** | 13 (leather) |
| **Movement** | 40' |
| **Attacks** | 1 @ weapon (1d6) or assassinate |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save** | 13 (as [Assassin class](/classes/assassin.html#core-features)) |
| **Morale** | 4 |
</div>
@ -28,7 +29,7 @@ Someone skilled at stealth-based elimination.
- **Guild**: 20% chance of being affiliated with a guild, increasing to 80% near major urban centers.
- **Leader**: 30% chance groups of 4+ are led by a higher level assassin (1d4 HD higher).
- [**Non-human Modifiers**](./nonhuman-modifiers.html): Non-human assassins may have additional abilities or modified statistics.
- **Weapon Versatility**: May be found wielding various types of [weapons](https://www.planarvagabond.com/rules/combat.html#weapons).
- **Weapon Versatility**: May be found wielding various types of [weapons](/rules/combat.html#weapons).
### Sneaky

View File

@ -20,13 +20,38 @@ A monstrous, worm-like creature, 25' in diameter and nearly 100' long, with an e
| **Attacks** | 3 (+11) @ grab (1d4), 1 (auto) @ devour (2d8) |
| **Morale** | 7 |
| **Alignment** | Chaotic |
| **XP** | 1,350 |
</div>
**Magical Eyes** - Can use either of the following each round:
- **Grab** - When grabbed, the victim is held in place and can be automatically devoured starting the next round.
- **Devour** - Each round, if a creature has been grabbed by a pincer, the longest held creature is automatically thrown into its mouth and devoured, dealing 2d8 damage, before being swallowed.
- **Antimagic Cone**
- **Fear Gaze**
**Grab** - When grabbed, the victim is held in place and can be automatically devoured starting the next round.
**Devour** - Each round, if a creature has been grabbed by a pincer, the longest held creature is automatically thrown into its mouth and devoured, dealing 2d8 damage, before being swallowed.
### Antimagic Eye
- At the start of each round, can create a cone of anti-magic, 100 yards (300') long and 20 yards (60') wide.
- Within the cone, spells can't be cast, summoned creatures disappear, and even magic items become mundane.
- Spells and other magical effects are suppressed in the cone and can't protrude into it, unless they're created by an artifact or a deity.
- Spells cast within the zone are expended (and lost from memory, if appropriate).
- While an effect is suppressed, it doesn't function, but the time it spends suppressed counts against its duration.
- Spells and other magical effects that target a creature or an object in the cone have no effect on that target.
- This includes effects from magic items.
- The area of another spell or magical effect, such as fireball, can't extend into the cone.
- If the sphere overlaps an area of magic, the part of the area that is covered by the cone is suppressed.
- Any active spell or other magical effect on a creature or an object in the sphere is suppressed while the creature or object is in it.
- The properties and powers of magic items are suppressed in the sphere (ex: a +1 longsword functions as a nonmagical longsword in the cone).
- Teleportation and planar travel fail to work in the cone (as either departure point or destination).
- Open portals are closed while in the cone, including those to extradimensional spaces (ex: sack of storing).
- A creature or object summoned or created by magic temporarily winks out of existence in the sphere.
- Such a creature instantly reappears once the space the creature occupied is no longer within the sphere.
- Spells and magical effects such as dispel magic have no effect on the cone.
- Multiple antimagic cones have no effect on other.
### Extradimensional Gut
Creatures and items which survive being eaten and swallowed find themselves in a pocket dimension that appears to be a 1000' diameter natural cave with 100' high ceilings.
- The cave is littered with bones of various sizes, rags, armor, weapons, and other inorganic items (ex: rings, necklaces, stones).
- At the end of each day that a creature spends in the cave, it loses 1HD.
- When a creature drops to 0 HD, it dies.
- Within 1 week of dying, all of the organic matter on the corpse has rotted away, leaving behind only bones and metal.
- Creatures within the cave can't harm the devourer.

View File

@ -5,22 +5,22 @@ date_pub: 2024-07-06T21:50:50.000-04:00
section: bestiary
content_type: feature
short_code: bbn
hd: 2
---
Semi-intelligent, terrestrial monkeys that live in small packs (led by an alpha) and communicate via screams and shrieks.
A semi-intelligent, terrestrial monkey that lives in small, alpha-lead packs and communicates via screams and shrieks.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ----------------------------------- |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 (natural) |
| **Movement** | 40' |
| **Attacks** | 1 (+1) @ 1d6 (club), 1 @ 1d3 (bite) |
| **Alignment** | Neutral |
| **Saving Throws** | D12 W13 P14 B15 S16 (2) |
| **Morale** | 8 |
| **XP** | 20 |
| | |
| --------------- | ----------------------------------- |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 (natural) |
| **Movement** | 40' |
| **Attacks** | 1 (+1) @ 1d6 (club), 1 @ 1d3 (bite) |
| **Alignment** | Neutral |
| **Save** | 12 (2) |
| **Morale** | 8 |
</div>

View File

@ -5,21 +5,22 @@ date_pub: 2024-11-02T23:18:03.000-04:00
section: bestiary
content_type: feature
short_code: bbtk
hd: 1
---
Semi-intelligent, winged monkeys with sharp claws that live in small packs high in trees.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ----------------------- |
| **Hit Dice** | 1d6 (3hp) |
| **Armor Class** | 13 (natural) |
| **Movement** | 30' / 50' flying |
| **Attacks** | 2 (+0) @ 1d3 (claws) |
| **Alignment** | Neutral |
| **Saving Throws** | D12 W13 P14 B15 S16 (2) |
| **Morale** | 7 |
| | |
| --------------- | -------------------- |
| **Hit Dice** | 1d6 (3hp) |
| **Armor Class** | 13 (natural) |
| **Movement** | 30' / 50' flying |
| **Attacks** | 2 (+0) @ 1d3 (claws) |
| **Alignment** | Neutral |
| **Save** | 12 (2) |
| **Morale** | 7 |
</div>

View File

@ -5,23 +5,23 @@ date_pub: 2023-10-26T23:15:49.000-04:00
section: bestiary
subsection: bats
content_type: feature
short_code: bb1b
short_code: bat
hd: 1hp
---
Small (2 lbs), nocturnal flying mammals with 4' wingspans which often roost in caves.
<div class='headlessTableWrapper'>
| | |
| ----------------- | -------------------------- |
| **Hit Dice** | 1hp |
| **Armor Class** | 13 |
| **Attacks** | 1 (-1) @ confusion (swarm) |
| **Movement** | 3' / 40' flying |
| **Saving Throws** | D14 W15 P16 B17 S18 (0) |
| **Morale** | 6 |
| **Alignment** | Neutral |
| **XP** | 5 |
| | |
| --------------- | -------------------------- |
| **Hit Dice** | 1 hp |
| **Armor Class** | 13 |
| **Attacks** | 1 (-1) @ confusion (swarm) |
| **Movement** | 3' / 40' flying |
| **Save** | 14 (0) |
| **Morale** | 6 |
| **Alignment** | Neutral |
</div>

View File

@ -6,22 +6,22 @@ section: bestiary
subsection: bats
content_type: feature
short_code: bb1g
hd: 2
---
Large (200 lbs), nocturnal, carnivorous flying mammals with 15' wingspans which often roost in caves and are occasionally used as mounts.
Humanoid-sized, nocturnal, carnivorous flying mammals with 15' wingspans, and weighing up to 200 lbs, which often roost in caves and are occasionally used as mounts by smaller races.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ----------------------- |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 |
| **Attacks** | 1(+1) @ 1d4 (bite) |
| **Movement** | 10' / 60' flying |
| **Saving Throws** | D12 W13 P14 B15 S16 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
| **XP** | 20 |
| | |
| --------------- | ------------------ |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 |
| **Attacks** | 1(+1) @ 1d4 (bite) |
| **Movement** | 10' / 60' flying |
| **Save** | 12 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
</div>

View File

@ -6,22 +6,22 @@ section: bestiary
subsection: bats
content_type: feature
short_code: bb1v
hd: 2
---
Large (200 lbs), nocturnal, blood-sucking flying mammals with 15' wingspans which often roost in caves.
Humanoid-sized, nocturnal, blood-sucking flying mammals with 15' wingspans, and weighing up to 200 lbs, which often roost in caves.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ------------------------------------ |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 |
| **Attacks** | 1(+1) @ 1d4 + unconsciousness (bite) |
| **Movement** | 10' / 60' flying |
| **Saving Throws** | D12 W13 P14 B15 S16 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
| **XP** | 20 |
| | |
| --------------- | ------------------------------------ |
| **Hit Dice** | 2 (9hp) |
| **Armor Class** | 13 |
| **Attacks** | 1(+1) @ 1d4 + unconsciousness (bite) |
| **Movement** | 10' / 60' flying |
| **Save** | 12 (1) |
| **Morale** | 8 |
| **Alignment** | Neutral |
</div>

View File

@ -1,13 +1,14 @@
---
title: Bloodmage (Creature)
title: Bloodmage
description: The bloodmage creature for OSR gaming.
date_pub: 2023-04-23T18:52:00-04:00
section: bestiary
content_type: feature
short_code: bbm
hd: 1+
---
An arcane spellcaster that uses their own life force, rather than their memories, to cast spells.
An arcane spellcaster that uses their own life force to cast spells.
<div class='headlessTableWrapper'>
@ -19,7 +20,7 @@ An arcane spellcaster that uses their own life force, rather than their memories
| **Attacks** | 1 @ dagger (1d4) or spell |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Saving Throws** | D13 W14 P13 B16 S15 [Wizard 1](/classes/wizard.html#advancement) |
| **Save** | 13 (as [Bloodmage class](/classes/bloodmage.html#core-features)) |
| **Morale** | 7 |
</div>
@ -33,14 +34,14 @@ An arcane spellcaster that uses their own life force, rather than their memories
<div class="dividedTableWrapper">
| HD | HP | AC | Atk Mod | Damage | Morale | Spells Available | Saving Throws |
| :----------: | :-: | :-: | :-----: | :----: | :----: | :--------------: | :-----------------: |
| 3d6\* | 13 | 11 | +1 | 1d4 | 7 | 1d6-1 | D13 W14 P13 B16 S15 |
| 5d6\*\* | 22 | 12 | +2 | 1d4+1 | 8 | 1d8-1 | D13 W14 P13 B16 S15 |
| 7d6\*\* | 31 | 13 | +3 | 1d4+1 | 8 | 1d10-1 | D11 W12 P11 B14 S12 |
| 9d6\*\*\* | 40 | 14 | +4 | 1d6+1 | 9 | 2d6-2 | D11 W12 P11 B14 S12 |
| 11d6\*\*\* | 49 | 15 | +6 | 1d6+2 | 9 | 2d8-2 | D8 W9 P8 B11 S8 |
| 13d6\*\*\*\* | 58 | 17 | +8 | 1d6+2 | 10 | 2d10-2 | D8 W9 P8 B11 S8 |
| HD | HP | AC | Atk Mod | Damage | Morale | Spells Available | Save |
| :----------: | :-: | :-: | :-----: | :----: | :----: | :--------------: | :--: |
| 3d6\* | 13 | 11 | +1 | 1d4 | 7 | 1d6-1 | 13 |
| 5d6\*\* | 22 | 12 | +2 | 1d4+1 | 8 | 1d8-1 | 13 |
| 7d6\*\* | 31 | 13 | +3 | 1d4+1 | 8 | 1d10-1 | 11 |
| 9d6\*\*\* | 40 | 14 | +4 | 1d6+1 | 9 | 2d6-2 | 11 |
| 11d6\*\*\* | 49 | 15 | +6 | 1d6+2 | 9 | 2d8-2 | 8 |
| 13d6\*\*\*\* | 58 | 17 | +8 | 1d6+2 | 10 | 2d10-2 | 8 |
[Higher-Level Bloodmages]

View File

@ -1,25 +1,26 @@
---
title: Bugbear (Creature)
title: Bugbear
description: The bugbear creature for OSR gaming.
date_pub: 2023-05-12T15:21:00-04:00
section: bestiary
content_type: feature
short_code: bbu
hd: 3
---
Large, hairy goblin-like creatures capable of sneaking up on prey.
A large, hairy, goblin-like creature capable of sneaking up on prey.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ------------------------ |
| **Hit Dice** | 3+1 (14hp) |
| **Armor Class** | 14 (natural + leather) |
| **Movement** | 30' |
| **Attacks** | 1 (+3) @ 2d4 (weapon +1) |
| **Alignment** | Chaotic |
| **Saving Throws** | D12 W13 P14 B15 S16 (3) |
| **Morale** | 9 |
| | |
| --------------- | ------------------------ |
| **Hit Dice** | 3+1 (14hp) |
| **Armor Class** | 14 (natural + leather) |
| **Movement** | 30' |
| **Attacks** | 1 (+3) @ 2d4 (weapon +1) |
| **Alignment** | Chaotic |
| **Save** | 12 (3) |
| **Morale** | 9 |
</div>

View File

@ -1,26 +1,27 @@
---
title: Cleric (Creature)
title: Cleric
description: The cleric creature for OSR gaming.
date_pub: 2023-04-23T18:42:00-04:00
section: bestiary
content_type: feature
short_code: bc1
hd: 1+
---
Holy (or unholy) warrior-priests on a quest for their deity.
<div class='headlessTableWrapper'>
| | |
| ------------------- | ------------------------------------------ |
| **Hit Dice** | 1 (4hp) |
| **Armor Class** | 17 (plate) |
| **Movement** | 20' |
| **Attacks** | 1 @ mace (1d6) |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save As** | [Cleric](/classes/cleric.html#advancement) |
| **Morale** | 7 |
| | |
| ------------------- | ---------------------------------------------------------- |
| **Hit Dice** | 1 (4hp) |
| **Armor Class** | 17 (plate) |
| **Movement** | 20' |
| **Attacks** | 1 @ mace (1d6) |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save** | 11 (as [Cleric class](/classes/cleric.html#core-features)) |
| **Morale** | 7 |
</div>

View File

@ -5,6 +5,7 @@ date_pub: 2023-04-23T18:21:00-04:00
section: bestiary
content_type: feature
short_code: mcm
hd: 2hp
---
One of the common people (artists, beggars, children, craftspeople, farmers, fishermen, housewives, scholars, slaves, etc.).
@ -19,7 +20,7 @@ One of the common people (artists, beggars, children, craftspeople, farmers, fis
| **Attacks** | 1 (-1) @ 1d2 or weapon |
| **Attack Modifier** | 0 |
| **Alignment** | Any, usually lawful |
| **Saving Throws** | D14 W15 P16 B17 S18 |
| **Save** | 14 |
| **Morale** | 6 |
</div>

View File

@ -1,26 +1,27 @@
---
title: Corsair (Creature)
title: Corsair
description: The corsair (sailor) creature for OSR gaming.
date_pub: 2023-04-23T18:44:00-04:00
section: bestiary
content_type: feature
short_code: bcr
hd: 1+
---
A skilled sailor, be it on the seas, in the air, or on the astral plane. Usually part of a crew.
<div class='headlessTableWrapper'>
| | |
| ------------------- | -------------------------------------------- |
| **Hit Dice** | 1d6 (3hp) |
| **Armor Class** | 13 (leather) |
| **Movement** | 40' |
| **Attacks** | 1 @ weapon (1d6) |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save As** | [Corsair](/classes/corsair.html#advancement) |
| **Morale** | 7 |
| | |
| ------------------- | ------------------------------------------------------------ |
| **Hit Dice** | 1d6 (3hp) |
| **Armor Class** | 13 (leather) |
| **Movement** | 40' |
| **Attacks** | 1 @ weapon (1d6) |
| **Attack Modifier** | 0 |
| **Alignment** | Any |
| **Save** | 13 (as [Corsair class](/classes/corsair.html#core-features)) |
| **Morale** | 7 |
</div>

View File

@ -5,22 +5,22 @@ date_pub: 2024-02-23T16:41:26.000-04:00
section: bestiary
content_type: feature
short_code: bcg
hd: 3+
---
Large crustaceans that hunt along beaches and lurk in coastal caves.
A humanoid-sized crustacean that hunts along beaches and lurk in coastal caves.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ----------------------- |
| **Hit Dice** | 3 (13hp) |
| **Armor Class** | 17 (natural) |
| **Movement** | 20' |
| **Attacks** | 2 (+2) @ 2d6 (pincer) |
| **Alignment** | Neutral |
| **Saving Throws** | D12 W13 P14 B15 S16 (2) |
| **Morale** | 7 |
| **XP** | 35 |
| | |
| --------------- | --------------------- |
| **Hit Dice** | 3 (13hp) |
| **Armor Class** | 17 (natural) |
| **Movement** | 20' |
| **Attacks** | 2 (+2) @ 2d6 (pincer) |
| **Alignment** | Neutral |
| **Save** | 12 (2) |
| **Morale** | 7 |
</div>

View File

@ -0,0 +1,78 @@
---
title: Demilich
description: The demilich creature for OSR gaming.
date_pub: 2025-01-05T22:25:19.000-04:00
section: bestiary
content_type: feature
short_code: bdm1
status: hidden
---
<div class='headlessTableWrapper'>
| | |
| --------------- | ---------------------------- |
| **Hit Dice** | ??? (50hp) |
| **Armor Class** | 25 |
| **Attacks** | Ghostly shape OR devour soul |
| **Movement** | None |
| **Save** | 8 (Wizard 14) |
| **Morale** | 10 |
| **Alignment** | Any |
</div>
- Cannot be removed from Lair
- Can only be harmed as follows:
- Each Dispel Evil spell inflicts 5 hp of damage;
- Each Shatter spell inflicts 10 hp of damage;
- Each Holy Word pronounced against it inflicts 20 hp of damage;
- Weapons of sharpness, vorpal weapons, and weapons with +4 enchantments or better inflict their standard damage; and
- Expensive gems may be used as weapons, dealing 1 hp per 10,000 gp value.
- Can only be destroyed by:
- A Kill (Word of Power) spell cast from an astral or ethereal spell caster, or
- Total annihilation of the jeweled skull itself.
- If the skull is destroyed, each soul in a gem must **Save vs Magic** or be revealed as having been devoured.
- On a successful save, the gem contains a faint light, and looking at it with True Sight will reveal a tiny figure representing the soul within.
- If gem with a soul inside is crushed, the soul will be set free.
- Unless there's a suitable body within 10' of the gem, the soul escapes.
- ex: clone, automaton, an otherwise soulless body
### Ghostly Shape
Can use its own bone dust to create a ghostly shape.
- Shape will advance and threaten, but cannot cause harm.
- If struck, shape will waver and fall back as if suffering damage.
- Dissipates in 3 rounds if not engaged with.
- Any attack will give it energy
- 1 point for a physical attack
- 1 point per spell level for spell attacks
- If shape gains 50 energy, will form into a ghost controlled by the demilich, which attacks immediately.
### Swallow Soul
Skull rises into the air, scans for potential victims within sight, and picks one, which it swallows into an empty gem.
- Takes an entire round to occur
- Starts on their initiative, soul is taken at the very end of the next round.
> The soul of the strongest will be drawn instantly from his or her body and trapped within the right eye jewel, and the gem-eye will gleam with wickedly evil lights as the characters body collapses in a mass of corruption and moulders in a single round - totally gone.
- Can hold 8 souls total at any one time.
- 2x 50k gp ruby (one in each eye socket), and
- 5x 5k gp diamond (located along jaw as teeth).
- Picks most powerful party member and attacks them first.
- Spellcaster over fighter, over cleric, over thief.
- After swallowing a soul, the skull sinks down.
- Attack can be stopped by casting either a "Forget" spell or an "Exorcise" spell.
- This causes the skull to sink down without consuming a soul.
- If there are no empty soul-gems left:
> [i]t will pronounce a curse upon the remaining characters which will teleport them randomly in a 100-600 mile radius, each cursed to some fate similar to a) always be hit by any opponent attacking or b) never making a saving throw or c) always losing all treasure without gaining any experience from it.
> The latter part of the curse can be removed by a remove curse spell, but the charisma of the character so treated will drop 2 points immediately thereafter and remain there permanently (unless some magical means of increasing it is found).

View File

@ -3,23 +3,24 @@ title: Allosaurus
description: Two-legged dinosaur, 15' tall, with large jaws and dagger-like teeth.
date_pub: 2024-04-14T14:02:38.000-04:00
section: bestiary
subsection: dinosaurs
content_type: feature
short_code: bd1a
hd: 13
---
Two-legged dinosaur, 15' tall, with large jaws and dagger-like teeth.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ---------------------- |
| **Hit Dice** | 13 (55hp) |
| **Armor Class** | 14 |
| **Attacks** | 1 (+9) @ 4d6 (bite) |
| **Movement** | 50' |
| **Saving Throws** | D8 W9 P10 B10 S12 (F7) |
| **Morale** | 9 |
| **Alignment** | Neutral |
| **XP** | 1350 |
| | |
| --------------- | ------------------- |
| **Hit Dice** | 13 (55hp) |
| **Armor Class** | 14 |
| **Attacks** | 1 (+9) @ 4d6 (bite) |
| **Movement** | 50' |
| **Save** | 8 (F7) |
| **Morale** | 9 |
| **Alignment** | Neutral |
</div>

View File

@ -3,23 +3,24 @@ title: Ankylosaurus
description: Four-legged, herbivorous dinosaur, 15' long and 4' tall (at the shoulder), with thick, bony armor and a massive, spiked-club-like tail.
date_pub: 2024-04-20T10:37:54.000-04:00
section: bestiary
subsection: dinosaurs
content_type: feature
short_code: bd1n
hd: 7
---
Four-legged, herbivorous dinosaur, 15' long and 4' tall (at the shoulder), with thick, bony armor and a massive, spiked-club-like tail.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ------------------------ |
| **Hit Dice** | 7 (33hp) |
| **Armor Class** | 19 |
| **Attacks** | 1 (+6) @ 2d6 (tail) |
| **Movement** | 20' |
| **Saving Throws** | D10 W11 P12 B13 S14 (F4) |
| **Morale** | 6 |
| **Alignment** | Neutral |
| **XP** | 450 |
| | |
| --------------- | ------------------- |
| **Hit Dice** | 7 (33hp) |
| **Armor Class** | 19 |
| **Attacks** | 1 (+6) @ 2d6 (tail) |
| **Movement** | 20' |
| **Save** | 10 (F4) |
| **Morale** | 6 |
| **Alignment** | Neutral |
</div>

View File

@ -3,23 +3,24 @@ title: Brontosaurus
description: Massive, four-legged, herbivorous dinosaur, 70'+ long and weighing 30+ tons, with a (relatively) small head, long neck, and powerful tapering tail.
date_pub: 2024-04-20T10:53:19.000-04:00
section: bestiary
subsection: dinosaurs
content_type: feature
short_code: bd1b
hd: 26
---
Massive, four-legged, herbivorous dinosaur, 70'+ long and weighing 30+ tons, with a (relatively) small head, long neck, and powerful tapering tail.
<div class='headlessTableWrapper'>
| | |
| ----------------- | ------------------------------------------ |
| **Hit Dice** | 26 (117hp) |
| **Armor Class** | 14 |
| **Attacks** | 1 (+14) @ 2d6 (bite), 1 (+14) @ 3d6 (tail) |
| **Movement** | 20' |
| **Saving Throws** | D4 W5 P6 B5 S8 (F13) |
| **Morale** | 8 |
| **Alignment** | Neutral |
| **XP** | 3750 |
| | |
| --------------- | ------------------------------------------ |
| **Hit Dice** | 26 (117hp) |
| **Armor Class** | 14 |
| **Attacks** | 1 (+14) @ 2d6 (bite), 1 (+14) @ 3d6 (tail) |
| **Movement** | 20' |
| **Save** | 4 (F13) |
| **Morale** | 8 |
| **Alignment** | Neutral |
</div>

Some files were not shown because too many files have changed in this diff Show More