init project structure and instructions

This commit is contained in:
Lucas Morgan
2026-04-07 21:27:05 -05:00
commit 4f4fc67760
6 changed files with 298 additions and 0 deletions

219
QWEN.md Normal file
View File

@@ -0,0 +1,219 @@
# D&D Campaign Notes
## Overview
This directory is a **single source of truth** for all D&D notes — multiple campaigns, multiple worlds, ideas, and homebrew. Designed for use with **Obsidian**, with wiki-links connecting content across campaigns and worlds.
## Core Organization Principle
**Worlds are reusable context. Campaigns are specific stories played within them.**
- **Worlds** (`worlds/`) contain persistent lore, geography, factions, and NPCs that exist independently of any single campaign.
- **Campaigns** (`campaigns/`) link to a world and layer on top the specific story, session notes, and campaign-only NPCs/items.
- **Ideas** (`ideas/`) are a scratch space for future campaigns, worlds, and mechanics.
## Folder Structure
```
dnd/
├── worlds/
│ └── world-name/
│ ├── overview.md # Cosmology, history, tone, magic rules
│ ├── geography/ # Continents, regions, kingdoms, maps
│ ├── factions/ # Organizations, guilds, religions, orders
│ ├── npcs/ # World-level NPCs (reusable across campaigns/eras)
│ ├── lore/ # Myths, legends, major historical events
│ └── creatures/ # Homebrew monsters, regional ecology
├── campaigns/
│ └── campaign-name/
│ ├── overview.md # Premise, timeline, linked world, player info
│ ├── sessions/ # Session-by-session notes
│ ├── npcs/ # Campaign-specific NPCs (villains, quest givers)
│ ├── quests/ # Story arcs, plot hooks, timelines
│ ├── items/ # Campaign-specific magic items and loot
│ └── locations/ # Specific places visited (link to world geography)
├── ideas/
│ ├── campaign-ideas/ # Premises not yet run
│ ├── world-ideas/ # Concepts for future worlds
│ └── mechanics/ # Homebrew rules, class/race ideas, tables
├── systems/ # Game system references
│ ├── dnd-5e/
│ └── other-systems/
└── players/ # PC sheets, backstories, character arcs
```
## How Worlds and Campaigns Relate
### Same World, Different Eras
```
worlds/eldoria/ # The world definition
├── npcs/king-aldric.md # An eternal figure, referenced across eras
└── factions/the-red-circle.md # A mage order that exists for centuries
campaigns/shattered-crown/ # Set in Eldoria, Continent A, year 1200
overview.md → "Set in [[worlds/Eldoria]]"
npcs/red-circle-elder.md # The Red Circle as it is NOW (corrupted)
campaigns/ashes-of-the-north/ # Set in Eldoria, Continent A, year 1100
overview.md → "Set in [[worlds/Eldoria]]"
npcs/red-circle-founder.md # The Red Circle at its founding (idealistic)
```
### Same World, Different Locations
```
campaigns/southern-tides/ # Set in Eldoria, Continent B
overview.md → "Set in [[worlds/Eldoria]]"
locations/port-city.md → "On the coast of [[worlds/Eldoria/geography/Continent B]]"
```
## Where Do NPCs Live?
| Type | Location | Example |
|------|----------|---------|
| **World NPC** — exists across campaigns/eras | `worlds/world-name/npcs/` | A legendary king, an immortal wizard, a faction leader |
| **Campaign NPC** — specific to this story | `campaigns/campaign-name/npcs/` | The local blacksmith who gives a side quest, the BBEG |
| **Player Character** | `players/` | Linked from the campaign they belong to |
Campaign notes can **link to** world NPCs. If a campaign changes or evolves a world NPC, create a campaign-specific note that links back:
```markdown
# Campaign Villain
> Once a member of [[worlds/Eldoria/factions/The Red Circle]], now corrupted.
> Originally inspired by [[worlds/Eldoria/npcs/King Aldric]].
```
## Obsidian Markdown Conventions
### Wiki-links
Link notes across folders: `[[worlds/Eldoria]]`, `[[campaigns/Shattered Crown/overview]]`
### Tags
Use consistent tags for search and graph view:
- `#world`, `#campaign`, `#session`
- `#npc`, `#location`, `#faction`, `#item`, `#quest`
- `#homebrew`, `#idea`
### Frontmatter
Include metadata for filtering and potential Dataview plugin use:
```yaml
---
type: npc
world: Eldoria
faction: The Red Circle
status: alive
era: 1100-1250
---
```
### Callouts
Use Obsidian callouts for formatted blocks:
```markdown
> [!info] Quick Reference
> **Race:** Human
> **Class:** Wizard
> **Location:** [[worlds/Eldoria/geography/The Capital]]
> [!warning] Spoilers
> The king is actually the villain — don't reveal to players.
> [!tip] DM Note
> Foreshadow this event two sessions before it happens.
```
## Note Templates
### World Overview
```markdown
---
type: world
name: World Name
---
# World Name
> [!info] At a Glance
> **Tone:** Dark fantasy / High magic / Pulp adventure
> **Magic System:** [[Magic rules]]
> **Major Events:** [[Lore event 1]], [[Lore event 2]]
## Cosmology
## Geography
## Factions
## History Timeline
```
### Campaign Overview
```markdown
---
type: campaign
world: [[World Name]]
system: D&D 5e
status: active
start_date: 2025-01-01
---
# Campaign Name
> [!info] At a Glance
> **World:** [[World Name]]
> **Setting:** Continent A, year 1200
> **Tone:** Political intrigue, low magic
## Premise
## Player Characters
- [[players/Character 1]]
## Active Quests
## Session Log
- [[Session 01]]
- [[Session 02]]
```
### NPC Template
```markdown
---
type: npc
world: World Name # or campaign: Campaign Name
faction: Faction Name
status: alive
---
# NPC Name
> [!info] Quick Reference
> **Race:**
> **Class/Role:**
> **Location:** [[Location]]
## Appearance
## Personality
## Goals & Motivations
## Connections
- Ally of [[NPC]]
- Enemy of [[NPC]]
## Secrets (DM only)
```
## Usage
1. Open this folder in Obsidian: **File → Open Folder**
2. Create a new world: copy `worlds/` template, fill in overview
3. Create a new campaign: copy `campaigns/` template, link to world
4. Link everything together with `[[wiki-links]]`
5. Use tags and frontmatter for search and graph view
## Conventions
- **File naming**: Title Case with spaces (e.g., `The Lost Artifact.md`, `Continent A.md`)
- **Folder naming**: lowercase with hyphens (e.g., `worlds/eldoria/`, `campaigns/shattered-crown/`)
- **Linking over duplicating**: If content exists in a world, link to it from campaigns — don't copy it
- **Frontmatter**: Keep it consistent for Dataview compatibility
- **DM-only sections**: Use `> [!warning]` callouts or a `## Secrets` section to separate player-visible info