From 9b0a3bbb1280b5d47863fb46d2fab002b132123b Mon Sep 17 00:00:00 2001 From: Tolaria Date: Wed, 8 Jul 2026 13:52:27 -0400 Subject: [PATCH] Initial vault setup --- .gitignore | 16 ++ .obsidian/app.json | 1 + .obsidian/appearance.json | 1 + .obsidian/core-plugins.json | 33 +++ .obsidian/workspace.json | 193 ++++++++++++++ logseq/config.edn | 421 ++++++++++++++++++++++++++++++ logseq/custom.css | 0 pages/Campaign Overview.md | 12 + pages/Campaign Timeline.md | 8 + pages/Encounters and Dungeons.md | 6 + pages/Factions.md | 6 + pages/Key NPCs.md | 6 + pages/Level 5-20 Progression.md | 31 +++ pages/Major Locations.md | 7 + pages/Session Zero.md | 6 + pages/Treasure and Rewards.md | 5 + pages/World of Ash and Cinders.md | 7 + pages/contents.md | 10 + 18 files changed, 769 insertions(+) create mode 100644 .gitignore create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/workspace.json create mode 100644 logseq/config.edn create mode 100644 logseq/custom.css create mode 100644 pages/Campaign Overview.md create mode 100644 pages/Campaign Timeline.md create mode 100644 pages/Encounters and Dungeons.md create mode 100644 pages/Factions.md create mode 100644 pages/Key NPCs.md create mode 100644 pages/Level 5-20 Progression.md create mode 100644 pages/Major Locations.md create mode 100644 pages/Session Zero.md create mode 100644 pages/Treasure and Rewards.md create mode 100644 pages/World of Ash and Cinders.md create mode 100644 pages/contents.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3460a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Tolaria app files (machine-specific, never commit) +.laputa/settings.json + +# macOS +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Editors +.vscode/ +.idea/ +*.swp +*.swo diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..639b90d --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..515dd67 --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,193 @@ +{ + "main": { + "id": "0b6bb39131597e32", + "type": "split", + "children": [ + { + "id": "6fd78110f96fdba7", + "type": "tabs", + "children": [ + { + "id": "f3e46eff94992846", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Arcs/The Omened.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "The Omened" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "47de89a1640d208d", + "type": "split", + "children": [ + { + "id": "0266902ba88f2e84", + "type": "tabs", + "children": [ + { + "id": "6d0bca43dc3a52fe", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "69a192d74adff73b", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "eef0204de017d844", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "236d3908fd1bb9bf", + "type": "split", + "children": [ + { + "id": "a48c1140865bee75", + "type": "tabs", + "children": [ + { + "id": "71e7c697aa0a5840", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Arcs/The Omened.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for The Omened" + } + }, + { + "id": "703f91c4641f6f3a", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Arcs/The Omened.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from The Omened" + } + }, + { + "id": "26a0c55f9d291eed", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "c4c2788d0d2a053c", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e8ea2d9784301827", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Arcs/The Omened.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of The Omened" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false + } + }, + "active": "f3e46eff94992846", + "lastOpenFiles": [ + "Arcs/The Gathering Storm.md", + "Arcs/The Awakening.md", + "Arcs/Ascension.md", + "Campaign Overview.md" + ] +} \ No newline at end of file diff --git a/logseq/config.edn b/logseq/config.edn new file mode 100644 index 0000000..5ef6e65 --- /dev/null +++ b/logseq/config.edn @@ -0,0 +1,421 @@ +{:meta/version 1 + + ;; Set the preferred format. + ;; Available options: + ;; - Markdown (default) + ;; - Org + ;; :preferred-format "Markdown" + + ;; Set the preferred workflow style. + ;; Available options: + ;; - :now for NOW/LATER style (default) + ;; - :todo for TODO/DOING style + :preferred-workflow :now + + ;; Exclude directories/files. + ;; Example usage: + ;; :hidden ["/archived" "/test.md" "../assets/archived"] + :hidden [] + + ;; Define the default journal page template. + ;; Enter the template name between the quotes. + :default-templates + {:journals ""} + + ;; Set a custom date format for the journal page title. + ;; Default value: "MMM do, yyyy" + ;; e.g., "Jan 19th, 2038" + ;; Example usage e.g., "Tue 19th, Jan 2038" + ;; :journal/page-title-format "EEE do, MMM yyyy" + + ;; Specify the journal filename format using a valid date format string. + ;; !Warning: + ;; This configuration is not retroactive and affects only new journals. + ;; To show old journal files in the app, manually rename the files in the + ;; journal directory to match the new format. + ;; Default value: "yyyy_MM_dd" + ;; :journal/file-name-format "yyyy_MM_dd" + + ;; Enable tooltip preview on hover. + ;; Default value: true + :ui/enable-tooltip? true + + ;; Display brackets [[]] around page references. + ;; Default value: true + ;; :ui/show-brackets? true + + ;; Display all lines of a block when referencing ((block)). + ;; Default value: false + :ui/show-full-blocks? false + + ;; Automatically expand block references when zooming in. + ;; Default value: true + :ui/auto-expand-block-refs? true + + ;; Enable Block timestamps. + ;; Default value: false + :feature/enable-block-timestamps? false + + ;; Disable accent marks when searching. + ;; After changing this setting, rebuild the search index by pressing (^C ^S). + ;; Default value: true + :feature/enable-search-remove-accents? true + + ;; Enable journals. + ;; Default value: true + ;; :feature/enable-journals? true + + ;; Enable flashcards. + ;; Default value: true + ;; :feature/enable-flashcards? true + + ;; Enable whiteboards. + ;; Default value: true + ;; :feature/enable-whiteboards? true + + ;; Disable the journal's built-in 'Scheduled tasks and deadlines' query. + ;; Default value: false + ;; :feature/disable-scheduled-and-deadline-query? false + + ;; Specify the number of days displayed in the future for + ;; the 'scheduled tasks and deadlines' query. + ;; Example usage: + ;; Display all scheduled and deadline blocks for the next 14 days: + ;; :scheduled/future-days 14 + ;; Default value: 7 + ;; :scheduled/future-days 7 + + ;; Specify the first day of the week. + ;; Available options: + ;; - integer from 0 to 6 (Monday to Sunday) + ;; Default value: 6 (Sunday) + :start-of-week 6 + + ;; Specify a custom CSS import. + ;; This option takes precedence over the local `logseq/custom.css` file. + ;; Example usage: + ;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');" + + ;; Specify a custom JS import. + ;; This option takes precedence over the local `logseq/custom.js` file. + ;; Example usage: + ;; :custom-js-url "https://cdn.logseq.com/custom.js" + + ;; Set a custom Arweave gateway + ;; Default gateway: https://arweave.net + ;; :arweave/gateway "https://arweave.net" + + ;; Set bullet indentation when exporting + ;; Available options: + ;; - `:eight-spaces` as eight spaces + ;; - `:four-spaces` as four spaces + ;; - `:two-spaces` as two spaces + ;; - `:tab` as a tab character (default) + ;; :export/bullet-indentation :tab + + ;; Publish all pages within the Graph + ;; Regardless of whether individual pages have been marked as public. + ;; Default value: false + ;; :publishing/all-pages-public? false + + ;; Define the default home page and sidebar status. + ;; If unspecified, the journal page will be loaded on startup and the right sidebar will stay hidden. + ;; The `:page` value represents the name of the page displayed at startup. + ;; Available options for `:sidebar` are: + ;; - "Contents" to display the Contents page in the right sidebar. + ;; - A specific page name to display in the right sidebar. + ;; - An array of multiple pages, e.g., ["Contents" "Page A" "Page B"]. + ;; If `:sidebar` remains unset, the right sidebar will stay hidden. + ;; Examples: + ;; 1. Set "Changelog" as the home page and display "Contents" in the right sidebar: + ;; :default-home {:page "Changelog", :sidebar "Contents"} + ;; 2. Set "Jun 3rd, 2021" as the home page without the right sidebar: + ;; :default-home {:page "Jun 3rd, 2021"} + ;; 3. Set "home" as the home page and display multiple pages in the right sidebar: + ;; :default-home {:page "home", :sidebar ["Page A" "Page B"]} + + ;; Set the default location for storing notes. + ;; Default value: "pages" + ;; :pages-directory "pages" + + ;; Set the default location for storing journals. + ;; Default value: "journals" + ;; :journals-directory "journals" + + ;; Set the default location for storing whiteboards. + ;; Default value: "whiteboards" + ;; :whiteboards-directory "whiteboards" + + ;; Enabling this option converts + ;; [[Grant Ideas]] to [[file:./grant_ideas.org][Grant Ideas]] for org-mode. + ;; For more information, visit https://github.com/logseq/logseq/issues/672 + ;; :org-mode/insert-file-link? false + + ;; Configure custom shortcuts. + ;; Syntax: + ;; 1. + indicates simultaneous key presses, e.g., `Ctrl+Shift+a`. + ;; 2. A space between keys represents key chords, e.g., `t s` means + ;; pressing `t` followed by `s`. + ;; 3. mod refers to `Ctrl` for Windows/Linux and `Command` for Mac. + ;; 4. Use false to disable a specific shortcut. + ;; 5. You can define multiple bindings for a single action, e.g., ["ctrl+j" "down"]. + ;; The full list of configurable shortcuts is available at: + ;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs + ;; Example: + ;; :shortcuts + ;; {:editor/new-block "enter" + ;; :editor/new-line "shift+enter" + ;; :editor/insert-link "mod+shift+k" + ;; :editor/highlight false + ;; :ui/toggle-settings "t s" + ;; :editor/up ["ctrl+k" "up"] + ;; :editor/down ["ctrl+j" "down"] + ;; :editor/left ["ctrl+h" "left"] + ;; :editor/right ["ctrl+l" "right"]} + :shortcuts {} + + ;; Configure the behavior of pressing Enter in document mode. + ;; if set to true, pressing Enter will create a new block. + ;; Default value: false + :shortcut/doc-mode-enter-for-new-block? false + + ;; Block content larger than `block/content-max-length` will not be searchable + ;; or editable for performance. + ;; Default value: 10000 + :block/content-max-length 10000 + + ;; Display command documentation on hover. + ;; Default value: true + :ui/show-command-doc? true + + ;; Display empty bullet points. + ;; Default value: false + :ui/show-empty-bullets? false + + ;; Pre-defined :view function to use with advanced queries. + :query/views + {:pprint + (fn [r] [:pre.code (pprint r)])} + + ;; Advanced queries `:result-transform` function. + ;; Transform the query result before displaying it. + :query/result-transforms + {:sort-by-priority + (fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))} + + ;; The following queries will be displayed at the bottom of today's journal page. + ;; The "NOW" query returns tasks with "NOW" or "DOING" status. + ;; The "NEXT" query returns tasks with "NOW", "LATER", or "TODO" status. + :default-queries + {:journals + [{:title "🔨 NOW" + :query [:find (pull ?h [*]) + :in $ ?start ?today + :where + [?h :block/marker ?marker] + [(contains? #{"NOW" "DOING"} ?marker)] + [?h :block/page ?p] + [?p :block/journal? true] + [?p :block/journal-day ?d] + [(>= ?d ?start)] + [(<= ?d ?today)]] + :inputs [:14d :today] + :result-transform (fn [result] + (sort-by (fn [h] + (get h :block/priority "Z")) result)) + :group-by-page? false + :collapsed? false} + {:title "📅 NEXT" + :query [:find (pull ?h [*]) + :in $ ?start ?next + :where + [?h :block/marker ?marker] + [(contains? #{"NOW" "LATER" "TODO"} ?marker)] + [?h :block/page ?p] + [?p :block/journal? true] + [?p :block/journal-day ?d] + [(> ?d ?start)] + [(< ?d ?next)]] + :inputs [:today :7d-after] + :group-by-page? false + :collapsed? false}]} + + ;; Add custom commands to the command palette + ;; Example usage: + ;; :commands + ;; [ + ;; ["js" "Javascript"] + ;; ["md" "Markdown"] + ;; ] + :commands [] + + ;; Enable collapsing blocks with titles but no children. + ;; By default, only blocks with children can be collapsed. + ;; Setting `:outliner/block-title-collapse-enabled?` to true allows collapsing + ;; blocks with titles (multiple lines) and content. For example: + ;; - block title + ;; block content + ;; Default value: false + :outliner/block-title-collapse-enabled? false + + ;; Macros replace texts and will make you more productive. + ;; Example usage: + ;; Change the :macros value below to: + ;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."} + ;; input "{{poem red,blue}}" + ;; becomes + ;; Rose is red, violet's blue. Life's ordered: Org assists you. + :macros {} + + ;; Configure the default expansion level for linked references. + ;; For example, consider the following block hierarchy: + ;; - a [[page]] (level 1) + ;; - b (level 2) + ;; - c (level 3) + ;; - d (level 4) + ;; + ;; With the default value of level 2, block b will be collapsed. + ;; If the level's value is set to 3, block c will be collapsed. + ;; Default value: 2 + :ref/default-open-blocks-level 2 + + ;; Configure the threshold for linked references before collapsing. + ;; Default value: 100 + :ref/linked-references-collapsed-threshold 50 + + ;; Graph view configuration. + ;; Example usage: + ;; :graph/settings + ;; {:orphan-pages? true ; Default value: true + ;; :builtin-pages? false ; Default value: false + ;; :excluded-pages? false ; Default value: false + ;; :journal? false} ; Default value: false + + ;; Graph view configuration. + ;; Example usage: + ;; :graph/forcesettings + ;; {:link-dist 180 ; Default value: 180 + ;; :charge-strength -600 ; Default value: -600 + ;; :charge-range 600} ; Default value: 600 + + ;; Favorites to list on the left sidebar + :favorites [] + + ;; Set flashcards interval. + ;; Expected value: + ;; - Float between 0 and 1 + ;; higher values result in faster changes to the next review interval. + ;; Default value: 0.5 + ;; :srs/learning-fraction 0.5 + + ;; Set the initial interval after the first successful review of a card. + ;; Default value: 4 + ;; :srs/initial-interval 4 + + ;; Hide specific block properties. + ;; Example usage: + ;; :block-hidden-properties #{:public :icon} + + ;; Create a page for all properties. + ;; Default value: true + :property-pages/enabled? true + + ;; Properties to exclude from having property pages + ;; Example usage: + ;; :property-pages/excludelist #{:duration :author} + + ;; By default, property value separated by commas will not be treated as + ;; page references. You can add properties to enable it. + ;; Example usage: + ;; :property/separated-by-commas #{:alias :tags} + + ;; Properties that are ignored when parsing property values for references + ;; Example usage: + ;; :ignored-page-references-keywords #{:author :website} + + ;; logbook configuration. + ;; :logbook/settings + ;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated + ;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking + ;; :enabled-in-timestamped-blocks false ;don't display logbook at all + ;; } + + ;; Mobile photo upload configuration. + ;; :mobile/photo + ;; {:allow-editing? true + ;; :quality 80} + + ;; Mobile features options + ;; Gestures + ;; Example usage: + ;; :mobile + ;; {:gestures/disabled-in-block-with-tags ["kanban"]} + + ;; Extra CodeMirror options + ;; See https://codemirror.net/5/doc/manual.html#config for possible options + ;; Example usage: + ;; :editor/extra-codemirror-options + ;; {:lineWrapping false ; Default value: false + ;; :lineNumbers true ; Default value: true + ;; :readOnly false} ; Default value: false + + ;; Enable logical outdenting + ;; Default value: false + ;; :editor/logical-outdenting? false + + ;; Prefer pasting the file when text and a file are in the clipboard. + ;; Default value: false + ;; :editor/preferred-pasting-file? false + + ;; Quick capture templates for receiving content from other apps. + ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded + ;; by receiving content from other apps. Note: the {} cannot be omitted. + ;; - {time}: capture time + ;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference + ;; - {text}: text that users selected before sharing. + ;; - {url}: URL or assets path for media files stored in Logseq. + ;; You can also reorder them or use only one or two of them in the template. + ;; You can also insert or format any text in the template, as shown in the following examples. + ;; :quick-capture-templates + ;; {:text "[[quick capture]] **{time}**: {text} from {url}" + ;; :media "[[quick capture]] **{time}**: {url}"} + + ;; Quick capture options. + ;; - insert-today? Insert the capture at the end of today's journal page (boolean). + ;; - redirect-page? Redirect to the quick capture page after capturing (boolean). + ;; - default-page The default page to capture to if insert-today? is false (string). + ;; :quick-capture-options + ;; {:insert-today? false ;; Default value: true + ;; :redirect-page? false ;; Default value: false + ;; :default-page "quick capture"} ;; Default page: "quick capture" + + ;; File sync options + ;; Ignore these files when syncing, regexp is supported. + ;; :file-sync/ignore-files [] + + ;; Configure the Enter key behavior for + ;; context-aware editing with DWIM (Do What I Mean). + ;; context-aware Enter key behavior implies that pressing Enter will + ;; have different outcomes based on the context. + ;; For instance, pressing Enter within a list generates a new list item, + ;; whereas pressing Enter in a block reference opens the referenced block. + ;; :dwim/settings + ;; {:admonition&src? true ;; Default value: true + ;; :markup? false ;; Default value: false + ;; :block-ref? true ;; Default value: true + ;; :page-ref? true ;; Default value: true + ;; :properties? true ;; Default value: true + ;; :list? false} ;; Default value: false + + ;; Configure the escaping method for special characters in page titles. + ;; Warning: + ;; This is a dangerous operation. To modify the setting, + ;; access the 'Filename format' setting and follow the instructions. + ;; Otherwise, You may need to manually rename all affected files and + ;; re-index them on all clients after synchronization. + ;; Incorrect handling may result in messy page titles. + ;; Available options: + ;; - :triple-lowbar (default) + ;; ;use triple underscore `___` for slash `/` in page title + ;; ;use Percent-encoding for other invalid characters + :file/name-format :triple-lowbar} diff --git a/logseq/custom.css b/logseq/custom.css new file mode 100644 index 0000000..e69de29 diff --git a/pages/Campaign Overview.md b/pages/Campaign Overview.md new file mode 100644 index 0000000..9ee21c2 --- /dev/null +++ b/pages/Campaign Overview.md @@ -0,0 +1,12 @@ +- **Campaign Name:** Ashes of the Hollow Crown +- **System:** D&D 5e +- **Party Size:** 4-6 characters +- **Starting Level:** 5 +- **Ending Level:** 20 +- **Tone:** dark, gritty heroic fantasy +- **Setting:** homebrew +- **Core Hook:** A dead king’s crown still commands broken oaths, and the land is collapsing under a century-old curse that feeds on war, sacrifice, and forgotten gods. +- **Premise:** The characters begin as capable regional heroes hired to stop a spreading blight of ash, plague, and undead. Their investigations reveal a buried empire, a shattered divine covenant, and a living crown that can either remade the world or end it. +- **Campaign Goal:** Unite rival powers, uncover the truth of the Hollow Crown, and confront the entity using it to harvest souls across the realm. +- **Primary Themes:** survival, sacrifice, corruption, legitimacy, redemption, the cost of power +- **Endgame Choice:** destroy the crown, seize it, or bind its power to restore the world at a terrible price \ No newline at end of file diff --git a/pages/Campaign Timeline.md b/pages/Campaign Timeline.md new file mode 100644 index 0000000..2353d15 --- /dev/null +++ b/pages/Campaign Timeline.md @@ -0,0 +1,8 @@ +- **Arc 1:** The Ash Begins +- **Arc 2:** The Broken Roads +- **Arc 3:** The Fen of Whispers +- **Arc 4:** War of the Houses +- **Arc 5:** The Sunken Archive +- **Arc 6:** The Ember Ascendant +- **Arc 7:** Siege of the Capital Below +- **Arc 8:** The Hollow Crown \ No newline at end of file diff --git a/pages/Encounters and Dungeons.md b/pages/Encounters and Dungeons.md new file mode 100644 index 0000000..257a7da --- /dev/null +++ b/pages/Encounters and Dungeons.md @@ -0,0 +1,6 @@ +- **Road Encounter:** ash storm plus corpse-haunted caravan wreck +- **Social Encounter:** negotiate with a toll lord offering protection for loyalty +- **Combat Encounter:** oathbound dead that only stop when their banner is broken +- **Exploration Encounter:** flooded chapel with air pockets, relic clues, and restless spirits +- **Dungeon Structure:** each major dungeon should have one environmental hazard, one faction conflict, one lore reveal, and one boss with a moral choice +- **Recurring Enemy Types:** ash zombies, oath knights, bone hounds, cult pyromancers, crown-touched nobles \ No newline at end of file diff --git a/pages/Factions.md b/pages/Factions.md new file mode 100644 index 0000000..ada023c --- /dev/null +++ b/pages/Factions.md @@ -0,0 +1,6 @@ +- **The Ashen Synod:** priest-exorcists and relic hunters trying to contain the curse +- **House Veyr:** noble survivalists seeking to claim the crown and legalize their rule +- **The Black Lantern Compact:** smugglers and mercenaries moving people, relics, and forbidden goods +- **The Ember Court:** infernal-aligned cultists who believe the world must burn before it can be remade +- **The Broken Saints:** penitent warriors and undead-scarred survivors who oppose all crowns +- **The Quiet Root:** druidic network preserving what remains of the land and sabotaging corrupt harvest magic \ No newline at end of file diff --git a/pages/Key NPCs.md b/pages/Key NPCs.md new file mode 100644 index 0000000..9b09732 --- /dev/null +++ b/pages/Key NPCs.md @@ -0,0 +1,6 @@ +- **Lady Seris Veyr:** ambitious noble mediator with a private army +- **High Inquisitor Thalen:** Ashen Synod leader, severe but genuinely protective +- **Morrin Bale:** Black Lantern broker who knows every road and secret +- **Sister Ova:** Broken Saint veteran with undead scars and unshakable faith +- **Rootspeaker Neme:** druid envoy trying to keep the land alive +- **The Pale Regent:** the campaign’s hidden sovereign-antagonist, speaking through dreams and crowns \ No newline at end of file diff --git a/pages/Level 5-20 Progression.md b/pages/Level 5-20 Progression.md new file mode 100644 index 0000000..9245422 --- /dev/null +++ b/pages/Level 5-20 Progression.md @@ -0,0 +1,31 @@ +- **Level 5-6: The Ash Begins** + - Investigate blight, undead outbreaks, and missing caravans + - Defend Grayhold Bastion and expose the first cult cell + - Boss: Ash Warden, a cursed knight who cannot die until his oath is broken +- **Level 7-8: The Broken Roads** + - Travel through raided villages and contested passes + - Choose allies among the Synod, House Veyr, or the Compact + - Dungeon: Saint's Trench, where the dead repeat the last siege +- **Level 9-10: The Fen of Whispers** + - Recover a relic map and learn the crown’s prison mechanism + - Confront plague alchemists and spirit bargains + - Boss: Fen-Hag Matron bound to a drowned chapel +- **Level 11-12: War of the Houses** + - Navigate civil war, assassination, and siege diplomacy + - Prevent a crown claimant from becoming puppet ruler + - Dungeon: Furnace Pass fortress assault +- **Level 13-14: The Sunken Archive** + - Discover the buried history of the Sun Throne and the Pale Regent + - Retrieve the true binding rite and decide who can know it +- **Level 15-16: The Ember Ascendant** + - The cult launches open apocalypse rituals + - Stop a ritual that would tear open the Pale March permanently + - Boss: Ember Hierophant and their bound fiend +- **Level 17-18: Siege of the Capital Below** + - The capital’s hidden undercity awakens beneath the ash + - Rally factions for a final march on Crownbreak Spire + - Dungeon: living catacombs, oath engines, and crown-forges +- **Level 19-20: The Hollow Crown** + - Enter the sealed throne chamber and face the Pale Regent + - Final choice determines the realm’s future + - Endings: destroy, claim, or rebind the crown \ No newline at end of file diff --git a/pages/Major Locations.md b/pages/Major Locations.md new file mode 100644 index 0000000..e91ad52 --- /dev/null +++ b/pages/Major Locations.md @@ -0,0 +1,7 @@ +- **Grayhold Bastion:** fortress-city at the edge of the ashlands; first hub +- **Saint's Trench:** mass grave turned battlefield shrine haunted by oathbound dead +- **The Glass Fen:** poisoned wetlands where spirits and alchemists compete +- **Furnace Pass:** mountain route controlled by toll-lords and raiders +- **The Sunken Archive:** buried imperial library holding the crown’s origin +- **Crownbreak Spire:** final ruin beneath the capital where the Hollow Crown is sealed +- **The Pale March:** a nightmare borderland appearing where the curse spreads \ No newline at end of file diff --git a/pages/Session Zero.md b/pages/Session Zero.md new file mode 100644 index 0000000..8ac81b1 --- /dev/null +++ b/pages/Session Zero.md @@ -0,0 +1,6 @@ +- Discuss lines, veils, and horror level +- Decide whether the endgame allows crown destruction, redemption, or rule +- Ask players what each character wants to protect, and what they fear losing +- Build at least one bond to a faction and one secret between party members +- Start characters with a reason to be in Grayhold Bastion +- Encourage morally gray choices and consequences \ No newline at end of file diff --git a/pages/Treasure and Rewards.md b/pages/Treasure and Rewards.md new file mode 100644 index 0000000..b1121bd --- /dev/null +++ b/pages/Treasure and Rewards.md @@ -0,0 +1,5 @@ +- **Common Rewards:** relic coins, oath seals, sanctuary charms, survival gear +- **Signature Magic Items:** crown-splinter talismans, sun-forged weapons, ash-resisting cloaks, lanterns that reveal spirits +- **Milestone Rewards:** faction renown, safehouses, armies, political leverage, ritual knowledge +- **Legendary Artifacts:** the Hollow Crown, the Sun Throne Seal, the Lantern of Last Judgment +- **Reward Style:** favors and consequences should matter as much as gold \ No newline at end of file diff --git a/pages/World of Ash and Cinders.md b/pages/World of Ash and Cinders.md new file mode 100644 index 0000000..0927237 --- /dev/null +++ b/pages/World of Ash and Cinders.md @@ -0,0 +1,7 @@ +- **Region:** The Cinderwake Dominion +- **History:** Once a fertile kingdom unified by the Sun Throne, the realm fractured after the last monarch used a forbidden crown to end a civil war. The crown demanded a soul-tithe to maintain peace, and when the tithe was refused, the crown was buried beneath a sacred fortress. Centuries later, the seal is failing. +- **Current State:** volcanic ash falls in distant provinces, crops fail, the dead do not stay buried, and noble houses secretly arm for succession. +- **Religion:** the old solar faith has weakened; roadside shrines and militant penitents fill the vacuum. +- **Magic:** respected but feared; blood rites, burial charms, and oath-binding are common. +- **Key Truth:** the crown is a prison and a key, binding an exiled sovereign-spirit called the Pale Regent. +- **Major Problems:** famine, border raids, plague villages, demon-pact nobility, and a hidden war over relic sites \ No newline at end of file diff --git a/pages/contents.md b/pages/contents.md new file mode 100644 index 0000000..15374f9 --- /dev/null +++ b/pages/contents.md @@ -0,0 +1,10 @@ +- [[Campaign Overview]] +- [[World of Ash and Cinders]] +- [[Factions]] +- [[Major Locations]] +- [[Level 5-20 Progression]] +- [[Key NPCs]] +- [[Encounters and Dungeons]] +- [[Treasure and Rewards]] +- [[Session Zero]] +- [[Campaign Timeline]] \ No newline at end of file