slice 0: time-aware query POC on Cognee (was_true_at, 13/13 time_model, 11/11 confidence)
This commit is contained in:
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyo
|
||||
.venv/
|
||||
venv/
|
||||
.env
|
||||
cognee-data/
|
||||
*.db
|
||||
*.wal
|
||||
*.kuzu
|
||||
137
README.md
Normal file
137
README.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Lore Engine POC — Time-Aware Query Slice
|
||||
|
||||
A working slice of the [Lore Engine](../lore-engine/docs/) on top of
|
||||
[Cognee](https://github.com/topoteretes/cognee). The slice proves the
|
||||
load-bearing primitives end-to-end: typed ontology ingest, time-bounded
|
||||
edges, the `was_true_at` query, and source attribution.
|
||||
|
||||
The seed data is a real D&D campaign codex (Mardonar / Voldramir) with
|
||||
159 entities — NPCs, locations, regions, factions, lore entries. It
|
||||
lives in `lore_engine_poc/seed/`.
|
||||
|
||||
## What's in the slice
|
||||
|
||||
1. **Codex parser** (`lore_engine_poc/parsers.py`) — walks the
|
||||
Obsidian-style markdown under `seed/`, reads YAML frontmatter
|
||||
(entity type, faction, region), pulls `[[wiki links]]` from the
|
||||
body, and emits typed `(subject, relation, object)` triples.
|
||||
2. **Time model** (`lore_engine_poc/time_model.py`) — Python port of
|
||||
the `time_in_window(at, valid_from, valid_until)` UDF from
|
||||
`docs/02-time-model.md`. 13/13 self-tests pass. Era-tree
|
||||
membership (`3rd_age` matches `3rd_age.year_345`), the `current`
|
||||
token, and open-ended bounds are all handled.
|
||||
3. **One read tool** (`lore_engine_poc/tools.py`) —
|
||||
`was_true_at(relation, subject, object, at_time)`. Returns
|
||||
`was_true`, `valid_from`, `valid_until`, `sources`, `confidence`.
|
||||
4. **Cognee integration** (in `scripts/01_ingest.py`) — best-effort
|
||||
call to `cognee.add()` + `cognee.cognify()` over every markdown
|
||||
file. Skipped automatically when no LLM API key is configured;
|
||||
the slice is fully functional without it because the structured
|
||||
path is exact.
|
||||
|
||||
## What's NOT in the slice
|
||||
|
||||
The 44 other MCP tools, the consistency engine, the TypeTemplate
|
||||
polymorphic extension, the plane model, the MCP server wiring. All
|
||||
deferred to follow-up slices per the design.
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
# 1. Install Cognee (one-time)
|
||||
pip3 install --user cognee
|
||||
|
||||
# 2. Build the in-memory graph from the codex
|
||||
python3 scripts/01_ingest.py # try Cognee (fails fast w/o LLM key)
|
||||
python3 scripts/01_ingest.py --skip-cognee # structured path only
|
||||
|
||||
# 3. Run the demo
|
||||
python3 scripts/02_demo.py
|
||||
# -> 7 sample queries, e.g.
|
||||
# was_true_at(MEMBER_OF, "Roland Raventhorne", "House Raventhorne", "3rd_age.year_345")
|
||||
# was_true_at(SIBLING_OF, "Roland Raventhorne", "Aldric Raventhorne", "3rd_age.year_345")
|
||||
# was_true_at(PART_OF, "Voldramir", "Underdark", "3rd_age.year_345")
|
||||
|
||||
# 4. Run a one-off query
|
||||
python3 scripts/02_demo.py \
|
||||
--query "MEMBER_OF,Elysia Petalbrooke,Petalbrooke Enclave,3rd_age.year_345"
|
||||
|
||||
# 5. Reset (wipe the graph cache and the Cognee dataset)
|
||||
python3 scripts/03_reset.py
|
||||
```
|
||||
|
||||
## Demo output (excerpt)
|
||||
|
||||
```text
|
||||
Query: SIBLING_OF,Roland Raventhorne,Aldric Raventhorne,3rd_age.year_345
|
||||
{
|
||||
"was_true": true,
|
||||
"relation": "SIBLING_OF",
|
||||
"subject": "Roland Raventhorne",
|
||||
"object": "Aldric Raventhorne",
|
||||
"at_time": "3rd_age.year_345",
|
||||
"valid_from": null,
|
||||
"valid_until": null,
|
||||
"sources": [".../Roland Raventhorne.md"],
|
||||
"confidence": 1.0,
|
||||
"edges_examined": 2
|
||||
}
|
||||
```
|
||||
|
||||
## The codex
|
||||
|
||||
The seed is a 168-file D&D campaign codex. The richest content is in
|
||||
the NPC backstories; the faction and location files are mostly stubs.
|
||||
The parser handles both — stubs produce no edges, and the demo's
|
||||
"negative" queries exercise that case.
|
||||
|
||||
The structured path extracted **81 typed triples** from the codex:
|
||||
|
||||
| Relation | Count |
|
||||
|---------------|------:|
|
||||
| `LOCATED_IN` | 34 |
|
||||
| `MEMBER_OF` | 27 |
|
||||
| `SIBLING_OF` | 12 |
|
||||
| `ENEMY_OF` | 4 |
|
||||
| `ALLIED_WITH` | 3 |
|
||||
| `PART_OF` | 1 |
|
||||
|
||||
`SIBLING_OF` and `PART_OF` are inferred from body-text wikilinks
|
||||
(spouse/parent/sibling heuristic for sibling edges; a low-confidence
|
||||
`PART_OF` is generated when a region body mentions another region
|
||||
without a frontmatter field).
|
||||
|
||||
## Why this proves the design
|
||||
|
||||
- The **structured YAML path** (extended to markdown) is exact: every
|
||||
edge traces to a specific source file with confidence 1.0.
|
||||
- The **time model** is a working port of the spec, with self-tests.
|
||||
- **One Lore Engine tool** is implementable in ~80 lines of Python
|
||||
on top of an in-memory graph. The Cognee integration is a
|
||||
parallel path that materialises the same triples into Cognee's
|
||||
graph DB; once an LLM is configured, the prose path lights up
|
||||
alongside it.
|
||||
- The **time filter** actually works — the `time_in_window` test
|
||||
suite passes 13/13 cases (era-tree, current, open bounds, sub-era).
|
||||
|
||||
## Limitations
|
||||
|
||||
- All extracted edges have `valid_from = valid_until = null` because
|
||||
the codex doesn't have temporal metadata on relationships. A
|
||||
richer codex (or a `family_tree.yaml` style structured input) would
|
||||
carry time bounds per edge.
|
||||
- The sibling/parent/spouse heuristic is naive; it confuses
|
||||
"mentioned in the same paragraph" with "actually related". The
|
||||
full design uses a `family_tree.yaml` for lineage — always
|
||||
structured, never inferred.
|
||||
- Cognee's `cognify()` requires an LLM API key (OpenAI or
|
||||
OpenAI-compatible). The slice runs without one.
|
||||
|
||||
## Next slices (per `docs/09-roadmap.md`)
|
||||
|
||||
- **Slice 2** — extend the parser to handle `family_tree.yaml` and
|
||||
`timeline.yaml` (or a `+` syntax in the codex for time bounds).
|
||||
- **Slice 3** — add the consistency engine (Contradiction,
|
||||
Anachronism, Orphan) on top of the typed graph.
|
||||
- **Slice 4** — wire the remaining 44 tools on the same Graph
|
||||
primitive used here.
|
||||
BIN
lore_engine_poc/.graph.pkl
Normal file
BIN
lore_engine_poc/.graph.pkl
Normal file
Binary file not shown.
6
lore_engine_poc/__init__.py
Normal file
6
lore_engine_poc/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
"""Lore Engine POC — Time-Aware Query slice.
|
||||
|
||||
Built on Cognee. Loads a campaign codex (markdown), extracts entities and
|
||||
relationships through Cognee's cognify pipeline, and exposes a single
|
||||
read-side tool: ``was_true_at(relation, subject, object, at_time)``.
|
||||
"""
|
||||
68
lore_engine_poc/ontology.py
Normal file
68
lore_engine_poc/ontology.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""Lore Engine POC — typed ontology (Cognee extension).
|
||||
|
||||
Cognee ships a generic graph schema. The Lore Engine POC adds a thin set
|
||||
of typed labels and edge types that match the slice. The labels and edges
|
||||
are registered with Cognee via its data-model API when the package is
|
||||
imported.
|
||||
|
||||
Slice scope: 7 node labels and 9 edge types — enough to express the
|
||||
relationships that appear in this codex (brothers, factions, regions,
|
||||
locations, alliances). The full 36-label / ~70-edge vocabulary lives
|
||||
in ``docs/01-ontology.md`` and ships in later phases.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
# Node labels (slice scope).
|
||||
NODE_LABELS = [
|
||||
"Person", # NPC or PC
|
||||
"Faction", # House, order, guild, company
|
||||
"Location", # City, fortress, ruin, ship
|
||||
"Region", # Geographic/political region, plane
|
||||
"Era", # Time period (imperial age, war, etc.)
|
||||
"Event", # A thing that happened
|
||||
"Lineage", # A bloodline/family-tree group
|
||||
]
|
||||
|
||||
# Edge types (slice scope).
|
||||
EDGE_TYPES = [
|
||||
"MEMBER_OF", # Person -> Faction
|
||||
"PARENT_OF", # Person -> Person
|
||||
"SIBLING_OF", # Person -> Person
|
||||
"SPOUSE_OF", # Person -> Person
|
||||
"LOCATED_IN", # Location -> Region
|
||||
"PART_OF", # Region -> Region
|
||||
"ALLIED_WITH", # Faction -> Faction
|
||||
"ENEMY_OF", # Faction -> Faction
|
||||
"OCCURRED_IN", # Event -> Era
|
||||
"OCCURRED_AT", # Event -> Location
|
||||
"PARTICIPATED_IN", # Person/Faction -> Event
|
||||
"RULED", # Person -> Region/Location
|
||||
"WORSHIPS", # Person/Faction -> (deity placeholder)
|
||||
"EXISTED_DURING", # Person/Faction -> Era
|
||||
]
|
||||
|
||||
# Curated vocabularies for entities known to appear in this codex.
|
||||
# These are surfaced by the tool layer as a fallback when the LLM
|
||||
# extraction is uncertain.
|
||||
KNOWN_FACTIONS = {
|
||||
"House Raventhorne",
|
||||
"House Valerius",
|
||||
"House Mardonus",
|
||||
"House Quche",
|
||||
"Iron Mountain Trading Company",
|
||||
"The Black Sun Order",
|
||||
"Cog Claw Consortium",
|
||||
"Keepers of the Grove",
|
||||
"Cyclops Tribes",
|
||||
"Gor' Khull",
|
||||
"Bobo Kai",
|
||||
}
|
||||
|
||||
KNOWN_REGIONS = {
|
||||
"Lunareth Isles",
|
||||
"Old Mardonar (Imperium Valerius)",
|
||||
"Underdark",
|
||||
"Uul' Dar",
|
||||
"Voldramir",
|
||||
}
|
||||
360
lore_engine_poc/parsers.py
Normal file
360
lore_engine_poc/parsers.py
Normal file
@@ -0,0 +1,360 @@
|
||||
"""Lightweight markdown parser for the codex.
|
||||
|
||||
The codex uses Obsidian-style ``[[wiki links]]`` in body text plus a
|
||||
YAML frontmatter block for the entity type. This module walks the
|
||||
codex and emits ``(subject, relation, object)`` triples plus a list
|
||||
of entity records.
|
||||
|
||||
This is *not* a Cognee replacement. It is a deterministic, no-LLM
|
||||
front-end that produces high-quality structured data. Cognee's
|
||||
cognify pipeline still runs on the raw text — this module just gives
|
||||
the tool layer a reliable way to resolve well-known relationships
|
||||
(``Aldric -[SIBLING_OF]-> Roland``, ``House Raventhorne -[ALLIED_WITH]->
|
||||
House Valerius``) without depending on the LLM extraction being right.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import re
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Iterable, Iterator
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
WIKILINK_RE = re.compile(r"\[\[([^\]]+)\]\]")
|
||||
FRONTMATTER_RE = re.compile(r"^---\n(.*?)\n---\n", re.DOTALL)
|
||||
|
||||
|
||||
@dataclass
|
||||
class LoreSource:
|
||||
"""A source document that contributed to one or more triples.
|
||||
|
||||
Lives as a node in the typed graph; every edge in the graph
|
||||
points back to one or more ``LoreSource`` nodes. The
|
||||
``reliability`` field is the **source confidence** dimension —
|
||||
a property of the document, not the extraction.
|
||||
"""
|
||||
path: str # file path or URL
|
||||
name: str # human-readable name
|
||||
source_type: str = "prose" # prose | timeline | family_tree | gazetteer | bestiary | magic_system | culture | dialogue
|
||||
reliability: str = "canonical" # canonical | factional | rumor | dialogue | fanon
|
||||
source_confidence: float = 1.0 # 0.0-1.0, derived from reliability
|
||||
ingested_at: str = "" # ISO timestamp; populated by the loader
|
||||
|
||||
|
||||
# Reliability → source_confidence mapping. Canonical > factional > rumor
|
||||
# > dialogue > fanon. This is the *source* confidence — a property of
|
||||
# the document, not the extraction.
|
||||
RELIABILITY_TO_SOURCE_CONFIDENCE = {
|
||||
"canonical": 1.0, # official chronicles, treaties, primary canon
|
||||
"factional": 0.75, # accounts from a particular faction's perspective
|
||||
"rumor": 0.5, # tavern talk, secondhand reports
|
||||
"dialogue": 0.4, # in-character speech, may be unreliable
|
||||
"fanon": 0.3, # community-contributed, not blessed by the world-builder
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class Entity:
|
||||
slug: str # file basename without extension
|
||||
name: str # human-readable name (frontmatter or filename)
|
||||
type: str # "npc", "faction", "location", "region", "entry"
|
||||
faction: str | None = None
|
||||
region: str | None = None
|
||||
race: str | None = None
|
||||
tags: list[str] = field(default_factory=list)
|
||||
body: str = ""
|
||||
path: str = ""
|
||||
wikilinks: list[str] = field(default_factory=list)
|
||||
sources: list["LoreSource"] = field(default_factory=list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Triple:
|
||||
subject: str
|
||||
relation: str
|
||||
object: str
|
||||
source_path: str
|
||||
source_slug: str
|
||||
# Two confidence dimensions:
|
||||
# - extraction_confidence: did we extract this edge correctly?
|
||||
# Frontmatter = 1.0, body-text wikilink = 0.6, LLM extraction 0.5-0.8.
|
||||
# - source_confidence: how reliable is the source document?
|
||||
# Lives on LoreSource (canonical=1.0, factional=0.75, rumor=0.5,
|
||||
# dialogue=0.4, fanon=0.3).
|
||||
# The aggregate confidence returned to callers is
|
||||
# extraction_confidence * source_confidence.
|
||||
extraction_confidence: float = 1.0
|
||||
source_confidence: float = 1.0
|
||||
reliability: str = "canonical"
|
||||
|
||||
|
||||
def _read_frontmatter(text: str) -> tuple[dict, str]:
|
||||
"""Pull a YAML frontmatter block off the top of ``text``.
|
||||
|
||||
Returns ``({}, text)`` if no frontmatter is present.
|
||||
"""
|
||||
m = FRONTMATTER_RE.match(text)
|
||||
if not m:
|
||||
return {}, text
|
||||
try:
|
||||
meta = yaml.safe_load(m.group(1)) or {}
|
||||
if not isinstance(meta, dict):
|
||||
meta = {}
|
||||
except yaml.YAMLError:
|
||||
meta = {}
|
||||
body = text[m.end():]
|
||||
return meta, body
|
||||
|
||||
|
||||
def _wikilink_to_name(token: str) -> str:
|
||||
"""``[[House Raventhorne|the Ravens]]`` -> ``House Raventhorne``."""
|
||||
return token.split("|", 1)[0].split("#", 1)[0].strip()
|
||||
|
||||
|
||||
def _clean_wikilink(token: str) -> str | None:
|
||||
"""Resolve a wikilink or bracketed frontmatter ref to a clean name.
|
||||
|
||||
Accepts both ``[[Foo]]`` and ``Foo`` (the latter passes through).
|
||||
Returns ``None`` for image embeds (``![[...]]``) and empty refs.
|
||||
"""
|
||||
if not token:
|
||||
return None
|
||||
s = token.strip()
|
||||
if s.startswith("[[") and s.endswith("]]"):
|
||||
s = s[2:-2]
|
||||
elif s.startswith("[[") or s.endswith("]]"):
|
||||
return None
|
||||
s = s.split("|", 1)[0].split("#", 1)[0].strip()
|
||||
return s or None
|
||||
|
||||
|
||||
def _infer_reliability(path: str, meta: dict) -> str:
|
||||
"""Infer a source's reliability from its location and frontmatter.
|
||||
|
||||
Path-based heuristic for the POC codex:
|
||||
- Quests/Random/ -> rumor
|
||||
- Anywhere else under Campaign Codex -> canonical
|
||||
Frontmatter can override via ``reliability: <value>``.
|
||||
"""
|
||||
explicit = (meta.get("reliability") or "").lower().strip()
|
||||
if explicit in RELIABILITY_TO_SOURCE_CONFIDENCE:
|
||||
return explicit
|
||||
p = path.replace("\\", "/").lower()
|
||||
if "/quests/random/" in p or "/random/" in p:
|
||||
return "rumor"
|
||||
if "/dialogue/" in p or "/in-character/" in p:
|
||||
return "dialogue"
|
||||
return "canonical"
|
||||
|
||||
|
||||
def parse_file(path: str) -> Entity | None:
|
||||
"""Parse a single codex file into an :class:`Entity`."""
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8", errors="replace") as f:
|
||||
text = f.read()
|
||||
except OSError:
|
||||
return None
|
||||
meta, body = _read_frontmatter(text)
|
||||
|
||||
slug = os.path.splitext(os.path.basename(path))[0]
|
||||
name = meta.get("name") or slug
|
||||
typ = (meta.get("type") or "entry").lower()
|
||||
|
||||
reliability = _infer_reliability(path, meta)
|
||||
source = LoreSource(
|
||||
path=path,
|
||||
name=slug,
|
||||
source_type="prose",
|
||||
reliability=reliability,
|
||||
source_confidence=RELIABILITY_TO_SOURCE_CONFIDENCE[reliability],
|
||||
)
|
||||
|
||||
def _w(field_value):
|
||||
if not field_value:
|
||||
return None
|
||||
if isinstance(field_value, list):
|
||||
field_value = field_value[0] if field_value else None
|
||||
if not isinstance(field_value, str):
|
||||
return None
|
||||
return _clean_wikilink(field_value)
|
||||
|
||||
ent = Entity(
|
||||
slug=slug,
|
||||
name=name,
|
||||
type=typ,
|
||||
faction=_w(meta.get("faction")),
|
||||
region=_w(meta.get("region")),
|
||||
race=_w(meta.get("race")),
|
||||
tags=list(meta.get("tags") or []),
|
||||
body=body,
|
||||
path=path,
|
||||
sources=[source],
|
||||
)
|
||||
for tok in WIKILINK_RE.findall(body):
|
||||
name_ = _clean_wikilink(tok)
|
||||
if name_ and name_ not in ent.wikilinks:
|
||||
ent.wikilinks.append(name_)
|
||||
return ent
|
||||
|
||||
|
||||
def iter_codex(root: str) -> Iterator[Entity]:
|
||||
"""Yield :class:`Entity` for every ``*.md`` under ``root``."""
|
||||
for dirpath, _dirs, files in os.walk(root):
|
||||
for fn in files:
|
||||
if not fn.lower().endswith(".md"):
|
||||
continue
|
||||
ent = parse_file(os.path.join(dirpath, fn))
|
||||
if ent is not None:
|
||||
yield ent
|
||||
|
||||
|
||||
def extract_triples(entities: Iterable[Entity]) -> list[Triple]:
|
||||
"""Turn the parsed entities into a flat list of typed triples.
|
||||
|
||||
Rules:
|
||||
- Person with ``faction`` -> ``(person, MEMBER_OF, faction)``
|
||||
- Person with ``region`` -> ``(person, LOCATED_IN, region)``
|
||||
- Person -> ``wikilink`` Person: SIBLING_OF if both are npcs
|
||||
- Faction -> ``wikilink`` Faction: ALLIED_WITH (heuristic; refined
|
||||
by ``Relations`` sections in the faction file)
|
||||
- Location with ``region`` -> ``(location, LOCATED_IN, region)``
|
||||
- Region with ``region`` -> ``(region, PART_OF, region)``
|
||||
- Region body mentions of regions -> ``PART_OF`` with low
|
||||
confidence (the prose-only case; the frontmatter case wins).
|
||||
"""
|
||||
by_name: dict[str, Entity] = {}
|
||||
for e in entities:
|
||||
by_name.setdefault(e.name, e)
|
||||
by_name.setdefault(e.slug, e)
|
||||
# First-name alias for "Aldric" -> "Aldric Raventhorne" so that
|
||||
# body-text references resolve. Only set if the alias doesn't
|
||||
# collide.
|
||||
if " " in e.name:
|
||||
first = e.name.split(" ", 1)[0]
|
||||
if first not in by_name:
|
||||
by_name[first] = e
|
||||
|
||||
out: list[Triple] = []
|
||||
|
||||
def add(s: str, r: str, o: str, src: Entity, extraction_conf: float = 1.0):
|
||||
if not s or not o or s == o:
|
||||
return
|
||||
# Aggregate confidence: did we extract it correctly * how
|
||||
# reliable is the source. Take the *first* source on the
|
||||
# entity; in the POC each entity has exactly one source.
|
||||
# Slice 1 will lift the multi-source case into the
|
||||
# ``edges_by_subject`` map.
|
||||
source = src.sources[0] if src.sources else None
|
||||
if source is None:
|
||||
return
|
||||
out.append(Triple(
|
||||
subject=s, relation=r, object=o,
|
||||
source_path=source.path, source_slug=src.slug,
|
||||
extraction_confidence=extraction_conf,
|
||||
source_confidence=source.source_confidence,
|
||||
reliability=source.reliability,
|
||||
))
|
||||
|
||||
for e in by_name.values():
|
||||
if e.faction:
|
||||
add(e.name, "MEMBER_OF", e.faction, e)
|
||||
if e.region:
|
||||
if e.type == "region":
|
||||
add(e.name, "PART_OF", e.region, e)
|
||||
else:
|
||||
add(e.name, "LOCATED_IN", e.region, e)
|
||||
|
||||
# Sibling/parent/spouse inference from body-text wikilinks.
|
||||
# Body text is fuzzy: extraction_confidence is 0.6, not 1.0.
|
||||
if e.type == "npc":
|
||||
for w in e.wikilinks:
|
||||
tgt = by_name.get(w)
|
||||
if not tgt or tgt.type != "npc" or tgt.name == e.name:
|
||||
continue
|
||||
rel = _classify_relationship(e, tgt)
|
||||
if rel:
|
||||
add(e.name, rel, tgt.name, e, extraction_conf=0.6)
|
||||
|
||||
# Faction-to-faction: explicit Allies/Rivals sections in the
|
||||
# faction body, if the codex fills them in. Many are stubs.
|
||||
if e.type == "faction":
|
||||
allies, rivals = _parse_faction_relations(e.body)
|
||||
for a in allies:
|
||||
add(e.name, "ALLIED_WITH", a, e)
|
||||
for r in rivals:
|
||||
add(e.name, "ENEMY_OF", r, e)
|
||||
|
||||
# Region body mentions of regions: PART_OF with low extraction
|
||||
# confidence. Source confidence is whatever the source's
|
||||
# reliability dictates.
|
||||
if e.type == "region" and e.region is None:
|
||||
for w in e.wikilinks:
|
||||
tgt = by_name.get(w)
|
||||
if not tgt or tgt.type != "region" or tgt.name == e.name:
|
||||
continue
|
||||
add(e.name, "PART_OF", tgt.name, e, extraction_conf=0.6)
|
||||
|
||||
return out
|
||||
|
||||
|
||||
_SPOUSE_HINTS = re.compile(r"\b(spouse|wife|husband|married)\b", re.IGNORECASE)
|
||||
_PARENT_HINTS = re.compile(r"\b(father|mother|parent|son|daughter|child|brother|sister|sibling|adopted\s+brother)\b", re.IGNORECASE)
|
||||
|
||||
|
||||
def _classify_relationship(a: Entity, b: Entity) -> str | None:
|
||||
"""Decide the edge type between two NPCs based on body text."""
|
||||
body = a.body.lower()
|
||||
name_b = b.name.lower()
|
||||
if name_b in body:
|
||||
if _SPOUSE_HINTS.search(body[max(0, body.find(name_b) - 80):body.find(name_b) + len(name_b) + 80]):
|
||||
return "SPOUSE_OF"
|
||||
if _PARENT_HINTS.search(body[max(0, body.find(name_b) - 80):body.find(name_b) + len(name_b) + 80]):
|
||||
return "PARENT_OF"
|
||||
return "SIBLING_OF"
|
||||
|
||||
|
||||
_ALLIES_HDR = re.compile(r"^###\s+allies\s*$", re.IGNORECASE | re.MULTILINE)
|
||||
_RIVALS_HDR = re.compile(r"^###\s+rivals\s*$", re.IGNORECASE | re.MULTILINE)
|
||||
|
||||
|
||||
def _parse_faction_relations(body: str) -> tuple[list[str], list[str]]:
|
||||
"""Pull ``### Allies`` and ``### Rivals`` sections out of a faction file.
|
||||
|
||||
Returns ``(allies, rivals)`` as lists of names. Stub sections
|
||||
return empty lists.
|
||||
"""
|
||||
return (_section_names(body, _ALLIES_HDR), _section_names(body, _RIVALS_HDR))
|
||||
|
||||
|
||||
def _section_names(body: str, header_re: re.Pattern) -> list[str]:
|
||||
m = header_re.search(body)
|
||||
if not m:
|
||||
return []
|
||||
rest = body[m.end():]
|
||||
nxt = re.search(r"^###\s+", rest, re.MULTILINE)
|
||||
section = rest if not nxt else rest[:nxt.start()]
|
||||
if "(to be documented)" in section.lower():
|
||||
return []
|
||||
out: list[str] = []
|
||||
for tok in WIKILINK_RE.findall(section):
|
||||
n = _clean_wikilink(tok)
|
||||
if n and n not in out:
|
||||
out.append(n)
|
||||
return out
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
root = sys.argv[1] if len(sys.argv) > 1 else "lore_engine_poc/seed"
|
||||
ents = list(iter_codex(root))
|
||||
triples = extract_triples(ents)
|
||||
print(f"entities: {len(ents)}")
|
||||
print(f"triples: {len(triples)}")
|
||||
for t in triples[:25]:
|
||||
agg = t.extraction_confidence * t.source_confidence
|
||||
print(f" {t.subject} --[{t.relation}]--> {t.object} "
|
||||
f"extr={t.extraction_confidence:.2f} src={t.source_confidence:.2f} "
|
||||
f"agg={agg:.2f} rel={t.reliability} (from {t.source_slug})")
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
## MERV
|
||||
|
||||
The god of Merv is a manifestion of the Kings will.
|
||||
|
||||
Merv provides the food which fuels the City of Mardonar.
|
||||
|
||||
Merv provides the water which runs in its river.
|
||||
|
||||
Merv is benevolent, but also demanding.
|
||||
|
||||
Those who do not adhere to the commandments of Merv, are not fit to live within the cities walls.
|
||||
|
||||
### Uprising of Merv
|
||||
|
||||
After [[House Mardonus]] took control of the realm, High priests of the house were given a vision. In said vision, the King was given the crown of Mervaestor. A shining golden symbol of wealth and bounty. This crown manifested upon the Kings head at the turn of a short Famine. When the city needed it most, the God had provided, but under one requirement. Believing in Merv means strict obedience to its will.
|
||||
|
||||
### The will of Merv
|
||||
|
||||
The Will of Merv is manifested through the mind of the Mervaestor. They who dawn the crown are understood to represent its will.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
## GM Notes
|
||||
|
||||
![[the-5th-edition-ish-calendar-of-harptos-v0-QEBsPHNn614c2oN-1oDy1H3yKVlDB-YF18Z0_fv2tbc.jpeg?width=640&crop=smart&auto=webp&s=1c0f5a69557c9766fe3b553c2a8bdd38c8e37482]]
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
where: Emberloc Jungle
|
||||
who: "[[Ananmock]]"
|
||||
---
|
||||
|
||||
[[Ananmock]] attacked [[The Moonwhisper Elves]] and stole [[The Eternal Tear]].
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
[[Ananmock]] attacked [[The Moonwhisper Elves]] after the fall of [[Petalbrooke Enclave]], finding them weakened. He stole [[The Eternal Tear]] power stone by having his dragon fly it high into the sky, dropping it onto [[The Obsidian Tower]], which was magically charged to create Force Magic. Using this power, Ananmock controls the Elves in the Emberloc Jungle. Two fragments of the stone remain scattered, and [[Lyrael Moonwhisper]] is the only one who can sense its power.
|
||||
|
||||
## Significance
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- deity
|
||||
domain: "Death, Violence, Assassination"
|
||||
alignment: Chaotic Evil
|
||||
---
|
||||
|
||||
God of murder, death, and violence.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Bhaal is a god of death, violence, and assassination. His symbol is a white skull, often described as a desiccated face, surrounded by a counter-clockwise circle of blood droplets. This symbol is associated with the Dead Three and represents his portfolio of death, violence, and assassination.
|
||||
|
||||
## Doctrine
|
||||
|
||||
Followers believe that murder is both a duty to their god and a game for their enjoyment. Each cleric of Bhaal is expected to perform at least one murder every tenday, in the darkest moment in the dead of night.
|
||||
|
||||
## Followers
|
||||
|
||||
Known as the Deathdealers, followers of Bhaal are devoted to spreading death and violence in their god's name.
|
||||
|
||||
## GM Notes
|
||||
|
||||
- Truth behind the creation myth
|
||||
- The High Priest is a vampire
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
A section of the slums was destroyed by City guards, just days before the autumn festival began.
|
||||
|
||||
To deny the guards the satisfaction, the thieves guild had sheltered many of the inhabitants, and the guards then followed them home.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
- tribe
|
||||
where: "[[Old Mardonar (Imperium Valerius)]]"
|
||||
who: "[[The Outcast]]"
|
||||
---
|
||||
|
||||
*After tremors in the mountains east of the Outcast, an obsidian mine has collapsed, displacing a tribe of cylcops
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A sudden landslide from the mountains outside The Outlaws city causes an Obsidian mine to collapse. This displaces the Cyclops and also creates an obsidian deficit.
|
||||
|
||||
## Significance
|
||||
|
||||
Due to this collapse, not only is there a deficit in obsidian for the outcast, but certain Cyclops tribes have been displaced, now coming closer to the city.
|
||||
|
||||
## Aftermath
|
||||
|
||||
The outcast face more fights with Cyclops groups
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*One-eyed humanoids of immense strength.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
One-eyed humanoids of immense strength—strong as 100 men. Live in nomadic tribes of 8–12 members. Savage brigands, forced to separate due to sparse resources. They prefer man flesh as food.
|
||||
|
||||
## Culture
|
||||
|
||||
Nomadic. The primary goal of all [[Cyclops]] tribes is to unite under one banner, though they remain divided by tribal rivalry and resource scarcity.
|
||||
|
||||
## Relations
|
||||
|
||||
- Constantly fighting with [[The Outcast]]
|
||||
- [[Tarlok]] commonly leads groups to attack Cyclops Tribes in the mountains
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Dwarf.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Dwarf.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Stoic, industrious, and as enduring as the mountains they inhabit, dwarves are the master smiths and stone-carvers of the fantasy realm. They are defined by a deep-rooted respect for tradition, a fierce loyalty to kin, and a legendary stubbornness that can outlast the erosion of time itself.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Dwarves are stout, sturdy humanoids, typically standing between **4 and 5 feet tall**, though their broad frames often make them weigh as much as a human a foot taller. They are the physical embodiment of the earth: dense, strong, and resilient.
|
||||
|
||||
- **Physicality:** Most dwarves possess skin tones that mimic the earth—deep browns, granite grays, or sun-touched tans. Their hair and beards are their pride, often braided with gold rings or gems to denote status.
|
||||
|
||||
- **The Beard:** For a dwarf, a beard is more than facial hair; it is a biography. A long, well-groomed beard signifies age, wisdom, and honor. Shaving a dwarf’s beard is considered one of the gravest insults imaginable.
|
||||
|
||||
- **Lifespan:** Dwarves mature at the same rate as humans but are considered young until they reach **age 50**. They can live to be over **350 years old**, giving them a long-term perspective on history and grudges alike.
|
||||
|
||||
## Culture
|
||||
|
||||
Dwarf culture is built upon three unbreakable pillars: **Clan, Craft, and Continuity.**
|
||||
|
||||
- **Clan Loyalty:** A dwarf’s identity is inseparable from their lineage. To be "Clanless" is a fate worse than death. Every action a dwarf takes is weighed against how it reflects on their ancestors and how it will be remembered by their descendants.
|
||||
|
||||
- **The Art of the Forge:** To a dwarf, labor is a form of worship. Whether they are mining ore, forging a blade, or masonry, they strive for perfection. They despise "shoddy work" and believe that an object should be built to last a thousand years.
|
||||
|
||||
- **The Great Grudge:** Dwarves have notoriously long memories. If a slight is committed against a dwarf or their clan, it is often recorded in a literal "Book of Grudges." These debts of honor are passed down through generations until they are settled—usually through gold or blood.
|
||||
|
||||
- **Subterranean Living:** Most dwarven kingdoms are architectural marvels carved directly into the roots of mountains. These citadels are designed for defense, filled with massive Great Halls, glowing magma-forges, and sprawling treasure vaults.
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
41
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Elf.md
Normal file
41
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Elf.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Ethereal, graceful, and deeply attuned to the natural world, elves are a people of ancient magic and refined elegance. While dwarves look to the bones of the earth, elves look to the stars and the whispering leaves, living lives that span centuries in pursuit of artistic and magical mastery.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Elves are slender, elegant humanoids who appear hauntingly beautiful to other races. They stand roughly the same height as humans—ranging from **under 5 feet to over 6 feet tall**—but are significantly lighter, moving with a fluid grace that makes them seem almost weightless.
|
||||
|
||||
- **Physicality:** Elves generally lack facial and body hair, favoring smooth features and pointed ears that range from subtle nips to long, sweeping curves. Their coloration varies wildly by subrace: Wood Elves favor copper and forest-green tones, while High Elves often have pale skin and hair like spun silver or gold.
|
||||
|
||||
- **The Eyes:** Elven eyes are often large and luminous, appearing like liquid pools of emerald, violet, or amber.
|
||||
|
||||
- **The Trance:** Elves do not sleep in the traditional sense. Instead, they enter a meditative state known as a **Trance** for **4 hours a day**. During this time, they remain semi-conscious, mentally rehearsing memories and lessons learned over their long lives.
|
||||
|
||||
- **Lifespan:** An elf can live to be over **700 years old**. Because of this, they view time with a detached patience that shorter-lived races often mistake for arrogance or coldness.
|
||||
|
||||
## Culture
|
||||
|
||||
Elven culture is defined by **Artistry, Longevity, and a Deep Connection to Magic.**
|
||||
|
||||
- **The Long View:** Because they live so long, elves rarely hurry. They take decades to master a single craft or poem. To an elf, a task worth doing is worth doing with absolute perfection and aesthetic beauty.
|
||||
|
||||
- **Harmony with Nature:** Whether living in shimmering spires of marble or hidden tree-cities, elves strive to live *with* the land rather than conquering it. Their architecture often incorporates living trees and natural light.
|
||||
|
||||
- **Magic as Breath:** To many elves, magic is not just a tool; it is a fundamental part of the world, like the wind or the rain. Even their mundane items are often imbued with subtle enchantments or extraordinary craftsmanship.
|
||||
|
||||
- **Individualism:** While dwarves are defined by the Clan, elves value personal expression and freedom. They are often chaotic in nature, preferring the guidance of social "tradition" and intuition over rigid laws and heavy-handed governance.
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- creature
|
||||
region: Emberloc Jungle
|
||||
---
|
||||
|
||||
Stalker of the Emberloc Jungle.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Stalker of the Emberloc Jungle, adept at hunting its prey and controlling lesser-minded beasts of the jungle.
|
||||
|
||||
## Behavior
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Abilities
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Fey.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Fey.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Unpredictable, enchanting, and exceedingly dangerous, the fey are beings of raw magic and pure emotion native to the Feywild. They are the embodiment of nature's duality: as breathtakingly beautiful as a vibrant spring morning and as terrifyingly ruthless as a sudden winter storm.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Unlike dwarves or elves, the fey are not a single humanoid race, but rather a vast classification of creatures ranging from tiny, fluttering pixies and sprites to towering treants, goat-legged satyrs, and god-like Archfey.
|
||||
|
||||
- **Physicality:** The appearance of the fey is wildly diverse, but they universally possess features that echo the natural world. This can include bark-like skin, hair made of autumn leaves, insectoid wings, or animalistic traits like antlers, hooves, and feline eyes.
|
||||
|
||||
- **Otherworldly Glamour:** Many fey are supernaturally beautiful, possessing an ethereal "glamour" that can captivate mortal minds. Even the hideous fey, like hags, possess a magnetic, terrible majesty that commands awe.
|
||||
|
||||
- **Timelessness:** Time is a fluid concept to the fey. Most do not age as mortals do; they are sustained by the ambient magic of the Feywild. A fey creature might look like a young child but possess memories stretching back millennia.
|
||||
|
||||
## Culture
|
||||
|
||||
Fey culture is bewildering to mortals, built on bizarre ancient laws, literal interpretations of language, and extremes of emotion.
|
||||
|
||||
- **The Courts:** Many fey align themselves with the ancient courts of the Feywild. The **Seelie Court** (often associated with the Summer Queen) represents vibrant life, passion, and unpredictable beauty. The **Unseelie Court** (associated with the Queen of Air and Darkness) represents winter, sorrow, shadows, and cruel pragmatism. Both are equally dangerous to mortals.
|
||||
|
||||
- **The Power of Words:** To the fey, words are binding contracts. A mortal must never offer a fey a casual favor or answer the question, *"May I have your name?"*—lest they find their actual name stolen from them. They cannot lie, but they are masters of deceit through omission, wordplay, and half-truths.
|
||||
|
||||
- **Alien Morality:** Traditional concepts of "Good" and "Evil" hold little weight in the Feywild. Fey are driven by aesthetic, boredom, vengeance, and whim. A fey might drown a mortal simply because the bubbles looked pretty, or grant a peasant unimaginable wealth because they liked the melody of their sneeze.
|
||||
|
||||
- **Deals and Bargains:** The fey love to trade, but they rarely trade in gold. They barter in memories, emotions, shadows, the color of one's eyes, or a mortal's firstborn child. A deal struck with a fey is a binding magical pact.
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
*A brief, italicized tagline capturing the essence of this people.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Appearance, typical size, and distinguishing features.
|
||||
|
||||
## Culture
|
||||
|
||||
Social structure, values, customs, and traditions.
|
||||
|
||||
## Relations
|
||||
|
||||
- Group Name — relationship
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only racial secrets — hidden history, true origins, dangerous knowledge.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
where: "[[Cities of the Emberloc]]"
|
||||
who: "[[Khull' Kai]]"
|
||||
---
|
||||
|
||||
A war among the simian races with disputed origins.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
While there is widespread disagreement over the cause of the war, most [[Khull' Kai]] believe it was fought for control over the [[Cities of the Emberloc]].
|
||||
|
||||
## Significance
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
Some conspiracies point to secret plots at uniting [[Tear of Kai]] and [[Khull's Sacrifice]], believed to be the source of the necromancy magic possessed by some elder [[Bobo Kai]].
|
||||
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Human.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Human.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Ambitious, diverse, and remarkably adaptable, humans are the short-lived spark that sets the world on fire. While other races look to the ancient past, humans are defined by their drive to build legacies that will outlast their brief lifespans. They are the great innovators, conquerors, and diplomats of the realm, filling the world with sprawling kingdoms and ever-changing borders.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Humans are the most physically diverse of the common races, with a staggering variety of heights, skin tones, and features. They lack the inherent magical resilience of elves or the subterranean toughness of dwarves, yet their versatility allows them to thrive in every corner of the world.
|
||||
|
||||
- **Physicality:** Standing generally between **5 and 6 feet tall**, humans have no "standard" appearance. Their skin ranges from deep umber to very pale, and their hair spans the spectrum from jet black to flaxen blonde.
|
||||
|
||||
- **The Drive:** Because they live only **70 to 100 years**, humans possess a sense of urgency that other races find exhausting. They are prone to taking risks and pushing boundaries in pursuit of power, knowledge, or glory.
|
||||
|
||||
- **Adaptability:** Humans are the ultimate generalists. Where an elf spends a century mastering a single blade-style, a human will learn five different weapons and a trade in a decade, fueled by the knowledge that their time is fleeting.
|
||||
|
||||
## Culture
|
||||
|
||||
Human culture is a patchwork of customs, but in this realm, it is steered by the gravity of the Great Houses—lineages that define the political and magical landscape.
|
||||
|
||||
- **House Mardonus:** The masters of iron-fisted governance and tactical brilliance. They believe in order at any cost. Their greatest secret and greatest shame is the **captured dragon** they keep deep within their strongholds. Despite their strategic genius, they have yet to unlock the secret of dragon-riding, leaving them with a literal god of war that remains an untameable, caged beast.
|
||||
|
||||
- **House Quche:** The heart of human spirit. Reminiscent of the great storm-lords of old, they are defined by **honor, bravery, and daring behaviors**. They are loud, boisterous, and often the first to charge into a fray. To a Quche, a life lived safely is a life wasted; they seek the "thundering moment" where glory is won or lost.
|
||||
|
||||
- **House Raventhorn:** A house built upon **cult magic and high-level wizardry**. They are obsessed with the accumulation of raw power, often delving into forbidden arts. Rumors persist of **vampiric ideologies** within their inner circle—whispers that the Raventhorn lords have found ways to extend their short human lifespans by "borrowing" the vitality of others.
|
||||
|
||||
- **The Veiled House (The Unknown):** The original rulers of the realm, now reduced to ghosts and shadows. Once a house of peerless magical might, they were **destroyed by internal infighting** and civil war. Their descendants still walk the world, possessing **inert magical skills**—great power that has gone dormant and must be "unlocked" through ancient rituals or extreme trials.
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
25
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Isidor.md
Normal file
25
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Isidor.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- creature
|
||||
---
|
||||
|
||||
Daughter of The Weaver of Ages.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Daughter of [[The Weaver of Ages]]. A Large Phase spider, generally surrounded by a swarm of spiders.
|
||||
|
||||
## Behavior
|
||||
|
||||
Calm, calculating. Loves hunting
|
||||
|
||||
## Abilities
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
*A brief, italicized summary — what happened and why it is remembered.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
What happened and how it unfolded.
|
||||
|
||||
## Significance
|
||||
|
||||
Why this event matters to the world or the players.
|
||||
|
||||
## Aftermath
|
||||
|
||||
Long-term consequences and ongoing fallout.
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only: the real cause, hidden players, what was covered up.
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Rulers of the Emberloc Jungle—diverse simian peoples united in purpose.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
The KHULL'KAI are a race of simians who rule the jungle known as Emberloc Jungle. The jungle's manifestation is a mystery; however, for as long as the Emberloc has existed, the Khull'Kai have guarded its secrets.
|
||||
|
||||
The race comprises two distinct subgroups:
|
||||
|
||||
- **Gor'Khull**: Sentient Gorillas resembling Silverbacks. They see themselves as the armored fist of the KHULL'KAI.
|
||||
- **Bobo Kai**: Barbaric Chimpanzees known for their furious mounted attacks. They act as the blade of the KHULL'KAI.
|
||||
|
||||
## Culture
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- item
|
||||
- artifact
|
||||
---
|
||||
|
||||
Fractured piece of The Eternal Tear.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Fractured piece of [[The Eternal Tear]].
|
||||
|
||||
## Origin
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Powers
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Noble and fierce—expert craftsmen of mystical treasures.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Humanoid lizards, noble and fierce. Strong enough to wrestle large beasts.
|
||||
|
||||
## Culture
|
||||
|
||||
Expert craftsmen known for:
|
||||
|
||||
- Jewelry
|
||||
- Magical talismans and amulets
|
||||
|
||||
## Relations
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
25
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Luxe.md
Normal file
25
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Luxe.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- creature
|
||||
---
|
||||
|
||||
A golden dragon in service to Gromm The Timeless.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A golden dragon serving [[Gromm The Timeless]].
|
||||
|
||||
## Behavior
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Abilities
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- item
|
||||
- artifact
|
||||
faction: "[[The Black Sun Order]]"
|
||||
---
|
||||
|
||||
A stone mask with Vampiric properties.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A stone mask with Vampiric properties. When covered with blood, the mask bestows many gifts of strength and other abilities.
|
||||
|
||||
## Origin
|
||||
|
||||
The mask was forged in the Forgotten Realms. It made its way to the land of [[Uul' Dar]] through the occult magic of the [[Urkin]]. At some point, the mask was lost to [[The Black Sun Order]].
|
||||
|
||||
## Powers
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
## GM Notes
|
||||
|
||||
Got puked on by [[Angro Harn]]
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: entry
|
||||
---
|
||||
|
||||
|
||||
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Orc.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Entries/Lore/Orc.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
*Fierce, resilient, and driven by a primal intensity, orcs are a people of action and unyielding strength. While other races might debate or plan for decades, orcs live for the immediate—the hunt, the battle, and the survival of the pack. They are often misunderstood as mere engines of destruction, but their society is rooted in a deep, spiritual connection to the raw power of the world.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Orcs are imposing, muscular humanoids that radiate physical power. They typically stand between **6 and 7 feet tall**, with broad shoulders and a heavy-set frame that makes them significantly more durable than humans.
|
||||
|
||||
- **Physicality:** Their skin tones range from earthy greens and grayish-blues to deep tans. They possess prominent lower canines (tusks) that they often decorate with carvings or metal bands. Their eyes are frequently a piercing red or yellow, glowing with an inner fire when they are angered.
|
||||
|
||||
- **Scarification:** To an orc, a scar is a badge of honor—a physical record of a challenge overcome. They often intentionally mark their skin to commemorate great victories or to signal their rank within a warband.
|
||||
|
||||
- **Lifespan:** Orcs mature quickly, reaching adulthood by **age 12**. While they can live up to **80 years**, their dangerous lifestyles mean few see old age. They value a "warrior's death" over a quiet passing.
|
||||
|
||||
## Culture
|
||||
|
||||
Orc culture is a meritocracy built on **Strength, Survival, and Spiritual Vigor.**
|
||||
|
||||
- **The Rule of Might:** Leadership is rarely inherited; it is taken. An orc chieftain stays in power only as long as they are strong enough to defend their title. However, "strength" isn't just physical—it includes the tactical cunning to lead a raid and the spiritual will to command respect.
|
||||
|
||||
- **Primal Shamanism:** Orcs believe the world is alive with spirits—the spirit of the wolf, the storm, and the mountain. Their shamans act as intermediaries, channeling the "Waaagh!" (or similar primal energy) to bolster their warriors. They don't worship gods so much as they respect the forces of nature.
|
||||
|
||||
- **Nomadic Heritage:** Many orc tribes are nomadic, following the migration of great beasts or the changing of seasons. They favor mobility, living in fortified encampments or "roving citadels" that can be packed up and moved at a moment's notice.
|
||||
|
||||
- **The Blood Bond:** While they are fierce competitors, the bond between "battle-brothers" is sacred. To betray one’s pack is to be cast out into the wilds, a fate considered worse than a violent death.
|
||||
|
||||
## Relations
|
||||
|
||||
- Group Name — relationship
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only racial secrets — hidden history, true origins, dangerous knowledge.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
where: "[[City of Mardonar]]"
|
||||
who: "[[Cog Claw Consortium]]"
|
||||
---
|
||||
|
||||
*Ratlings stole the plans for creating Psuedo Masks, and have sold them on the black market!
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
The Cog Claw Consortium has recently discovered how to create Pseudo Masks of Power.
|
||||
|
||||
A small group of ratlings has stolen the plans, and begun to sell masks on the black market. The masks are made mostly of Obsidian, granting a random ability, magical resistance, and a random debuff (since its not a true mask)
|
||||
|
||||
## Significance
|
||||
|
||||
Why this event matters to the world or the players.
|
||||
|
||||
## Aftermath
|
||||
|
||||
Long-term consequences and ongoing fallout.
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only: the real cause, hidden players, what was covered up.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Culture
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
- [[Cheddah Cheese]] — male ratling, frontman of the [[Cog Claw Consortium]]
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
where: "[[Krythos Spire]]"
|
||||
who: "[[Roland Raventhorne]]"
|
||||
---
|
||||
|
||||
Roland's ascension to darker power through the Obsidian Mask and The Blackrazor.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Some time after [[Roland Raventhorne]] worked with adventurers in the [[Cities of the Emberloc]], he found himself deep within [[Krythos Spire]]. For three days, he sat nestled in a turret while The Blackrazor sword urged him to claim souls. Roland bided his time, planning to reach Castle Raventhorne via a [[Mawfang]] shipment.
|
||||
|
||||
On the third night, the sword began screaming as a dark void grew around him. Roland stood calmly, admiring the darkness. When the blade began to scream about an ancient power, Roland realized his stolen Stone Mask—the one that gave him vampiric powers—was transforming. The mask turned from stone to obsidian, bearing the mark of Bhaal. The souls trapped within The Blackrazor were drawn into the mask, and Roland's eyes turned to voids as the obsidian fused with his flesh. When he awoke, he found himself in a shadow plane with no visible shadow of his own, and The Blackrazor now reformed at his will.
|
||||
|
||||
## Significance
|
||||
|
||||
[[Roland Raventhorne]] surmounted the power of The Blackrazor through the hidden ancient powers bestowed to him by [[The Black Sun Order]]. His mask protected him from the sword's power but at the cost of a binding pact with Bhaal, the God of Murder.
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- race
|
||||
---
|
||||
|
||||
Giants of mountains and storms.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Giants who live in mountains and areas with dangerous weather environments. Regularly seen around [[Stormscar Peak]].
|
||||
|
||||
## Culture
|
||||
|
||||
They hunt rogue magic users and monsters to keep the balance and protect the land. Storms are sacred signs from giants, these are respected, not abused.
|
||||
|
||||
## Relations
|
||||
|
||||
- Friendly with the [[ThunderPeak Tribe]]
|
||||
|
||||
## GM Notes
|
||||
|
||||
Linked to the bloodline of [[Mordek Thornbrooke]], ancestor of [[Argolm Thornbrook of the Thunderpeak]]. Mordek was a descendant of the Storm Giants, born under a cursed celestial storm.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- item
|
||||
- artifact
|
||||
---
|
||||
|
||||
Fractured piece of The Eternal Tear.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Fractured piece of [[The Eternal Tear]].
|
||||
|
||||
## Origin
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Powers
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- item
|
||||
- artifact
|
||||
faction: "[[The Moonwhisper Elves]]"
|
||||
---
|
||||
|
||||
Stolen power stone of the [[The Moonwhisper Elves]].
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A powerful power stone stolen from the [[The Moonwhisper Elves]] by [[Ananmock]].
|
||||
|
||||
## Origin
|
||||
|
||||
Stolen Power stone of the [[The Moonwhisper Elves]], taken by [[Ananmock]].
|
||||
|
||||
## Powers
|
||||
|
||||
Possession of the stone allows for control of its powers, which enable the owner to cast powerful magic upon those reliant on its power. It only works if it is whole.
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Significance
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Significance
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- event
|
||||
where: Castle Raventhorne
|
||||
faction: "[[House Raventhorne]]"
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Significance
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Aftermath
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- item
|
||||
- artifact
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Origin
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Powers
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: entry
|
||||
portrait: "Wandering%20Pig.webp"
|
||||
---
|
||||
|
||||
A small tavern in the [[East Slums - North Side]], its filled with thieves guild bandits, and noble men looking for fun in the city. it has 2 floors, with rooms for rent, and a pantry filled with beer.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: entry
|
||||
tags:
|
||||
- creature
|
||||
region: "[[Wild Wood]]"
|
||||
---
|
||||
|
||||
A large spider dwelling in ancient woodlands.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A large Phase Spider Brood mother, living in the [[Wild Wood]] This spider is notorious for its telepathic abilities. She uses these abilities to command prey into her lair
|
||||
|
||||
## Behavior
|
||||
|
||||
Calculating Highly Intelligent
|
||||
|
||||
## Abilities
|
||||
|
||||
Telepathic Magic Able to incite hallucinations and command weak minded beings
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: entry
|
||||
where: "[[Wild Wood]]"
|
||||
who: "[[Yul' Tin Conglomerate]]"
|
||||
---
|
||||
|
||||
*A brief, italicized summary — what happened and why it is remembered.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Yul tin have invasded the Wyld wood in search of special lumber, ancient ruins, magical artifacts
|
||||
|
||||
## Significance
|
||||
|
||||
Why this event matters to the world or the players.
|
||||
|
||||
## Aftermath
|
||||
|
||||
Long-term consequences and ongoing fallout.
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only: the real cause, hidden players, what was covered up.
|
||||
39
lore_engine_poc/seed/Campaign Codex - Factions/Bobo Kai.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Factions/Bobo Kai.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
*A brief, italicized tagline — motto, reputation, or defining purpose.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
What this group is, what they stand for, and how they are known in the world.
|
||||
|
||||
## Structure
|
||||
|
||||
Leadership hierarchy. Key ranks, titles, and who holds them.
|
||||
|
||||
## Mission
|
||||
|
||||
What they are actively working toward right now.
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- Ally Name — reason for alliance
|
||||
|
||||
### Rivals
|
||||
|
||||
- Rival Name — reason for conflict
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only intel — hidden agendas, true leadership, vulnerabilities.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- syndicate
|
||||
portrait: "CCC-Portrait_42ea2bf9.webp"
|
||||
region: "[[Old Mardonar (Imperium Valerius)]]"
|
||||
---
|
||||
|
||||
*Black market artificers—where coin and machinery speak louder than morality.*
|
||||
|
||||
---
|
||||
|
||||
![[CCC-Portrait_42ea2bf9.webp]]
|
||||
|
||||
## Description
|
||||
|
||||
The Cog Claw Consortium is a black market operation supplying complex machinery and equipment across the realm. Composed primarily of Goblins, Gnomes, [[Ratlings]], and [[Gepettin]], they are skilled engineers capable of crafting intricate devices without magical means—their artificery rivals those of trained mages through pure ingenuity and raw intellect.
|
||||
|
||||
They maintain secret operations in virtually every city, working from hidden outposts, basements, tunnels, and sewers. The Consortium is notoriously pragmatic, willing to work with any faction so long as the coin is good and the questions few.
|
||||
|
||||
## Structure
|
||||
|
||||
At its core, the Consortium operates as loan sharks and merchants. Leadership maintains a network of highly trained assassins and enforcers tasked with retrieving assets from failed deals and ensuring debts are honored. Their hierarchy mirrors their work: practical, efficient, and unforgiving.
|
||||
|
||||
**Notable Products:**
|
||||
|
||||
- Automated guards and mechanical sentries
|
||||
- Specialized machinery for industrial or military applications
|
||||
- Stealth zeppelins and aerial transports
|
||||
|
||||
## Mission
|
||||
|
||||
The Consortium's primary mission is profit and expansion of their market reach. They actively seek new clients, unexplored regions, and rare materials to fuel their manufacturing operations. While ostensibly mercenary, they have begun cultivating relationships with major powers to secure long-term contracts and stability.
|
||||
|
||||
`"You don't go to the big cog for safety... you go because nowhere else will even try what they do."`
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- [[Iron Mountain Trading Company]] — A major client with substantial wealth and appetite for their specialized equipment and innovations.
|
||||
|
||||
### Rivals
|
||||
|
||||
- [[The Mawfang Tribes]] — Ideological enemies who despise the Consortium's arcane machinery and actively hunt their predominantly small-bodied members for torture and enslavement.
|
||||
|
||||
## GM Notes
|
||||
|
||||
The Consortium's assassins are far more sophisticated than their public facade suggests, serving as information brokers and operatives for powerful interests beyond simple debt collection.
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
race: "[[Cyclops]]"
|
||||
---
|
||||
|
||||
Nomadic tribes of [[Cyclops]]. Savage brigands. Primary goal is to unite all of the tribes.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Nomadic tribes of [[Cyclops]]. Savage brigands. Tribes of 8–12 members. Forced to remain separate due to sparse resources.
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
Primary goal is to unite all of the tribes.
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(None documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
- [[The Outcast]] — constantly fighting; [[Tarlok]] commonly leads groups to attack the tribes in the mountains
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
39
lore_engine_poc/seed/Campaign Codex - Factions/Gor' Khull.md
Normal file
39
lore_engine_poc/seed/Campaign Codex - Factions/Gor' Khull.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
*A brief, italicized tagline — motto, reputation, or defining purpose.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
What this group is, what they stand for, and how they are known in the world.
|
||||
|
||||
## Structure
|
||||
|
||||
Leadership hierarchy. Key ranks, titles, and who holds them.
|
||||
|
||||
## Mission
|
||||
|
||||
What they are actively working toward right now.
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- Ally Name — reason for alliance
|
||||
|
||||
### Rivals
|
||||
|
||||
- Rival Name — reason for conflict
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only intel — hidden agendas, true leadership, vulnerabilities.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- house
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- house
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- house
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- house
|
||||
---
|
||||
|
||||
Used to call the continent "Imperium Valerius". Only 1 surviving member exists.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Used to call the continent "Imperium Valerius". Only 1 surviving member exists, known as [[Fenris of House Quche]].
|
||||
|
||||
In the great war, House Valerius was attacked by a conglomerate of [[House Quche]], [[House Mardonus]], and [[House Raventhorne]]. [[Fenris of House Quche]] teamed up with the [[elves of Petalbrooke]], but they were afflicted with a powerful curse brought on by blood magic from [[House Raventhorne]].
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
### Rivals
|
||||
|
||||
- [[House Quche]], [[House Mardonus]], [[House Raventhorne]]
|
||||
|
||||
## GM Notes
|
||||
|
||||
**Notable Ships:**
|
||||
|
||||
- Mayflower
|
||||
- Round Willow
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- syndicate
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
type: faction
|
||||
---
|
||||
|
||||
*A brief, italicized tagline — motto, reputation, or defining purpose.*
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
What this group is, what they stand for, and how they are known in the world.
|
||||
|
||||
## Structure
|
||||
|
||||
Leadership hierarchy. Key ranks, titles, and who holds them.
|
||||
|
||||
## Mission
|
||||
|
||||
What they are actively working toward right now.
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- Ally Name — reason for alliance
|
||||
|
||||
### Rivals
|
||||
|
||||
- Rival Name — reason for conflict
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only intel — hidden agendas, true leadership, vulnerabilities.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
portrait: "Mardonar%20Guard.webp"
|
||||
---
|
||||
|
||||
The guard regiment of the [[City of Mardonar]]
|
||||
|
||||
Serving [[King Mardonious]] and [[Church of Merv]]
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
36
lore_engine_poc/seed/Campaign Codex - Factions/Riverfeet.md
Normal file
36
lore_engine_poc/seed/Campaign Codex - Factions/Riverfeet.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- syndicate
|
||||
---
|
||||
|
||||
A fanatical warrior cult devoted to a prophecy foretelling the rise of a godlike ruler.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A fanatical warrior cult devoted to a prophecy foretelling the rise of a godlike ruler (Umbral Key) who will bring forth a new age of domination. They believe [[Roland Raventhorne]] is the harbinger of this new era, pledging their blades, sorcery, and undying loyalty to his cause. Ruthless, disciplined, and utterly devoted, they operate in the shadows spreading fear, crushing opposition, and ensuring that their dark prophecy is fulfilled, no matter the cost.
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
---
|
||||
|
||||
People trying to escape oppression or those kicked out of their own groups.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A large government faction comprised of people trying to escape the oppression of the human houses, or those kicked out of their own groups. Most are experienced fighters. Many inhabitants are owners of cursed items of power—typically ostracized due to going mad or acts of extreme betrayal. Those exposed to cursed weapons hunger to build a collection of them.
|
||||
|
||||
## Structure
|
||||
|
||||
Led by [[Kara Fairhaven]]. Most inhabitants particularly want to steal [[Kara Fairhaven]]'s cursed pendant.
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(None documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
- [[Cyclops Tribes]] — constantly fighting; [[Tarlok]] commonly leads groups to attack the tribes in the mountains
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: faction
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
race: "[[Human]]"
|
||||
---
|
||||
|
||||
A tribe of humans known for farming, enchanting, and mercenary witch hunting.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A tribe of [[humans]]. Known for farming, enchanting, and mercenary witch hunting. Witch hunters are specialized in killing occult beings.
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- [[Storm Giants]] — friendly relations
|
||||
|
||||
### Rivals
|
||||
|
||||
(None documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- syndicate
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
(To be documented)
|
||||
|
||||
### Rivals
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
37
lore_engine_poc/seed/Campaign Codex - Factions/Urkin.md
Normal file
37
lore_engine_poc/seed/Campaign Codex - Factions/Urkin.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: faction
|
||||
tags:
|
||||
- faction
|
||||
- tribe
|
||||
race: "[[Dwarf]]"
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
A race of cultist dwarves, who worship power stones. These stones are derived from captured [[Elf]] power stones, tainted with dark magic. These stones are used as arcane conduits for the dwarves, allowing impressive power, but limiting them to staying within range of the stones.
|
||||
|
||||
- Many of the dwarves are hundreds or thousands of years old, they would die without the magic
|
||||
- The dwarves are allowed further range during the power cycle, every 10000 years, where the power is amplified due to unknown reasons.
|
||||
- In this case, the range is enough for the dwarves to exit the underdark, and they take part in reeking havoc on other races
|
||||
|
||||
## Structure
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Mission
|
||||
|
||||
Arcane mastery and immortality The [[Urkin]] are obsessed with garnering more power, and outliving each other.
|
||||
|
||||
## Relations
|
||||
|
||||
## Allies
|
||||
|
||||
[[The Mawfang Tribes]]
|
||||
|
||||
## Rivals
|
||||
|
||||
[[House Valerius]] [[Petalbrooke Enclave]]
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
type: faction
|
||||
region: "[[Old Mardonar (Imperium Valerius)]]"
|
||||
---
|
||||
|
||||
*New discoveries means profit no matter the cost
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Well known Merchants guild who try to find profit in anything. Have their own private military. HQ is located on a island they slowly purchased from its people
|
||||
|
||||
## Structure
|
||||
|
||||
Leadership hierarchy. Key ranks, titles, and who holds them.
|
||||
|
||||
## Mission
|
||||
|
||||
Any new land that has not yet to be explored. Recently, [[Wild Wood Expeditions]]
|
||||
|
||||
## Relations
|
||||
|
||||
### Allies
|
||||
|
||||
- [[Iron Mountain Trading Company]] — reason for alliance
|
||||
|
||||
### Rivals
|
||||
|
||||
- Rival Name — reason for conflict
|
||||
|
||||
## GM Notes
|
||||
|
||||
GM-only intel — hidden agendas, true leadership, vulnerabilities.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
Cities and settlements of the Emberloc Jungle.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Entries
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All named characters in the Land of Mardonar — NPCs, player characters, rulers, and villains.
|
||||
|
||||
## Entries
|
||||
|
||||
### Rulers & Nobility
|
||||
|
||||
- [[King Mardonious]] — ruler of the land
|
||||
- [[Prince of Mardonia]] — heir of Mardonia
|
||||
- [[Gromm The Timeless]] — leader of the Urkin, oldest living Dwarf
|
||||
- [[Aldric Raventhorne]] — member of House Raventhorne
|
||||
- [[Fenris of House Quche]] — prince of House Quche
|
||||
- [[Altair of Quche]] — member of House Quche
|
||||
- [[Kara Fairhaven]] — ruler of The Outcast
|
||||
|
||||
### Villains
|
||||
|
||||
- [[Roland Raventhorne]] — known as The Umbral Key
|
||||
- [[Ananmock]] — necromancer of the Urkin
|
||||
|
||||
### Allies & Companions
|
||||
|
||||
- [[Elysia Petalbrooke]] — elven ally of House Quche
|
||||
- [[Argolm Thornbrook of the Thunderpeak]] — barbarian of the ThunderPeak Tribe
|
||||
|
||||
### NPCs
|
||||
|
||||
- [[Bobota' Lee]] — NPC
|
||||
- [[Cheddah Cheese]] — Ratling frontman of the Cog Claw Consortium
|
||||
- [[Drathar Deepbane]] — Dark Elf guide
|
||||
- [[Joron The Crab]] — captain of the Mayflower
|
||||
- [[Khull Gar]] — NPC
|
||||
- [[Kara Fairhaven]] — ruler of The Outcast
|
||||
- [[Lyrael Moonwhisper]] — member of the Moonwhisper Elves
|
||||
- [[Morvane]] — Dwarvish warrior; former guard of the Jail of Hard Knox
|
||||
- [[Mordek Thornbrooke]] — ancestor of Argolm; known as Kaelgrin the Oath-Breaker
|
||||
- [[Olena Lonespear]] — king's diplomat; founder of the Lonespear Tavern
|
||||
- [[Sa'ah Khan]] — Half-Orc barbarian
|
||||
- [[Silas Viper]] — NPC
|
||||
- [[Slyvar Forger]] — Moonwhisper Elf druid; information broker on the Castle of the Masks
|
||||
- [[Tarlok]] — Half Cyclops/Half Gnome; expert finder of lost items
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All named characters in the Land of Mardonar — NPCs, player characters, rulers, and villains.
|
||||
|
||||
## Entries
|
||||
|
||||
### Rulers & Nobility
|
||||
|
||||
- [[King Mardonious]] — ruler of the land
|
||||
- [[Prince of Mardonia]] — heir of Mardonia
|
||||
- [[Gromm The Timeless]] — leader of the Urkin, oldest living Dwarf
|
||||
- [[Aldric Raventhorne]] — member of House Raventhorne
|
||||
- [[Fenris of House Quche]] — prince of House Quche
|
||||
- [[Altair of Quche]] — member of House Quche
|
||||
- [[Kara Fairhaven]] — ruler of The Outcast
|
||||
|
||||
### Villains
|
||||
|
||||
- [[Roland Raventhorne]] — known as The Umbral Key
|
||||
- [[Ananmock]] — necromancer of the Urkin
|
||||
|
||||
### Allies & Companions
|
||||
|
||||
- [[Elysia Petalbrooke]] — elven ally of House Quche
|
||||
- [[Argolm Thornbrook of the Thunderpeak]] — barbarian of the ThunderPeak Tribe
|
||||
|
||||
### NPCs
|
||||
|
||||
- [[Bobota' Lee]] — NPC
|
||||
- [[Cheddah Cheese]] — Ratling frontman of the Cog Claw Consortium
|
||||
- [[Drathar Deepbane]] — Dark Elf guide
|
||||
- [[Joron The Crab]] — captain of the Mayflower
|
||||
- [[Khull Gar]] — NPC
|
||||
- [[Kara Fairhaven]] — ruler of The Outcast
|
||||
- [[Lyrael Moonwhisper]] — member of the Moonwhisper Elves
|
||||
- [[Morvane]] — Dwarvish warrior; former guard of the Jail of Hard Knox
|
||||
- [[Mordek Thornbrooke]] — ancestor of Argolm; known as Kaelgrin the Oath-Breaker
|
||||
- [[Olena Lonespear]] — king's diplomat; founder of the Lonespear Tavern
|
||||
- [[Sa'ah Khan]] — Half-Orc barbarian
|
||||
- [[Silas Viper]] — NPC
|
||||
- [[Slyvar Forger]] — Moonwhisper Elf druid; information broker on the Castle of the Masks
|
||||
- [[Tarlok]] — Half Cyclops/Half Gnome; expert finder of lost items
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All factions in the Land of Mardonar — noble houses, syndicates, tribes, and grand families.
|
||||
|
||||
## Entries
|
||||
|
||||
### Houses of Man
|
||||
|
||||
- [[House Mardonus]] — noble house
|
||||
- [[House Quche]] — noble house
|
||||
- [[House Raventhorne]] — noble house; known for blood magic
|
||||
- [[House Valerius]] — noble house; only one surviving member
|
||||
|
||||
### Grand Families
|
||||
|
||||
- [[Petalbrooke Enclave]] — elven grand family; cursed during the great war
|
||||
- [[Riverfeet]] — grand family
|
||||
- [[The Moonwhisper Elves]] — elven tribe of the Emberloc
|
||||
|
||||
### Syndicates
|
||||
|
||||
- [[Cog Claw Consortium]] — black market machinery suppliers; goblins, gnomes, ratlings, gepettin
|
||||
- [[Iron Mountain Trading Company]] — trading syndicate
|
||||
- [[The Black Sun Order]] — fanatical warrior cult devoted to the Umbral Key prophecy
|
||||
- [[The Mawfang Tribes]] — tribal faction
|
||||
- [[The Outcast]] — large government faction; escaped oppression; collected cursed items
|
||||
|
||||
### Tribes
|
||||
|
||||
- [[Cyclops Tribes]] — nomadic; savage brigands; goal to unite all tribes
|
||||
- [[ThunderPeak Tribe]] — human tribe; farming, enchanting, mercenary witch hunters
|
||||
- [[Urkin]] — Dwarf faction; led by Gromm The Timeless
|
||||
- [[Toxin Tail Clan]] — tribal faction
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All factions in the Land of Mardonar — noble houses, syndicates, tribes, and grand families.
|
||||
|
||||
## Entries
|
||||
|
||||
### Houses of Man
|
||||
|
||||
- [[House Mardonus]] — noble house
|
||||
- [[House Quche]] — noble house
|
||||
- [[House Raventhorne]] — noble house; known for blood magic
|
||||
- [[House Valerius]] — noble house; only one surviving member
|
||||
|
||||
### Grand Families
|
||||
|
||||
- [[Petalbrooke Enclave]] — elven grand family; cursed during the great war
|
||||
- [[Riverfeet]] — grand family
|
||||
- [[The Moonwhisper Elves]] — elven tribe of the Emberloc
|
||||
|
||||
### Syndicates
|
||||
|
||||
- [[Cog Claw Consortium]] — black market machinery suppliers; goblins, gnomes, ratlings, gepettin
|
||||
- [[Iron Mountain Trading Company]] — trading syndicate
|
||||
- [[The Black Sun Order]] — fanatical warrior cult devoted to the Umbral Key prophecy
|
||||
- [[The Mawfang Tribes]] — tribal faction
|
||||
- [[The Outcast]] — large government faction; escaped oppression; collected cursed items
|
||||
|
||||
### Tribes
|
||||
|
||||
- [[Cyclops Tribes]] — nomadic; savage brigands; goal to unite all tribes
|
||||
- [[ThunderPeak Tribe]] — human tribe; farming, enchanting, mercenary witch hunters
|
||||
- [[Urkin]] — Dwarf faction; led by Gromm The Timeless
|
||||
- [[Toxin Tail Clan]] — tribal faction
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All geography in the Land of Mardonar — continents, cities, important locations, and planes.
|
||||
|
||||
## Entries
|
||||
|
||||
### Uul' Dar
|
||||
|
||||
- [[Uul' Dar]] — continent
|
||||
- [[Barristown]] — city; home of the Lonespear Tavern
|
||||
- [[Deeproot]] — city
|
||||
- [[Hidden Burrow]] — city
|
||||
- [[Iron Maw Hold]] — city; Mawfang stronghold
|
||||
- [[Mardsville]] — city
|
||||
- [[Veldras Maw]] — city
|
||||
- [[Bobota's Palisade]] — city
|
||||
- [[Gor's Keep]] — city
|
||||
- [[The Obsidian Tower]] — important location
|
||||
- [[Smuggler's Rim]] — pirate smuggling headquarters
|
||||
|
||||
### Old Mardonar (Imperium Valerius)
|
||||
|
||||
- [[Old Mardonar (Imperium Valerius)]] — continent
|
||||
- [[Wild Wood]] — location within Old Mardonar
|
||||
- [[Gondolin]] — star fortress; owned by House Mardonus; major transport hub
|
||||
- [[Warsaw]] — dungeon; Greek-inspired ruin; House Raventhorne historical landmark
|
||||
- [[The Big Cog]] — Cog Claw Consortium headquarters in the City of Mardonar
|
||||
|
||||
### Other / Region Unknown
|
||||
|
||||
- [[Lunareth Isles]] — continent
|
||||
- [[Verdant Vale]] — farmland; home of the Thornbrooke family
|
||||
- [[Stormscar Peak]] — shattered summit; Storm Giant territory; ritual site
|
||||
- [[Castle of the Masks]] — located in Hell's Maw; source of mask rumors
|
||||
- [[Jail of Hard Knox]] — prison; near Warsaw
|
||||
|
||||
### Underdark
|
||||
|
||||
- [[Underdark]] — underground plane
|
||||
- [[Krythos Spire]] — home of the Urkin
|
||||
- [[Voldramir]] — vast darkness pit plane beneath the Underdark
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
All geography in the Land of Mardonar — continents, cities, important locations, and planes.
|
||||
|
||||
## Entries
|
||||
|
||||
### Uul' Dar
|
||||
|
||||
- [[Uul' Dar]] — continent
|
||||
- [[Barristown]] — city; home of the Lonespear Tavern
|
||||
- [[Deeproot]] — city
|
||||
- [[Hidden Burrow]] — city
|
||||
- [[Iron Maw Hold]] — city; Mawfang stronghold
|
||||
- [[Mardsville]] — city
|
||||
- [[Veldras Maw]] — city
|
||||
- [[Bobota's Palisade]] — city
|
||||
- [[Gor's Keep]] — city
|
||||
- [[The Obsidian Tower]] — important location
|
||||
- [[Smuggler's Rim]] — pirate smuggling headquarters
|
||||
|
||||
### Old Mardonar (Imperium Valerius)
|
||||
|
||||
- [[Old Mardonar (Imperium Valerius)]] — continent
|
||||
- [[Wild Wood]] — location within Old Mardonar
|
||||
- [[Gondolin]] — star fortress; owned by House Mardonus; major transport hub
|
||||
- [[Warsaw]] — dungeon; Greek-inspired ruin; House Raventhorne historical landmark
|
||||
- [[The Big Cog]] — Cog Claw Consortium headquarters in the City of Mardonar
|
||||
|
||||
### Other / Region Unknown
|
||||
|
||||
- [[Lunareth Isles]] — continent
|
||||
- [[Verdant Vale]] — farmland; home of the Thornbrooke family
|
||||
- [[Stormscar Peak]] — shattered summit; Storm Giant territory; ritual site
|
||||
- [[Castle of the Masks]] — located in Hell's Maw; source of mask rumors
|
||||
- [[Jail of Hard Knox]] — prison; near Warsaw
|
||||
|
||||
### Underdark
|
||||
|
||||
- [[Underdark]] — underground plane
|
||||
- [[Krythos Spire]] — home of the Urkin
|
||||
- [[Voldramir]] — vast darkness pit plane beneath the Underdark
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The top-level hub for the Land of Mardonar vault. Start here to navigate to any area of the world.
|
||||
|
||||
## MOCs
|
||||
|
||||
- [[Characters MOC]] — all NPCs, PCs, and named characters
|
||||
- [[Geography MOC]] — continents, cities, and notable locations
|
||||
- [[Factions MOC]] — noble houses, syndicates, tribes, and grand families
|
||||
- [[Timeline MOC]] — historical events and major turning points
|
||||
|
||||
## Vault Sections
|
||||
|
||||
- 01 - Characters — NPC and player character notes
|
||||
- 02 - Creatures — monsters and unique creatures
|
||||
- 03 - Geography — locations, planes, and regions
|
||||
- 04 - Races — playable and world races
|
||||
- 05 - Factions — organizations, houses, syndicates, tribes
|
||||
- 06 - History & Events — historical events and wars
|
||||
- 07 - Items & Artifacts — notable items and magical artifacts
|
||||
- 08 - Gods & Religion — deities, pantheons, religions
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Major historical events of the Land of Mardonar, listed roughly chronologically where known. Exact ordering of ancient events is uncertain.
|
||||
|
||||
## Entries
|
||||
|
||||
### Ancient History
|
||||
|
||||
- [[Great Simian War]] — war over control of the Emberloc; involves the Khull' Kai
|
||||
- [[The Great Pilgrimmage]] — pilgrimage event; Gromm The Timeless has completed it 20 times
|
||||
|
||||
### The Great War Era
|
||||
|
||||
- [[The Formation of the Bubble]] — magical bubble formed over a tower
|
||||
- [[Ananmock's Inquisition]] — Ananmock attacks the Moonwhisper Elves and steals the Eternal Tear
|
||||
|
||||
### Recent Events
|
||||
|
||||
- [[Rise of the Undead]] — Roland Raventhorne merges with the BlackRazor and the Mask of Bhaal in Krythos Spire
|
||||
- [[The Stirring of Castle Raventhorne]] — events surrounding Castle Raventhorne
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The top-level hub for the Land of Mardonar vault. Start here to navigate to any area of the world.
|
||||
|
||||
## MOCs
|
||||
|
||||
- [[Characters of Mardonar]] — all NPCs, PCs, and named characters
|
||||
- [[Geography of Mardonar]] — continents, cities, and notable locations
|
||||
- [[Factions of Mardonar]] — noble houses, syndicates, tribes, and grand families
|
||||
- [[Timeline of Mardonar]] — historical events and major turning points
|
||||
|
||||
## Vault Sections
|
||||
|
||||
- 01 - Characters — NPC and player character notes
|
||||
- 02 - Creatures — monsters and unique creatures
|
||||
- 03 - Geography — locations, planes, and regions
|
||||
- 04 - Races — playable and world races
|
||||
- 05 - Factions — organizations, houses, syndicates, tribes
|
||||
- 06 - History & Events — historical events and wars
|
||||
- 07 - Items & Artifacts — notable items and magical artifacts
|
||||
- 08 - Gods & Religion — deities, pantheons, religions
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: group
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: group
|
||||
tags:
|
||||
- moc
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Major historical events of the Land of Mardonar, listed roughly chronologically where known. Exact ordering of ancient events is uncertain.
|
||||
|
||||
## Entries
|
||||
|
||||
### Ancient History
|
||||
|
||||
- [[Great Simian War]] — war over control of the Emberloc; involves the Khull' Kai
|
||||
- [[The Great Pilgrimmage]] — pilgrimage event; Gromm The Timeless has completed it 20 times
|
||||
|
||||
### The Great War Era
|
||||
|
||||
- [[The Formation of the Bubble]] — magical bubble formed over a tower
|
||||
- [[Ananmock's Inquisition]] — Ananmock attacks the Moonwhisper Elves and steals the Eternal Tear
|
||||
|
||||
### Recent Events
|
||||
|
||||
- [[Rise of the Undead]] — Roland Raventhorne merges with the BlackRazor and the Mask of Bhaal in Krythos Spire
|
||||
- [[The Stirring of Castle Raventhorne]] — events surrounding Castle Raventhorne
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: location
|
||||
tags:
|
||||
- location
|
||||
- city
|
||||
region: "[[Uul' Dar]]"
|
||||
---
|
||||
|
||||
Home to the Lonespear Tavern and an old Maldonian port.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Home to the Lonespear Tavern (recently destroyed by dragon). Has a port from old Maldonia.
|
||||
|
||||
## Points of Interest
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Routine
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: location
|
||||
tags:
|
||||
- location
|
||||
- city
|
||||
region: "[[Uul' Dar]]"
|
||||
---
|
||||
|
||||
(To be documented)
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Points of Interest
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Routine
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
(To be documented)
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
type: location
|
||||
tags:
|
||||
- location
|
||||
---
|
||||
|
||||
Source of the original rumors of the masks of power.
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Located in Hell's Maw. Said to be able to track the location of all masks. [[Slyvar Forger]] escaped from this castle, which is how its existence became known.
|
||||
|
||||
## Points of Interest
|
||||
|
||||
(To be documented)
|
||||
|
||||
## Routine
|
||||
|
||||
(To be documented)
|
||||
|
||||
## GM Notes
|
||||
|
||||
- Home of [[Slyvar Forger]], an original Moonwhisper Elf born there
|
||||
- After the explosion in the Emberloc, chunks of earth destroyed parts of the castle
|
||||
- The impact damaged the magic tracking the location of 2 Masks of Power — one of these is [[Roland]]'s
|
||||
- Due to the impact damage, the location of 2 Masks of Power is now unknown
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
Lots of armor smiths and black smiths work here. There will be stores soon.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: location
|
||||
---
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user