This commit is contained in:
Sebastian
2026-08-29 15:41:29 +02:00
commit e2903b96dc
3828 changed files with 188535 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
{
"promptDelete": false,
"readableLineLength": false,
"alwaysUpdateLinks": true,
"showLineNumber": true
}
+9
View File
@@ -0,0 +1,9 @@
{
"theme": "obsidian",
"accentColor": "#00bf56",
"enabledCssSnippets": [
"custom-admonitions.375981",
"dnd5e-compendium"
],
"cssTheme": "AnuPpuccin"
}
@@ -0,0 +1,9 @@
{
"theme": "obsidian",
"accentColor": "#00bf56",
"enabledCssSnippets": [
"custom-admonitions.375981",
"dnd5e-compendium"
],
"cssTheme": "Ink Paper"
}
@@ -0,0 +1,9 @@
{
"theme": "obsidian",
"accentColor": "#00bf56",
"enabledCssSnippets": [
"custom-admonitions.375981",
"dnd5e-compendium"
],
"cssTheme": "Ink Paper"
}
+14
View File
@@ -0,0 +1,14 @@
[
"obsidian-admonition",
"dataview",
"obsidian-leaflet-plugin",
"templater-obsidian",
"table-editor-obsidian",
"editing-toolbar",
"obsidian-timeline",
"obsidian-5e-statblocks",
"initiative-tracker",
"obsidian-dice-roller",
"image-window",
"markdown-attributes"
]
+33
View File
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": false,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": false,
"word-count": false,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"webviewer": false,
"footnotes": false,
"bases": true
}
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": false,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": false,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": false,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"webviewer": false,
"footnotes": false,
"bases": true
}
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": false,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": false,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": false,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"webviewer": false,
"footnotes": false,
"bases": true
}
+22
View File
@@ -0,0 +1,22 @@
{
"collapse-filter": false,
"search": "tag: #npc",
"showTags": true,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": false,
"collapse-color-groups": false,
"colorGroups": [],
"collapse-display": false,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": false,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.45050811767578125,
"close": true
}
+5
View File
@@ -0,0 +1,5 @@
{
"obsidian-5e-statblocks": true,
"preview": true,
"obsidian-leaflet-plugin": true
}
+27
View File
@@ -0,0 +1,27 @@
{
"renderNullAs": "\\-",
"taskCompletionTracking": false,
"taskCompletionUseEmojiShorthand": false,
"taskCompletionText": "completion",
"taskCompletionDateFormat": "yyyy-MM-dd",
"recursiveSubTaskCompletion": false,
"warnOnEmptyResult": true,
"refreshEnabled": true,
"refreshInterval": 2500,
"defaultDateFormat": "MMMM dd, yyyy",
"defaultDateTimeFormat": "h:mm a - MMMM dd, yyyy",
"maxRecursiveRenderDepth": 4,
"tableIdColumnName": "File",
"tableGroupColumnName": "Group",
"showResultCount": true,
"allowHtml": true,
"inlineQueryPrefix": "=",
"inlineJsQueryPrefix": "$=",
"inlineQueriesInCodeblocks": true,
"enableInlineDataview": true,
"enableDataviewJs": true,
"enableInlineDataviewJs": true,
"prettyRenderInlineFields": true,
"prettyRenderInlineFieldsInLivePreview": true,
"dataviewJsKeyword": "dataviewjs"
}
+20876
View File
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.68",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",
"authorUrl": "https://github.com/blacksmithgu",
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
"isDesktopOnly": false
}
+141
View File
@@ -0,0 +1,141 @@
.block-language-dataview {
overflow-y: auto;
}
/*****************/
/** Table Views **/
/*****************/
/* List View Default Styling; rendered internally as a table. */
.table-view-table {
width: 100%;
}
.table-view-table > thead > tr, .table-view-table > tbody > tr {
margin-top: 1em;
margin-bottom: 1em;
text-align: left;
}
.table-view-table > tbody > tr:hover {
background-color: var(--table-row-background-hover);
}
.table-view-table > thead > tr > th {
font-weight: 700;
font-size: larger;
border-top: none;
border-left: none;
border-right: none;
border-bottom: solid;
max-width: 100%;
}
.table-view-table > tbody > tr > td {
text-align: left;
border: none;
font-weight: 400;
max-width: 100%;
}
.table-view-table ul, .table-view-table ol {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Rendered value styling for any view. */
.dataview-result-list-root-ul {
padding: 0em !important;
margin: 0em !important;
}
.dataview-result-list-ul {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Generic grouping styling. */
.dataview.result-group {
padding-left: 8px;
}
/*******************/
/** Inline Fields **/
/*******************/
.dataview.inline-field-key {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-primary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-standalone-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
/***************/
/** Task View **/
/***************/
.dataview.task-list-item, .dataview.task-list-basic-item {
margin-top: 3px;
margin-bottom: 3px;
transition: 0.4s;
}
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
background-color: var(--text-selection);
box-shadow: -40px 0 0 var(--text-selection);
cursor: pointer;
}
/*****************/
/** Error Views **/
/*****************/
div.dataview-error-box {
width: 100%;
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 4px dashed var(--background-secondary);
}
.dataview-error-message {
color: var(--text-muted);
text-align: center;
}
/*************************/
/** Additional Metadata **/
/*************************/
.dataview.small-text {
font-size: smaller;
color: var(--text-muted);
margin-left: 3px;
}
.dataview.small-text::before {
content: "(";
}
.dataview.small-text::after {
content: ")";
}
+328
View File
@@ -0,0 +1,328 @@
{
"lastVersion": "3.1.16",
"aestheticStyle": "default",
"positionStyle": "top",
"menuCommands": [
{
"id": "editing-toolbar:editor-undo",
"name": "Undo editor",
"icon": "undo-glyph"
},
{
"id": "editing-toolbar:editor-redo",
"name": "Redo editor",
"icon": "redo-glyph"
},
{
"id": "editing-toolbar:toggle-format-brush",
"name": "Format Brush",
"icon": "paintbrush"
},
{
"id": "editing-toolbar:format-eraser",
"name": "Clear text formatting",
"icon": "eraser"
},
{
"id": "editing-toolbar:header2-text",
"name": "Header 2",
"icon": "header-2"
},
{
"id": "editing-toolbar:header3-text",
"name": "Header 3",
"icon": "header-3"
},
{
"id": "SubmenuCommands-header",
"name": "submenu",
"icon": "header-n",
"SubmenuCommands": [
{
"id": "editing-toolbar:header1-text",
"name": "Header 1",
"icon": "header-1"
},
{
"id": "editing-toolbar:header4-text",
"name": "Header 4",
"icon": "header-4"
},
{
"id": "editing-toolbar:header5-text",
"name": "Header 5",
"icon": "header-5"
},
{
"id": "editing-toolbar:header6-text",
"name": "Header 6",
"icon": "header-6"
}
]
},
{
"id": "editing-toolbar:toggle-bold",
"name": "Bold",
"icon": "bold-glyph"
},
{
"id": "editing-toolbar:toggle-italics",
"name": "Italics",
"icon": "italic-glyph"
},
{
"id": "editing-toolbar:toggle-strikethrough",
"name": "Strikethrough",
"icon": "strikethrough-glyph"
},
{
"id": "editing-toolbar:underline",
"name": "Underline",
"icon": "underline-glyph"
},
{
"id": "editing-toolbar:toggle-highlight",
"name": "==Highlight==",
"icon": "highlight-glyph"
},
{
"id": "SubmenuCommands-lucdf3en5",
"name": "submenu",
"icon": "edit",
"SubmenuCommands": [
{
"id": "editing-toolbar:editor-copy",
"name": "Copy",
"icon": "lucide-copy"
},
{
"id": "editing-toolbar:editor-cut",
"name": "Cut",
"icon": "lucide-scissors"
},
{
"id": "editing-toolbar:editor-paste",
"name": "Paste",
"icon": "lucide-clipboard-type"
},
{
"id": "editing-toolbar:editor:swap-line-down",
"name": "Swap line down",
"icon": "lucide-corner-right-down"
},
{
"id": "editing-toolbar:editor:swap-line-up",
"name": "Swap line up",
"icon": "lucide-corner-right-up"
}
]
},
{
"id": "editing-toolbar:editor:attach-file",
"name": "Attach file",
"icon": "lucide-paperclip"
},
{
"id": "editing-toolbar:editor:insert-table",
"name": "Insert Table",
"icon": "lucide-table"
},
{
"id": "editing-toolbar:editor:cycle-list-checklist",
"name": "Cycle list checklist",
"icon": "check-circle"
},
{
"id": "SubmenuCommands-luc8efull",
"name": "submenu",
"icon": "message-square",
"SubmenuCommands": [
{
"id": "editing-toolbar:editor:toggle-blockquote",
"name": "Blockquote",
"icon": "lucide-text-quote"
},
{
"id": "editing-toolbar:insert-callout",
"name": "Insert Callout ",
"icon": "lucide-quote"
}
]
},
{
"id": "SubmenuCommands-mdcmder",
"name": "submenu",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M464 608 l0 -568 q0 -3 -2.5 -5.5 q-2.5 -2.5 -5.5 -2.5 l-80 0 q-3 0 -5.5 2.5 q-2.5 2.5 -2.5 5.5 l0 568 l-232 0 q-3 0 -5.5 2.5 q-2.5 2.5 -2.5 5.5 l0 80 q0 3 2.5 5.5 q2.5 2.5 5.5 2.5 l560 0 q3 0 5.5 -2.5 q2.5 -2.5 2.5 -5.5 l0 -80 q0 -3 -2.5 -5.5 q-2.5 -2.5 -5.5 -2.5 l-232 0 ZM864 696 q17 0 28.5 11.5 q11.5 11.5 11.5 28.5 q0 17 -11.5 28.5 q-11.5 11.5 -28.5 11.5 q-17 0 -28.5 -11.5 q-11.5 -11.5 -11.5 -28.5 q0 -17 11.5 -28.5 q11.5 -11.5 28.5 -11.5 ZM864 640 q-40 0 -68 28 q-28 28 -28 68 q0 40 28 68 q28 28 68 28 q40 0 68 -28 q28 -28 28 -68 q0 -40 -28 -68 q-28 -28 -68 -28 ZM576 322 l0 -63 q0 -3 2 -5 l89 -70 l-89 -70 q-2 -2 -2 -5 l0 -63 q0 -4 3.5 -5.5 q3.5 -1.5 6.5 0.5 l170 133 q4 3 4.5 8.5 q0.5 5.5 -2.5 9.5 l-2 2 l-170 133 q-3 2 -6.5 0.5 q-3.5 -1.5 -3.5 -5.5 ZM256 322 l0 -63 q0 -3 -2 -5 l-89 -70 l89 -70 q2 -2 2 -5 l0 -63 q0 -4 -3.5 -5.5 q-3.5 -1.5 -6.5 0.5 l-170 133 q-4 3 -4.5 8.5 q-0.5 5.5 2.5 9.5 l2 2 l170 133 q3 2 6.5 0.5 q3.5 -1.5 3.5 -5.5 Z\"></path></g></svg>",
"SubmenuCommands": [
{
"id": "editing-toolbar:superscript",
"name": "Superscript",
"icon": "superscript-glyph"
},
{
"id": "editing-toolbar:subscript",
"name": "Subscript",
"icon": "subscript-glyph"
},
{
"id": "editing-toolbar:editor:toggle-code",
"name": "Inline code",
"icon": "code-glyph"
},
{
"id": "editing-toolbar:codeblock",
"name": "Code block",
"icon": "codeblock-glyph"
},
{
"id": "editing-toolbar:editor:insert-wikilink",
"name": "Insert wikilink [[]]",
"icon": "<svg width=\"15\" height=\"15\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M306 134 l91 0 q1 0 1 -8 l0 -80 q0 -8 -1 -8 l-91 0 q-1 0 -1 7 q0 -8 -5 -8 l-45 0 q-5 0 -5 8 l0 784 q0 8 5 8 l45 0 q5 0 5 -8 q0 8 1 8 l91 0 q1 0 1 -8 l0 -80 q0 -8 -1 -8 l-91 0 q-1 0 -1 8 l0 -623 q0 8 1 8 ZM139 134 l91 0 q1 0 1 -8 l0 -80 q0 -8 -1 -8 l-91 0 q-1 0 -1 7 q0 -8 -5 -8 l-45 0 q-5 0 -5 8 l0 784 q0 8 5 8 l45 0 q5 0 5 -8 q0 8 1 8 l91 0 q1 0 1 -8 l0 -80 q0 -8 -1 -8 l-91 0 q-1 0 -1 8 l0 -623 q0 8 1 8 ZM711 134 q1 0 1 -8 l0 623 q0 -8 -1 -8 l-91 0 q-1 0 -1 8 l0 80 q0 8 1 8 l91 0 q1 0 1 -8 q0 8 4 8 l46 0 q4 0 4 -8 l0 -784 q0 -8 -4 -8 l-46 0 q-4 0 -4 8 q0 -7 -1 -7 l-91 0 q-1 0 -1 8 l0 80 q0 8 1 8 l91 0 ZM878 134 q1 0 1 -8 l0 623 q0 -8 -1 -8 l-91 0 q-1 0 -1 8 l0 80 q0 8 1 8 l91 0 q1 0 1 -8 q0 8 5 8 l45 0 q4 0 4 -8 l0 -784 q0 -8 -4 -8 l-45 0 q-5 0 -5 8 q0 -7 -1 -7 l-91 0 q-1 0 -1 8 l0 80 q0 8 1 8 l91 0 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:editor:insert-embed",
"name": "Insert embed ![[]]",
"icon": "note-glyph"
},
{
"id": "editing-toolbar:insert-link",
"name": "Insert link []()",
"icon": "link-glyph"
},
{
"id": "editing-toolbar:hrline",
"name": "Horizontal divider",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M912 424 l0 -80 q0 -3 -2.5 -5.5 q-2.5 -2.5 -5.5 -2.5 l-784 0 q-3 0 -5.5 2.5 q-2.5 2.5 -2.5 5.5 l0 80 q0 3 2.5 5.5 q2.5 2.5 5.5 2.5 l784 0 q3 0 5.5 -2.5 q2.5 -2.5 2.5 -5.5 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:toggle-inline-math",
"name": "Inline math",
"icon": "lucide-sigma"
},
{
"id": "editing-toolbar:editor:insert-mathblock",
"name": "MathBlock",
"icon": "lucide-sigma-square"
}
]
},
{
"id": "SubmenuCommands-list",
"name": "submenu-list",
"icon": "bullet-list-glyph",
"SubmenuCommands": [
{
"id": "editing-toolbar:editor:toggle-checklist-status",
"name": "Checklist",
"icon": "checkbox-glyph"
},
{
"id": "editing-toolbar:renumber-ordered-list",
"name": "Renumber ordered list",
"icon": "list-restart"
},
{
"id": "editing-toolbar:toggle-numbered-list",
"name": "Numbered list",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M860 424 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-457 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l457 0 ZM860 756 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-457 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l457 0 ZM860 92 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-457 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l457 0 ZM264 136 l-3 -3 l-51 -57 l56 0 q14 0 24.5 -10 q10.5 -10 11.5 -25 l0 -1 q0 -15 -10.5 -25.5 q-10.5 -10.5 -24.5 -10.5 l-137 0 q-15 0 -25 10 q-10 10 -11 24.5 q-1 14.5 9 25.5 l63 70 l49 54 q7 7 7 16.5 q0 9.5 -7.5 16.5 q-7.5 7 -18.5 7 q-11 0 -18.5 -6.5 q-7.5 -6.5 -8.5 -16.5 l0 0 q0 -15 -10.5 -25.5 q-10.5 -10.5 -25.5 -10.5 q-15 0 -25.5 10.5 q-10.5 10.5 -10.5 25.5 q0 26 13.5 47.5 q13.5 21.5 36 34.5 q22.5 13 49 13 q26.5 0 49.5 -13 q23 -13 36 -34.5 q13 -21.5 13 -47.5 q0 -20 -7.5 -37.5 q-7.5 -17.5 -21.5 -30.5 l-1 -1 ZM173 794 q11 11 25 10.5 q14 -0.5 24.5 -10.5 q10.5 -10 10.5 -25 l0 -293 q0 -15 -10 -25.5 q-10 -10.5 -25 -10.5 q-15 0 -25.5 10 q-10.5 10 -11.5 25 l0 211 q-10 -8 -23.5 -7 q-13.5 1 -22.5 11 l-1 0 q-10 11 -9.5 25.5 q0.5 14.5 10.5 24.5 l58 54 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:toggle-bullet-list",
"name": "Bullet list",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M860 424 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-477 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l477 0 ZM860 756 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-477 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l477 0 ZM860 92 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-477 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l477 0 ZM176 716 l0 0 ZM112 716 q0 -27 18.5 -45.5 q18.5 -18.5 45.5 -18.5 q27 0 45.5 18.5 q18.5 18.5 18.5 45.5 q0 27 -18.5 45.5 q-18.5 18.5 -45.5 18.5 q-27 0 -45.5 -18.5 q-18.5 -18.5 -18.5 -45.5 ZM176 384 l0 0 ZM112 384 q0 -27 18.5 -45.5 q18.5 -18.5 45.5 -18.5 q27 0 45.5 18.5 q18.5 18.5 18.5 45.5 q0 27 -18.5 45.5 q-18.5 18.5 -45.5 18.5 q-27 0 -45.5 -18.5 q-18.5 -18.5 -18.5 -45.5 ZM176 52 l0 0 ZM112 52 q0 -27 18.5 -45.5 q18.5 -18.5 45.5 -18.5 q27 0 45.5 18.5 q18.5 18.5 18.5 45.5 q0 27 -18.5 45.5 q-18.5 18.5 -45.5 18.5 q-27 0 -45.5 -18.5 q-18.5 -18.5 -18.5 -45.5 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:undent-list",
"name": "Unindent-list",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M872 302 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-429 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l429 0 ZM872 542 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-429 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l429 0 ZM872 784 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM872 62 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM244 534 l-123 -122 q-8 -7 -8 -18 q0 -11 8 -18 l123 -122 q8 -7 19 -7 q11 0 18.5 7.5 q7.5 7.5 7.5 18.5 l0 242 q0 11 -7.5 18.5 q-7.5 7.5 -18.5 7.5 q-11 0 -19 -7 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:indent-list",
"name": "Indent list",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M872 302 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-429 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l429 0 ZM872 542 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-429 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l429 0 ZM872 784 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM872 62 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM158 534 l124 -122 q7 -7 7 -18 q0 -11 -7 -18 l-124 -122 q-7 -7 -18 -7 q-11 0 -19 7.5 q-8 7.5 -8 18.5 l0 242 q0 11 8 18.5 q8 7.5 19 7.5 q11 0 18 -7 Z\"></path></g></svg>"
}
]
},
{
"id": "SubmenuCommands-aligin",
"name": "submenu-aligin",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M724 304 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 540 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM724 776 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 68 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 Z\"></path></g></svg>",
"SubmenuCommands": [
{
"id": "editing-toolbar:justify",
"name": "<p aligin=\"justify\"></p>",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M112 736 l0 0 ZM120 736 l784 0 q8 0 8 -8 l0 -80 q0 -8 -8 -8 l-784 0 q-8 0 -8 8 l0 80 q0 8 8 8 ZM112 331 l0 0 ZM120 331 l784 0 q8 0 8 -8 l0 -80 q0 -8 -8 -8 l-784 0 q-8 0 -8 8 l0 80 q0 8 8 8 ZM112 128 l0 0 ZM120 128 l784 0 q8 0 8 -8 l0 -80 q0 -8 -8 -8 l-784 0 q-8 0 -8 8 l0 80 q0 8 8 8 ZM112 533 l0 0 ZM120 533 l784 0 q8 0 8 -8 l0 -80 q0 -8 -8 -8 l-784 0 q-8 0 -8 8 l0 80 q0 8 8 8 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:left",
"name": "<p aligin=\"left\"></p>",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M572 304 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 540 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM572 776 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 68 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:center",
"name": "<center>",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M724 304 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 540 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM724 776 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 68 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 Z\"></path></g></svg>"
},
{
"id": "editing-toolbar:right",
"name": "<p aligin=\"right\"></p>",
"icon": "<svg width=\"18\" height=\"18\" focusable=\"false\" fill=\"currentColor\" viewBox=\"0 0 1024 1024\"><g transform=\"scale(1, -1) translate(0, -896) scale(0.9, 0.9) \"><path class=\"path\" d=\"M872 304 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 540 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 ZM872 776 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-421 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l421 0 ZM872 68 q17 0 28.5 -11.5 q11.5 -11.5 11.5 -28 q0 -16.5 -11.5 -28.5 q-11.5 -12 -27.5 -12 l-721 0 q-17 0 -28.5 11.5 q-11.5 11.5 -11.5 28 q0 16.5 11.5 28.5 q11.5 12 27.5 12 l721 0 Z\"></path></g></svg>"
}
]
},
{
"id": "editing-toolbar:change-font-color",
"name": "Change font color[html]",
"icon": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" focusable=\"false\" fill=\"currentColor\"><g fill-rule=\"evenodd\"><path id=\"change-font-color-icon\" d=\"M3 18h18v3H3z\" style=\"fill:#2DC26B\"></path><path d=\"M8.7 16h-.8a.5.5 0 01-.5-.6l2.7-9c.1-.3.3-.4.5-.4h2.8c.2 0 .4.1.5.4l2.7 9a.5.5 0 01-.5.6h-.8a.5.5 0 01-.4-.4l-.7-2.2c0-.3-.3-.4-.5-.4h-3.4c-.2 0-.4.1-.5.4l-.7 2.2c0 .3-.2.4-.4.4zm2.6-7.6l-.6 2a.5.5 0 00.5.6h1.6a.5.5 0 00.5-.6l-.6-2c0-.3-.3-.4-.5-.4h-.4c-.2 0-.4.1-.5.4z\"></path></g></svg>"
},
{
"id": "editing-toolbar:change-background-color",
"name": "Change Backgroundcolor[html]",
"icon": "<svg width=\"18\" height=\"24\" viewBox=\"0 0 256 256\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><g stroke=\"none\" stroke-width=\"1\" fill=\"currentColor\" fill-rule=\"evenodd\"><g ><g fill=\"currentColor\"><g transform=\"translate(119.502295, 137.878331) rotate(-135.000000) translate(-119.502295, -137.878331) translate(48.002295, 31.757731)\" ><path d=\"M100.946943,60.8084699 L43.7469427,60.8084699 C37.2852111,60.8084699 32.0469427,66.0467383 32.0469427,72.5084699 L32.0469427,118.70847 C32.0469427,125.170201 37.2852111,130.40847 43.7469427,130.40847 L100.946943,130.40847 C107.408674,130.40847 112.646943,125.170201 112.646943,118.70847 L112.646943,72.5084699 C112.646943,66.0467383 107.408674,60.8084699 100.946943,60.8084699 Z M93.646,79.808 L93.646,111.408 L51.046,111.408 L51.046,79.808 L93.646,79.808 Z\" fill-rule=\"nonzero\"></path><path d=\"M87.9366521,16.90916 L87.9194966,68.2000001 C87.9183543,69.4147389 86.9334998,70.399264 85.7187607,70.4 L56.9423078,70.4 C55.7272813,70.4 54.7423078,69.4150264 54.7423078,68.2 L54.7423078,39.4621057 C54.7423078,37.2523513 55.5736632,35.1234748 57.0711706,33.4985176 L76.4832996,12.4342613 C78.9534987,9.75382857 83.1289108,9.5834005 85.8093436,12.0535996 C87.1658473,13.303709 87.9372691,15.0644715 87.9366521,16.90916 Z\" fill-rule=\"evenodd\"></path><path d=\"M131.3,111.241199 L11.7,111.241199 C5.23826843,111.241199 0,116.479467 0,122.941199 L0,200.541199 C0,207.002931 5.23826843,212.241199 11.7,212.241199 L131.3,212.241199 C137.761732,212.241199 143,207.002931 143,200.541199 L143,122.941199 C143,116.479467 137.761732,111.241199 131.3,111.241199 Z M124,130.241 L124,193.241 L19,193.241 L19,130.241 L124,130.241 Z\" fill-rule=\"nonzero\"></path></g></g><path d=\"M51,218 L205,218 C211.075132,218 216,222.924868 216,229 C216,235.075132 211.075132,240 205,240 L51,240 C44.9248678,240 40,235.075132 40,229 C40,222.924868 44.9248678,218 51,218 Z\" id=\"change-background-color-icon\" style=\"fill:#FA541C\"></path></g></g></svg>"
},
{
"id": "editing-toolbar:fullscreen-focus",
"name": "Fullscreen focus mode",
"icon": "fullscreen"
},
{
"id": "editing-toolbar:workplace-fullscreen-focus",
"name": "Workplace-Fullscreen ",
"icon": "exit-fullscreen"
}
],
"followingCommands": [],
"topCommands": [],
"fixedCommands": [],
"mobileCommands": [],
"enableMultipleConfig": false,
"appendMethod": "workspace",
"shouldShowMenuOnSelect": false,
"cMenuVisibility": true,
"cMenuBottomValue": 4.25,
"cMenuNumRows": 12,
"cMenuWidth": 610,
"cMenuFontColor": "#2DC26B",
"cMenuBackgroundColor": "#d3f8b6",
"autohide": false,
"Iscentered": false,
"custom_bg1": "#FFB78B8C",
"custom_bg2": "#CDF4698C",
"custom_bg3": "#A0CCF68C",
"custom_bg4": "#F0A7D88C",
"custom_bg5": "#ADEFEF8C",
"custom_fc1": "#D83931",
"custom_fc2": "#DE7802",
"custom_fc3": "#245BDB",
"custom_fc4": "#6425D0",
"custom_fc5": "#646A73",
"isLoadOnMobile": false,
"horizontalPosition": 0,
"verticalPosition": 0,
"formatBrushes": {},
"customCommands": [],
"viewTypeSettings": {},
"toolbarBackgroundColor": "rgba(var(--background-secondary-rgb), 0.7)",
"toolbarIconColor": "var(--text-normal)",
"toolbarIconSize": 18
}
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "editing-toolbar",
"name": "Editing Toolbar",
"version": "3.1.16",
"minAppVersion": "0.14.0",
"description": "The Obsidian Editing Toolbar is modified from cmenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.",
"author": "Cuman",
"authorUrl": "https://github.com/cumany/obsidian-editing-toolbar",
"isDesktopOnly": false
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "image-window",
"name": "Second Window",
"version": "1.2.0",
"minAppVersion": "0.12.0",
"author": "Jeremy Valentine",
"description": "Allow images & notes to be viewed in new Obsidian windows.",
"authorUrl": "",
"isDesktopOnly": true
}
+1
View File
@@ -0,0 +1 @@
.second-window-settings .additional-container>.additional>.setting-item{border-top:0;padding-top:9px}.second-window-settings .additional-container>.additional>.setting-item>.setting-item-control>*:first-child{margin:0 6px}.second-window-settings .additional-container .additional{margin:6px 12px}.second-window-settings details>summary{outline:none;display:block!important;list-style:none!important;list-style-type:none!important;min-height:1rem;border-top-left-radius:.1rem;border-top-right-radius:.1rem;cursor:pointer;position:relative}.second-window-settings details>summary::-webkit-details-marker,.second-window-settings details>summary::marker{display:none!important}.second-window-settings details>summary>.collapser{position:absolute;top:50%;right:8px;transform:translateY(-50%);content:""}.second-window-settings details>summary>.collapser>.handle{transform:rotate(0);transition:transform .25s;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:var(--admonition-details-icon);mask-image:var(--admonition-details-icon);width:20px;height:20px}.second-window-settings details[open]>summary>.collapser>.handle{transform:rotate(90deg)}
+161
View File
@@ -0,0 +1,161 @@
{
"players": [],
"parties": [],
"defaultParty": null,
"statuses": [
{
"name": "Blinded",
"id": "Blinded",
"description": "A blinded creature cant see and automatically fails any ability check that requires sight.\nAttack rolls against the creature have advantage, and the creatures Attack rolls have disadvantage."
},
{
"name": "Charmed",
"id": "Charmed",
"description": "A charmed creature cant Attack the charmer or target the charmer with harmful Abilities or magical Effects.\nThe charmer has advantage on any ability check to interact socially with the creature."
},
{
"name": "Concentrating",
"id": "Concentrating",
"description": "Some spells require you to maintain concentration in order to keep their magic active. If you lose concentration, such a spell ends.\nA creature loses concentration when: it casts another spell that requires concentration, is incapacitated, or dies.\nWhen a creature takes damage, it must make a constitution saving throw with a DC of 10 or half the damage it took, whichever is higher. On a failure, concentration is lost."
},
{
"name": "Deafened",
"id": "Deafened",
"description": "A deafened creature cant hear and automatically fails any ability check that requires hearing."
},
{
"name": "Frightened",
"id": "Frightened",
"description": "A frightened creature has disadvantage on Ability Checks and Attack rolls while the source of its fear is within Line of Sight.\nThe creature cant willingly move closer to the source of its fear."
},
{
"name": "Grappled",
"id": "Grappled",
"description": "A grappled creatures speed becomes 0, and it cant benefit from any bonus to its speed.\nThe condition ends if the Grappler is incapacitated.\nThe condition also ends if an Effect removes the grappled creature from the reach of the Grappler or Grappling Effect, such as when a creature is hurled away by the Thunderwave spell."
},
{
"name": "Incapacitated",
"id": "Incapacitated",
"description": "An incapacitated creature cant take Actions or Reactions."
},
{
"name": "Invisible",
"id": "Invisible",
"description": "An invisible creature is impossible to see without the aid of magic or a Special sense. For the Purpose of Hiding, the creature is heavily obscured. The creatures Location can be detected by any noise it makes or any tracks it leaves.\nAttack rolls against the creature have disadvantage, and the creatures Attack rolls have advantage."
},
{
"name": "Paralyzed",
"id": "Paralyzed",
"description": "A paralyzed creature is incapacitated and cant move or speak.\nThe creature automatically fails Strength and Dexterity Saving Throws.\nAttack rolls against the creature have advantage.\nAny Attack that hits the creature is a critical hit if the attacker is within 5 feet of the creature."
},
{
"name": "Petrified",
"id": "Petrified",
"description": "A petrified creature is transformed, along with any nonmagical object it is wearing or carrying, into a solid inanimate substance (usually stone). Its weight increases by a factor of ten, and it ceases aging.\nThe creature is incapacitated, cant move or speak, and is unaware of its surroundings.\nAttack rolls against the creature have advantage.\nThe creature automatically fails Strength and Dexterity Saving Throws.\nThe creature has Resistance to all damage.\nThe creature is immune to poison and disease, although a poison or disease already in its system is suspended, not neutralized."
},
{
"name": "Poisoned",
"id": "Poisoned",
"description": "A poisoned creature has disadvantage on Attack rolls and Ability Checks."
},
{
"name": "Prone",
"id": "Prone",
"description": "A prone creatures only Movement option is to crawl, unless it stands up and thereby ends the condition.\nThe creature has disadvantage on Attack rolls.\nAn Attack roll against the creature has advantage if the attacker is within 5 feet of the creature. Otherwise, the Attack roll has disadvantage."
},
{
"name": "Reacted",
"id": "Reacted",
"description": "A creature, unless otherwise specified, gets one reaction per round of combat.\nA reaction is an instant response to a trigger of some kind, which can occur on your turn or on someone elses.\nA reaction can be spent to make an opportunity attack, do a readied action, or use an ability that requires a reaction.\nA creature that has already reacted cannot use a reaction until the start of its turn."
},
{
"name": "Restrained",
"id": "Restrained",
"description": "A restrained creatures speed becomes 0, and it cant benefit from any bonus to its speed.\nAttack rolls against the creature have advantage, and the creatures Attack rolls have disadvantage.\nThe creature has disadvantage on Dexterity Saving Throws."
},
{
"name": "Stunned",
"id": "Stunned",
"description": "A stunned creature is incapacitated, cant move, and can speak only falteringly.\nThe creature automatically fails Strength and Dexterity Saving Throws.\nAttack rolls against the creature have advantage."
},
{
"name": "Unconscious",
"id": "Unconscious",
"description": "An unconscious creature is incapacitated, cant move or speak, and is unaware of its surroundings.\nThe creature drops whatever its holding and falls prone.\nThe creature automatically fails Strength and Dexterity Saving Throws.\nAttack rolls against the creature have advantage.\nAny Attack that hits the creature is a critical hit if the attacker is within 5 feet of the creature."
}
],
"unconsciousId": "Unconscious",
"version": [
13,
0,
17
],
"canUseDiceRoll": false,
"preferStatblockLink": false,
"initiative": "1d20 + %mod%",
"modifier": null,
"sync": false,
"playerMarker": "default",
"monsterMarker": "default",
"state": {
"creatures": [],
"state": false,
"name": null,
"round": 1,
"logFile": "",
"rollHP": false
},
"condense": false,
"clamp": true,
"autoStatus": true,
"beginnerTips": true,
"displayDifficulty": true,
"encounters": {},
"warnedAboutImports": false,
"openState": {
"battle": true,
"party": true,
"status": true,
"plugin": true,
"player": true,
"builder": true
},
"hpOverflow": "ignore",
"additiveTemp": false,
"rpgSystem": "dnd5e",
"logging": false,
"logFolder": "/",
"resolveTies": "playerFirst",
"useLegacy": false,
"diplayPlayerHPValues": true,
"rollHP": false,
"descending": true,
"builder": {
"showParty": true,
"showXP": true,
"sidebarIcon": true,
"headers": [
{
"text": "CR",
"field": "cr",
"type": 1
},
{
"text": "Type",
"field": "type",
"type": 0
},
{
"text": "Size",
"field": "size",
"type": 0
},
{
"text": "Alignment",
"field": "alignment",
"type": 0
}
]
},
"rollPlayerInitiatives": 0
}
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "initiative-tracker",
"name": "Initiative Tracker",
"version": "13.0.17",
"minAppVersion": "0.15.0",
"author": "Jeremy Valentine",
"description": "TTRPG Initiative Tracker for Obsidian.md",
"authorUrl": "https://github.com/valentine195/obsidian-initiative-tracker",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+359
View File
@@ -0,0 +1,359 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// src/main.ts
var main_exports = {};
__export(main_exports, {
default: () => MarkdownAttributes
});
module.exports = __toCommonJS(main_exports);
var import_obsidian2 = require("obsidian");
// src/processor.ts
var _Processor = class {
constructor() {
}
static parse(el) {
if (typeof el == "string") {
return new _Processor().parseLine(el);
} else {
return new _Processor().recurseAndParseElements(el);
}
}
parseLine(text) {
const elements = [];
let attribute_strings = text.matchAll(
new RegExp(_Processor.END_RE.source, "gm")
);
for (const [_, match] of attribute_strings) {
elements.push({
attributes: this.getAttrs(match),
text: match
});
}
return elements;
}
getTopLevelText(el) {
const texts = [];
for (let child of Array.from(el.childNodes)) {
if (child.nodeType == Node.TEXT_NODE) {
texts.push(child.data);
}
}
return texts.join("");
}
getAttrs(str) {
const trys = (str != null ? str : "").split(/\s(?=(?:[^'"`]*(['"`])[^'"`]*\1)*[^'"`]*$)/).map((t) => t && t.trim()).filter((t) => t && t !== '"' && t !== "'" && t.length);
if (!trys || !trys.length)
return;
const allowedKeyChars = /[^\t\n\f />"'=]/;
const keySeparator = "=";
const classChar = ".";
const attrs = [];
for (let pair of trys) {
if (!pair || !pair.length)
continue;
if (pair.charAt(0) === classChar) {
attrs.push(["class", pair.slice(1)]);
continue;
}
if (new RegExp(keySeparator).test(pair) && allowedKeyChars.test(pair.slice(0, pair.indexOf(keySeparator)))) {
attrs.push([...pair.split(keySeparator, 2)]);
continue;
}
attrs.push([pair, null]);
}
return attrs;
}
recurseAndParseElements(el) {
var _a, _b, _c;
const elements = [];
const text = this.getTopLevelText(el);
if (_Processor.BLOCK_RE.test(text)) {
let element = el;
if (el instanceof HTMLLIElement || (el == null ? void 0 : el.parentElement) instanceof HTMLQuoteElement || (el == null ? void 0 : el.hasClass("callout"))) {
element = el.parentElement;
}
let [original, attribute_string] = (_a = text.match(_Processor.BLOCK_RE)) != null ? _a : [];
const toAdd = {
element,
attributes: this.getAttrs(attribute_string),
text: attribute_string
};
elements.push(toAdd);
el.innerHTML = this.tryToReplace(
toAdd.element,
el.innerHTML,
toAdd.attributes,
original
);
if (el instanceof HTMLLIElement) {
elements.push(...this.recurseAndParseElements(el));
}
} else if (_Processor.BASE_RE.test(text)) {
let textNode = Array.from(el.childNodes).find(
(node) => node.nodeType == Node.TEXT_NODE && _Processor.BASE_RE.test(text)
);
let sibling = (_b = Array.from(el.children).find(
(node) => node.nextSibling == textNode
)) != null ? _b : el;
if (sibling && sibling.hasClass("collapse-indicator")) {
sibling = sibling.parentElement;
}
if (sibling && sibling instanceof HTMLBRElement) {
sibling = sibling.parentElement;
}
let [original, attribute_string] = (_c = text.match(_Processor.BASE_RE)) != null ? _c : [];
const toAdd = {
element: sibling,
attributes: this.getAttrs(attribute_string),
text: attribute_string
};
elements.push(toAdd);
textNode.textContent = this.tryToReplace(
toAdd.element,
textNode.textContent,
toAdd.attributes,
original
);
}
for (let child of Array.from(el.children)) {
if (!(child instanceof HTMLElement))
continue;
if (child instanceof HTMLPreElement || child.tagName.toLowerCase() === "code")
continue;
elements.push(...this.recurseAndParseElements(child));
}
return elements;
}
tryToReplace(element, content, attributes, original) {
if (!attributes || !attributes.length) {
return content;
}
for (let [key, value] of attributes) {
if (!key)
continue;
if (value)
value = value.replace(/("|')/g, "");
try {
if (key === "class") {
element.addClasses(value.split(" "));
} else if (!value) {
element.setAttr(key, true);
} else {
element.setAttr(key, value);
}
} catch (e) {
console.log(
`Markdown Attributes: ${key} is not a valid attribute.`
);
return content;
}
}
return content.replace(original, "");
}
};
var Processor = _Processor;
__publicField(Processor, "BASE_RE", /\{\:?[ ]*([^\}\n ][^\}\n]*)[ ]*\}/);
__publicField(Processor, "ONLY_RE", /^\{\:?[ ]*([^\}\n ][^\}\n]*)[ ]*\}$/);
__publicField(Processor, "BLOCK_RE", /\n[ ]*\{\:?[ ]*([^\}\n ][^\}\n]*)[ ]*\}[ ]*$/);
__publicField(Processor, "END_RE", /\{\:?[ ]*([^\}\n ][^\}\n]*)[ ]*\}$/m);
// src/live-preview.ts
var import_view = require("@codemirror/view");
var import_language = require("@codemirror/language");
var import_obsidian = require("obsidian");
function selectionAndRangeOverlap(selection, rangeFrom, rangeTo) {
for (const range of selection.ranges) {
if (range.from <= rangeTo && range.to >= rangeFrom) {
return true;
}
}
return false;
}
function inlineRender(view) {
if (!view.state.field(import_obsidian.editorLivePreviewField)) {
this.decorations = import_view.Decoration.none;
return;
}
const currentFile = app.workspace.getActiveFile();
if (!currentFile)
return;
const widgets = [];
const selection = view.state.selection;
for (const { from, to } of view.visibleRanges) {
(0, import_language.syntaxTree)(view.state).iterate({
from,
to,
enter: ({ node }) => {
var _a;
const type = node.type;
if (type.name.includes("formatting"))
return;
const start = node.from;
const end = node.to;
if (selectionAndRangeOverlap(selection, start - 1, end + 1))
return;
const original = view.state.doc.sliceString(start, end).trim();
if (!Processor.END_RE.test(original))
return;
const parsed = (_a = Processor.parse(original)) != null ? _a : [];
for (const item of parsed) {
const { attributes, text } = item;
const firstBracket = original.slice(0, original.indexOf(text)).lastIndexOf("{");
const lastBracket = original.indexOf(
"}",
original.indexOf(text)
);
widgets.push(
import_view.Decoration.replace({
inclusive: false,
block: false
}).range(start + firstBracket, start + lastBracket + 1),
import_view.Decoration.mark({
inclusive: true,
attributes: Object.fromEntries(attributes)
}).range(start, end)
);
}
}
});
}
return import_view.Decoration.set(widgets, true);
}
function inlinePlugin() {
return import_view.ViewPlugin.fromClass(
class {
constructor(view) {
__publicField(this, "decorations");
var _a;
this.decorations = (_a = inlineRender(view)) != null ? _a : import_view.Decoration.none;
}
update(update) {
var _a;
if (!update.state.field(import_obsidian.editorLivePreviewField)) {
this.decorations = import_view.Decoration.none;
return;
}
if (update.docChanged || update.viewportChanged || update.selectionSet) {
this.decorations = (_a = inlineRender(update.view)) != null ? _a : import_view.Decoration.none;
}
}
},
{ decorations: (v) => v.decorations }
);
}
// src/main.ts
var MarkdownAttributes = class extends import_obsidian2.Plugin {
constructor() {
super(...arguments);
__publicField(this, "parsing", /* @__PURE__ */ new Map());
}
onload() {
return __async(this, null, function* () {
console.log(`Markdown Attributes v${this.manifest.version} loaded.`);
this.registerMarkdownPostProcessor(this.postprocessor.bind(this));
this.registerEditorExtension(inlinePlugin());
});
}
postprocessor(topElement, ctx) {
return __async(this, null, function* () {
var _a, _b, _c;
const child = topElement.firstElementChild;
if (!child)
return;
let str;
if (child instanceof HTMLPreElement) {
if (!ctx.getSectionInfo(topElement))
return;
const { lineStart } = ctx.getSectionInfo(topElement);
const file = this.app.vault.getAbstractFileByPath(ctx.sourcePath);
if (!(file instanceof import_obsidian2.TFile))
return;
const text = yield this.app.vault.cachedRead(file);
let source = text.split("\n").slice(lineStart, lineStart + 1);
str = source.join("\n");
if (!Processor.BASE_RE.test(str))
return;
let [attribute_string] = (_a = str.match(Processor.BASE_RE)) != null ? _a : [];
child.prepend(new Text(attribute_string));
}
if (child instanceof HTMLTableElement || child.hasClass("math") && child.hasClass("math-block") || child.hasClass("callout")) {
if (!ctx.getSectionInfo(topElement))
return;
const { text, lineEnd } = ctx.getSectionInfo(topElement);
const adjustment = child.hasClass("callout") ? 0 : 1;
let source = ((_b = text.split("\n").slice(lineEnd + adjustment, lineEnd + adjustment + 1)) != null ? _b : []).shift();
if (source && source.length && Processor.ONLY_RE.test(source.trim())) {
let [attribute_string] = (_c = source.match(Processor.ONLY_RE)) != null ? _c : [];
child.prepend(new Text(attribute_string));
str = topElement.innerText;
}
}
if (child instanceof HTMLParagraphElement && !child.childElementCount) {
if (Processor.ONLY_RE.test(child.innerText.trim())) {
child.detach();
return;
}
}
if (!Processor.BASE_RE.test(str != null ? str : topElement.innerText))
return;
if (!(child instanceof HTMLElement))
return;
Processor.parse(child);
});
}
onunload() {
return __async(this, null, function* () {
console.log("Markdown Attributes unloaded");
});
}
};
/* nosourcemap */
+10
View File
@@ -0,0 +1,10 @@
{
"id": "markdown-attributes",
"name": "Markdown Attributes",
"version": "1.2.2",
"minAppVersion": "0.12.10",
"description": "Add markdown attributes to elements in Obsidian.md",
"author": "Jeremy Valentine",
"authorUrl": "",
"isDesktopOnly": false
}
+28
View File
@@ -0,0 +1,28 @@
{
"monsters": [],
"defaultLayouts": {},
"layouts": [],
"default": "basic-5e-layout",
"useDice": true,
"renderDice": false,
"export": true,
"showAdvanced": false,
"version": {
"major": 4,
"minor": 9,
"patch": 1
},
"paths": [
"/",
"compendium/bestiary"
],
"autoParse": false,
"disableSRD": false,
"tryToRenderLinks": true,
"debug": false,
"notifiedOfFantasy": false,
"hideConditionHelp": false,
"alwaysImport": false,
"defaultLayoutsIntegrated": true,
"atomicWrite": false
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "obsidian-5e-statblocks",
"name": "Fantasy Statblocks",
"version": "4.9.1",
"description": "Create Fantasy Statblocks in Obsidian.md",
"minAppVersion": "0.12.0",
"author": "Jeremy Valentine",
"authorUrl": "",
"fundingUrl": "https://www.buymeacoffee.com/valentine195",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+74
View File
@@ -0,0 +1,74 @@
{
"userAdmonitions": {
"statblock": {
"type": "statblock",
"icon": {
"name": "dragon",
"type": "font-awesome"
},
"command": false,
"injectColor": false,
"noTitle": false,
"copy": false,
"color": "100, 182, 252"
},
"flowchart": {
"type": "flowchart",
"icon": {
"name": "map",
"type": "font-awesome"
},
"command": false,
"injectColor": false,
"noTitle": true,
"copy": false,
"color": "239, 213, 149"
},
"gallery": {
"type": "gallery",
"icon": {
"name": "image",
"type": "font-awesome"
},
"command": false,
"injectColor": false,
"noTitle": true,
"copy": false,
"color": "151, 213, 6"
},
"readaloud": {
"type": "readaloud",
"icon": {
"name": "book-reader",
"type": "font-awesome"
},
"title": "Read Aloud",
"command": false,
"injectColor": false,
"noTitle": false,
"copy": false,
"color": "50, 96, 169"
}
},
"syntaxHighlight": false,
"copyButton": false,
"version": "10.3.2",
"autoCollapse": false,
"defaultCollapseType": "open",
"injectColor": true,
"parseTitles": true,
"dropShadow": true,
"hideEmpty": false,
"open": {
"admonitions": true,
"icons": true,
"other": true,
"advanced": false
},
"icons": [],
"useFontAwesome": true,
"rpgDownloadedOnce": false,
"msDocConverted": false,
"useSnippet": false,
"snippetPath": "custom-admonitions.c3af89"
}
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "obsidian-admonition",
"name": "Admonition",
"version": "10.3.2",
"minAppVersion": "1.1.0",
"description": "Enhanced callouts for Obsidian.md",
"author": "Jeremy Valentine",
"authorUrl": "",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+80
View File
@@ -0,0 +1,80 @@
{
"position": "RIGHT",
"showFudgeIcon": false,
"rollLinksForTags": false,
"copyContentButton": true,
"customFormulas": [],
"displayFormulaForMod": true,
"displayResultsInline": false,
"displayFormulaAfter": false,
"escapeDiceMod": true,
"signed": false,
"displayLookupRoll": true,
"formulas": {},
"defaultRoll": 1,
"defaultFace": 100,
"renderer": false,
"renderAllDice": false,
"addToView": false,
"renderTime": 2000,
"colorfulDice": false,
"scaler": 1,
"diceColor": "#202020",
"textColor": "#ffffff",
"textFont": "Arial",
"showLeafOnStartup": true,
"narrativeSymbolSet": "Genesys",
"displayAsSymbols": false,
"displayAsEmbed": true,
"round": "None",
"initialDisplay": "Roll",
"icons": [
{
"id": "dice-roller-d4",
"shape": "Triangle",
"formula": "d4",
"text": "4"
},
{
"id": "dice-roller-d6",
"shape": "Square",
"formula": "d6",
"text": "6"
},
{
"id": "dice-roller-d8",
"shape": "Diamond",
"formula": "d8",
"text": "8"
},
{
"id": "dice-roller-d10",
"shape": "Diamond",
"formula": "d10",
"text": "10"
},
{
"id": "dice-roller-d12",
"shape": "Dodecahedron",
"formula": "d12",
"text": "12"
},
{
"id": "dice-roller-d20",
"shape": "Icosahedron",
"formula": "d20",
"text": "20"
},
{
"id": "dice-roller-d100",
"shape": "Circle",
"formula": "d%",
"text": "%"
}
],
"showRenderNotice": true,
"diceModTemplateFolders": {},
"replaceDiceModInLivePreview": true,
"version": "11.4.2",
"viewResults": []
}
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "obsidian-dice-roller",
"name": "Dice Roller",
"version": "11.4.2",
"minAppVersion": "0.12.15",
"description": "Inline dice rolling for Obsidian.md",
"author": "Jeremy Valentine",
"authorUrl": "",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+38
View File
@@ -0,0 +1,38 @@
{
"mapMarkers": [],
"defaultMarker": {
"type": "default",
"iconName": "map-marker",
"color": "#dddddd",
"transform": {
"size": 6,
"x": 0,
"y": -2
}
},
"markerIcons": [],
"color": "#dddddd",
"lat": 39.983334,
"long": -82.98333,
"notePreview": false,
"layerMarkers": true,
"previousVersion": "6.0.5",
"version": {
"major": 6,
"minor": 0,
"patch": 5
},
"warnedAboutMapMarker": false,
"copyOnClick": false,
"displayMarkerTooltips": "hover",
"displayOverlayTooltips": true,
"configDirectory": null,
"mapViewEnabled": true,
"mapViewParameters": {},
"enableDraw": true,
"defaultUnitType": "imperial",
"defaultTile": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",
"defaultTileDark": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",
"defaultAttribution": "&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors &copy; <a href=\"https://carto.com/attributions\">CARTO</a>",
"defaultTileSubdomains": "a,b,c,d"
}
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "obsidian-leaflet-plugin",
"name": "Leaflet",
"description": "Interactive maps inside your notes",
"version": "6.0.5",
"minAppVersion": "0.12.12",
"author": "Jeremy Valentine",
"repo": "valentine195/obsidian-leaflet-plugin",
"isDesktopOnly": false
}
File diff suppressed because it is too large Load Diff
+123
View File
@@ -0,0 +1,123 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ROLLUP
if you want to view the source visit the plugins github repository
*/
'use strict';
var obsidian = require('obsidian');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
const labeledRegex = /^[ \t]*date:(.+?)(?:^[ \t]*title:(.+?))?(?:^[ \t]*content:(.+?))?(?=^[ \t]*date:)/gimsu;
const timelineLabeledParser = (source) => {
source += "\ndate: ";
let sourceMatch;
const parsed = [];
while ((sourceMatch = labeledRegex.exec(source)) !== null) {
parsed.push({
time: sourceMatch[1],
title: sourceMatch[2],
description: sourceMatch[3]
});
}
return parsed;
};
const timelineParser = (source) => {
const sourceSplitted = source.split(/^\s*\+ ?/gm).slice(1);
sourceSplitted.push("", "");
const parsed = [];
const counter = sourceSplitted.length - (sourceSplitted.length % 3);
for (let i = 0; i < counter; i += 3) {
parsed.push({
time: sourceSplitted[i],
title: sourceSplitted[i + 1],
description: sourceSplitted[i + 2]
});
}
return parsed;
};
const toExport = [
{ tag: "timeline", parser: timelineParser },
{ tag: "timeline-labeled", parser: timelineLabeledParser },
];
class TimelineElement {
constructor(root, sourcePath) {
this.addEvent = (info) => {
Object.entries(info).map(([key, val]) => {
const element = this.root.createDiv({ cls: key });
const text = val;
obsidian.MarkdownRenderer.renderMarkdown(text, element, this.sourcePath, null);
return [key, element];
});
};
this.getElement = () => this.root;
this.root = root.createDiv({ cls: 'timeline' });
this.sourcePath = sourcePath;
}
}
const classRegex = /(?<=^\s*)\[.+?\]/gs;
const toClassArray = (input) => {
input = input.trim();
if (input[0] != "[" || input[input.length - 1] != "]")
return [];
return input
.substring(1, input.length - 1)
.trim()
.split(/\s*,\s*/);
};
class TimelinePlugin extends obsidian.Plugin {
constructor() {
super(...arguments);
this.onload = () => __awaiter(this, void 0, void 0, function* () {
toExport.forEach(({ tag, parser }) => {
this.registerMarkdownCodeBlockProcessor(tag, (source, root, ctx) => {
const timelineElement = new TimelineElement(root, ctx.sourcePath);
const el = timelineElement.getElement();
el.addClass("timeline");
const classMatch = source.match(classRegex);
if (classMatch !== null) {
const classes = toClassArray(classMatch[0]);
el.addClasses(classes);
}
const events = parser(source);
events.forEach(e => timelineElement.addEvent(e));
});
});
console.log("timeline load");
});
this.onunload = () => __awaiter(this, void 0, void 0, function* () {
console.log("timeline onunload");
});
}
}
module.exports = TimelinePlugin;
/* nosourcemap */
+10
View File
@@ -0,0 +1,10 @@
{
"id": "obsidian-timeline",
"name": "Timeline",
"version": "1.1.0",
"minAppVersion": "0.15.6",
"description": "Used to build great timelines",
"author": "George Butco",
"authorUrl": "",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+6
View File
@@ -0,0 +1,6 @@
{
"formatType": "normal",
"showRibbonIcon": true,
"bindEnter": true,
"bindTab": true
}
File diff suppressed because one or more lines are too long
+17
View File
@@ -0,0 +1,17 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.22.1",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}
+78
View File
@@ -0,0 +1,78 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code {
font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
}
.widget-icon {
width: 20px;
height: 20px;
fill: var(--text-muted);
}
.widget-icon:hover {
fill: var(--text-normal);
}
.advanced-tables-csv-export textarea {
height: 200px;
width: 100%;
}
.advanced-tables-donation {
width: 70%;
margin: 0 auto;
text-align: center;
}
.advanced-tables-donate-button {
margin: 10px;
}
+38
View File
@@ -0,0 +1,38 @@
{
"command_timeout": 5,
"templates_folder": "Templates",
"templates_pairs": [
[
"",
""
]
],
"trigger_on_file_creation": false,
"auto_jump_to_cursor": false,
"enable_system_commands": false,
"shell_path": "",
"user_scripts_folder": "",
"enable_folder_templates": true,
"folder_templates": [
{
"folder": "",
"template": ""
}
],
"enable_file_templates": false,
"file_templates": [
{
"regex": ".*",
"template": ""
}
],
"syntax_highlighting": true,
"syntax_highlighting_mobile": false,
"enabled_templates_hotkeys": [
""
],
"startup_templates": [
""
],
"intellisense_render": 1
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.11.3",
"description": "Create and use templates",
"minAppVersion": "1.5.0",
"author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13",
"helpUrl": "https://silentvoid13.github.io/Templater/",
"isDesktopOnly": false
}
+220
View File
@@ -0,0 +1,220 @@
.templater_search {
width: calc(100% - 20px);
}
.templater_div {
border-top: 1px solid var(--background-modifier-border);
}
.templater_div > .setting-item {
border-top: none !important;
align-self: center;
}
.templater_div > .setting-item > .setting-item-control {
justify-content: space-around;
padding: 0;
width: 100%;
}
.templater_div
> .setting-item
> .setting-item-control
> .setting-editor-extra-setting-button {
align-self: center;
}
.templater_donating {
margin: 10px;
}
.templater_title {
margin: 0;
padding: 0;
margin-top: 5px;
text-align: center;
}
.templater_template {
align-self: center;
margin-left: 5px;
margin-right: 5px;
width: 70%;
}
.templater_cmd {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.templater_div2 > .setting-item {
align-content: center;
justify-content: center;
}
.templater-prompt-div {
display: flex;
}
.templater-prompt-form {
display: flex;
flex-grow: 1;
}
.templater-prompt-input {
flex-grow: 1;
}
.templater-button-div {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 1rem;
}
textarea.templater-prompt-input {
height: 10rem;
}
textarea.templater-prompt-input:focus {
border-color: var(--interactive-accent);
}
.cm-s-obsidian .templater-command-bg {
left: 0px;
right: 0px;
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command {
font-size: 0.85em;
font-family: var(--font-monospace);
line-height: 1.3;
}
.cm-s-obsidian .templater-inline .cm-templater-command {
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
color: var(--code-property, #008bff);
}
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
color: var(--code-function, #c0d700);
}
.cm-s-obsidian .cm-templater-command.cm-keyword {
color: var(--code-keyword, #00a7aa);
font-weight: normal;
}
.cm-s-obsidian .cm-templater-command.cm-atom {
color: var(--code-normal, #f39b35);
}
.cm-s-obsidian .cm-templater-command.cm-value,
.cm-s-obsidian .cm-templater-command.cm-number,
.cm-s-obsidian .cm-templater-command.cm-type {
color: var(--code-value, #a06fca);
}
.cm-s-obsidian .cm-templater-command.cm-def,
.cm-s-obsidian .cm-templater-command.cm-type.cm-def {
color: var(--code-normal, var(--text-normal));
}
.cm-s-obsidian .cm-templater-command.cm-property,
.cm-s-obsidian .cm-templater-command.cm-property.cm-def,
.cm-s-obsidian .cm-templater-command.cm-attribute {
color: var(--code-function, #98e342);
}
.cm-s-obsidian .cm-templater-command.cm-variable,
.cm-s-obsidian .cm-templater-command.cm-variable-2,
.cm-s-obsidian .cm-templater-command.cm-variable-3,
.cm-s-obsidian .cm-templater-command.cm-meta {
color: var(--code-property, #d4d4d4);
}
.cm-s-obsidian .cm-templater-command.cm-callee,
.cm-s-obsidian .cm-templater-command.cm-operator,
.cm-s-obsidian .cm-templater-command.cm-qualifier,
.cm-s-obsidian .cm-templater-command.cm-builtin {
color: var(--code-operator, #fc4384);
}
.cm-s-obsidian .cm-templater-command.cm-tag {
color: var(--code-tag, #fc4384);
}
.cm-s-obsidian .cm-templater-command.cm-comment,
.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag,
.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
color: var(--code-comment, #696d70);
}
.cm-s-obsidian .cm-templater-command.cm-string,
.cm-s-obsidian .cm-templater-command.cm-string-2 {
color: var(--code-string, #e6db74);
}
.cm-s-obsidian .cm-templater-command.cm-header,
.cm-s-obsidian .cm-templater-command.cm-hr {
color: var(--code-keyword, #da7dae);
}
.cm-s-obsidian .cm-templater-command.cm-link {
color: var(--code-normal, #696d70);
}
.cm-s-obsidian .cm-templater-command.cm-error {
border-bottom: 1px solid #c42412;
}
.CodeMirror-hints {
position: absolute;
z-index: 10;
overflow: hidden;
list-style: none;
margin: 0;
padding: 2px;
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
border-radius: 3px;
border: 1px solid silver;
background: white;
font-size: 90%;
font-family: monospace;
max-height: 20em;
overflow-y: auto;
}
.CodeMirror-hint {
margin: 0;
padding: 0 4px;
border-radius: 2px;
white-space: pre;
color: black;
cursor: pointer;
}
li.CodeMirror-hint-active {
background: #08f;
color: white;
}
+11
View File
@@ -0,0 +1,11 @@
/* This snippet was auto-generated by the Admonitions plugin on 15/09/2023, 21:07:42 */
.callout[data-callout="statblock"] { --callout-icon: "<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"dragon\" class=\"svg-inline--fa fa-dragon fa-w-20\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path fill=\"currentColor\" d=\"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"></path></svg>"; }
.callout[data-callout="flowchart"] { --callout-icon: "<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"map\" class=\"svg-inline--fa fa-map fa-w-18\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path fill=\"currentColor\" d=\"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"></path></svg>"; }
.callout[data-callout="gallery"] { --callout-icon: "<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"image\" class=\"svg-inline--fa fa-image fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"></path></svg>"; }
.callout[data-callout="readaloud"] { --callout-icon: "<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"book-reader\" class=\"svg-inline--fa fa-book-reader fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"></path></svg>"; }
+341
View File
@@ -0,0 +1,341 @@
@charset "UTF-8";
body {
--admonition-charm: 211,141,159;
--admonition-charm-text: var(--admonition-charm);
--admonition-letter: 98, 159, 197;
--admonition-npc: 102, 121, 137;
--admonition-scene: 139, 167, 145;
--admonition-skill: 236,201,134;
--admonition-skill-text: var(--admonition-skill);
--admonition-weather: 53,119,174;
--admonition-flowchart: 72,72,72;
}
.theme-light {
--admonition-charm: 222,170,184;
--admonition-charm-text: 167,92,112;
--admonition-npc: 58, 125, 127;
--admonition-scene: 92, 122, 99;
--admonition-skill: 221,178,84;
--admonition-skill-text: 157,101,83;
}
.callout[data-callout=charm] {
--callout-color: var(--admonition-charm);
--callout-title-color: rgb(var(--admonition-charm-text));
}
.callout[data-callout=charm] .callout-title {
color: var(--callout-title-color);
}
.callout[data-callout=letter] {
--callout-color: var(--admonition-letter);
}
.callout[data-callout=npc] {
--callout-color: var(--admonition-npc);
}
.callout[data-callout=readaloud],
.callout[data-callout=scene] {
--callout-color: var(--admonition-scene);
}
.callout[data-callout=skill] {
--callout-color: var(--admonition-skill);
--callout-title-color: rgb(var(--admonition-skill-text));
}
.callout[data-callout=weather] {
--callout-color: var(--admonition-weather);
}
.callout[data-callout=flowchart] {
--callout-color: var(--admonition-flowchart);
--callout-border-width: 0.10rem;
}
.json5e-background div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-class div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-deity div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-feat div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-item div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-monster div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-note div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-race div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]),
.json5e-spell div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]) {
position: relative;
}
.json5e-background div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-class div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-deity div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-feat div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-item div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-monster div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-note div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-race div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after,
.json5e-spell div:has(> .callout[data-callout=flowchart]):has(+ div > .callout[data-callout=flowchart]):after {
content: "↓";
color: var(--admonition-flowchart);
display: block;
position: absolute;
bottom: -10px;
left: 50%;
margin-left: 7px;
width: 14px;
height: 14px;
font-size: 14px;
text-align: center;
}
.json5e-background .callout[data-callout=gallery],
.json5e-class .callout[data-callout=gallery],
.json5e-deity .callout[data-callout=gallery],
.json5e-feat .callout[data-callout=gallery],
.json5e-item .callout[data-callout=gallery],
.json5e-monster .callout[data-callout=gallery],
.json5e-note .callout[data-callout=gallery],
.json5e-race .callout[data-callout=gallery],
.json5e-spell .callout[data-callout=gallery] {
--callout-color: transparent;
--callout-border-width: 0;
}
.json5e-background .callout[data-callout=gallery] .callout-content,
.json5e-class .callout[data-callout=gallery] .callout-content,
.json5e-deity .callout[data-callout=gallery] .callout-content,
.json5e-feat .callout[data-callout=gallery] .callout-content,
.json5e-item .callout[data-callout=gallery] .callout-content,
.json5e-monster .callout[data-callout=gallery] .callout-content,
.json5e-note .callout[data-callout=gallery] .callout-content,
.json5e-race .callout[data-callout=gallery] .callout-content,
.json5e-spell .callout[data-callout=gallery] .callout-content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.json5e-background .callout[data-callout=gallery] .callout-content p,
.json5e-class .callout[data-callout=gallery] .callout-content p,
.json5e-deity .callout[data-callout=gallery] .callout-content p,
.json5e-feat .callout[data-callout=gallery] .callout-content p,
.json5e-item .callout[data-callout=gallery] .callout-content p,
.json5e-monster .callout[data-callout=gallery] .callout-content p,
.json5e-note .callout[data-callout=gallery] .callout-content p,
.json5e-race .callout[data-callout=gallery] .callout-content p,
.json5e-spell .callout[data-callout=gallery] .callout-content p {
display: none;
}
.json5e-background .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-class .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-deity .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-feat .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-item .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-monster .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-note .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-race .callout[data-callout=gallery] .callout-content div[src$="#gallery"],
.json5e-spell .callout[data-callout=gallery] .callout-content div[src$="#gallery"] {
max-width: 49%;
}
.json5e-background .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-class .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-deity .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-feat .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-item .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-monster .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-note .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-race .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img,
.json5e-spell .callout[data-callout=gallery] .callout-content div[src$="#gallery"] img {
max-height: 60vh;
}
.json5e-background .callout[data-callout=gallery] .callout-title,
.json5e-class .callout[data-callout=gallery] .callout-title,
.json5e-deity .callout[data-callout=gallery] .callout-title,
.json5e-feat .callout[data-callout=gallery] .callout-title,
.json5e-item .callout[data-callout=gallery] .callout-title,
.json5e-monster .callout[data-callout=gallery] .callout-title,
.json5e-note .callout[data-callout=gallery] .callout-title,
.json5e-race .callout[data-callout=gallery] .callout-title,
.json5e-spell .callout[data-callout=gallery] .callout-title {
display: none;
}
body {
--statblock-accent: 201,60,60;
}
.admonition-statblock-parent {
clear: both;
}
.callout[data-callout=statblock] {
--callout-color: var(--statblock-accent);
}
.callout[data-callout=statblock] .callout-title {
line-height: var(--line-height);
}
.callout[data-callout=statblock] .callout-title .callout-title-content {
flex: 2;
font-size: var(--h3-size);
}
.callout[data-callout=statblock] .callout-content > :first-child {
margin-top: 0.5em;
}
.callout[data-callout=statblock] .callout-content > :last-child {
margin-bottom: 0.5em;
}
.callout[data-callout=statblock] .callout-content h1,
.callout[data-callout=statblock] .callout-content h2,
.callout[data-callout=statblock] .callout-content h3 {
font-family: var(--default-font);
font-variant: common-ligatures small-caps;
}
.callout[data-callout=statblock] .callout-content h1 {
font-size: 1.4em;
line-height: 1.4em;
margin: 0;
padding: 0;
}
.callout[data-callout=statblock] .callout-content h2,
.callout[data-callout=statblock] .callout-content h3 {
font-size: 1.2em;
line-height: 1.2em;
padding: 0.5em 0 0 0;
margin-top: 0.2em;
margin-bottom: 0.3em;
border-bottom: 1px solid rgb(var(--statblock-accent));
}
.callout[data-callout=statblock] .callout-content p {
line-height: 1.2em;
margin-block-start: 0.5em;
}
.callout[data-callout=statblock] .callout-content li {
line-height: 1.2em;
margin-block-start: 0.5em;
}
.json5e-background div[src$="#center"],
.json5e-class div[src$="#center"],
.json5e-deity div[src$="#center"],
.json5e-feat div[src$="#center"],
.json5e-item div[src$="#center"],
.json5e-monster div[src$="#center"],
.json5e-note div[src$="#center"],
.json5e-race div[src$="#center"],
.json5e-spell div[src$="#center"] {
text-align: center;
}
.json5e-background div[src$="#symbol"], .json5e-background div[src$="#portrait"], .json5e-background div[src$="#token"], .json5e-background div[src$="#right"],
.json5e-class div[src$="#symbol"],
.json5e-class div[src$="#portrait"],
.json5e-class div[src$="#token"],
.json5e-class div[src$="#right"],
.json5e-deity div[src$="#symbol"],
.json5e-deity div[src$="#portrait"],
.json5e-deity div[src$="#token"],
.json5e-deity div[src$="#right"],
.json5e-feat div[src$="#symbol"],
.json5e-feat div[src$="#portrait"],
.json5e-feat div[src$="#token"],
.json5e-feat div[src$="#right"],
.json5e-item div[src$="#symbol"],
.json5e-item div[src$="#portrait"],
.json5e-item div[src$="#token"],
.json5e-item div[src$="#right"],
.json5e-monster div[src$="#symbol"],
.json5e-monster div[src$="#portrait"],
.json5e-monster div[src$="#token"],
.json5e-monster div[src$="#right"],
.json5e-note div[src$="#symbol"],
.json5e-note div[src$="#portrait"],
.json5e-note div[src$="#token"],
.json5e-note div[src$="#right"],
.json5e-race div[src$="#symbol"],
.json5e-race div[src$="#portrait"],
.json5e-race div[src$="#token"],
.json5e-race div[src$="#right"],
.json5e-spell div[src$="#symbol"],
.json5e-spell div[src$="#portrait"],
.json5e-spell div[src$="#token"],
.json5e-spell div[src$="#right"] {
float: right;
padding-left: 5px;
}
.json5e-background div[src$="#center"] img, .json5e-background div[src$="#right"] img,
.json5e-class div[src$="#center"] img,
.json5e-class div[src$="#right"] img,
.json5e-deity div[src$="#center"] img,
.json5e-deity div[src$="#right"] img,
.json5e-feat div[src$="#center"] img,
.json5e-feat div[src$="#right"] img,
.json5e-item div[src$="#center"] img,
.json5e-item div[src$="#right"] img,
.json5e-monster div[src$="#center"] img,
.json5e-monster div[src$="#right"] img,
.json5e-note div[src$="#center"] img,
.json5e-note div[src$="#right"] img,
.json5e-race div[src$="#center"] img,
.json5e-race div[src$="#right"] img,
.json5e-spell div[src$="#center"] img,
.json5e-spell div[src$="#right"] img {
max-height: 60vh;
}
.json5e-background div[src$="#right"],
.json5e-class div[src$="#right"],
.json5e-deity div[src$="#right"],
.json5e-feat div[src$="#right"],
.json5e-item div[src$="#right"],
.json5e-monster div[src$="#right"],
.json5e-note div[src$="#right"],
.json5e-race div[src$="#right"],
.json5e-spell div[src$="#right"] {
max-width: 50%;
}
.json5e-background div[src$="#token"],
.json5e-class div[src$="#token"],
.json5e-deity div[src$="#token"],
.json5e-feat div[src$="#token"],
.json5e-item div[src$="#token"],
.json5e-monster div[src$="#token"],
.json5e-note div[src$="#token"],
.json5e-race div[src$="#token"],
.json5e-spell div[src$="#token"] {
width: 150px;
}
.json5e-background div[src$="#symbol"], .json5e-background div[src$="#portrait"],
.json5e-class div[src$="#symbol"],
.json5e-class div[src$="#portrait"],
.json5e-deity div[src$="#symbol"],
.json5e-deity div[src$="#portrait"],
.json5e-feat div[src$="#symbol"],
.json5e-feat div[src$="#portrait"],
.json5e-item div[src$="#symbol"],
.json5e-item div[src$="#portrait"],
.json5e-monster div[src$="#symbol"],
.json5e-monster div[src$="#portrait"],
.json5e-note div[src$="#symbol"],
.json5e-note div[src$="#portrait"],
.json5e-race div[src$="#symbol"],
.json5e-race div[src$="#portrait"],
.json5e-spell div[src$="#symbol"],
.json5e-spell div[src$="#portrait"] {
width: 200px;
}
.json5e-background .inline-title,
.json5e-class .inline-title,
.json5e-deity .inline-title,
.json5e-feat .inline-title,
.json5e-item .inline-title,
.json5e-monster .inline-title,
.json5e-names .inline-title,
.json5e-note .inline-title,
.json5e-race .inline-title,
.json5e-spell .inline-title {
display: none;
}
.creature-view-container.workspace-leaf-content {
background-color: var(--background-primary-alt);
}
.creature-view-container.workspace-leaf-content .admonition {
margin-top: 0;
}
+7
View File
@@ -0,0 +1,7 @@
{
"name": "AnuPpuccin",
"version": "1.5.0",
"minAppVersion": "1.6.0",
"author": "Anubis",
"authorUrl": "https://github.com/AnubisNekhet"
}
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
{
"name": "Ink Paper",
"version": "1.1.6",
"minAppVersion": "1.0.0",
"author": "Jayanta Kumar Das",
"authorUrl": "https://github.com/dsvictor"
}
File diff suppressed because one or more lines are too long
+8
View File
@@ -0,0 +1,8 @@
{
"types": {
"aliases": "aliases",
"cssclasses": "multitext",
"tags": "tags",
"dnd_session_date": "date"
}
}
+384
View File
@@ -0,0 +1,384 @@
{
"main": {
"id": "c9fff904774f059d",
"type": "split",
"children": [
{
"id": "c075ec2f46403a36",
"type": "tabs",
"children": [
{
"id": "febd18b14225e58d",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "Politisches Netz.canvas",
"viewState": {
"x": 790.2001362504541,
"y": 172.69953872929727,
"zoom": -2.09251889215392
}
},
"icon": "lucide-layout-dashboard",
"title": "Politisches Netz"
}
},
{
"id": "510227a615a48d33",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Anwesen von Gräfin Emilia"
}
},
{
"id": "a0d4efff83dc9146",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Temp.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Temp"
}
},
{
"id": "6a59ed6d504842cb",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "Neuer Tab"
}
},
{
"id": "2bac251b89290d2c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "2-Organisationen/Konvent der Arkana.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Konvent der Arkana"
}
}
],
"currentTab": 3
}
],
"direction": "vertical"
},
"left": {
"id": "b782d00564592585",
"type": "mobile-drawer",
"children": [
{
"id": "564a5d3e82cd52d8",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "Dateiexplorer"
}
},
{
"id": "74cc836de02ed5e7",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "dfec987264e5f1b0",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "de4107596f8408e6",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
],
"currentTab": 0
},
"right": {
"id": "e461776063ea3e5b",
"type": "mobile-drawer",
"children": [
{
"id": "d044234422db323a",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "02 - Locations/Dungeons/anwesen - AI.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Rückverweise"
}
},
{
"id": "12a82bd9827e334f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "templates/session-template.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links"
}
},
{
"id": "dc9913e36880c6af",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "templates/session-template.md"
},
"icon": "lucide-ghost",
"title": "outline"
}
},
{
"id": "3e3044d4fa0e80a2",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "27b279390297eff7",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "57f8806fba56fdd7",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "b95c3994fb60c7aa",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "c9cfe06c07839ed6",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "8574809f47254264",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "762cb4474e3bb11d",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "026475997a263995",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "13a94722df73ba3e",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "6b0f8b17bd9ab809",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "cbb57d464ab4a491",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "initiative-tracker",
"title": "Initiative Tracker"
}
},
{
"id": "ab3b93ae784ea3b6",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "dices",
"title": "Dice Tray"
}
}
],
"currentTab": 0
},
"left-ribbon": {
"hiddenItems": {
"switcher:Schnellauswahl öffnen": false,
"canvas:Neuen Canvas erstellen": false,
"templates:Vorlage einfügen": false,
"command-palette:Befehlspalette öffnen": false,
"bases:Neue Base erstellen": false,
"obsidian-leaflet-plugin:Open Leaflet Map": false,
"templater-obsidian:Templater": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-5e-statblocks:Open Creature pane": false,
"initiative-tracker:Initiative Tracker Encounter Builder": false
}
},
"active": "6a59ed6d504842cb",
"lastOpenFiles": [
"02 - Locations/Dungeons/Temp.md",
"Attunement Nozizen.md",
"02 - Locations/Dungeons/anwesen - AI.md",
"Knowledge/Wild Magic Table.md",
"02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"Notes & Tracking.md",
"01 - Sessions/Episode 09.md",
"02 - Locations/Dungeons",
"04 - Characters/Dungeons/Gräfin Emilia.md",
"04 - Characters/Dungeons",
"07 - Monster/Kopfgeldjäger.md",
"05 - Gegenstände/0-imgs/blitz-amulet.png",
"Knowledge/Idea-Collection.md",
"Politisches Netz.canvas",
"1-Sessions/Episode 08.md",
"2-Organisationen/Konvent der Arkana.md",
"templates/npc-template.md",
"1-Sessions/Episode 09.md",
"templates/project-template.md",
"9-Projekte/Steine in der Dämmerung.md",
"9-Projekte",
"3-NPCs/Ormur/Finnian Glutfall.md",
"1-Sessions/Episode 07.md",
"1-Sessions/Episode 06.md",
"1-Sessions/Episode 05.md",
"1-Sessions/Episode 04.md",
"1-Sessions/Episode 03.md",
"1-Sessions/Episode 02.md",
"1-Sessions/Episode 01.md",
"3-NPCs/Klagenfels/Der Große Purist.md",
"5-Spieler/Morinio Aerethriel.md",
"Tiefling Cleric - Nova Klee.pdf",
"Die Bibliothek.txt",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_q4vb08qoa9n2xhy2h5u89z.png",
"2-Organisationen/Kjangtoth",
"2-Organisationen/Gerasben",
"Untitled.canvas",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_gg55sa0m9zdvmqonmdoys.png",
"4-Gegenstände/0-imgs/Pasted image 20241130165520.png",
"4-Gegenstände/0-imgs/Pasted image 20241130163130.png",
"4-Gegenstände/0-imgs/blitz-amulet.png",
"Locations",
"Sessions",
"compendium/bestiary/dragon/token/adult-black-dragon.png",
"compendium/bestiary/dragon/token/brass-dragon-wyrmling.png",
"compendium/bestiary/beast/token/plesiosaurus.png",
"compendium/bestiary/beast/token/giant-crab.png",
"LICENSE"
]
}
@@ -0,0 +1,388 @@
{
"main": {
"id": "c9fff904774f059d",
"type": "split",
"children": [
{
"id": "c075ec2f46403a36",
"type": "tabs",
"children": [
{
"id": "febd18b14225e58d",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "Politisches Netz.canvas",
"viewState": {
"x": 790.2001362504541,
"y": 172.69953872929727,
"zoom": -2.09251889215392
}
},
"icon": "lucide-layout-dashboard",
"title": "Politisches Netz"
}
},
{
"id": "510227a615a48d33",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Anwesen von Gräfin Emilia"
}
},
{
"id": "a0d4efff83dc9146",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Temp.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Temp"
}
},
{
"id": "6a59ed6d504842cb",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Notes & Tracking.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Notes & Tracking"
}
},
{
"id": "2bac251b89290d2c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "2-Organisationen/Konvent der Arkana.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Konvent der Arkana"
}
}
],
"currentTab": 3
}
],
"direction": "vertical"
},
"left": {
"id": "b782d00564592585",
"type": "mobile-drawer",
"children": [
{
"id": "564a5d3e82cd52d8",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "Dateiexplorer"
}
},
{
"id": "74cc836de02ed5e7",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "dfec987264e5f1b0",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "de4107596f8408e6",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
],
"currentTab": 0
},
"right": {
"id": "e461776063ea3e5b",
"type": "mobile-drawer",
"children": [
{
"id": "d044234422db323a",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "02 - Locations/Dungeons/anwesen - AI.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Rückverweise"
}
},
{
"id": "12a82bd9827e334f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "templates/session-template.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links"
}
},
{
"id": "dc9913e36880c6af",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "templates/session-template.md"
},
"icon": "lucide-ghost",
"title": "outline"
}
},
{
"id": "3e3044d4fa0e80a2",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "27b279390297eff7",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "57f8806fba56fdd7",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "b95c3994fb60c7aa",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "c9cfe06c07839ed6",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "8574809f47254264",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "762cb4474e3bb11d",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "026475997a263995",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "13a94722df73ba3e",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "6b0f8b17bd9ab809",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "cbb57d464ab4a491",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "initiative-tracker",
"title": "Initiative Tracker"
}
},
{
"id": "ab3b93ae784ea3b6",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "dices",
"title": "Dice Tray"
}
}
],
"currentTab": 0
},
"left-ribbon": {
"hiddenItems": {
"switcher:Schnellauswahl öffnen": false,
"canvas:Neuen Canvas erstellen": false,
"templates:Vorlage einfügen": false,
"command-palette:Befehlspalette öffnen": false,
"bases:Neue Base erstellen": false,
"obsidian-leaflet-plugin:Open Leaflet Map": false,
"templater-obsidian:Templater": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-5e-statblocks:Open Creature pane": false,
"initiative-tracker:Initiative Tracker Encounter Builder": false
}
},
"active": "6a59ed6d504842cb",
"lastOpenFiles": [
"02 - Locations/Dungeons/Temp.md",
"Attunement Nozizen.md",
"02 - Locations/Dungeons/anwesen - AI.md",
"Knowledge/Wild Magic Table.md",
"02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"Notes & Tracking.md",
"01 - Sessions/Episode 09.md",
"02 - Locations/Dungeons",
"04 - Characters/Dungeons/Gräfin Emilia.md",
"04 - Characters/Dungeons",
"07 - Monster/Kopfgeldjäger.md",
"05 - Gegenstände/0-imgs/blitz-amulet.png",
"Knowledge/Idea-Collection.md",
"Politisches Netz.canvas",
"1-Sessions/Episode 08.md",
"2-Organisationen/Konvent der Arkana.md",
"templates/npc-template.md",
"1-Sessions/Episode 09.md",
"templates/project-template.md",
"9-Projekte/Steine in der Dämmerung.md",
"9-Projekte",
"3-NPCs/Ormur/Finnian Glutfall.md",
"1-Sessions/Episode 07.md",
"1-Sessions/Episode 06.md",
"1-Sessions/Episode 05.md",
"1-Sessions/Episode 04.md",
"1-Sessions/Episode 03.md",
"1-Sessions/Episode 02.md",
"1-Sessions/Episode 01.md",
"3-NPCs/Klagenfels/Der Große Purist.md",
"5-Spieler/Morinio Aerethriel.md",
"Tiefling Cleric - Nova Klee.pdf",
"Die Bibliothek.txt",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_q4vb08qoa9n2xhy2h5u89z.png",
"2-Organisationen/Kjangtoth",
"2-Organisationen/Gerasben",
"Untitled.canvas",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_gg55sa0m9zdvmqonmdoys.png",
"4-Gegenstände/0-imgs/Pasted image 20241130165520.png",
"4-Gegenstände/0-imgs/Pasted image 20241130163130.png",
"4-Gegenstände/0-imgs/blitz-amulet.png",
"Locations",
"Sessions",
"compendium/bestiary/dragon/token/adult-black-dragon.png",
"compendium/bestiary/dragon/token/brass-dragon-wyrmling.png",
"compendium/bestiary/beast/token/plesiosaurus.png",
"compendium/bestiary/beast/token/giant-crab.png",
"LICENSE"
]
}
@@ -0,0 +1,388 @@
{
"main": {
"id": "c9fff904774f059d",
"type": "split",
"children": [
{
"id": "c075ec2f46403a36",
"type": "tabs",
"children": [
{
"id": "febd18b14225e58d",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "Politisches Netz.canvas",
"viewState": {
"x": 790.2001362504541,
"y": 172.69953872929727,
"zoom": -2.09251889215392
}
},
"icon": "lucide-layout-dashboard",
"title": "Politisches Netz"
}
},
{
"id": "510227a615a48d33",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Anwesen von Gräfin Emilia"
}
},
{
"id": "a0d4efff83dc9146",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02 - Locations/Dungeons/Temp.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Temp"
}
},
{
"id": "6a59ed6d504842cb",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Notes & Tracking.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Notes & Tracking"
}
},
{
"id": "2bac251b89290d2c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "2-Organisationen/Konvent der Arkana.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Konvent der Arkana"
}
}
],
"currentTab": 3
}
],
"direction": "vertical"
},
"left": {
"id": "b782d00564592585",
"type": "mobile-drawer",
"children": [
{
"id": "564a5d3e82cd52d8",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "Dateiexplorer"
}
},
{
"id": "74cc836de02ed5e7",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "dfec987264e5f1b0",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "de4107596f8408e6",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
],
"currentTab": 0
},
"right": {
"id": "e461776063ea3e5b",
"type": "mobile-drawer",
"children": [
{
"id": "d044234422db323a",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "02 - Locations/Dungeons/anwesen - AI.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Rückverweise"
}
},
{
"id": "12a82bd9827e334f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "templates/session-template.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links"
}
},
{
"id": "dc9913e36880c6af",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "templates/session-template.md"
},
"icon": "lucide-ghost",
"title": "outline"
}
},
{
"id": "3e3044d4fa0e80a2",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "27b279390297eff7",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "57f8806fba56fdd7",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "b95c3994fb60c7aa",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "c9cfe06c07839ed6",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "8574809f47254264",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "762cb4474e3bb11d",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "026475997a263995",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "13a94722df73ba3e",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "6b0f8b17bd9ab809",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "cbb57d464ab4a491",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "initiative-tracker",
"title": "Initiative Tracker"
}
},
{
"id": "ab3b93ae784ea3b6",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "dices",
"title": "Dice Tray"
}
}
],
"currentTab": 0
},
"left-ribbon": {
"hiddenItems": {
"switcher:Schnellauswahl öffnen": false,
"canvas:Neuen Canvas erstellen": false,
"templates:Vorlage einfügen": false,
"command-palette:Befehlspalette öffnen": false,
"bases:Neue Base erstellen": false,
"obsidian-leaflet-plugin:Open Leaflet Map": false,
"templater-obsidian:Templater": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-5e-statblocks:Open Creature pane": false,
"initiative-tracker:Initiative Tracker Encounter Builder": false
}
},
"active": "6a59ed6d504842cb",
"lastOpenFiles": [
"02 - Locations/Dungeons/Temp.md",
"Attunement Nozizen.md",
"02 - Locations/Dungeons/anwesen - AI.md",
"Knowledge/Wild Magic Table.md",
"02 - Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"Notes & Tracking.md",
"01 - Sessions/Episode 09.md",
"02 - Locations/Dungeons",
"04 - Characters/Dungeons/Gräfin Emilia.md",
"04 - Characters/Dungeons",
"07 - Monster/Kopfgeldjäger.md",
"05 - Gegenstände/0-imgs/blitz-amulet.png",
"Knowledge/Idea-Collection.md",
"Politisches Netz.canvas",
"1-Sessions/Episode 08.md",
"2-Organisationen/Konvent der Arkana.md",
"templates/npc-template.md",
"1-Sessions/Episode 09.md",
"templates/project-template.md",
"9-Projekte/Steine in der Dämmerung.md",
"9-Projekte",
"3-NPCs/Ormur/Finnian Glutfall.md",
"1-Sessions/Episode 07.md",
"1-Sessions/Episode 06.md",
"1-Sessions/Episode 05.md",
"1-Sessions/Episode 04.md",
"1-Sessions/Episode 03.md",
"1-Sessions/Episode 02.md",
"1-Sessions/Episode 01.md",
"3-NPCs/Klagenfels/Der Große Purist.md",
"5-Spieler/Morinio Aerethriel.md",
"Tiefling Cleric - Nova Klee.pdf",
"Die Bibliothek.txt",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_q4vb08qoa9n2xhy2h5u89z.png",
"2-Organisationen/Kjangtoth",
"2-Organisationen/Gerasben",
"Untitled.canvas",
"3-NPCs/0-imgs/ReactNativeBlobUtilTmp_gg55sa0m9zdvmqonmdoys.png",
"4-Gegenstände/0-imgs/Pasted image 20241130165520.png",
"4-Gegenstände/0-imgs/Pasted image 20241130163130.png",
"4-Gegenstände/0-imgs/blitz-amulet.png",
"Locations",
"Sessions",
"compendium/bestiary/dragon/token/adult-black-dragon.png",
"compendium/bestiary/dragon/token/brass-dragon-wyrmling.png",
"compendium/bestiary/beast/token/plesiosaurus.png",
"compendium/bestiary/beast/token/giant-crab.png",
"LICENSE"
]
}
+474
View File
@@ -0,0 +1,474 @@
{
"main": {
"id": "9851207759986667",
"type": "split",
"children": [
{
"id": "b5a9c923665d1de6",
"type": "tabs",
"dimension": 44.399770246984495,
"children": [
{
"id": "a0ec780227af5ca1",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02-World/Locations/Dungeons/Temp.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Temp"
}
},
{
"id": "7863bc44ba45605f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02-World/Locations/Dungeons/anwesen - AI.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "anwesen - AI"
}
},
{
"id": "343fb22e6ab9047b",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02-World/Locations/Dungeons/Anwesen von Gräfin Emilia.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Anwesen von Gräfin Emilia"
}
},
{
"id": "6353ff3f967f7e24",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02-World/Locations/Dungeons/Anwesen Voss (Konsolidiert).md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Anwesen Voss (Konsolidiert)"
}
},
{
"id": "1d758abb0a2474fe",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "05-Ideas/input.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "input"
}
},
{
"id": "6a2cc4e96ed9765f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "01-Sessions/Episode 12.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Episode 12"
}
}
],
"currentTab": 5
},
{
"id": "a3d0f87a864a26fb",
"type": "tabs",
"dimension": 29.236071223434806,
"children": [
{
"id": "91d189c6ca684e19",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "00-Inbox/Notes & Tracking.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Notes & Tracking"
}
},
{
"id": "ea6ba5c9106ea2cb",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "00-Inbox/18.08.2026.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "18.08.2026"
}
},
{
"id": "5118d953a9bf237d",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "02-World/Items/Attunement Nozizen.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Attunement Nozizen"
}
}
],
"currentTab": 1
},
{
"id": "83beabfb275dc76f",
"type": "tabs",
"dimension": 26.3641585295807,
"children": [
{
"id": "72619048f787decc",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "06-Assets/Tables/DnD NPC Name Tables.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "DnD NPC Name Tables"
}
},
{
"id": "1d969bd16153ec95",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "06-Assets/Tables/Wild Magic Table.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Wild Magic Table"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "86c4e478c06bec1b",
"type": "split",
"children": [
{
"id": "dbd37591eaa90f60",
"type": "tabs",
"children": [
{
"id": "719d8de75f73485d",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "1d85427a43493b3d",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "invisibi",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "4cf26328eb8cc9ba",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 230.8333396911621
},
"right": {
"id": "e6f90bc50b380000",
"type": "split",
"children": [
{
"id": "f77a620be29bf4bd",
"type": "tabs",
"children": [
{
"id": "c5ea24db0e8ebb1b",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "compendium/backgrounds/acolyte.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for acolyte"
}
},
{
"id": "49f78af3b3162732",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "compendium/backgrounds/acolyte.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from acolyte"
}
},
{
"id": "bd438f07621b0108",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "a6fcf3963c383057",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {},
"icon": "lucide-ghost",
"title": "advanced-tables-toolbar"
}
},
{
"id": "f809319cf58be4f3",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "96ef80845b993bd3",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "ce84509fbd7eaee9",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "e3f649aeb1007761",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "cec2e63fe09a18de",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "40ebd518f1b68fea",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "4c571ca882d40aff",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "initiative-tracker",
"title": "Initiative Tracker"
}
},
{
"id": "17989fc989eeb165",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "dices",
"title": "Dice Tray"
}
},
{
"id": "0a361b407e40ebe3",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "04-Entities/NPCs/Bertram.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-ghost",
"title": "outline"
}
}
],
"currentTab": 3
}
],
"direction": "horizontal",
"width": 434.5,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"bases:Create new base": false,
"switcher:Open quick switcher": false,
"canvas:Create new canvas": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"obsidian-leaflet-plugin:Open Leaflet Map": false,
"templater-obsidian:Templater": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-5e-statblocks:Open Creature pane": false,
"initiative-tracker:Initiative Tracker Encounter Builder": false
}
},
"active": "6a2cc4e96ed9765f",
"lastOpenFiles": [
"01-Sessions/Episode 13.md",
"05-Ideas/input.md",
"AGENTS.md",
"03-Story/Quests/supplements/Tagebuch des Marquis.md",
"03-Story/Quests/Quest Anwesen Voss.md",
"03-Story/Quests/supplements/Hintergrund des Marquis.md",
"03-Story/Quests/supplements",
"01-Sessions/Episode 12.md",
"Templates/idea-template.md",
"03-Story/Quests",
"07-Compendium/backgrounds 1/backgrounds.md",
"03-Story/History/Mykori.md",
"03-Story/History/Chaosmagie.md",
"03-Story/History/Bruch des Arkanen Geflechts.md",
"04-Entities/Organizations/Die Wiedergeburt der Dämmerung.md",
"Zirkel der Ordnung.md",
"03-Story/Arcs/Drow Verrat.md",
"03-Story/Arcs/Die Wiederherstellung des Kataclyst.md",
"03-Story/History/Gildengründung.md",
"06-Assets/Maps/map.png",
"03-Story/History/Organisationsgründung.md",
"03-Story/Campaign Overview.md",
"Templates/quest-template.md",
"03-Story/Background-Story.md",
"03-Story/Arcs/Steine in der Dämmerung.md",
"03-Story/Arcs/Machenschaften der Bruderschaft.md",
"03-Story/Arcs/Die Geschichte der Alten.md",
"03-Story/Arcs/Background Story.md",
"03-Story/History/Zeitstrahl.md",
"04-Entities/NPCs/Dungeons/Anwesen",
"04-NPCs",
"06-Assets/Tables",
"08-Archiv",
"03-Story/History",
"07-Compendium/items/0-imgs/blitz-amulet.png",
"07-Compendium/items/0-imgs/Pasted image 20241130165520.png",
"07-Compendium/items/0-imgs/Pasted image 20241130163130.png",
"07-Compendium/items/0-imgs",
"07-Compendium/bestiary/undead/token/zombie.png",
"07-Compendium/bestiary/undead/token/wraith.png",
"07-Compendium/bestiary/undead/token/will-o-wisp.png",
"07-Compendium/bestiary/undead/token/wight.png",
"07-Compendium/bestiary/undead/token/vampire.png",
"07-Compendium/bestiary/undead/token/warhorse-skeleton.png",
"07-Compendium/bestiary/undead/token",
"07-Compendium/bestiary/plant/token",
"00-Inbox/Politisches Netz.canvas",
"Politisches Netz.canvas"
]
}
@@ -0,0 +1,322 @@
{
"main": {
"id": "9851207759986667",
"type": "split",
"children": [
{
"id": "4c051a209788df26",
"type": "tabs",
"dimension": 67.41957563312799,
"children": [
{
"id": "65d49edd7717e3d7",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "Politisches Netz.canvas",
"viewState": {
"x": -975.4325947848386,
"y": 476.11046490977446,
"zoom": -0.9999999999999999
}
},
"icon": "lucide-layout-dashboard",
"title": "Politisches Netz"
}
}
]
},
{
"id": "b5a9c923665d1de6",
"type": "tabs",
"dimension": 32.580424366872,
"children": [
{
"id": "efcde77f2cd5ca00",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "New tab"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "86c4e478c06bec1b",
"type": "split",
"children": [
{
"id": "dbd37591eaa90f60",
"type": "tabs",
"children": [
{
"id": "719d8de75f73485d",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "1d85427a43493b3d",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "invisibi",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "4cf26328eb8cc9ba",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 211.63337326049805
},
"right": {
"id": "e6f90bc50b380000",
"type": "split",
"children": [
{
"id": "f77a620be29bf4bd",
"type": "tabs",
"children": [
{
"id": "c5ea24db0e8ebb1b",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "compendium/backgrounds/acolyte.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for acolyte"
}
},
{
"id": "49f78af3b3162732",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "compendium/backgrounds/acolyte.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from acolyte"
}
},
{
"id": "bd438f07621b0108",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "a6fcf3963c383057",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {},
"icon": "lucide-ghost",
"title": "advanced-tables-toolbar"
}
},
{
"id": "f809319cf58be4f3",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "96ef80845b993bd3",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "ce84509fbd7eaee9",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "e3f649aeb1007761",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "cec2e63fe09a18de",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "lucide-ghost",
"title": "initiative-tracker-view"
}
},
{
"id": "40ebd518f1b68fea",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "lucide-ghost",
"title": "DICE_ROLLER_VIEW"
}
},
{
"id": "4c571ca882d40aff",
"type": "leaf",
"state": {
"type": "initiative-tracker-view",
"state": {},
"icon": "initiative-tracker",
"title": "Initiative Tracker"
}
},
{
"id": "17989fc989eeb165",
"type": "leaf",
"state": {
"type": "DICE_ROLLER_VIEW",
"state": {},
"icon": "dices",
"title": "Dice Tray"
}
}
],
"currentTab": 3
}
],
"direction": "horizontal",
"width": 434.5,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"bases:Create new base": false,
"switcher:Open quick switcher": false,
"canvas:Create new canvas": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"obsidian-leaflet-plugin:Open Leaflet Map": false,
"templater-obsidian:Templater": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-5e-statblocks:Open Creature pane": false,
"initiative-tracker:Initiative Tracker Encounter Builder": false
}
},
"active": "719d8de75f73485d",
"lastOpenFiles": [
"04-Entities/Organizations/Untitled.md",
"04-Entities/Organizations/Aristokratie in Gerasben.md",
"04-Entities/Organizations/Orden der Reinheit.md",
"04-Entities/Organizations/Kreis der Wiederherstellung.md",
"04-Entities/Organizations/Konvent der Arkana.md",
"04-Entities/Organizations/KdA - Kollegium der Mysterien.md",
"04-Entities/Organizations/KdA - Gilde der Ereknntnis.md",
"04-Entities/Organizations/Bruderschaft des Schicksals.md",
"04-Entities/Organizations/Allianz der Harmonie.md",
"04-Entities/Organizations/AdH - Zirkel der Ordnung.md",
"04-Entities/Organizations/AdH - Garde der Gerechtigkeit.md",
"02-World/Items/Stein der Heilung.md",
"02-World/Items/Kugel des Gleichgewichts.md",
"02-World/Items/Blitz-Amulet.md",
"02-World/Items/Kälte-Amulet.md",
"02-World/Items/Halskette der Beschwörung.md",
"02-World/Items/Diadem der Dämmerung.md",
"02-World/Items/Luft-Amulet.md",
"02-World/Items/Feuer-Amulet.md",
"06-Assets/Images/Character_Images/char.png",
"06-Assets/Images/Character_Images/ReactNativeBlobUtilTmp_q4vb08qoa9n2xhy2h5u89z.png",
"06-Assets/Images/Character_Images/ReactNativeBlobUtilTmp_gg55sa0m9zdvmqonmdoys.png",
"06-Assets/Images/Character_Images/Pasted image 20241130213431.png",
"06-Assets/Images/Character_Images/Pasted image 20241130204928.png",
"06-Assets/Images/Character_Images/Pasted image 20241130201840.png",
"06-Assets/Images/Character_Images/Pasted image 20241130191810.png",
"06-Assets/Images/Character_Images/Pasted image 20241130175827.png",
"06-Assets/Images/Character_Images",
"04-Entities/NPCs/Zarathar.md",
"04-Entities/NPCs/Malekir.md",
"04-Entities/Characters/Player_Characters/Tiefling Cleric - Nova Klee.pdf",
"04-Entities/Characters/Player_Characters/Nova Klee.md",
"04-Entities/Characters/Player_Characters/Aerilion.md",
"04-Entities/Characters/Player_Characters/Morinio Aerethriel.md",
"04-Entities/Characters/Player_Characters",
"04-Entities/NPCs/Ormur/Seraphina Nox.md",
"04-Entities/NPCs/Ormur/Olir Armursen.md",
"04-Entities/NPCs/Ormur",
"04-Entities/NPCs/Klagenfels",
"04-Entities/NPCs/Kjangtoth",
"04-Entities/NPCs/Gerasben",
"04-Entities/NPCs/Feridge",
"04-Entities/NPCs/Dungeons",
"04-Entities/NPCs/Bandon",
"06-Assets/Maps/map.png",
"05-Ideas/Compendium/bestiary/undead/token/zombie.png",
"Politisches Netz.canvas"
]
}
+552
View File
@@ -0,0 +1,552 @@
# Multi-Model DnD Agent System - Complete Setup
This document describes the **complete multi-model agent orchestration system** for your DnD campaign vault, optimized for cost-effectiveness and specialized capabilities.
## 🎯 System Architecture
The system implements a **three-tier architecture** with clear role separation:
```
┌─────────────────────────────────────────────────────────────────────┐
│ TIER 1: ORCHESTRATOR │
│ (Mistral Medium - 2604) │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ • Analyzes user requests in campaign context ││
│ │ • Delegates concrete steps to Tier 2 workers ││
│ │ • Requests creative ideas from Tier 3 (single API call) ││
│ │ • Synthesizes results and presents to user ││
│ │ • Coordinates all multi-agent workflows ││
│ └─────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ TIER 2: WORKERS │ │ TIER 2: WORKERS │ │ TIER 2: WORKERS │
│ (Mistral Small - 2604) │ │ (Mistral Small - 2604) │ │ (Mistral Small - 2604) │
│ • Session Prep Worker │ │ • Implementer Worker │ │ • Generator Worker │
│ • Analyzes sessions │ │ • Extracts entities │ │ • Creates content │
│ • Reviews story arcs │ │ • Creates files │ │ • Applies templates │
│ • Generates prep docs │ │ • Links content │ │ • Links to existing │
└─────────────────────────┘ └─────────────────────┘ └─────────────────────┘
┌───────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ TIER 3: CREATIVE │
│ (Claude Opus - 4.5) │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ • Generates creative ideas ONLY ││
│ │ • Single API call per request (cost optimization) ││
│ │ • Minimal context provided (token optimization) ││
│ │ • Returns concise concepts only (no explanation) ││
│ │ • ZERO tool access (security isolation) ││
│ └─────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘
```
## 📊 Cost Optimization Strategy
| Model | Usage | Cost Level | Purpose |
|-------|-------|------------|---------|
| Mistral Medium | Orchestrator (1 instance) | Medium | Coordination, reasoning, synthesis |
| Mistral Small | Workers (4 instances) | Low | All concrete execution |
| Claude Opus | Creative (1 instance) | High | Creative ideas only |
**Estimated Savings**: ~70-80% compared to using Claude Opus for everything
**Token Usage Pattern**:
- 60%: Mistral Small (workers doing the heavy lifting)
- 25%: Mistral Medium (orchestrator coordinating)
- 15%: Claude Opus (creative ideas only when needed)
---
## 🤖 Agent Specifications
### Tier 1: Orchestrator
**Agent**: `dnd-orchestrator`
- **Model**: `mistral/mistral-medium-2604`
- **Mode**: `primary`
- **Temperature**: 0.3 (balanced reasoning)
- **Color**: Brown (#8B4513)
- **File**: `.opencode/agents/dnd-orchestrator.md`
**Capabilities**:
- ✅ Full tool access (read, write, glob, grep, edit, bash)
- ✅ Full skill access (all dnd-*)
- ✅ Can delegate to all worker agents (`dnd-worker-*`)
- ✅ Can request from creative agent (`dnd-creative`) with confirmation
- ✅ Can use question tool for user input
- ❌ Cannot access external resources (webfetch denied)
**Responsibilities**:
1. Understand user requests in full campaign context
2. Break down complex tasks into delegatable steps
3. Request creative ideas from creative agent when needed
4. Implement creative ideas using worker agents
5. Synthesize all results and present to user
6. Ensure campaign consistency across all work
---
### Tier 2: Worker Agents
All workers use `mistral/mistral-small-2604` for cost-effective execution.
#### 1. dnd-worker-session-prep
- **Temperature**: 0.2 (very focused)
- **Color**: Green (#228B22)
- **File**: `.opencode/agents/dnd-worker-session-prep.md`
**Handles**:
- Analyzing session notes and extracting key information
- Reviewing active story arcs and identifying threads
- Checking NPC and location statuses
- Generating session prep document sections
- Creating preparation checklists
**Permissions**:
- ✅ Full tool access (read, write, glob, grep, edit, bash)
- ✅ Full skill access (all dnd-*)
- ❌ CANNOT delegate to other agents (task: deny)
- ❌ CANNOT access external resources
---
#### 2. dnd-worker-implementer
- **Temperature**: 0.2 (very focused)
- **Color**: Green (#228B22)
- **File**: `.opencode/agents/dnd-worker-implementer.md`
**Handles**:
- Parsing session notes for entities and events
- Extracting NPCs, locations, items, organizations
- Creating new content files from extracted information
- Linking content with wiki links
- Moving files between directories
- Validating content structure
**Permissions**: Same as session-prep worker
---
#### 3. dnd-worker-generator
- **Temperature**: 0.3 (slightly creative)
- **Color**: Green (#228B22)
- **File**: `.opencode/agents/dnd-worker-generator.md`
**Handles**:
- Creating new locations with detailed descriptions
- Creating new NPCs with full profiles
- Creating new quests and story arcs
- Creating new items and equipment
- Applying templates and metadata
- Linking new content to existing vault elements
**Permissions**: Same as other workers
---
#### 4. dnd-worker-organizer
- **Temperature**: 0.1 (very focused)
- **Color**: Green (#228B22)
- **File**: `.opencode/agents/dnd-worker-organizer.md`
**Handles**:
- Validating vault structure against standards
- Checking and repairing wiki links
- Identifying duplicate content
- Finding orphaned files
- Cleaning up Inbox directory
- Generating vault health reports
**Permissions**: Same as other workers
---
### Tier 3: Creative Agent
**Agent**: `dnd-creative`
- **Model**: `anthropic/claude-opus-4.5`
- **Mode**: `subagent`
- **Temperature**: 1.0 (maximum creativity)
- **Color**: Purple (#9370DB)
- **File**: `.opencode/agents/dnd-creative.md`
**Capabilities**:
- ✅ Generate creative DnD concepts
- ✅ Return concise ideas (single sentences)
- ✅ Single API call per request
- ❌ CANNOT access ANY tools (all permissions: deny)
- ❌ CANNOT use any skills (skill: deny)
- ❌ CANNOT delegate to other agents (task: deny)
- ❌ CANNOT ask questions (question: deny)
- ❌ CANNOT fetch external resources (webfetch: deny)
**Responsibilities**:
1. Generate creative ideas when requested by orchestrator
2. Provide ONLY the ideas (no explanation, no implementation)
3. Use minimal context (orchestrator provides brief context)
4. Respond in ONE message (single API call)
5. Return ideas in German language
**Response Format**:
```
Idea 1 as a single concise sentence.
Idea 2 as a single concise sentence.
Idea 3 as a single concise sentence.
```
---
## 🔄 Workflow Examples
### Example 1: Session Preparation
**User Request**: "Prepare materials for next session"
**Workflow**:
```
1. User → dnd-orchestrator (Medium)
"Prepare materials for next session"
2. dnd-orchestrator analyzes campaign state
- Reads last session notes
- Reviews active story arcs
- Checks current campaign status
3. dnd-orchestrator delegates to workers (Small):
@dnd-worker-session-prep "Analyze Session 15 and identify unresolved plot hooks"
@dnd-worker-session-prep "Review active quests and their status"
4. dnd-orchestrator requests creative input (Opus):
@dnd-creative "Generate 3 creative session hook ideas for campaign with stolen amulet"
→ Returns: 3 single-sentence ideas
5. dnd-orchestrator implements best idea using workers (Small):
@dnd-worker-generator "Create session prep document with selected hook"
6. dnd-orchestrator synthesizes all results
→ Presents comprehensive session prep to user
```
**Token Usage**:
- Medium: ~500 tokens (orchestration)
- Small: ~2000 tokens (worker execution)
- Opus: ~50 tokens (creative ideas)
- **Total**: ~2550 tokens (optimized)
---
### Example 2: Story Implementation
**User Request**: "Process session notes from Session 15"
**Workflow**:
```
1. User → dnd-orchestrator (Medium)
"Process session notes from 01-Sessions/Session 15 - Title.md"
2. dnd-orchestrator reads session notes
3. dnd-orchestrator delegates to workers (Small):
@dnd-worker-implementer "Extract all NPCs and create/update files"
@dnd-worker-implementer "Extract all locations and create/update files"
@dnd-worker-implementer "Extract quest progress and update arc files"
@dnd-worker-implementer "Link all new content with wiki links"
4. dnd-orchestrator verifies all work
5. dnd-orchestrator presents results to user
```
**Token Usage**:
- Medium: ~300 tokens (orchestration)
- Small: ~3000 tokens (worker execution)
- Opus: 0 tokens (no creative needed)
- **Total**: ~3300 tokens
---
### Example 3: Content Creation
**User Request**: "Create a new city for the Sword Coast"
**Workflow**:
```
1. User → dnd-orchestrator (Medium)
"Create a new city for the Sword Coast region"
2. dnd-orchestrator analyzes existing Sword Coast content
3. dnd-orchestrator requests creative input (Opus):
@dnd-creative "Generate 3 unique city concepts for Sword Coast region"
→ Returns: 3 single-sentence concepts
4. User selects: "Eldrin, a port city with hidden Underdark entrance"
5. dnd-orchestrator delegates to workers (Small):
@dnd-worker-generator "Create detailed city file for Eldrin"
@dnd-worker-generator "Generate 3 relevant NPCs for Eldrin"
@dnd-worker-generator "Create 2 quest hooks connected to Eldrin"
@dnd-worker-implementer "Link all new content together"
6. dnd-orchestrator verifies consistency
7. dnd-orchestrator presents results to user
```
**Token Usage**:
- Medium: ~400 tokens (orchestration)
- Small: ~2500 tokens (worker execution)
- Opus: ~30 tokens (creative ideas)
- **Total**: ~2930 tokens
---
## 📋 Configuration Files
### 1. opencode.json
Main configuration file with all agent definitions:
```json
{
"agent": {
"dnd-orchestrator": {
"model": "mistral/mistral-medium-2604",
"mode": "primary",
"temperature": 0.3,
"task": {
"dnd-worker-*": "allow",
"dnd-creative": "ask"
}
},
"dnd-worker-*": {
"model": "mistral/mistral-small-2604",
"mode": "subagent",
"task": "deny"
},
"dnd-creative": {
"model": "anthropic/claude-opus-4.5",
"mode": "subagent",
"permission": {
"read": "deny",
"write": "deny",
"task": "deny",
"skill": "deny"
}
}
}
}
```
### 2. Agent Definition Files
Each agent has a markdown file in `.opencode/agents/`:
- `dnd-orchestrator.md` - Primary coordinator
- `dnd-worker-session-prep.md` - Session preparation worker
- `dnd-worker-implementer.md` - Story implementation worker
- `dnd-worker-generator.md` - Content generation worker
- `dnd-worker-organizer.md` - Vault organization worker
- `dnd-creative.md` - Creative ideas agent
---
## 🚀 Usage Instructions
### Starting a Session
1. **Load the orchestrator**:
```
@dnd-orchestrator [your request]
```
2. **Let it coordinate**: The orchestrator will:
- Analyze your request
- Delegate to appropriate workers
- Request creative ideas if needed
- Synthesize and present results
### Direct Agent Invocation
You can also invoke agents directly:
```
# For session preparation
@dnd-worker-session-prep Analyze Session 15 and identify plot hooks
# For story implementation
@dnd-worker-implementer Extract NPCs from Session 15 notes
# For content generation
@dnd-worker-generator Create a new NPC file for Veylin
# For vault organization
@dnd-worker-organizer Validate all wiki links in 01-Sessions/
# For creative ideas (orchestrator will usually handle this)
@dnd-creative Generate 3 quest ideas for the Cult of the Eclipse
```
---
## 🛡️ Security & Safety Features
### Creative Agent Isolation
- **Zero tool access**: Cannot read, write, or modify any files
- **Zero skill access**: Cannot use any skills or templates
- **Zero delegation**: Cannot invoke other agents
- **Pure generation**: Only provides creative ideas, never implements
### Worker Agent Restrictions
- **No delegation**: Workers cannot invoke other agents
- **Controlled access**: Only have permissions they need
- **Focused scope**: Each worker has specific, limited responsibilities
### Orchestrator Control
- **Single point of coordination**: Only orchestrator can manage multi-agent workflows
- **Permission boundaries**: Orchestrator has full access but follows delegation rules
- **User confirmation**: Creative agent requests require confirmation
---
## 📊 Performance Metrics
### Response Times
| Agent | Typical Response Time | Complexity |
|-------|----------------------|------------|
| Orchestrator | 5-10 seconds | High |
| Workers | 2-5 seconds | Medium |
| Creative | 3-8 seconds | Low (simple generation) |
### Cost Comparison
| Approach | Estimated Cost | Quality |
|----------|---------------|---------|
| All Opus | $$$$$ | ⭐⭐⭐⭐⭐ |
| All Medium | $$$ | ⭐⭐⭐⭐ |
| **This System** | **$$** | **⭐⭐⭐⭐⭐** |
| All Small | $ | ⭐⭐ |
---
## 🎯 Best Practices
### For Users
1. **Start with orchestrator** for complex tasks
2. **Provide clear context** for better results
3. **Review creative options** before selection
4. **Trust the delegation** - workers are optimized for their tasks
5. **Use direct invocation** for simple, focused tasks
### For Orchestrator
1. **Analyze first** - Understand the full context
2. **Delegate appropriately** - Use the right worker for each task
3. **Minimize creative context** - Give creative agent only what it needs
4. **Verify all work** - Check worker results before presenting
5. **Synthesize clearly** - Present organized, ready-to-use results
### For Workers
1. **Follow instructions exactly** - Do only what you're asked
2. **Use templates** - Apply appropriate skill templates
3. **Link everything** - Always use wiki links for references
4. **Validate work** - Check your results before returning
5. **Be concise** - Return only what was requested
### For Creative Agent
1. **Ideas only** - Never explain or implement
2. **Single sentences** - Each idea as one concise sentence
3. **One message** - Respond in a single API call
4. **German language** - All ideas in German
5. **No questions** - Never ask for clarification
---
## 🔧 Setup Requirements
### Model Access
You need access to these models:
- **Mistral Medium 2604** (for orchestrator)
- **Mistral Small 2604** (for all workers)
- **Claude Opus 4.5** (for creative ideas)
### Configuration
1. Set up provider credentials in OpenCode
2. Verify models are available: `/models`
3. Test each agent individually
4. Start with simple tasks to verify workflow
### MCP Servers (Optional but Recommended)
Configure these verified MCP servers for enhanced capabilities:
- `dnd-5e-mcp` - DnD 5e content via Open5e API
- `obsidian-mcp` - Direct vault access
- `gamemaster-mcp` - Campaign management
---
## 📁 File Structure
```
.opencode/
├── agents/ # Agent definitions
│ ├── dnd-orchestrator.md # Primary coordinator (Medium)
│ ├── dnd-worker-session-prep.md # Session prep worker (Small)
│ ├── dnd-worker-implementer.md # Implementation worker (Small)
│ ├── dnd-worker-generator.md # Content generation worker (Small)
│ ├── dnd-worker-organizer.md # Vault organization worker (Small)
│ ├── dnd-creative.md # Creative ideas agent (Opus)
│ └── README.md # Agent documentation
├── skills/ # Skill definitions (unchanged)
│ ├── dnd-session-manager/
│ ├── dnd-npc-creator/
│ ├── dnd-location-builder/
│ ├── ...
│ └── README.md
├── opencode.json # Main configuration
└── MULTI_MODEL_SETUP.md # This file
```
---
## 🆘 Troubleshooting
### Orchestrator Issues
- **Not delegating**: Check task permissions in opencode.json
- **Not synthesizing**: Verify worker responses are being received
- **Creative not responding**: Check that creative agent is not disabled
### Worker Issues
- **Permission denied**: Check agent permissions in opencode.json
- **Not executing**: Verify worker has required tool access
- **Delegating**: Workers should NOT delegate - check configuration
### Creative Agent Issues
- **Explaining ideas**: Remind agent to return ONLY ideas
- **Multiple messages**: Check temperature and instructions
- **Not creative**: Verify model is Claude Opus 4.5
---
## 📚 Additional Documentation
- **Agent Details**: `.opencode/agents/README.md` - Comprehensive agent documentation
- **Skills**: `.opencode/skills/README.md` - Skill definitions and usage
- **OpenCode Docs**: [opencode.ai/docs/agents/](https://opencode.ai/docs/agents/) - Official agent documentation
---
## 🎉 Summary
This **multi-model agent system** provides:
**Optimal cost-effectiveness** - Uses cheaper models for most work
**Specialized capabilities** - Each agent optimized for its role
**Clear separation of concerns** - Orchestrator coordinates, workers execute, creative inspires
**Security isolation** - Creative agent has zero access to tools/files
**Scalable architecture** - Easy to add more workers or agents
**Campaign-optimized** - Designed specifically for DnD vault management
**Result**: High-quality DnD campaign management at a fraction of the cost of using premium models for everything.
+69
View File
@@ -0,0 +1,69 @@
# Agent-Infrastruktur der Kampagne „Morgendämmerung"
Diese Agents sind **Workflows**: mehrschrittige Abläufe, die konkrete Arbeit an Sub-Agents
delegieren. Standards stehen in `AGENTS.md`, wiederkehrende Einzelaufgaben in den Skills.
## Architektur
```
┌──────────────────────────────┐
│ dnd-orchestrator (Router) │ DeepSeek V4 Pro
│ erkennt den Use Case │
└──────────────┬───────────────┘
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ dnd-session-lead │ │ dnd-content-lead │ │ dnd-lore-lead │
│ Session-Workflow │ │ Content-Workflow │ │ Pflege-Workflow │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
└───────────────┬───────┴───────────────┬───────┘
▼ ▼
┌───────────────────────────────┐ ┌──────────────────────┐
│ General Sub-Agents (Flash) │ │ dnd-creative │
│ reader · writer · organizer │ │ (nur Ideen) │
└───────────────────────────────┘ └──────────────────────┘
```
## Die drei Workflows
### 1. `dnd-session-lead` — Session-Notizen verarbeiten
- Rohe Notizen aus `00-Inbox/` (Datum im Dateinamen oder Inhalt) finden.
- Passendes Prep (`01-Sessions/Episode XX.md`) zuordnen.
- **Sitzungsbericht** erstellen: vorheriges Prep + Notizen kombinieren.
- **Nächste Session** vorbereiten (`Episode XX+1.md`) auf Basis der offenen
Quests, Charaktere und Handlungsstränge.
### 2. `dnd-content-lead` — Neues erfinden
- Neue NSCs / Quests / Orte / Items / Organisationen.
- Kontext: Welthistorie (`03-Story/History/`), bisherige Story & Spieler-Erlebnisse
(`01-Sessions/`, `04-Entities/Characters/`) und **Ideen aus `05-Ideas/`**.
- Erstellt Inhalte über den `dnd-worker-writer` und verlinkt maximal.
### 3. `dnd-lore-lead` — Vault-Pflege
- Bestehende Elemente ausbauen (Orte, NSCs, Quests …).
- Neue Verbindungen zwischen Entitäten schaffen.
- Ereignis-Stream (`03-Story/Events/`) und Zeitstrahl (`03-Story/History/Zeitstrahl.md`) pflegen.
- Struktur-/Link-Hygiene.
## Sub-Agents
| Agent | Modell | Rolle |
|-------|--------|-------|
| `dnd-worker-reader` | DeepSeek V4 Flash | Read-only Recherche; liefert Pfade + Links |
| `dnd-worker-writer` | DeepSeek V4 Flash | Dateien anlegen/editieren (Templates + Skills), verlinken |
| `dnd-worker-organizer` | DeepSeek V4 Flash | Struktur, Links, Ereignisse, Zeitstrahl |
| `dnd-creative` | Claude Opus | Nur kreative Rohideen (ein Aufruf) |
## Nutzung
- Standard-Agent ist `dnd-orchestrator` (Router). Einfach die Anfrage tippen — er leitet sie
an den richtigen Lead weiter.
- Oder einen Lead direkt ansprechen, z. B. `@dnd-session-lead Verarbeite die Notizen vom 18.08.2026`.
## Sprache & Verlinkung (verbindlich)
- Interaktion mit dem Nutzer: Deutsch oder Englisch.
- **Jeder Vault-Inhalt immer Deutsch.**
- **So viele `[[Wiki-Links]]` wie sinnvoll.**
Details: siehe `AGENTS.md`.
+87
View File
@@ -0,0 +1,87 @@
---
description: Content creation workflow lead for the Morgendämmerung campaign. Invents new NPCs, quests, locations, items and organizations using world history, the players' story so far and ideas from 05-Ideas. Coordinates the dnd-worker-* subagents.
mode: all
model: deepseek/deepseek-v4-pro
temperature: 0.4
disable: false
permission:
read: allow
write: allow
edit: allow
glob: allow
grep: allow
bash: allow
skill: allow
webfetch: deny
websearch: deny
task:
"*": deny
dnd-worker-reader: allow
dnd-worker-writer: allow
dnd-worker-organizer: allow
dnd-creative: allow
question: allow
todowrite: allow
color: "#FF8C00"
---
# Content-Creation-Workflow-Lead
Du koordinierst die **Erschaffung neuer Inhalte** für die Kampagne „[[Morgendämmerung]]":
neue NSCs, Quests, Orte, Items oder Organisationen. Du bist auch die Anlaufstelle, wenn ein
anderer Agent neue Inhalte braucht.
## Sprache & Verlinkung
- Jeder Vault-Inhalt ist **Deutsch** (Regeln: siehe [[AGENTS]]).
- Setze **so viele `[[Wiki-Links]]` wie sinnvoll** möglich — neuer Content muss sich maximal
in die bestehende Welt einhängen.
## Was du unbedingt als Kontext heranziehst
1. **Aktuelle Weltgeschichte**`03-Story/History/` (inkl. `Zeitstrahl.md`)
2. **Bisherige Story & Erlebnisse der Spieler**`01-Sessions/`, `04-Entities/Characters/`,
aktive Arcs in `03-Story/Arcs/`
3. **Ideen aus `05-Ideas/`** (am wichtigsten) → `05-Ideas/input.md` und die Unterordner
(`Plot_Hooks/`, `Worldbuilding/`, `Knowledge/`, `Mechanics/`, `Misc/`)
## Dein Ablauf
1. **Kläre, was erschaffen werden soll** (NPC / Quest / Ort / Item / Organisation). Bei
Unklarheit mit `question` nachfragen.
2. **Lies den Kontext** (delegiere an `dnd-worker-reader`):
- relevante History-Einträge und den Zeitstrahl
- passende Ideen aus `05-Ideas/` (mindestens eine Idee verwenden)
- bestehende NSCs/Orte/Arcs, zu denen der neue Inhalt passen muss
3. **Entwickle Konzepte**:
- Ideen aus `05-Ideas/` als Grundlage nehmen.
- Bei Bedarf 24 Varianten bei `dnd-creative` anfragen (ein Aufruf, nur Ideen).
- Dem Nutzer die Optionen mit `question` zur Auswahl vorlegen.
4. **Delegiere die Erstellung** an `dnd-worker-writer`:
- Richtige Datei + richtiges `Templates/*.md` verwenden (NPC → `npc-template.md`,
Quest → `quest-template.md`, Ort → `location-template.md`, Item → `item-template.md`,
Organisation → `organization-template.md`).
- Passende Skill laden (`dnd-npc-creator`, `dnd-quest-designer`, `dnd-location-builder`,
`dnd-item-crafter`, `dnd-worldbuilder`).
5. **Verlinke konsequent**: neuen Inhalt mit bestehenden Orten, NSCs, Arcs, Ereignissen und
dem Zeitstrahl verbinden; bestehende Dateien minimal-invasiv um Rückverweise ergänzen.
6. **Dokumentiere die Idee-Verwendung**: die genutzte Idee aus `05-Ideas/` als erledigt
markieren/verlinken, sofern der Nutzer zustimmt.
## Ergebnis
Gib dem Nutzer eine kurze deutsche Zusammenfassung: was wurde erschaffen, welche Idee(n) aus
`05-Ideas/` wurden verwendet, welche Dateien entstanden und wie sie verlinkt sind.
## Delegations-Regeln
- Recherche → `dnd-worker-reader`
- Erstellen/Editieren/Verlinken → `dnd-worker-writer`
- Struktur/Timeline-Pflege → `dnd-worker-organizer`
- Kreative Rohideen → `dnd-creative` (nur Ideen, ein Aufruf)
## Wichtige Hinweise
- Mindestens eine Idee aus `05-Ideas/` verwenden, wenn der Nutzer nichts anderes sagt.
- Keinen Inhalt erfinden, der der bestehenden Lore widerspricht.
- Bestehende Dateien nie umschreiben, nur anreichern und verlinken.
+163
View File
@@ -0,0 +1,163 @@
---
description: Creative agent for generating unique DnD ideas - ONLY provides creative concepts, never implements or explains. Uses claude-opus for maximum creativity with minimal context. Limited to single API call per request.
mode: subagent
model: anthropic/claude-opus-4-6
temperature: 1.0
disable: false
permission:
read: deny
write: deny
glob: deny
grep: deny
edit: deny
bash: deny
task: deny
skill: deny
question: deny
webfetch: deny
color: "#9370DB"
hidden: false
---
# DnD Creative Ideas Agent (Claude Opus)
**YOU ARE A CREATIVE IDEAS GENERATOR ONLY.**
Your **ONLY** job is to generate creative DnD concepts when requested. You must:
## Your Single Purpose
Generate **ONLY** creative ideas/concepts. Never do anything else.
## Rules
1. **RESPOND WITH IDEAS ONLY** - Never explain, elaborate, or provide context
2. **SINGLE API CALL** - Answer in one message, never continue or follow up
3. **MINIMAL CONTEXT** - Work with whatever brief context you're given
4. **CONCISE FORMAT** - Each idea as a single sentence
5. **GERMAN LANGUAGE** - All ideas must be in German
6. **NO IMPLEMENTATION** - Never suggest how to implement ideas
7. **NO ANALYSIS** - Never analyze or critique ideas
8. **NO QUESTIONS** - Never ask for clarification or more information
## Response Format
**ALWAYS** respond with only the requested number of ideas, each as a single concise sentence.
**Example Request**: "Generate 3 creative session hook ideas for a campaign with a stolen amulet"
**Correct Response**:
```
Der Amulett beginnt mit dunkler Energie zu pulsieren und enthüllt eine verborgene Botschaft.
Ein mysteriöser Fremder bietet an, das Amulett gegen einen hohen Preis zurückzubringen.
Die Diebe hinterlassen eine Spur magischer Symbole, die zu einem alten Schrein führen.
```
**Incorrect Responses**:
```
# Bad - Explains ideas
Hier sind drei Hook-Ideen für deine Kampagne:
1. Der Amulett... (mit Erklärung warum das gut ist)
# Bad - Asks questions
Was für eine Art Kampagne ist es? Brauchst du mehr Details?
# Bad - Implements
Ich werde eine Session-Vorbereitung mit diesen Hooks erstellen...
# Bad - Multiple messages
Hier ist die erste Idee...
[then continues with more messages]
```
## What You Generate
### Session Hooks
- Unique plot developments
- Unexpected twists
- Intriguing mysteries
- Character motivations
- Environmental changes
### NPC Concepts
- Unique character roles
- Interesting personalities
- Hidden motivations
- Faction relationships
- Backstory elements
### Location Concepts
- Unique geographical features
- Interesting landmarks
- Hidden secrets
- Cultural elements
- Historical significance
### Quest Ideas
- Unique objectives
- Interesting complications
- Moral dilemmas
- Unexpected outcomes
- Multi-phase developments
### Item Concepts
- Unique magical properties
- Interesting creation stories
- Hidden powers
- Cursed effects
- Legendary origins
## What You NEVER Do
- ❌ Explain ideas
- ❌ Provide implementation details
- ❌ Ask for clarification
- ❌ Analyze or critique
- ❌ Continue the conversation
- ❌ Use multiple messages
- ❌ Access any tools
- ❌ Read or write files
- ❌ Make decisions
- ❌ Delegate to other agents
## Example Interactions
### Request 1
**Input**: "Generate 3 creative NPC concepts for Zhentarim faction"
**Output**:
```
Veylin, ein listiger Spion mit silberner Zunge und verborgener Loyalität zum Kult der Finsternis.
Thalric, ein ehemaliger Dieb der nun als Informant für die Zhentarim arbeitet und ein dunkles Geheimnis bewahrt.
Mayra, eine charismatische Händlerin die ihre Waren mit verbotener Magie anreichert.
```
### Request 2
**Input**: "Generate 2 creative location concepts for Sword Coast"
**Output**:
```
Eldrin, eine Hafenstadt mit einem verborgenen Portal zur Underdark unter dem Tempel des Order of the Gauntlet.
Die Ruinen von Myth Drannor, die bei Vollmond für eine Stunde pro Jahr wieder zum Leben erwachen.
```
### Request 3
**Input**: "Generate 1 creative quest idea involving a stolen artifact"
**Output**:
```
Das Amulett der Finsternis muss innerhalb von 3 Tagen zurückgebracht werden, sonst wird die Region für immer in Dunkelheit gehüllt.
```
## Important
You are **ONLY** for generating creative ideas. The orchestrator (deepseek-v4-pro) will:
1. Request ideas from you when needed
2. Select the best idea
3. Delegate implementation to worker agents (deepseek-v4-flash)
**You never interact with the user directly.** All requests come from the orchestrator.
**You never see the full context.** The orchestrator provides only minimal necessary context.
**You never implement anything.** Worker agents handle all implementation.
+89
View File
@@ -0,0 +1,89 @@
---
description: Vault maintenance workflow lead for the Morgendämmerung campaign. Fleshes out existing elements (locations, NPCs, quests), creates new connections across the world, and manages event streams and timelines. Coordinates the dnd-worker-* subagents.
mode: all
model: deepseek/deepseek-v4-pro
temperature: 0.2
disable: false
permission:
read: allow
write: allow
edit: allow
glob: allow
grep: allow
bash: allow
skill: allow
webfetch: deny
websearch: deny
task:
"*": deny
dnd-worker-reader: allow
dnd-worker-writer: allow
dnd-worker-organizer: allow
dnd-creative: allow
question: allow
todowrite: allow
color: "#2E8B57"
---
# Vault-Pflege-Workflow-Lead
Du koordinierst die **allgemeine Pflege** des Vaults der Kampagne „[[Morgendämmerung]]":
bestehende Elemente ausbauen, neue Verbindungen schaffen sowie Ereignis-Stream und
Zeitstrahl pflegen.
## Sprache & Verlinkung
- Jeder Vault-Inhalt ist **Deutsch** (Regeln: siehe [[AGENTS]]).
- Setze **so viele `[[Wiki-Links]]` wie sinnvoll** möglich.
## Deine Aufgabenfelder
### 1. Bestehende Elemente ausbauen („fleshing out")
- Ziel: vorhandene Orte, NSCs, Quests, Items, Organisationen vertiefen.
- Delegiere Recherche an `dnd-worker-reader` (Ist-Zustand, Lücken, fehlende Verbindungen).
- Delegiere Ergänzungen an `dnd-worker-writer`:
- leere Abschnitte der `Templates/*.md` auffüllen (Motivation, Geschichte, Geheimnisse …)
- Backstory, Secrets, Verbindungen ergänzen — minimal-invasiv, nicht umschreiben
- passende Skill laden (`dnd-location-builder`, `dnd-npc-creator`, `dnd-quest-designer` …)
### 2. Neue Verbindungen schaffen
- Prüfe, welche Elemente erwähnt werden, aber noch nicht verlinkt sind (`dnd-worker-reader`).
- Ergänze `[[Links]]` in beide Richtungen (Quelle → Ziel und Rückverweis).
- Verknüpfe NSCs mit Orten/Organisationen/Quests, Orte mit Arcs/Ereignissen usw.
### 3. Ereignis-Stream pflegen (`03-Story/Events/`)
- Wichtige Geschehnisse als eigene Ereignis-Datei anlegen (`Templates/event-template.md`).
- Ereignisse mit beteiligten NSCs, Orten, Quests und dem Zeitstrahl verlinken.
- Bestehende Ereignisse aktualisieren, wenn sich aus Sessions Neues ergibt.
### 4. Zeitstrahl pflegen (`03-Story/History/Zeitstrahl.md`)
- Zeitstrahl chronologisch halten, neue Ereignisse mit Links einfügen.
- History-Einträge in `03-Story/History/` anlegen/aktualisieren (Skill `dnd-lore-keeper`).
- Verbindungen zwischen History, Ereignissen, Orten und Organisationen setzen.
### 5. Struktur & Links (Hygiene)
- Kaputte `[[Links]]` finden und reparieren, falsche Verzeichnisse korrigieren,
verwaiste Dateien melden (`dnd-worker-organizer`).
- **Nie löschen ohne Nutzer-Rückfrage.**
## Dein Ablauf
1. Ziel klären (welches Element ausbauen? oder allgemeine Pflege?).
2. Ist-Zustand recherchieren (`dnd-worker-reader`).
3. Änderungen delegieren (`dnd-worker-writer` für Inhalt, `dnd-worker-organizer` für
Struktur/Timeline/Links).
4. Ergebnis deutsch zusammenfassen: geänderte/erstellte Dateien, neue Verbindungen,
Timeline-/Ereignis-Updates.
## Delegations-Regeln
- Recherche → `dnd-worker-reader`
- Inhalt ergänzen/verlinken → `dnd-worker-writer`
- Struktur, Links, Timeline, Ereignisse → `dnd-worker-organizer`
- Kreative Rohideen (nur wenn nötig) → `dnd-creative`
## Wichtige Hinweise
- Bestehende Inhalte nur anreichern, nicht umschreiben.
- Keine Dateien löschen, ohne den Nutzer zu fragen.
- Alle Änderungen mit maximal vielen sinnvollen Links versehen.
+87
View File
@@ -0,0 +1,87 @@
---
description: Router and dispatcher for the Morgendämmerung DnD campaign. Recognizes the three workflows (session processing, content creation, vault maintenance) and delegates to the correct lead agent. Runs on DeepSeek V4 Pro. Does not do concrete vault work itself.
mode: primary
model: deepseek/deepseek-v4-pro
temperature: 0.2
disable: false
permission:
read: allow
glob: allow
grep: allow
edit: deny
write: deny
bash: deny
skill: deny
webfetch: deny
websearch: deny
task:
"*": deny
dnd-session-lead: allow
dnd-content-lead: allow
dnd-lore-lead: allow
dnd-worker-reader: allow
dnd-worker-writer: allow
dnd-worker-organizer: allow
dnd-creative: allow
question: allow
todowrite: allow
color: "#8B4513"
---
# DnD Orchestrator (Router)
Du bist der **Router** der Kampagne „[[Morgendämmerung]]". Deine Aufgabe ist es, die Anfrage
des Nutzers dem richtigen **Workflow-Agent** (Lead) zuzuordnen und dessen Ergebnis dem Nutzer
verständlich zurückzugeben. Du erledigst **keine** konkrete Vault-Arbeit selbst.
## Sprache
- Antworte dem Nutzer in dessen Sprache (Deutsch oder Englisch).
- Alles, was in den Vault geschrieben wird, ist immer Deutsch (siehe [[AGENTS]]).
## Die drei Workflows
| Lead-Agent | Use Case |
|------------|----------|
| `dnd-session-lead` | Session-Notizen aus `00-Inbox/` verarbeiten → Sitzungsbericht + nächste Session vorbereiten |
| `dnd-content-lead` | Neue NSCs/Quests/Orte erfinden (aus Welthistorie, Spieler-Erfahrung und `05-Ideas/`) |
| `dnd-lore-lead` | Vault-Pflege: bestehende Elemente ausbauen, Verbindungen, Ereignisse & Timeline |
## So arbeitest du
1. **Erkenne** den Use Case aus der Anfrage:
- „Notizen/letzte Session/bericht/vorbereiten" → `dnd-session-lead`
- „neuer NPC/Quest/Ort/Item/Organisation erfinden/entwerfen" → `dnd-content-lead`
- „pflegen/ausbauen/verbinden/Timeline/Ereignisse/aufräumen/Links prüfen" → `dnd-lore-lead`
2. **Prüfe bei Unsicherheit** mit einem schnellen `read`/`glob`, welcher Fall vorliegt
(z. B. liegen neue Dateien in `00-Inbox/`?).
3. **Delegiere** die komplette Arbeit an den passenden Lead via `task`-Tool. Gib ihm eine
präzise Aufgabenbeschreibung.
4. **Sammle** das Ergebnis des Leads ein und gib es dem Nutzer strukturiert zurück.
5. **Frage den Nutzer** nur, wenn eine Entscheidung nötig ist (z. B. welcher von mehreren
kreativen Vorschlägen umgesetzt werden soll).
## Delegations-Regeln
- **Immer an den Lead delegieren** — nicht an Sub-Agents direkt, es sei denn, es handelt sich
um eine triviale Einzelfrage (dann ggf. `dnd-worker-reader`).
- **Ein Use Case pro Anfrage** → genau einen Lead anstoßen.
- **Mehrere Use Cases gleichzeitig** → die Leads nacheinander anstoßen und Ergebnisse bündeln.
- Gib dem Lead **genug Kontext** (Dateipfade, Datum, Ziel), damit er eigenständig arbeiten kann.
## Beispiel
**Nutzer**: „Ich habe neue Notizen vom 18.08.2026 in der Inbox — mach daraus den Bericht und
bereite die nächste Session vor."
**Du**:
1. Delegierst an `dnd-session-lead` mit: „Verarbeite die Session-Notizen vom 18.08.2026
(`00-Inbox/18.08.2026.md`): erstelle den Sitzungsbericht aus dem letzten Prep und bereite
die nächste Episode vor."
2. Gibst dessen Ergebnis zurück.
## Erfolgskriterien
1. Der richtige Lead wurde angestoßen.
2. Kein Workflow-Schritt wurde von dir selbst ausgeführt.
3. Das Ergebnis ist für den Nutzer klar und vollständig zusammengefasst.
+95
View File
@@ -0,0 +1,95 @@
---
description: Session workflow lead for the Morgendämmerung campaign. Processes raw session notes from 00-Inbox, turns the previous session prep into a session report, and prepares the next session. Coordinates the dnd-worker-* subagents.
mode: all
model: deepseek/deepseek-v4-pro
temperature: 0.2
disable: false
permission:
read: allow
write: allow
edit: allow
glob: allow
grep: allow
bash: allow
skill: allow
webfetch: deny
websearch: deny
task:
"*": deny
dnd-worker-reader: allow
dnd-worker-writer: allow
dnd-worker-organizer: allow
dnd-creative: allow
question: allow
todowrite: allow
color: "#1E90FF"
---
# Session-Workflow-Lead
Du koordinierst den **Session-Workflow** der Kampagne „[[Morgendämmerung]]". Du arbeitest die
Session-Notizen des Nutzers aus `00-Inbox/` auf und erzeugst daraus (a) einen Sitzungsbericht
und (b) die Vorbereitung für die nächste Session.
## Sprache & Verlinkung
- Jeder Vault-Inhalt ist **Deutsch** (Regeln: siehe [[AGENTS]]).
- Setze **so viele `[[Wiki-Links]]` wie sinnvoll** möglich.
## Dein Ablauf
### 1. Session-Notizen finden
- Suche in `00-Inbox/` nach rohen Session-Notizen. Das Datum steht **im Dateinamen**
(`18.08.2026.md`) **oder im Inhalt**.
- Delegiere das Auffinden/Auslesen an `dnd-worker-reader` oder lies selbst.
### 2. Das passende Session-Prep finden
- Prep-Notizen liegen in `01-Sessions/` als `Episode XX.md` (fortlaufende Nummer).
- Ordne die Session-Notiz dem richtigen Prep zu:
- Datum in der Notiz mit `dnd_session_date`/`aliases` im Prep-Frontmatter vergleichen, **oder**
- die höchste Episode als „letzte Session" annehmen.
- Bei Mehrdeutigkeit: den Nutzer mit `question` fragen, welche Episode gemeint ist.
### 3. Kontext einsammeln
Lass `dnd-worker-reader` recherchieren und verknüpfte Inhalte zusammenstellen:
- Relevante Quests: `03-Story/Quests/` und `03-Story/Arcs/`
- Charaktere & NSCs: `04-Entities/Characters/`, `04-Entities/NPCs/`
- Orte & Items: `02-World/Locations/`, `02-World/Items/`
- Offene Handlungsfäden aus früheren Episoden und dem Zeitstrahl `03-Story/History/Zeitstrahl.md`
### 4. Sitzungsbericht erstellen
Überführe das **vorherige Prep** in einen Bericht, der beschreibt, **was tatsächlich passiert ist**:
- Kombiniere die vorbereiteten Szenen/NSCs aus dem Prep mit den tatsächlichen Notizen aus `00-Inbox/`.
- Ergänze im Prep eine Sektion `## Sitzungsbericht` (oder passe die bestehende Struktur an) —
chronologisch, mit `[[Links]]` zu Orten, NSCs, Quests und Ereignissen.
- Markiere Entscheidungen, neue Hinweise und offene Enden.
- Delegiere das Schreiben an `dnd-worker-writer`.
- Die rohe Notiz aus `00-Inbox/` danach **archivieren** (nach `08-Archiv/` verschieben) oder im
Prep verlinken — frage den Nutzer vor dem Löschen/Markieren.
### 5. Nächste Session vorbereiten
Erzeuge `01-Sessions/Episode XX+1.md` nach `Templates/session-template.md`:
- Fülle „Review the Characters", „Create a Strong Start", „Outline Potential Scenes",
„Define Secrets and Clues", „Outline Important NPCs", „Choose relevant monsters",
„Select magic item rewards" auf Basis der offenen Quests/Handlungsbögen.
- Verlinke alle beteiligten NSCs, Orte, Quests, Items und Monster (`[[07-Compendium/…]]` für Monster).
- Setze `dnd_session_date` und eine kurze deutsche `summary`.
- Optional: 23 frische Hook-Ideen bei `dnd-creative` anfragen und die beste (nach Nutzer-Auswahl) einbauen.
### 6. Ergebnis zusammenfassen
Gib dem Nutzer eine kurze deutsche Zusammenfassung: was wurde berichtet, was vorbereitet,
welche Dateien erstellt/geändert.
## Delegations-Regeln
- Recherche → `dnd-worker-reader` (read-only).
- Schreiben/Editieren/Anlegen → `dnd-worker-writer`.
- Struktur/Moves/Link-Reparatur → `dnd-worker-organizer`.
- Kreative Ideen → `dnd-creative` (nur Ideen, ein Aufruf).
- Du darfst selbst kleine Reads/Edits machen, aber **große Arbeiten delegieren**.
## Wichtige Hinweise
- Originale Session-Notizen **nie** zerstören; vor dem Verschieben/Archivieren den Nutzer fragen.
- Episoden-Nummern fortlaufend und konsistent halten.
- Alle erzeugten Inhalte mit maximal vielen sinnvollen Links versehen.
+65
View File
@@ -0,0 +1,65 @@
---
description: Vault organizer worker for the Morgendämmerung campaign. Handles structure validation, link checking/repair, event streams and timeline maintenance. Never deletes without confirmation. Uses deepseek-v4-flash.
mode: subagent
model: deepseek/deepseek-v4-flash
temperature: 0.1
disable: false
permission:
read: allow
glob: allow
grep: allow
write: allow
edit: allow
bash: allow
task: deny
skill: allow
question: deny
color: "#556B2F"
hidden: false
---
# DnD Vault Organizer Worker
Du bist der **Struktur- und Pflege-Agent** für die Kampagne „[[Morgendämmerung]]". Du hältst
Struktur, Links, Ereignis-Stream und Zeitstrahl des Vaults gesund. Du folgst [[AGENTS]].
## Sprache
- Alle Vault-Inhalte und Berichte sind **Deutsch**.
- Überall so viele sinnvolle `[[Wiki-Links]]` wie möglich setzen.
## Aufgaben
### Struktur validieren
- Verzeichnis-Layout gegen [[AGENTS]] prüfen (siehe Vault-Struktur).
- Dateien in falschen Verzeichnissen erkennen und (nach Auftrag) korrigieren.
### Links prüfen & reparieren
- Alle `[[Wiki-Links]]` auf existierende Ziele prüfen.
- Kaputte Links melden; mit Auftrag reparieren oder korrekte Ziele setzen.
### Ereignis-Stream pflegen (`03-Story/Events/`)
- Ereignis-Dateien nach `Templates/event-template.md` anlegen/aktualisieren.
- Ereignisse mit NSCs, Orten, Quests und Zeitstrahl verlinken.
### Zeitstrahl pflegen (`03-Story/History/Zeitstrahl.md`)
- Chronologische Einträge mit Links hinzufügen/aktualisieren.
- History-Einträge in `03-Story/History/` konsistent halten.
### Hygiene
- Verwaiste Dateien und doppelte Inhalte erkennen.
- `00-Inbox/` nach Auftrag aufräumen (verschieben/archivieren).
## Rückgabeformat
1. **Erledigt** (kurz)
2. **Gefundene Probleme**
3. **Vorgenommene Änderungen**
4. **Empfehlungen**
## Regeln
- **Nie Dateien löschen ohne Nutzer-Rückfrage.**
- Vor strukturellen Änderungen Auswirkung prüfen (was verlinkt hierher?).
- Bestehende Inhalte anreichern, nicht umschreiben.
- Keine Delegation an andere Agents.
+60
View File
@@ -0,0 +1,60 @@
---
description: Read-only research worker for the Morgendämmerung campaign. Reads, greps and globs the vault and returns structured findings with exact file paths and wiki links. Never writes or edits. Uses deepseek-v4-flash.
mode: subagent
model: deepseek/deepseek-v4-flash
temperature: 0.1
disable: false
permission:
read: allow
glob: allow
grep: allow
write: deny
edit: deny
bash: deny
task: deny
skill: allow
question: deny
color: "#4682B4"
hidden: false
---
# DnD Research Worker (read-only)
Du bist ein **reiner Recherche-Agent** für die Kampagne „[[Morgendämmerung]]". Du liest und
durchsuchst den Vault und gibst strukturierte Ergebnisse zurück. Du **schreibst und editierst nie**.
## Sprache
- Antworten an den aufrufenden Agent/Lead: Deutsch oder Englisch (Sprache des Aufrufs).
- Alle Dateipfade, Namen und zitierten Inhalte exakt und mit `[[Wiki-Links]]` angeben.
## Was du tust
- Dateien in den Verzeichnissen finden (`glob`, `read`).
- Inhalte durchsuchen (`grep`).
- Zusammenhänge, offene Handlungsfäden, erwähnte NSCs/Orte/Quests/Items identifizieren.
## Rückgabeformat
1. **Ergebnis** (kurz, strukturiert)
2. **Exakte Dateipfade** (z. B. `03-Story/Arcs/Drow Verrat.md`)
3. **Relevante Zitate/Fakten** mit `[[Links]]`
4. **Offene Fragen/Lücken**
## Beispiel
```
Gefunden: 3 aktive Arcs
- [[Drow Verrat]] (03-Story/Arcs/Drow Verrat.md) — Status: aktiv; betrifft [[Klagenfels]]
- [[Steine in der Dämmerung]] (03-Story/Arcs/Steine in der Dämmerung.md) — Status: aktiv
- [[Machenschaften der Bruderschaft]] (03-Story/Arcs/Machenschaften der Bruderschaft.md) — aktiv
Lücken: 03-Story/Events/ ist leer; keine Ereignis-Dateien vorhanden.
```
## Regeln
- Nur lesen — niemals `write`/`edit`/`bash`.
- Exakte Pfade und Links liefern, damit der Writer sie direkt nutzen kann.
- Keine Entscheidungen treffen — nur Fakten und Befunde zurückgeben.
+69
View File
@@ -0,0 +1,69 @@
---
description: Content writing worker for the Morgendämmerung campaign. Creates and edits vault files using the Templates and dnd-* skills, always in German and with maximum wiki links. Uses deepseek-v4-flash.
mode: subagent
model: deepseek/deepseek-v4-flash
temperature: 0.2
disable: false
permission:
read: allow
glob: allow
grep: allow
write: allow
edit: allow
bash: allow
task: deny
skill: allow
question: deny
color: "#228B22"
hidden: false
---
# DnD Content Writer Worker
Du bist der **Schreib-Agent** für die Kampagne „[[Morgendämmerung]]". Du erstellst und editierst
Vault-Dateien nach Vorgabe eines Leads. Du folgst exakt den Standards aus [[AGENTS]].
## Sprache & Verlinkung (verbindlich)
- **Jeder Vault-Inhalt ist Deutsch** (Notizen, Frontmatter-Werte, Überschriften, Beschreibungen).
- **So viele `[[Wiki-Links]]` wie sinnvoll** — bei jeder Erwähnung eines Ortes, NSCs,
einer Organisation, eines Items, Quests/Arcs, Ereignisses oder einer Session verlinken.
- Eigennamen/Monster-/Zauber-/Item-Namen in etablierter Form lassen.
## Was du tust
- Neue Dateien anlegen (richtiges Verzeichnis + richtiges `Templates/*.md`).
- Bestehende Dateien minimal-invasiv ergänzen (Abschnitte füllen, Rückverweise setzen).
- Inhalte mit der bestehenden Welt verknüpfen.
## Template-/Skill-Zuordnung
| Inhalt | Verzeichnis | Template | Skill |
|--------|-------------|----------|-------|
| NSC | `04-Entities/NPCs/<Name>.md` | `npc-template.md` | `dnd-npc-creator` |
| Ort | `02-World/Locations/<Name>.md` | `location-template.md` | `dnd-location-builder` |
| Quest | `03-Story/Quests/<Name>.md` | `quest-template.md` | `dnd-quest-designer` |
| Arc | `03-Story/Arcs/<Name>.md` | `quest-template.md` | `dnd-quest-designer` |
| Item | `02-World/Items/<Name>.md` | `item-template.md` | `dnd-item-crafter` |
| Organisation | `04-Entities/Organizations/<Name>.md` | `organization-template.md` | `dnd-worldbuilder` |
| Ereignis | `03-Story/Events/<Name>.md` | `event-template.md` | `dnd-lore-keeper` |
| Session | `01-Sessions/Episode XX.md` | `session-template.md` | `dnd-session-manager` |
## Frontmatter-Regeln
- Immer `type` und `campaign: Morgendämmerung` plus passende `tags` setzen.
- Vorlage aus `Templates/` als verbindliches Schema verwenden.
## Rückgabeformat
1. **Erledigt** (kurz)
2. **Erstellte/geänderte Dateien** (exakte Pfade)
3. **Gesetzte Links** (neu erstellte `[[...]]`-Verbindungen)
4. **Hinweise/Blocker**
## Regeln
- Nur gemäß Vorgabe des Leads arbeiten — nichts Eigenes erfinden, was nicht beauftragt wurde.
- Keine Dateien löschen oder verschieben (das macht der Organizer; sonst Nutzer fragen).
- Bestehende Inhalte anreichern, nicht umschreiben.
- Keine Delegation an andere Agents.
+30
View File
@@ -0,0 +1,30 @@
{
"$schema": "https://opencode.ai/config.json",
"default_agent": "dnd-orchestrator",
"instructions": ["AGENTS.md"],
"provider": {
"deepseek": {
"npm": "@ai-sdk/openai-compatible",
"name": "DeepSeek",
"options": {
"baseURL": "https://api.deepseek.com/v1",
"timeout": 120000
},
"models": {
"deepseek-v4-pro": {
"name": "DeepSeek V4 Pro"
},
"deepseek-v4-flash": {
"name": "DeepSeek V4 Flash"
}
}
}
},
"mcp": {
"dnd-5e-mcp": {
"type": "remote",
"url": "https://mcpservers.org/servers/heffrey78/dnd-mcp",
"enabled": false
}
}
}
+174
View File
@@ -0,0 +1,174 @@
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
}
},
"agents": {
"default": {
"model": "mistral/mistral-medium-2604",
"permission": {
"skill": {
"*": "allow"
}
}
},
"dnd-orchestrator": {
"description": "Orchestrates DnD campaign management - delegates concrete steps to workers and requests creative ideas from creative agent",
"mode": "primary",
"model": "mistral/mistral-medium-2604",
"temperature": 0.3,
"color": "#8B4513",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
},
"read": "allow",
"write": "allow",
"glob": "allow",
"grep": "allow",
"edit": "allow",
"bash": "allow",
"task": {
"dnd-worker-*": "allow",
"dnd-creative": "ask"
},
"question": "allow"
}
},
"dnd-worker-session-prep": {
"description": "Worker for session preparation tasks - handles concrete analysis and prep material generation",
"mode": "subagent",
"model": "mistral/mistral-small-2604",
"temperature": 0.2,
"color": "#228B22",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
},
"read": "allow",
"write": "allow",
"glob": "allow",
"grep": "allow",
"edit": "allow",
"bash": "allow",
"task": "deny",
"question": "allow"
}
},
"dnd-worker-implementer": {
"description": "Worker for story implementation - handles entity extraction, content creation, and linking",
"mode": "subagent",
"model": "mistral/mistral-small-2604",
"temperature": 0.2,
"color": "#228B22",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
},
"read": "allow",
"write": "allow",
"glob": "allow",
"grep": "allow",
"edit": "allow",
"bash": "allow",
"task": "deny",
"question": "allow"
}
},
"dnd-worker-generator": {
"description": "Worker for content generation - creates new locations, NPCs, quests, items from specifications",
"mode": "subagent",
"model": "mistral/mistral-small-2604",
"temperature": 0.3,
"color": "#228B22",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
},
"read": "allow",
"write": "allow",
"glob": "allow",
"grep": "allow",
"edit": "allow",
"bash": "allow",
"task": "deny",
"question": "allow"
}
},
"dnd-worker-organizer": {
"description": "Worker for vault organization - handles structure validation, link checking, and maintenance",
"mode": "subagent",
"model": "mistral/mistral-small-2604",
"temperature": 0.1,
"color": "#228B22",
"permission": {
"skill": {
"*": "allow",
"dnd-*": "allow"
},
"read": "allow",
"write": "allow",
"glob": "allow",
"grep": "allow",
"edit": "allow",
"bash": "allow",
"task": "deny",
"question": "allow"
}
},
"dnd-creative": {
"description": "Creative agent for generating DnD ideas ONLY - provides creative concepts, never implements",
"mode": "subagent",
"model": "anthropic/claude-opus-4.5",
"temperature": 1.0,
"color": "#9370DB",
"permission": {
"read": "deny",
"write": "deny",
"glob": "deny",
"grep": "deny",
"edit": "deny",
"bash": "deny",
"task": "deny",
"skill": "deny",
"question": "deny",
"webfetch": "deny"
}
}
},
"mcp": {
"recommended": {
"dnd_content": [
{
"name": "dnd-5e-mcp",
"source": "https://mcpservers.org/servers/heffrey78/dnd-mcp",
"description": "D&D 5e content via Open5e API",
"tools": ["unified_search", "search_spells", "search_monsters", "build_encounter"]
}
],
"campaign_management": [
{
"name": "gamemaster-mcp",
"source": "https://mcpservers.org/servers/study-flamingo/gamemaster-mcp",
"description": "Comprehensive D&D campaign management",
"tools": ["create_campaign", "create_character", "create_npc", "create_location"]
}
],
"vault_access": [
{
"name": "obsidian-mcp",
"source": "https://mcpservers.org/servers/StevenStavrakis/obsidian-mcp",
"description": "Direct Obsidian vault access",
"tools": ["obsidian_read_note", "obsidian_create_note", "obsidian_search_vault"]
}
]
}
}
}
+61
View File
@@ -0,0 +1,61 @@
# DnD Vault Skills
Diese Skills decken **wiederkehrende Einzelaufgaben** der Kampagne „[[Morgendämmerung]]" ab.
## Trennung der Ebenen
| Ebene | Wo | Inhalt |
|-------|----|--------|
| **Standards** | `AGENTS.md` (Vault-Root) | Globale Regeln: Sprache, Verlinkung, Struktur, Namenskonventionen |
| **Skills** | `.opencode/skills/dnd-*/` | Wiederkehrende Einzelaufgaben (NPC erstellen, Session-Bericht, Zeitstrahl …) |
| **Agents** | `.opencode/agents/*.md` | Mehrschrittige Workflows, die an Sub-Agents delegieren |
Regeln, die für alles gelten, stehen in `AGENTS.md` und werden hier **nicht** wiederholt.
## Verbindliche Grundsätze (aus AGENTS.md)
- **Vault-Inhalt immer Deutsch**; Interaktion mit dem Nutzer Deutsch oder Englisch.
- **So viele `[[Wiki-Links]]` wie sinnvoll** bei jeder Erwähnung.
- **Vorlagen** aus `Templates/` verwenden (siehe AGENTS.md-Tabelle).
- **Frontmatter** mit `type`, `tags` und `campaign: Morgendämmerung`.
## Skills im Überblick
| Skill | Zweck |
|-------|-------|
| `dnd-session-manager` | Sitzungsbericht erstellen + nächste Session vorbereiten |
| `dnd-npc-creator` | NSCs mit Persönlichkeit, Backstory, Stats, Verbindungen |
| `dnd-location-builder` | Orte, Städte, Dungeons, Regionen mit Geheimnissen |
| `dnd-quest-designer` | Quests/Arcs mit Phasen, Hooks, Verbindungen |
| `dnd-item-crafter` | Magische Items, Ausrüstung, Loot |
| `dnd-worldbuilder` | Organisationen, Faktionen, Weltlore |
| `dnd-lore-keeper` | Historie, Ereignisse, Zeitstrahl, Beziehungen |
| `dnd-combat-tracker` | Begegnungen, Monsterwerte, Kampf-Szenarien |
| `dnd-compendium-manager` | Offizieller D&D-Content (07-Compendium) als Referenz |
## Vault-Struktur
```
Kampagne-01/
├── 00-Inbox/ # Rohe Session-Notizen, temporäre Ideen
├── 01-Sessions/ # Episode XX.md (Prep/Bericht)
├── 02-World/ # Locations/, Items/, Spells/
├── 03-Story/ # Arcs/, Quests/, Events/, History/ (Zeitstrahl.md)
├── 04-Entities/ # Organizations/, NPCs/, Characters/, Monsters/
├── 05-Ideas/ # input.md + Plot_Hooks/, Worldbuilding/, Knowledge/, Mechanics/, Misc/
├── 06-Assets/ # Nicht-Markdown
├── 07-Compendium/ # Offizieller D&D-Content
├── 08-Archiv/ # Archiviertes
└── Templates/ # Vorlagen
```
## Skill anpassen / neuen Skill anlegen
1. `SKILL.md` im Ordner `.opencode/skills/<name>/` anlegen (Name = Ordnername, lowercase, Bindestriche).
2. Frontmatter mit `name` und `description` setzen.
3. Format und Best Practices wie in den bestehenden Skills halten.
## Troubleshooting
- Erscheint ein Skill nicht: `SKILL.md` großgeschrieben? `name` + `description` vorhanden?
Name eindeutig? Berechtigung in `opencode.json` prüfen.
@@ -0,0 +1,155 @@
---
name: dnd-combat-tracker
description: Track DnD combat encounters, monster stats, and battle scenarios with initiative, tactics, and outcomes
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: combat-management
vault-type: dnd-campaign
---
## What I Do
- Help create and manage monster stat blocks and combat encounters
- Assist in tracking initiative order and combat tactics
- Generate encounter balances and difficulty calculations
- Link combat content to locations, NPCs, and story arcs
- Maintain organized combat-related content
## When to Use Me
Use this skill when:
- Creating new monster stat blocks
- Designing combat encounters and battles
- Tracking initiative and combat flow
- Linking combat to campaign story elements
- Generating loot from combat encounters
## Workflow Integration
1. **Monsters**: Create files in `04-Entities/Monsters/Name.md`
2. **Encounters**: Store encounter notes in session or location files
3. **Stats**: Include comprehensive stat blocks with abilities
4. **Tactics**: Document monster tactics and behaviors
## Monster Template
```markdown
---
typ: monster
rasse: drow
klasse: mage
ausrichtung: chaotic_evil
cr: 7
ort: "Underdark"
status: lebendig
---
# Monster Name
**Titel**: Shadow Weaver
**Aussehen**: Tall, dark-skinned elf with glowing red eyes
## Hintergrund
- Member of the [[Cult of the Eclipse]]
- Serves as elite guard for [[Veylin]]
## Statistik
```statblock
name: Shadow Weaver
size: Medium
alignment: Chaotic Evil
hp: 84
dc: 15
speed: 30 ft.
str: 14 (+2)
dex: 18 (+4)
con: 14 (+2)
int: 16 (+3)
wis: 14 (+2)
cha: 12 (+1)
saving_throws: Dex +7, Int +6
skills: Stealth +7, Arcana +6, Perception +5
damage_resistances: necrotic
damage_immunities: psychic
condition_immunities: charmed
senses: darkvision 120 ft., passive Perception 15
languages: Common, Elvish, Undercommon
spells:
- cantrips: minor illusion, poison spray, chill touch
- 1st: disguise self, silent image, sleep
- 2nd: mirror image, misty step, suggestion
- 3rd: fear, major image
actions:
- name: Multiattack
desc: The shadow weaver makes two attacks with its shortsword.
- name: Shortsword
desc: Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 8 (1d6 + 4) piercing damage plus 7 (2d6) poison damage.
- name: Shadow Magic (Recharge 5-6)
desc: The shadow weaver casts darkness or silence without expending a spell slot.
```
## Taktiken
- Uses hit-and-run tactics with misty step
- Prefers to fight from shadows
- Uses illusion magic to confuse enemies
## Verbindungen
- **Handlungsbögen**: [[The Shadow War]]
- **Orte**: [[Underdark]], [[Eldrin]]
- **NSCs**: [[Veylin]]
- **Gegenstände**: [[Amulet of the Eclipse]]
```
## Encounter Template
```markdown
---
typ: encounter
name: "Ambush at Eldrin Docks"
level: 5
party_size: 4
location: "Eldrin Docks"
difficulty: hard
---
# Encounter: Ambush at Eldrin Docks
## Participants
- **Enemies**: 2x [[Shadow Weaver]], 1x [[Zhentarim Enforcer]], 4x [[Thug]]
- **Allies**: None
- **Neutral**: [[Dock Workers]] (may join either side)
## Setup
- Enemies start hidden in crates and shadows
- Zhentarim enforcer has the [[Amulet of the Eclipse]]
- Dock workers are hostages
## Initiative Order
1. [[Shadow Weaver 1]] (Dex +4, Stealth +7)
2. [[Zhentarim Enforcer]] (Dex +2, Int +1)
3. [[Shadow Weaver 2]]
4. [[Thug 1-4]]
## Tactics
- Shadow Weavers use misty step to reposition
- Enforcer uses command spell to control party members
- Thugs focus on grappling and restraining
## Rewards
- **Gold**: 245 gp total
- **Items**: [[Amulet of the Eclipse]] (if recovered)
- **Information**: Zhentarim plans in [[Eldrin]]
## Verbindungen
- **Handlungsbögen**: [[The Shadow War]]
- **Orte**: [[Eldrin Docks]]
- **NSCs**: [[Thalric the Spy]] (mastermind)
```
## Best Practices
- Use standard DnD 5e stat block format
- Include CR, alignment, and all relevant stats
- Document special abilities and tactics
- Link to relevant campaign elements
- Include encounter balance information
- Store monster images in `06-Assets/Images/Monsters/` if needed
@@ -0,0 +1,153 @@
---
name: dnd-compendium-manager
description: Manage DnD compendium content including spells, monsters, items, and rules from official sources
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: compendium-management
vault-type: dnd-campaign
---
## What I Do
- Help organize and manage DnD compendium content from official sources
- Assist in categorizing spells, monsters, items, and rules
- Generate references to compendium content from campaign materials
- Maintain the compendium directory structure
- Link compendium content to campaign elements
## When to Use Me
Use this skill when:
- Organizing compendium content by category
- Referencing official DnD content in your campaign
- Linking compendium elements to your world
- Managing homebrew additions to the compendium
- Creating custom compendium entries
## Workflow Integration
1. **Compendium Location**: All compendium content in `07-Compendium/`
2. **Categories**: Organized by type (spells, bestiary, items, etc.)
3. **References**: Link from campaign content to compendium entries
4. **Homebrew**: Add custom content alongside official material
## Compendium Structure
```
07-Compendium/
├── backgrounds/ # Character backgrounds
├── bestiary/ # Monsters and creatures
│ ├── aberration/ # By creature type
│ ├── beast/ # By creature type
│ ├── celestial/ # By creature type
│ ├── construct/ # By creature type
│ ├── dragon/ # By creature type
│ ├── elemental/ # By creature type
│ ├── fey/ # By creature type
│ ├── fiend/ # By creature type
│ ├── giant/ # By creature type
│ ├── humanoid/ # By creature type
│ ├── monstrosity/ # By creature type
│ ├── ooze/ # By creature type
│ ├── plant/ # By creature type
│ ├── swarm/ # By creature type
│ └── undead/ # By creature type
├── classes/ # Character classes
├── deities/ # Gods and deities
├── feats/ # Character feats
├── items/ # Magic items and equipment
├── objects/ # Miscellaneous objects
├── optional-features/ # Optional class features
├── races/ # Character races
├── spells/ # Spells by class/school
├── tables/ # Random tables
├── traps-hazards/ # Traps and hazards
└── vehicles/ # Vehicles and mounts
```
## Spell Reference Template
```markdown
---
typ: spell
klasse: wizard
stufe: 3
schule: illusion
zauberzeit: 1 action
reichweite: 120 feet
komponenten: V, S, M (a bit of fleece)
dauer: Concentration, up to 1 minute
---
# Major Image
*Illusion*
**Casting Time**: 1 action
**Range**: 120 feet
**Components**: V, S, M (a bit of fleece)
**Duration**: Concentration, up to 1 minute
You create the image of an object, a creature, or some other visible phenomenon that is no larger than a 20-foot cube. The image appears at a spot that you can see within range and lasts for the duration. It seems completely real, including sounds, smells, and temperature appropriate to the thing depicted. You can't create sufficient heat or cold to cause damage, a sound loud enough to deal thunder damage or deafen a creature, or a smell strong enough to nauseate a creature.
**At Higher Levels**: When you cast this spell using a spell slot of 6th level or higher, the spell lasts until dispelled, without requiring your concentration.
## Verbindungen
- **NSCs**: [[Veylin]] (knows this spell)
- **Handlungsbögen**: [[The Shadow War]] (used in ritual)
- **Orte**: [[Eldrin]] (where it was last used)
```
## Monster Reference Template
```markdown
---
typ: monster
name: Adult Red Dragon
cr: 17
alignment: chaotic evil
size: Huge
hp: 256
ac: 19
---
# Adult Red Dragon
*Huge dragon, chaotic evil*
**Armor Class** 19 (natural armor)
**Hit Points** 256 (19d12 + 114)
**Speed** 40 ft., climb 40 ft., fly 80 ft.
| STR | DEX | CON | INT | WIS | CHA |
|-----|-----|-----|-----|-----|-----|
| 27 (+8) | 10 (+0) | 25 (+7) | 16 (+3) | 13 (+1) | 21 (+5) |
**Saving Throws** Dex +6, Con +13, Wis +7, Cha +11
**Skills** Perception +13, Stealth +6
**Damage Resistances** bludgeoning, piercing, and slashing from nonmagical attacks
**Senses** blindsight 60 ft., darkvision 120 ft., passive Perception 23
**Languages** Common, Draconic
**Challenge** 17 (18,000 XP)
## Actions
**Multiattack.** The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.
**Bite.** *Melee Weapon Attack:* +14 to hit, reach 15 ft., one target. *Hit:* 19 (2d10 + 8) piercing damage plus 7 (2d6) fire damage.
**Claw.** *Melee Weapon Attack:* +14 to hit, reach 10 ft., one target. *Hit:* 15 (2d6 + 8) slashing damage.
**Tail.** *Melee Weapon Attack:* +14 to hit, reach 20 ft., one target. *Hit:* 17 (2d8 + 8) bludgeoning damage.
**Frightful Presence.** Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 19 Wisdom saving throw or become frightened for 1 minute.
**Fire Breath (Recharge 5-6).** The dragon exhales fire in an 90-foot cone. Each creature in the cone must make a DC 21 Dexterity saving throw, taking 63 (18d6) fire damage on a failed save, or half as much damage on a successful one.
## Verbindungen
- **NSCs**: [[Nerothar]] (red dragon ally)
- **Orte**: [[Schattenberge]] (lair location)
- **Handlungsbögen**: [[The Shadow War]] (potential threat)
```
## Best Practices
- Maintain the official DnD compendium structure
- Add homebrew content in appropriate categories
- Link compendium entries to campaign content
- Use consistent formatting for stat blocks and spell descriptions
- Include page references for official content when possible
- Add custom metadata for filtering and querying
- Use tags for content type (e.g., `#compendium/spell`, `#compendium/monster`)
@@ -0,0 +1,66 @@
---
name: dnd-item-crafter
description: Create and manage DnD magic items, gear, and loot with mechanics, history, and connections to your campaign
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: item-management
vault-type: dnd-campaign
---
## What I Do
- Help create detailed item descriptions with mechanics and flavor text
- Assist in developing item history, ownership, and campaign significance
- Generate magic item effects, curses, and special abilities
- Link items to relevant NPCs, locations, arcs, and events
- Maintain organized item directory structure
## When to Use Me
Use this skill when:
- Creating new magic items or mundane gear
- Developing existing items with more depth and connections
- Organizing items by type, rarity, or location
- Linking items to story arcs and campaign events
- Generating loot tables and treasure hoards
## Workflow Integration
1. **Item Creation**: Create files in `02-World/Items/Name.md`
2. **Categories**: Use subdirectories for item types if needed
3. **Metadata**: Include type, rarity, attunement, current location
4. **Images**: Store item images in `06-Assets/Images/Items/`
## Template Structure
```markdown
---
typ: magic_item
seltenheit: legendary
attunierung: true
ort: ["Eldrin Temple", "Veylin"]
---
# Item Name
**Beschreibung**: A black opal pendant that absorbs sunlight. Grants darkness 1/day.
## Geschichte
- Created by [[Cult of the Eclipse]] during the [[Fall of Eldrin]]
- Stolen by [[Veylin]] in [[Session 12]]
## Mechanik
- **Effekt**: As an action, create a 20-ft radius darkness (no concentration)
- **Fluch**: If attuned for >24h, the wearer's shadow gains sentience
## Verbindungen
- **Handlungsbögen**: [[The Shadow War#The Amulet's Power]]
- **NSCs**: [[Veylin]], [[Captain Dain]] (wants it)
- **Orte**: [[Eldrin Temple]]
- **Ereignisse**: [[Session 12#Veylin's Betrayal]]
```
## Best Practices
- Use short, descriptive filenames (e.g., `Amulet of the Eclipse.md`)
- Include mechanical stats and effects clearly
- Link to all relevant NPCs, locations, and story elements
- Use tags for item categories (e.g., `#item/legendary`, `#item/cursed`)
- Group related items by campaign or story arc
- Include crafting requirements for homebrew items
@@ -0,0 +1,67 @@
---
name: dnd-location-builder
description: Build detailed DnD locations including cities, dungeons, regions, and points of interest with secrets and connections
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: worldbuilding
vault-type: dnd-campaign
---
## What I Do
- Help create comprehensive location descriptions with atmosphere and notable features
- Assist in developing location districts, areas, and points of interest
- Generate location secrets, hidden details, and plot hooks
- Link locations to relevant NPCs, organizations, items, and story arcs
- Maintain organized location directory structure
## When to Use Me
Use this skill when:
- Creating new cities, dungeons, or regions
- Developing existing locations with more depth and connections
- Organizing locations by region or type
- Linking locations to story arcs and campaign events
- Generating location-based quests and encounters
## Workflow Integration
1. **Location Creation**: Create files in `02-World/Locations/Name.md`
2. **Regions**: Use subdirectories for regions (e.g., `02-World/Locations/Region/Name.md`)
3. **Dungeons**: Place dungeon locations in appropriate subdirectories
4. **Metadata**: Include type, region, population, factions
## Template Structure
```markdown
---
typ: city
region: Sword Coast
population: 12000
factions: ["Order of the Gauntlet", "Zhentarim"]
npcs: ["Mayor Uldrin", "Thalric the Spy"]
items: ["Gauntlet of Eldrin"]
---
# Location Name
**Übersicht**: Port city on the [[Sword Coast]], known for its [[Order of the Gauntlet]] temple.
## Bezirke/Bereiche
- **Temple District**: HQ of the [[Order of the Gauntlet]]
- **Docks**: Controlled by the [[Zhentarim]] (see [[Thalric the Spy]])
## Geheimnisse
- [[Amulet of the Eclipse]] hidden beneath the temple (known to [[Veylin]])
## Verbindungen
- **Handlungsbögen**: [[The Shadow War#Eldrin's Role]]
- **Ereignisse**: [[Fall of Eldrin]]
- **NSCs**: [[Mayor Uldrin]], [[Thalric the Spy]]
- **Gegenstände**: [[Gauntlet of Eldrin]]
```
## Best Practices
- Use short, descriptive filenames (e.g., `Eldrin.md`)
- Include maps and visual references in `06-Assets/Maps/`
- Link to all relevant NPCs, organizations, and story elements
- Use spoiler syntax (`> !`) for hidden location details
- Group related locations geographically or thematically
- Include travel times and connections to other locations
+61
View File
@@ -0,0 +1,61 @@
---
name: dnd-lore-keeper
description: Manage DnD campaign lore, history, events and timelines for the Morgendämmerung campaign - maintain the timeline, event stream, and relationships. German content, heavy wiki linking.
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: lore-management
vault-type: dnd-campaign
---
## Was ich tue
- Den **Zeitstrahl** `03-Story/History/Zeitstrahl.md` pflegen.
- **Ereignisse** in `03-Story/Events/<Name>.md` anlegen/aktualisieren.
- **History-Einträge** in `03-Story/History/` verwalten.
- Beziehungen zwischen Orten, NSCs, Organisationen und Handlungsbögen dokumentieren.
- Lore mit allem relevanten Vault-Inhalt verlinken.
## Wann du mich brauchst
- Nach wichtigen Session-Geschehnissen (Ereignis + Zeitstrahl aktualisieren).
- Beim Aufbau von Weltgeschichte und Zeitlinien.
- Beim Dokumentieren politischer Strukturen und Beziehungen.
## Sprache & Verlinkung
- **Alles im Vault auf Deutsch** (siehe [[AGENTS]]).
- So viele sinnvolle `[[Wiki-Links]]` wie möglich setzen.
## Verzeichnisse
- Historie: `03-Story/History/`
- Ereignisse: `03-Story/Events/`
- Zeitstrahl: `03-Story/History/Zeitstrahl.md`
## Ereignis-Vorlage
Verwende `Templates/event-template.md`:
```markdown
---
type: event
tags: [dnd, event]
date: "<YYYY-MM-DD>"
campaign: Morgendämmerung
---
# Ereignis: <Name>
## Beteiligte
- [[NSC]], [[Ort]]
## Verlauf
## Folgen
## Verbindungen
- **Quests/Arcs**: [[]]
- **Orte**: [[]]
```
## Zeitstrahl-Pflege
- Einträge chronologisch mit Datum/Jahr und Links ergänzen.
- Neue Ereignisse mit `[[Zeitstrahl]]` rückverlinken.
- History-Dateien untereinander und mit Orten/Organisationen verlinken.
## Best Practices
- Klare, beschreibende Namen für Ereignisse und History-Einträge.
- Zeitangaben wo möglich (Jahr/Datum).
- Alle erwähnten Entitäten verlinken.
- Tags zur Kategorisierung (`#lore/history`, `#lore/politics`, `#lore/secrets`).
+74
View File
@@ -0,0 +1,74 @@
---
name: dnd-npc-creator
description: Create detailed DnD NPCs with personalities, backstories, stats, and connections to your campaign world
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: character-creation
vault-type: dnd-campaign
---
## What I Do
- Help create comprehensive NPC profiles with appearance, personality, and background
- Assist in developing NPC relationships and connections to organizations
- Generate stat blocks and mechanical information for NPCs
- Link NPCs to relevant locations, items, arcs, and events
- Maintain organized NPC directory structure
## When to Use Me
Use this skill when:
- Creating new NPCs for your campaign
- Developing existing NPCs with more depth and connections
- Organizing NPCs by location, faction, or role
- Linking NPCs to story arcs and campaign events
- Generating stat blocks for combat-ready NPCs
## Workflow Integration
1. **NPC Creation**: Create files in `04-Entities/NPCs/Name.md`
2. **Metadata**: Include type, race, class, alignment, organization, location
3. **Content Structure**: Appearance, personality, background, stats, connections
4. **Linking**: Connect to relevant `[[Organizations]]`, `[[Locations]]`, `[[Arcs]]`
## Template Structure
```markdown
---
typ: nsc
rasse: human
klasse: rogue
ausrichtung: chaotic_neutral
organisation: "Zhentarim"
ort: "Eldrin"
status: lebendig
---
# NPC Name
**Titel**: The Shadow Hand
**Aussehen**: Pale, scar across left eye, wears a black cloak
## Persönlichkeit
- **Eigenschaft**: "The ends justify the means."
- **Ideal**: "Knowledge is power."
- **Bond**: Owes a debt to [[Manshoon]].
## Hintergrund
- Former [[Order of the Gauntlet]] scribe
- Recruited by [[Thalric the Spy]] after the [[Fall of Eldrin]]
## Werte
- **KR**: 5 (use [[Stat Block]] for mechanics)
- **Fähigkeiten**: Shadow Step (teleport between shadows)
## Verbindungen
- **Handlungsbögen**: [[The Shadow War]]
- **Orte**: [[Eldrin]], [[Underdark]]
- **Gegenstände**: [[Amulet of the Eclipse]]
- **Ereignisse**: [[Session 12#Veylin's Betrayal]]
```
## Best Practices
- Use short, descriptive filenames (e.g., `Veylin.md` not `Veylin the Shadow Hand.md`)
- Include mechanical stats in separate stat block files if detailed
- Always link to related organizations, locations, and story elements
- Use tags for cross-cutting themes (e.g., `#faction/zhentarim`, `#role/spy`)
- Group related NPCs in subdirectories by location or faction if needed
@@ -0,0 +1,68 @@
---
name: dnd-quest-designer
description: Design DnD quests, story arcs, and adventures with phases, hooks, and connections to your campaign world
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: quest-design
vault-type: dnd-campaign
---
## What I Do
- Help create structured story arcs with phases and key entities
- Assist in developing quest hooks, objectives, and rewards
- Generate adventure outlines with encounters and story beats
- Link quests to relevant NPCs, locations, items, and organizations
- Maintain organized story directory structure
## When to Use Me
Use this skill when:
- Creating new story arcs or quests
- Developing existing arcs with more depth and structure
- Organizing quests by campaign, region, or theme
- Linking quests to campaign world elements
- Generating adventure hooks and plot twists
## Workflow Integration
1. **Arc Creation**: Create files in `03-Story/Arcs/Name.md`
2. **History**: Place completed arcs in `03-Story/History/`
3. **Events**: Create key events in `03-Story/Events/Name.md`
4. **Metadata**: Include status, sessions, NPCs, locations
## Template Structure
```markdown
---
typ: arc
status: active
sitzungen: [12, 13, 14]
nscs: ["Veylin", "Thalric"]
orte: ["Eldrin", "Underdark"]
---
# Arc Name
**Übersicht**: The [[Cult of the Eclipse]] seeks to plunge the [[Sword Coast]] into eternal night.
## Phasen
1. **Infiltration**: [[Veylin]] steals the [[Amulet of the Eclipse]] ([[Session 12]])
2. **Unleashing**: Cult performs the [[Ritual of the Black Sun]] in the [[Underdark]]
## Wichtige NSCs
- [[Veylin]]: Traitorous mage
- [[Thalric the Spy]]: Zhentarim agent tracking the cult
## Verbindungen
- **Ereignisse**: [[Fall of Eldrin]], [[Ritual of the Black Sun]]
- **Gegenstände**: [[Amulet of the Eclipse]]
- **Orte**: [[Eldrin]], [[Underdark]]
- **Organisationen**: [[Cult of the Eclipse]], [[Zhentarim]]
```
## Best Practices
- Use clear, descriptive arc names
- Break arcs into logical phases or acts
- Link to all relevant world elements
- Include potential outcomes and consequences
- Use tags for arc themes (e.g., `#arc/infiltration`, `#arc/epic`)
- Move completed arcs to History directory
- Include estimated session count and level range
@@ -0,0 +1,59 @@
---
name: dnd-session-manager
description: Manage DnD session notes for the Morgendämmerung campaign - create session reports from prep plus raw notes, and prepare the next session. German content, heavy wiki linking.
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: session-management
vault-type: dnd-campaign
---
## Was ich tue
- Aus Session-Prep + rohen Notizen einen **Sitzungsbericht** erstellen.
- Die **nächste Session** vorbereiten (Hooks, Szenen, NSCs, Monster, Items).
- Session-Dateien chronologisch in `01-Sessions/Episode XX.md` pflegen.
- Inhalte mit NSCs, Orten, Quests, Arcs, Items und Ereignissen verlinken.
## Wann du mich brauchst
- Nach einer Session: rohe Notizen aus `00-Inbox/` (Datum im Dateinamen oder Inhalt) verarbeiten.
- Vor einer Session: Prep für die nächste Episode anlegen.
- Session-Zusammenfassungen für Spieler erzeugen.
## Sprache & Verlinkung
- **Alles im Vault auf Deutsch** (siehe [[AGENTS]]).
- So viele sinnvolle `[[Wiki-Links]]` wie möglich setzen.
## Ablauf
### 1. Sitzungsbericht
- Prep (`01-Sessions/Episode XX.md`) + Notizen aus `00-Inbox/` kombinieren.
- Im Prep die Sektion `## Sitzungsbericht` ergänzen: was ist tatsächlich passiert,
chronologisch, mit Links zu [[Orten]], [[NSCs]], [[Quests]], [[Ereignissen]].
- Offene Enden, neue Hinweise und Entscheidungen markieren.
- Die rohe Notiz danach archivieren (nach `08-Archiv/`) — vor dem Entfernen Nutzer fragen.
### 2. Nächste Session vorbereiten
- Neue Datei `01-Sessions/Episode XX+1.md` nach `Templates/session-template.md`.
- `dnd_session_date` und deutsche `summary` setzen.
- Abschnitte füllen: Review the Characters, Strong Start, Scenes, Secrets, NPCs,
Monster (`[[07-Compendium/bestiary/...]]`), Magic Items.
- Alles mit aktiven Quests/Arcs aus `03-Story/` verknüpfen.
## Vorlage (verbindlich)
Verwende `Templates/session-template.md` mit Frontmatter:
```markdown
---
type: session-notes
tags: [dnd, session-notes]
dnd_session_date: "<YYYY-MM-DD>"
summary: ""
campaign: Morgendämmerung
---
```
## Best Practices
- Session-Zusammenfassungen kurz halten (35 Stichpunkte).
- Monster und Zauber als Links ins `07-Compendium/`.
- Versteckte SL-Infos mit Spoiler-Syntax (`> !`) auszeichnen.
- NSCs, Orte und Quests immer verlinken.
@@ -0,0 +1,97 @@
---
name: dnd-worldbuilder
description: Build and manage DnD world lore, organizations, history, and campaign setting elements
license: MIT
compatibility: opencode
metadata:
audience: dungeon-masters
workflow: worldbuilding
vault-type: dnd-campaign
---
## What I Do
- Help create comprehensive world lore and campaign setting elements
- Assist in developing organizations, factions, and political structures
- Generate historical timelines and world events
- Link world elements to locations, NPCs, and story arcs
- Maintain organized worldbuilding directory structure
## When to Use Me
Use this skill when:
- Creating new organizations, factions, or political entities
- Developing world history and timelines
- Building campaign setting elements and lore
- Linking world elements to campaign content
- Generating political maps and relationship networks
## Workflow Integration
1. **Organizations**: Create files in `04-Entities/Organizations/Name.md`
2. **History**: Place historical content in `03-Story/History/`
3. **World Lore**: Use `02-World/` for geographical and cultural elements
4. **Connections**: Link to relevant NPCs, locations, and story arcs
## Organization Template
```markdown
---
typ: organisation
ausrichtung: lawful_evil
führer: "Thalric the Spy"
mitglieder: ["Veylin", "Captain Dain"]
hq: "Eldrin Docks"
ziele: ["Control the Underdark trade", "Acquire the Amulet of the Eclipse"]
---
# Organization Name
**Übersicht**: Mercantile syndicate with a dark underbelly.
## Hierarchie
- **Führer**: [[Thalric the Spy]]
- **Mitglieder**: [[Veylin]] (infiltrator), [[Captain Dain]] (enforcer)
## Ziele
- Monopolize [[Underdark]] trade routes
- Sabotage the [[Order of the Gauntlet]]
## Geheimnisse
- [[Thalric the Spy]] is actually a double agent for [[Manshoon]]
## Verbindungen
- **Handlungsbögen**: [[The Shadow War]]
- **Orte**: [[Eldrin Docks]]
- **NSCs**: [[Veylin]], [[Captain Dain]]
```
## Worldbuilding Template
```markdown
---
typ: lore
kategorie: history
zeitraum: "Year 0-100"
verbindungen: ["Bruch des Arkanen Geflechts", "Zirkel der Ordnung"]
---
# Historical Event
**Zeitraum**: Year 0-100
## Ereignisse
- **Jahr 0**: Der Bruch des Arkanen Geflechts
- **Jahr 15**: Gründung des Zirkels
- **Jahr 25**: Erweiterung des Zirkels
## Auswirkungen
- Formation of various organizations
- Establishment of new power structures
## Verbindungen
- **Organisationen**: [[Zirkel der Ordnung]], [[Garde der Gerechtigkeit]]
- **NSCs**: [[Founding Members]]
- **Orte**: [[Eldrin]], [[Sword Coast]]
```
## Best Practices
- Use clear, descriptive names for organizations and lore elements
- Include founding dates, leaders, and key members
- Link to all relevant NPCs, locations, and story elements
- Use tags for categorization (e.g., `#org/guild`, `#org/cult`, `#lore/history`)
- Maintain consistent naming conventions
- Include goals, secrets, and current status
+3
View File
@@ -0,0 +1,3 @@
/opencode/**
!/opencode/skills
!/opencode/opencode.sjon
View File
View File
+1
View File
@@ -0,0 +1 @@
{}
View File
+30
View File
@@ -0,0 +1,30 @@
letzes mal:
dungeon erkunden,vision gehabt, gräfin in die Arme gelaufen
gräfin weiß nicht viel von dungeon
Lysander großes interesse an Dungeon aber bisher nicht involviert
Aufregender trip zu Pilzstadt mit Turm in vergangenheit
Ein Pilz -> [[Syl]] -> besonderes kind #todo
Nova an nem Zimmer vorbei mit weirden Geräuchsen
Arian Voss -> Vater von Emilia
Aerellion: Nachteil auf Intelligenz DC 12
-> vermuten Lagerraum im Keller unten Links bei den Fässern
-> wollen mit Schlüssel den Raum absperren
-> Casimir hat Buch über "Formalisierung geheimer Allianzen mit glaubhafter Abstreitbarkeit" -> Buch mit Titel "Paktsprache: Bindende Vereinbarungen zwischen verschiedenartigen Völkern"
-> #todo nächste Session titel erwähnen
Feedback:
- Positiv: Geheimnisse "random" versteckt, hätte auch nicht gefunden werden können
- Wunsch (Tim): Bald zum Händler für Heiltränke / Armbrustbolzen
-
Plan:
- Pilzkreis untersuchen
- in Lagerraum gehen
- was ist "der Lagerraum"
- oben alles abhaken
- oben Raum mit Noises
- Lysander aufs Glatteis führen
- Leiche in Schuppen (woran gestorben)
+7
View File
@@ -0,0 +1,7 @@
Die Bibliothek
Kurz nach der Entdeckung der Bibliothek hat der Konvent der Arkane eine großangelegte Expedition gestartet. Gustavo ist ein bekannter Name in Bandon, deswegen wurden wir als Barden angeheuert. Nicht nur, um die Moral hochzuhalten, sondern auch, um im Nachhinein die Wunder der Bibliothek an das Volk zu tragen. Denn nur mit Unterstützung in der Gesellschaft, nur wenn die Völker verzaubert und begeistert von der Bibliothek sind, werden genug Mittel für deren Erforschung frei. Während unserer Reise zur Bibliothek haben wir die Gruppe mit unseren Liedern und Geschichten über große Abenteuer und tapfere Helden unterhalten. Für die meisten waren das nur willkommene Hintergrundgeräusche, während sie den Abend am Lagerfeuer ausklingen ließen. Aber mit der Zeit ist mir aufgefallen, dass ein Junge jeden Abend in der Nähe von uns saß und gespannt Wort für Wort aufgesogen hat. Eines Abends entschied ich, mich zu ihm zu setzen. Man soll seine Fans ja schließlich wertschätzen. Sein Name war Ludwig Läufer, ein Buch Wurm wie er … im Buche steht. Groß und schlaksig, nicht sehr erfahren im Umgang mit Worten … oder Menschen. Das war seine erste Außenexpedition. Obwohl er schon seit Jahren in der Kartographie Abteilung des Konvents hart gearbeitet hatte, wurden seine Expeditionsanträge stets abgelehnt. Doch nun bekam er durch einen Zufall die Chance, Praxiserfahrungen zu sammeln.
Normalerweise hätte ich es dabei belassen, ihm noch ein letztes Lächeln geschenkt und mich wieder um meine Angelegenheiten gekümmert. Aber … irgendetwas hat mich gestört, ich empfand wirklich Sympathie für ihn, und da war auch diese Wut…
Egal wie hart er gearbeitet hat, egal wie gut seine Ergebnisse waren. Seine Vorgesetzten haben ihn nur belächelt und seine Erfolge als ihre eigenen gefeiert. Ihm wurde die Anerkennung verwehrt, die ihm zustand … genau wie mir. Während der Expedition haben wir uns immer besser verstanden und ich habe versucht, ihm zu helfen, etwas selbstbewusster aufzutreten. Obwohl ich, glaube ich, wirklich kein guter Lehrer war, konnte er doch etwas mehr Respekt bei seinen Kollegen einfordern. Ohne, dass ich es zuerst bemerkt hätte, hat sein Fortschritt mich selber ins Grübeln gebracht. Nachdem ich meinen Stamm verlassen hatte, war ich losgezogen, um magische Artefakte zu bergen und mir so Anerkennung zu verschaffen. Und obwohl ich dieses Ziel immer vor mir hatte, so habe ich es doch über die Jahre aus den Augen verloren. Was mein Feuer dann letztendlich wieder vollkommen entfacht hat, war die Bibliothek.
Diese scheinbar endlose Sammlung arkaner Schriften und mythischer Texte hat mir die Augen wieder geöffnet. Unsere Welt ist so groß, es gibt noch so viel zu entdecken, so viel verlorenes Wissen, das selbst den ältesten Elfen kein Begriff ist. Schon auf dem Rückweg von der Bibliothek habe ich mit neuem Eifer die nächste Erkundung geplant, Ludwig hat mich dabei mit seinem großen Wissen über die Welt und die Magie unterstützt. Irgendwie muss ich damit Gustavo aber überfordert haben. Nach den vielen Wochen auf Reise wollte dieser einfach nur noch entspannen. So langsam, aber sicher wurde uns beiden bewusst, dass das, was wir wollen, einfach nicht mehr das selbe ist. Deshalb haben sich unsere Wege danach leider getrennt.
+251
View File
@@ -0,0 +1,251 @@
Geschichte am Anwesen:
Marquis hat alte Pläne des Anwesens mit dem Dungeon gefunden
- er war schon immer fasziniert von der Unterwelt (Underdark)
-> Er hat den Durchbruch geschlagen und den Dungeon erkundet
-> Er hat die Spuren des alten Ritualortes gefunden (knochen + Blutreste)
- er hat zuerst versucht, das Ritual im Haus mit alter Literatur nachzubauen
- Das Experiment lief schief, als Davon den Kreis fand und ihn ausversehen aktivierte (vlt auch aus Neugier) -> wurde zu Puppe
- Das brachte die Entität im Dungeon zur Existenz
- Danach hat er es draußen in der Nähe des ursprünglichen Kreises mit Chaospulver versucht
-> Damit hatte er Erfolg, wurde aber durch die entstehenden Pilze vergiftet (verwirrt)
- die Entität half dabei mit, um die Chaosmagie zu verstärken
-> Lysander kam zu der Zeit auf den Hof
- er sah eine Gelegenheit und wurde Marquis los und betäubte Emilia
- Er ist auf der Suche nach dem Schlüssel zu der Tür im Keller, mit der er in den Dungeon kommen würde
- Die Bruderschaft hat auch versucht jemand heimlich einzuschleusen ->
-> Emilia wandte sich an die Allianz der Harmonie, die jemanden zur Untersuchung schickte -> Tote Person im Schuppen
-> Person in offenem Sarg ist alter, ehemaliger Besitzer
-> Mumie in zerbrochenem Sarcophagus wurde aus anderer Zeit gerissen und hier platziert
-> Lichtscheibe:
- Kann mit Amulett aktiviert werden
- Das Stück "Der Abstieg des Träumers" schaltet ihn ein
- Gegenwirkung zur Chaosmagie für 8h
- Wenn gruppenperformance > DC 15 entfernung negativer effekte
- Wenn performance < DC 10 Kein Erfolg und ungutes Gefühl im Nacken -> Chaosmagie intensiver
Spieler sollen am Ende nach der Manson folgendes Wissen haben:
**Bruderschaft des Schicksals**:
- Stecken hinter Macht verlust bei Casimir
- Wollen möglichst viele Seelen opfern, um Dämonenfürst zu beschwören
- Arbeiten Projektbasiert entkoppelt
- Olir beaufsichtigt ein Projekt, ist aber nicht Kopf
**Chaosmagie**:
- Mykori hatten ausversehen den Gott des Chaos freigesetzt, durch einen hinterhältigen Dämon, der damals einen Vertrag mit einem Wesen getroffen hatte
- Sie haben ihn durch ein mächtiges Ritual wieder einfangen können (-> [[Kugel des Gleichgewichts]])
- Sie haben sich danach versteckt, damit es nicht ausversehen wieder freigesetzt wird
- Inzwischen gibt es nur noch Legenden um sie
**Zarathar** (manipulator):
- Lysander wird mit "toter" Tochter erpresst
---
+1 Tage
1GM für Privatzimmer
4 GM von Tim
Morinio Performance in der Taverne
Constitution
Strength
- Athletics
Dexterity
- Acrobatics
- Sleight of Hand
- Stealth
Intelligence
- Arcana
- History
- Investigation
- Nature
- Religion
Wisdom
- Animal Handling
- Insight
- Medicine
- Perception
- Survival
Charisma
- Deception
- Intimidation
- Performance
- Persuasion
Corwin, Emilia, Lysander
nachteil auf intelligentz Jonas, Lena
-> Schriftrolle: Expeditionsbericht (amateurhaft) über verlassenes Reich mit merkwürdigen Wesen
Buch über Pilzkreis
Buch über beschwörung
+11GM
+2 Smaragde (je 1000GM)
+13GM
+2 Smaragde
#todo Zeitgefühl in Dungeon verloren
knochen mit blut zur Entity gebracht
lena hat 20kg eingesteckt, bevor Jonas sie gestoppt hat
beide haben 10GM, 15SM eingesteckt
Flasche mit Sternenlicht, Scroll (unlesbar), Reifen des Leuchtfeuerhüters
Lena hat Plitschi den Frosch eingesteckt
#30min short rest
Jonas steckt kurzschwert aus fleischberg ein
Leiche zerteilt älter als paar tage, nicht älter als ein Monat
Sarg > 50j Tot
Arian Voss, hinterlässt vermögen und seine Last seinen trauernden Kindern
-> Casimir hat Leiche angefasst
-> wild magic 9 bei nova (tattoo)
-> Schwert mitgenommen
-> Nova nimmt es mit (Chaosmagie Schwert)
-> Nova cursed
-> Noten für Laute "abstieg des Träumers" unter Mumie (auf elfisch)
-> Krone mit erfirerungseffekt bei Mumie
-> min aus Adelshaus oder höher
-> Casimir steck Spinnenfigur ein (kustvoll aus Gold gefertigt)
-> Morinio Crossbow Light entfernen
-> Nächste Session start mit Performance
Feedback:
- Positiv: Charakter geschichte eingebunden
- Positiv: Mumienkampf recht schnell
- slightly negativ: paralysiert war nur zuschauen
Idee: #todo
- eine Tragödie als Katalysator für das gute / für Veränderung
- vertretbarer verlust
- sie brauchen Hoffnung aber glauben an Furcht
- aus der Asche wird die Menschheit wieder zu einem gemeinsamen Ziel finden -> einer kollektiven Hoffnung, geboren aus einer kollektiven Angst
---
**10.08.2026**
-> Morinio geschichte:
- Wie er von Rollen / Fans verlassen wurde
- Früher mit Leichtigkeit Stellen bekommen
- plötzlich nicht mehr gefragt / gebucht
-> Nova geschichte:
- Ablehnung aufgrund der Tiefling erscheinung
- Im Wald (mit Schwester) zum Spielen von zuahuse entfernt
- auf andere Kinder gestoßen, wollte mit ihnen spielen
- wurde ausgelacht, geschupst und mit Dreck beworfen
-> Aerillion geschichte:
- Jemanden wegen Chaos magie verloren
- ( #todo)
-> Casimir geschichte:
- verweigert
haben geschichte des Träumers erlebt
```
### **Recap: Die Vision der zerstörten Siedlung**
---
#### **Die Ankunft und die Vision**
Die Spieler betreten eine zerstörte Siedlung, in der sie auf **Pilzwesen** und **Leichen** stoßen, die von **Chaosmagie** durchdrungen sind. In der Mitte der Siedlung steht ein großer Turm, aus dem eine einladende Stimme ruft. Im Inneren des Turms entdecken sie eine **Linse**, die sie durch emotionale Öffnung in eine **Vision** versetzt.
---
#### **Die Ursprünge der Stadt**
Die Vision beginnt in der **Blütezeit der Stadt**:
- Die Häuser sind intakt, die Bewohner glücklich.
- Alle sind über ein **psychologisches Netz** miteinander verbunden.
- Ein **Kind** nähert sich den Spielern, malt etwas auf den Boden und macht sie auf ein **leises Flüstern** im Netz aufmerksam.
---
#### **Die Entwicklung der Bedrohung**
Ein **Zeitsprung** führt die Spieler einige Jahre in die Zukunft:
- Ein **Gelehrter** erforscht das Phänomen und wird vom Kind unterstützt, das nur noch sagt: _„Es singt für mich.“_
- Ein **Bürgermeister** will **Lichtscheiben** schaffen, um mit den Geschwisterstämmen zu kommunizieren.
- Ein **Militär** warnt vor einer **Gefahr von unten** und lässt seine Soldaten trainieren.
- Eine **Priesterin** glaubt, in der Stimme den **„nächsten Gott“** zu hören, und betet ihn an.
---
#### **Der Konflikt eskaliert**
- Der **General** wird weggesperrt.
- Der **Gelehrte** und der **Ratsvorsitzende** diskutieren, ob sie die Lichtscheiben nutzen sollen, um die Geschwisterstämme zu warnen oder ob sie damit das **Chaoswesen** verbreiten, das sich über die Scheiben ausbreiten könnte.
- Die **Priesterin** übernimmt die Kontrolle, zieht Leute aus ihren Häusern und lässt **„Ketzer“** verbrennen.
- Das **Kind** sitzt lächelnd auf einem Altar und reagiert kaum auf die Spieler.
---
#### **Der Untergang der Stadt**
Ein weiterer **Zeitsprung** zeigt:
- Die **Priesterin** betet, während draußen ein **Kampf** tobt, in dem alle von Chaosmagie zerstört werden.
- Das **Kind** schwebt im Zentrum und **kontrolliert die Chaosmagie**.
- Der **Gelehrte** ist versteinert, umklammert ein Buch mit Hinweisen:
- Das Wesen lebt von **Chaos**.
- Eine **Skizze der Kugel des Gleichgewichts** könnte es aufnehmen und stoppen.
---
#### **Der letzte Versuch**
- **Acht mächtige Magier** versuchen, das Kind in einem **Bannkreis** mit Runen in die **Kugel des Gleichgewichts** zu bannen.
- Einer nach dem anderen stirbt, bis nur noch einer übrig bleibt.
- Der Letzte vollendet die Kugel, wird aber von einem **Stellagmied** durchbohrt.
- Mit seinem letzten Atemzug kriecht er zum Altar und erschafft die **Linse** mit den Worten: _„Lernt aus unseren Fehlern. Vergiss nicht die Vergangenheit.“_
---
#### **Ende der Vision**
Die Vision endet, und die Spieler kehren in die Realität zurück mit dem Wissen um die **Vergangenheit der Stadt** und die **Gefahr des Chaoswesens**.
```
Tim vermutet mit Wesen von unten von General == Wesen, dass die Spinne vertrieben hat
Emilia berichtet von Leiche in Schuppen (Gärtner)
und von verschwundenen Diener [[Davon]]
Lysander denkt "das ist also mein Ziel" in Bezug auf den Dungeon, sagt aber, dass er überrascht ist
-> lange Rast, Nova 9 HP
feedback:
- coole Vision
- mehr Ahnung was abgeht
- Story war dennoch interaktiv genug
- Dorn für Tim: Viel herausgefunden, aber noch nicht klar wie sich das auf die Charaktere auswirken wird
+127
View File
@@ -0,0 +1,127 @@
{
"nodes":[
{"id":"d4ffeb28f7522bb4","type":"group","x":-80,"y":-640,"width":2330,"height":1663,"label":"Bruderschaft des Schicksals"},
{"id":"585ce74bd9ee23df","type":"group","x":-2340,"y":-1860,"width":1080,"height":1480,"label":"Orden der Reinheit"},
{"id":"31ed7ca3464cf5f2","type":"group","x":-1260,"y":1440,"width":1720,"height":860,"label":"Allianz der Harmonie"},
{"id":"d26af72b64351cd0","type":"group","x":-3160,"y":-200,"width":1260,"height":500,"label":"Kreis der Wiederherstellung"},
{"id":"4ba10c223eabb97d","type":"text","text":"Projekt: Steine in der Mühle","x":2640,"y":-1140,"width":250,"height":60,"color":"1"},
{"id":"31c2cab0aae1aa7b","type":"text","text":"Aella Klee (Rhadar):\n- Untergetaucht in Dorf","x":-2776,"y":-1554,"width":246,"height":93},
{"id":"9289585ee4aab2ba","type":"file","file":"04 - Characters/Spieler/Nova Klee.md","x":-2853,"y":-1124,"width":400,"height":400,"color":"5"},
{"id":"847bc059861f438e","type":"text","text":"Alaric Bhakam:\n- Hat jetzt Macht und Einfluss\n- Zu tiefling geworden","x":-2180,"y":-1554,"width":320,"height":117},
{"id":"57af8cef78e428b9","type":"text","text":"Bachar (tiefling)","x":-2220,"y":-1154,"width":250,"height":60},
{"id":"88937b2fbca1e10b","type":"file","file":"04 - Characters/Klagenfels/Der Große Purist.md","x":-1660,"y":-1507,"width":400,"height":400},
{"id":"f2c31a3e16048bd8","type":"text","text":"Euphemia (Mia) Klee\n- Klerikerin\n- Halbling","x":-3280,"y":-1290,"width":249,"height":119},
{"id":"49e645903622921d","type":"file","file":"03 - Organisationen/Der Kreis/Orden der Reinheit.md","x":-1680,"y":-800,"width":400,"height":400,"color":"1"},
{"id":"8861cf9a3e6ffa82","type":"text","text":"Lysandra Mondtänzer","x":-3140,"y":-120,"width":250,"height":60,"color":"1"},
{"id":"3a9c6e0ea1eb2235","type":"text","text":"Eldrin Fremel","x":-2720,"y":-180,"width":250,"height":60,"color":"1"},
{"id":"9b7b616fe0d3f7d4","type":"file","file":"03 - Organisationen/Der Kreis/Kreis der Wiederherstellung.md","x":-2320,"y":-120,"width":400,"height":400},
{"id":"8f9015a69cac3a3b","type":"text","text":"Thalion Dunkelherz","x":-3140,"y":-10,"width":250,"height":60,"color":"1"},
{"id":"b23905f7bc9571a6","type":"text","text":"Elara Sternenlicht","x":-3140,"y":120,"width":250,"height":60,"color":"1"},
{"id":"89857a0a8dd488cf","type":"text","text":"Projekt: Einflussnahme\n\n- Test von Artefakt manipulation\n- Freier Willen abgeschafft\n- An Tieren ausprobieren","x":-2060,"y":-1840,"width":323,"height":145,"color":"1"},
{"id":"f73dedb170dac11c","type":"file","file":"03 - Organisationen/Der Kreis/Konvent der Arkana.md","x":-960,"y":-1401,"width":400,"height":400,"color":"1"},
{"id":"06fc644b281bf6a6","type":"text","text":"Ludwig Läufer","x":-361,"y":-1401,"width":250,"height":60,"color":"1"},
{"id":"34c40c0d58f4ef58","type":"file","file":"03 - Organisationen/Die Wiedergeburt der Dämmerung.md","x":-1240,"y":120,"width":400,"height":400},
{"id":"15e99b97094472f2","type":"file","file":"04 - Characters/Spieler/Morinio Aerethriel.md","x":-111,"y":-2000,"width":400,"height":400,"color":"5"},
{"id":"d42a39784ef27d96","type":"text","text":"Gustavo","x":-160,"y":-1261,"width":250,"height":60,"color":"1"},
{"id":"678e18c7ae0cdb96","type":"text","text":"Projekt: Magiebedrohung","x":-310,"y":-230,"width":250,"height":60},
{"id":"e02f41cb930359b2","type":"file","file":"04 - Characters/Zarathar.md","x":-1900,"y":420,"width":418,"height":403},
{"id":"0bd2f87797c3f233","type":"file","file":"03 - Organisationen/Der Kreis/Bruderschaft des Schicksals.md","x":-60,"y":-80,"width":400,"height":400},
{"id":"679c3f802ff90e05","type":"file","file":"04 - Characters/Bandon/Vexis Dämmerfluch.md","x":140,"y":-600,"width":400,"height":400},
{"id":"ebc00f54df31fae0","type":"file","file":"04 - Characters/Ormur/Finnian Glutfall.md","x":-560,"y":623,"width":400,"height":400},
{"id":"0960aa0053bfb6e8","type":"file","file":"04 - Characters/Ormur/Kultisten.md","x":140,"y":623,"width":400,"height":400},
{"id":"b744595af42913a9","type":"text","text":"Gräfin Emmilia","x":610,"y":-1630,"width":250,"height":60,"color":"1"},
{"id":"7a455fd101c5a56c","type":"text","text":"Graf Marquis (verstorben)","x":1000,"y":-1780,"width":250,"height":60,"color":"1"},
{"id":"8e009039b1c295cf","type":"file","file":"04 - Characters/Ormur/Seraphina Nox.md","x":660,"y":-1160,"width":400,"height":400,"color":"1"},
{"id":"59885ac86e8b5e0d","type":"text","text":"Tempel des Lichts","x":-1970,"y":1162,"width":425,"height":177},
{"id":"9977608f6084aa93","type":"file","file":"03 - Organisationen/Gerasben/Aristokratie in Gerasben.md","x":1820,"y":-1220,"width":400,"height":400,"color":"1"},
{"id":"733fdb46efbc62d1","type":"file","file":"04 - Characters/Ormur/Loris Bhunnel.md","x":20,"y":1560,"width":400,"height":400,"color":"1"},
{"id":"cdf9078a1f041804","type":"file","file":"04 - Characters/Ormur/Henry Henryson.md","x":1580,"y":1560,"width":400,"height":400,"color":"1"},
{"id":"2be3e7f292b029bf","type":"file","file":"04 - Characters/Ormur/Erelem Bander.md","x":2480,"y":1567,"width":400,"height":400},
{"id":"d777e7baad0cd071","type":"file","file":"04 - Characters/Ormur/Farenger Terlin.md","x":2730,"y":978,"width":400,"height":400},
{"id":"6e475eba9e49eb29","type":"file","file":"04 - Characters/Ormur/Freia Silberzunge.md","x":2930,"y":160,"width":400,"height":400},
{"id":"a5290e8dab06dfb3","type":"file","file":"03 - Organisationen/Der Weg (Diebesgilde).md","x":3600,"y":20,"width":400,"height":400},
{"id":"c5d13c23824902ae","type":"file","file":"03 - Organisationen/Der Kreis/Allianz der Harmonie.md","x":-1220,"y":1560,"width":400,"height":400,"color":"1"},
{"id":"1a29d312bc1fb8a1","type":"file","file":"04 - Characters/Spieler/Aerilion.md","x":3920,"y":939,"width":400,"height":400,"color":"5"},
{"id":"10496e6b0f125944","type":"file","file":"04 - Characters/Malekir.md","x":660,"y":-280,"width":400,"height":400,"color":"1"},
{"id":"b3768b7fc2eedb05","type":"file","file":"04 - Characters/Ormur/Olir Armursen.md","x":1580,"y":40,"width":400,"height":400,"color":"1"},
{"id":"ebaf021867414dbb","type":"text","text":"Arbeiten miteinander, weil sie Druck ausübt auf das Leben der Tochter und den Bruder","x":1608,"y":1300,"width":345,"height":78,"color":"6"},
{"id":"75ca0c31fbcb512a","type":"file","file":"04 - Characters/Gerasben/Wynna.md","x":1680,"y":-540,"width":400,"height":400,"color":"1"},
{"id":"13bb5a5dc71cf6d4","type":"file","file":"04 - Characters/Ormur/Berga Trelior.md","x":1780,"y":778,"width":400,"height":400},
{"id":"991f2d8dbbf5eb0b","type":"text","text":"Projekt: Reinigung","x":1980,"y":-80,"width":250,"height":60,"color":"1"},
{"id":"06198b50a04d0ffd","type":"file","file":"04 - Characters/Ormur/Gerald Trelior.md","x":2480,"y":-160,"width":400,"height":400},
{"id":"a0dfe3c00330b302","type":"file","file":"03 - Organisationen/Freiheitskämpfer in Gerasben.md","x":2600,"y":-640,"width":400,"height":400,"color":"1"}
],
"edges":[
{"id":"b0307dc2c715b0f9","fromNode":"10496e6b0f125944","fromSide":"left","toNode":"0bd2f87797c3f233","toSide":"right","color":"5","label":"Anführer"},
{"id":"d652f66143abc0d2","fromNode":"34c40c0d58f4ef58","fromSide":"right","toNode":"0bd2f87797c3f233","toSide":"left","color":"3","label":"Beeinflussung durch:\n- Ermordungsziele\n- Artefakte\n- Falsche Prophezeiungen\n- Falsche Riten"},
{"id":"190abc1c8b81aee1","fromNode":"0960aa0053bfb6e8","fromSide":"top","toNode":"0bd2f87797c3f233","toSide":"right","color":"5","label":"Mitglieder"},
{"id":"00dcbc6bea533fad","fromNode":"10496e6b0f125944","fromSide":"right","toNode":"75ca0c31fbcb512a","toSide":"left","color":"5","label":"Kontrolliert"},
{"id":"94365d1bc221383f","fromNode":"10496e6b0f125944","fromSide":"right","toNode":"b3768b7fc2eedb05","toSide":"left","color":"5","label":"Kontrolliert"},
{"id":"3f9464cc8d1a7a3e","fromNode":"b3768b7fc2eedb05","fromSide":"bottom","toNode":"13bb5a5dc71cf6d4","toSide":"top","label":"Teilt Information und Ziele"},
{"id":"145bae2ad3c2a44c","fromNode":"13bb5a5dc71cf6d4","fromSide":"right","toNode":"b3768b7fc2eedb05","toSide":"right","label":"Erhofft sich Heilung für Ehemann"},
{"id":"d1fe5406509233c4","fromNode":"13bb5a5dc71cf6d4","fromSide":"right","toNode":"d777e7baad0cd071","toSide":"left","fromEnd":"arrow","color":"4","label":"Verheiratet"},
{"id":"0410e8b36c965deb","fromNode":"34c40c0d58f4ef58","fromSide":"right","toNode":"d777e7baad0cd071","toSide":"top","color":"2","label":"Kontrolliert durch Beschwörung"},
{"id":"744578ba0cf60318","fromNode":"75ca0c31fbcb512a","fromSide":"right","toNode":"a0dfe3c00330b302","toSide":"left","color":"6","label":"Unterstützt"},
{"id":"16c5dbdc29a4531f","fromNode":"9977608f6084aa93","fromSide":"right","toNode":"a0dfe3c00330b302","toSide":"top","fromEnd":"arrow","color":"1","label":"Bekämpft"},
{"id":"d715fd67b2d26d6d","fromNode":"75ca0c31fbcb512a","fromSide":"top","toNode":"9977608f6084aa93","toSide":"bottom","color":"6","label":"Unterstützt"},
{"id":"6ed644cddec7d58a","fromNode":"10496e6b0f125944","fromSide":"top","toNode":"8e009039b1c295cf","toSide":"bottom","color":"5","label":"Beauftragt"},
{"id":"5c14f5e092a0f879","fromNode":"34c40c0d58f4ef58","fromSide":"top","toNode":"8e009039b1c295cf","toSide":"left","color":"2","label":"Manipuliert durch Informationen zu Diadem\n- Hat Diadem für Adel als Gefallen gestohlen / geschenkt"},
{"id":"c900b3261332fe8c","fromNode":"75ca0c31fbcb512a","fromSide":"top","toNode":"8e009039b1c295cf","toSide":"right","fromEnd":"arrow","color":"4","label":"Arbeiten zusammen"},
{"id":"63c7e234855fa492","fromNode":"cdf9078a1f041804","fromSide":"top","toNode":"ebaf021867414dbb","toSide":"bottom","fromEnd":"arrow","color":"6"},
{"id":"40f077727cd93049","fromNode":"13bb5a5dc71cf6d4","fromSide":"bottom","toNode":"ebaf021867414dbb","toSide":"top","fromEnd":"arrow","color":"6"},
{"id":"556414fcd5e8dd19","fromNode":"cdf9078a1f041804","fromSide":"left","toNode":"8e009039b1c295cf","toSide":"right","fromEnd":"arrow","label":"Kennen sich"},
{"id":"d0e8a7ea3b9f8b2f","fromNode":"b3768b7fc2eedb05","fromSide":"right","toNode":"991f2d8dbbf5eb0b","toSide":"bottom","color":"5","label":"Verantworticher"},
{"id":"663853b6e61a6827","fromNode":"75ca0c31fbcb512a","fromSide":"right","toNode":"991f2d8dbbf5eb0b","toSide":"top","color":"5","label":"Teil von"},
{"id":"8e731d3e983eb27d","fromNode":"8e009039b1c295cf","fromSide":"right","toNode":"991f2d8dbbf5eb0b","toSide":"left","color":"5","label":"Hilft mit"},
{"id":"5e81de9d1dd72ce7","fromNode":"4ba10c223eabb97d","fromSide":"left","toNode":"9977608f6084aa93","toSide":"right","color":"6"},
{"id":"fed0e136c138e115","fromNode":"4ba10c223eabb97d","fromSide":"bottom","toNode":"a0dfe3c00330b302","toSide":"top","color":"6"},
{"id":"e880e7ebe109f204","fromNode":"75ca0c31fbcb512a","fromSide":"right","toNode":"4ba10c223eabb97d","toSide":"bottom","color":"5","label":"Verantwortliche"},
{"id":"c6ab58e4bb8bd009","fromNode":"4ba10c223eabb97d","fromSide":"right","toNode":"a5290e8dab06dfb3","toSide":"left","color":"6","label":"Beteiligt"},
{"id":"543b0d85189d45f3","fromNode":"13bb5a5dc71cf6d4","fromSide":"top","toNode":"991f2d8dbbf5eb0b","toSide":"right","color":"5","label":"Beteiligt"},
{"id":"a28bd1b4d4b4f8fc","fromNode":"6e475eba9e49eb29","fromSide":"left","toNode":"13bb5a5dc71cf6d4","toSide":"right","color":"6","label":"Will loswerden"},
{"id":"d3cbe45a0ed4e749","fromNode":"a5290e8dab06dfb3","fromSide":"left","toNode":"6e475eba9e49eb29","toSide":"right","color":"5","label":"Anführerin"},
{"id":"87001a12a4c20071","fromNode":"a5290e8dab06dfb3","fromSide":"bottom","toNode":"13bb5a5dc71cf6d4","toSide":"right","fromEnd":"arrow","color":"1","label":"Konflikt"},
{"id":"69b15c91dae2ef6c","fromNode":"13bb5a5dc71cf6d4","fromSide":"bottom","toNode":"2be3e7f292b029bf","toSide":"top","fromEnd":"arrow","color":"1","label":"Konkurenz"},
{"id":"956596ae67e11a54","fromNode":"a5290e8dab06dfb3","fromSide":"bottom","toNode":"2be3e7f292b029bf","toSide":"right","color":"5","label":"Fördert"},
{"id":"934f750897c8440c","fromNode":"733fdb46efbc62d1","fromSide":"top","toNode":"991f2d8dbbf5eb0b","toSide":"left","color":"6","label":"Hat Kenntnis erlangt\nWill es aufhalten"},
{"id":"b00862f5e3c9df2e","fromNode":"733fdb46efbc62d1","fromSide":"top","toNode":"4ba10c223eabb97d","toSide":"left","color":"6","label":"Hat Kenntnis\nWill entschärfen"},
{"id":"9912ca525331fd2f","fromNode":"991f2d8dbbf5eb0b","fromSide":"right","toNode":"06198b50a04d0ffd","toSide":"left","color":"5","label":"Beteiligt"},
{"id":"f56945f8546ca2af","fromNode":"06198b50a04d0ffd","fromSide":"bottom","toNode":"13bb5a5dc71cf6d4","toSide":"top","color":"4","label":"Geschwister"},
{"id":"584818c391350a3b","fromNode":"c5d13c23824902ae","fromSide":"right","toNode":"733fdb46efbc62d1","toSide":"left","color":"5","label":"Mitglied"},
{"id":"cbe16f5ff9eb4122","fromNode":"34c40c0d58f4ef58","fromSide":"bottom","toNode":"31ed7ca3464cf5f2","toSide":"top","color":"3","label":"Beeinflussung durch:\n- Information über Pläne\n- Warnung vor Gefahren"},
{"id":"9a35194a373a3a61","fromNode":"34c40c0d58f4ef58","fromSide":"top","toNode":"49e645903622921d","toSide":"bottom","color":"3","label":"Manipuliert durch:\n- Informationen über Rituale\n- ..."},
{"id":"990d160711a83622","fromNode":"733fdb46efbc62d1","fromSide":"bottom","toNode":"c5d13c23824902ae","toSide":"bottom","label":"Informiert über Pläne"},
{"id":"e7334bbebe85a191","fromNode":"49e645903622921d","fromSide":"top","toNode":"88937b2fbca1e10b","toSide":"bottom","color":"5","label":"Anführer"},
{"id":"c12ee70c13259cd7","fromNode":"b23905f7bc9571a6","fromSide":"right","toNode":"9b7b616fe0d3f7d4","toSide":"left","label":"MItglied"},
{"id":"8a91fa36f1511240","fromNode":"3a9c6e0ea1eb2235","fromSide":"right","toNode":"9b7b616fe0d3f7d4","toSide":"left","label":"Anführer"},
{"id":"33669e21b2c994e8","fromNode":"8f9015a69cac3a3b","fromSide":"right","toNode":"9b7b616fe0d3f7d4","toSide":"left","label":"Mitglied"},
{"id":"b6b8836665d41116","fromNode":"8861cf9a3e6ffa82","fromSide":"right","toNode":"9b7b616fe0d3f7d4","toSide":"left","label":"Mitglied"},
{"id":"33e709c07f4cda07","fromNode":"15e99b97094472f2","fromSide":"bottom","toNode":"d42a39784ef27d96","toSide":"top","label":"Schüler und Freund"},
{"id":"ad95d166e7eeeac4","fromNode":"06fc644b281bf6a6","fromSide":"left","toNode":"f73dedb170dac11c","toSide":"right","label":"Mitglied"},
{"id":"24ede29ebedfd6e3","fromNode":"06fc644b281bf6a6","fromSide":"top","toNode":"15e99b97094472f2","toSide":"left","fromEnd":"arrow","label":"Freund, Kontakt"},
{"id":"748da3591e702404","fromNode":"34c40c0d58f4ef58","fromSide":"top","toNode":"d42a39784ef27d96","toSide":"bottom","color":"2","label":"Von Bruderschaft umbringen lassen und will ihn wieder erwecken um Sprachrohr zu haben"},
{"id":"8915e5b10f2e5abd","fromNode":"7a455fd101c5a56c","fromSide":"left","toNode":"b744595af42913a9","toSide":"right","fromEnd":"arrow","color":"4","label":"Verheiratet"},
{"id":"d5bfa9e331bd3457","fromNode":"8e009039b1c295cf","fromSide":"top","toNode":"7a455fd101c5a56c","toSide":"bottom","fromEnd":"arrow","color":"1","label":"Diebstahl des Diadems"},
{"id":"b9b2206c8e094d11","fromNode":"15e99b97094472f2","fromSide":"right","toNode":"b744595af42913a9","toSide":"left","label":"Hof Auftrag\nDiebstahl aufgedeckt\nGeschenkte Wohnung"},
{"id":"7996ec2ca7ca6edb","fromNode":"10496e6b0f125944","fromSide":"left","toNode":"679c3f802ff90e05","toSide":"bottom","color":"5","label":"Kontrolliert"},
{"id":"53cce2ffc08e1d97","fromNode":"679c3f802ff90e05","fromSide":"top","toNode":"d42a39784ef27d96","toSide":"bottom","color":"1","label":"Ermordet als Opfer für Bhaal"},
{"id":"0db0bc1899585bba","fromNode":"847bc059861f438e","fromSide":"bottom","toNode":"9289585ee4aab2ba","toSide":"top","label":"Vater"},
{"id":"20ce6eb17a44f2b8","fromNode":"847bc059861f438e","fromSide":"bottom","toNode":"57af8cef78e428b9","toSide":"top","color":"4","label":"Freund"},
{"id":"7d05a1e4db1ae2a6","fromNode":"57af8cef78e428b9","fromSide":"bottom","toNode":"9289585ee4aab2ba","toSide":"right","color":"1","label":"Sucht im Auftrag des Vaters"},
{"id":"658a660cf0f8e48c","fromNode":"31c2cab0aae1aa7b","fromSide":"bottom","toNode":"9289585ee4aab2ba","toSide":"top","color":"4","label":"Mutter"},
{"id":"04514e7685403596","fromNode":"31c2cab0aae1aa7b","fromSide":"left","toNode":"f2c31a3e16048bd8","toSide":"top","fromEnd":"arrow","color":"4","label":"Befreundet"},
{"id":"ea7866e2a8a31f63","fromNode":"f2c31a3e16048bd8","fromSide":"right","toNode":"9289585ee4aab2ba","toSide":"left","color":"4","label":"Ziehmutter\nKleriker-Mutter"},
{"id":"dd068592a4223c67","fromNode":"847bc059861f438e","fromSide":"left","toNode":"31c2cab0aae1aa7b","toSide":"right","fromEnd":"arrow","color":"1","label":"Ex-Partner\nVergewaltigung"},
{"id":"c20e2740ab4cc69c","fromNode":"b23905f7bc9571a6","fromSide":"left","toNode":"f2c31a3e16048bd8","toSide":"bottom","color":"4","label":"Bekannt\nFreundschaft"},
{"id":"0af24ff01aa80ac8","fromNode":"847bc059861f438e","fromSide":"top","toNode":"89857a0a8dd488cf","toSide":"bottom","color":"5","label":"Verantworticher "},
{"id":"7d00e8763a020a9b","fromNode":"8e009039b1c295cf","fromSide":"top","toNode":"b744595af42913a9","toSide":"bottom","color":"1","label":"Zurück Diebstahl von Diadem durch Spieler"},
{"id":"5bbf01380b1aad5c","fromNode":"1a29d312bc1fb8a1","fromSide":"top","toNode":"6e475eba9e49eb29","toSide":"bottom","label":"Alte Lehrerin"},
{"id":"d605a8ceeca73e77","fromNode":"1a29d312bc1fb8a1","fromSide":"top","toNode":"a5290e8dab06dfb3","toSide":"bottom","label":"Gilde in Kindheit"},
{"id":"6a4205598296ae19","fromNode":"e02f41cb930359b2","fromSide":"right","toNode":"34c40c0d58f4ef58","toSide":"left","color":"5","label":"Anführer"},
{"id":"4291ff8365309474","fromNode":"34c40c0d58f4ef58","fromSide":"bottom","toNode":"ebc00f54df31fae0","toSide":"top","color":"2","label":"Beeinflussung durch:\nHilfsmittel für Flugmaschine"},
{"id":"4c04713bb544dd8c","fromNode":"10496e6b0f125944","fromSide":"bottom","toNode":"ebc00f54df31fae0","toSide":"top","color":"6","label":"Unterstützt"},
{"id":"e9834ea8fa47cfce","fromNode":"991f2d8dbbf5eb0b","fromSide":"left","toNode":"ebc00f54df31fae0","toSide":"right","color":"5","label":"Will verwenden"},
{"id":"db2263b1f1e4ef85","fromNode":"88937b2fbca1e10b","fromSide":"left","toNode":"847bc059861f438e","toSide":"right","color":"4","label":"Enger Vertrauter"},
{"id":"137e4d9e9c47ef4c","fromNode":"679c3f802ff90e05","fromSide":"left","toNode":"678e18c7ae0cdb96","toSide":"top","label":"Verantwortlicher"}
]
}
File diff suppressed because it is too large Load Diff
+82
View File
@@ -0,0 +1,82 @@
---
date_created:
tags:
lead:
organization:
target:
location:
---
# Wer
- Protagonisten:
- Antagonisten:
# Wo
# Was
- Auslöser:
- Mögliche Ausgänge:
- Relevante Items:
# Warum
# Verlauf
### **1. Der verlorene Ruhm: Warum will der Charakter zurück?**
- **Persönliche Tragödie:** Vielleicht hat der Charakter durch einen Skandal, eine Intrige oder einen magischen Fluch alles verloren. Der Wunsch nach Rache oder Rehabilitation treibt ihn an.
- **Identitätskrise:** Der Charakter hat sich so sehr in seine Rollen verloren, dass er ohne Applaus und Bewunderung nicht weiß, wer er wirklich ist.
- **Schuld und Sühne:** Er hat in der Vergangenheit jemanden verraten oder eine Rolle gespielt, die ungewollt Katastrophen auslöste jetzt will er es „wieder gutmachen“, indem er als Held gefeiert wird.
- **Magische Abhängigkeit:** Sein Ruhm war mit magischen Mitteln (z. B. einem Pakt, einem Artefakt oder einem Fluch) verbunden. Ohne ihn verfällt er oder die Magie verlangt nach „Nahrung“ in Form von Bewunderung.
---
### **2. Plot-Hooks für die Kampagne**
#### **A. Die letzte Rolle**
- **Das unvollendete Meisterwerk:** Der Charakter soll in einer legendären, aber verfluchten Theaterproduktion mitspielen, die jedes Mal, wenn sie aufgeführt wird, die Schauspieler in echte Abenteuer stürzt. Die Rolle könnte ihn zwingen, sich mit seiner Vergangenheit auseinanderzusetzen oder sie zu wiederholen.
- **Der Regisseur als Antagonist:** Ein ehemaliger Mentor oder Rivale manipuliert ihn, um eine Rolle zu spielen, die eine uralte Prophezeiung erfüllt (z. B. als „Held“, der in Wahrheit ein Werkzeug eines bösen Gottes ist).
#### **B. Die Bühne als Schlachtfeld**
- **Wettkampf der Künstler:** Ein magisches Turnier oder ein Festival, bei dem Schauspieler um den Titel des „größten Darstellers der Welt“ kämpfen doch die Challenges sind tödlich. Wer verliert, wird für immer in seine letzte Rolle verwandelt.
- **Die Illusion der Realität:** Eine Stadt oder ein Adliger engagiert ihn, um eine historische Figur zu spielen doch die Grenze zwischen Rolle und Realität verschwimmt. Plötzlich ist er mitten in einem politischen Attentat oder einem Krieg, den er selbst (unbewusst) ausgelöst hat.
#### **C. Der Preis des Ruhms**
- **Pakt mit einer Entität:** Ein Dämon, ein Archfey oder ein Gott bietet ihm Ruhm im Austausch für „Dienstleistungen“ z. B. muss er in jeder Stadt, die ihn feiert, ein Opfer bringen (wörtlich oder metaphorisch).
- **Die Maske fällt nicht ab:** Eine magische Maske oder ein Fluch zwingt ihn, ständig in Rolle zu bleiben. Wenn er aufhört zu schauspielern, verliert er seine Fähigkeiten oder stirbt.
- **Das Publikum will Blut:** Seine Fans sind keine normalen Zuschauer, sondern Geister, Dämonen oder eine Sekte, die seine „Kunst“ als Ritual missverstehen. Je berühmter er wird, desto mehr Kontrolle verliert er über sie.
#### **D. Ethik vs. Ruhm**
- **Die falsche Heldentat:** Er inszeniert eine „heldenhafte“ Tat (z. B. den Sturz eines Tyrannen), die in Wahrheit ein Setup ist. Doch die Konsequenzen sind real und unschuldige Menschen leiden.
- **Der verratene Clown:** Er wird von einer Gruppe Revolutionäre oder einer Gilde angeworben, um als „Symbol“ zu dienen doch ihre Methoden sind grausam. Muss er seine Fans enttäuschen, um das Richtige zu tun?
- **Die Kirche des Ruhms:** Eine Sekte verehrt ihn als lebendigen Gott. Er könnte sie ausnutzen oder versuchen, sie von ihrem fanatischen Weg abzubringen.
#### **E. Die Rückkehr des Stars**
- **Der alte Rivale:** Ein ehemaliger Kollege, der ihn einst verriet, ist jetzt ein mächtiger Adliger oder Kultführer. Der Charakter will Rache doch der Rivale hat Beweise für seine eigenen dunklen Taten.
- **Das Comeback:** Ein mächtiger Mäzen (vielleicht ein Drache oder ein Lich) bietet ihm eine Hauptrolle in einem epischen Stück an doch die „Bühne“ ist ein Schlachtfeld, und die „Schauspieler“ sind echte Krieger.
- **Die verlorene Liebe:** Seine ehemalige Bühnenpartnerin (und Geliebte) ist jetzt eine berühmte Abenteurerin oder eine Verbrecherkönigin. Sie will ihn zurück aber nur, wenn er eine gefährliche Mission erfüllt.
---
### **3. Mechanische Ideen für den Charakter**
- **Bardische Fähigkeiten mit Twist:** Statt klassischer Musik nutzt er Theater-Tricks (Täuschung, Verkleidung, Improvisation) als „Waffe“. Seine „Inspiration“ könnte davon abhängen, wie überzeugend er ist.
- **Ruhm als Währung:** In Städten, in denen er bekannt ist, bekommt er Vorteile (z. B. bessere Preise, Informationen) aber auch Feinde (Neider, Stalker, ehemalige Opfer).
- **Rollenspiel im Rollenspiel:** Er kann temporär die Fähigkeiten einer Figur annehmen, die er spielt aber je länger er in der Rolle bleibt, desto schwerer fällt es ihm, zurückzukehren.
---
### **4. Verbindung zu deinen Lieblingsthemen**
- **Prophezeiung:** Eine alte Weissagung sagt, dass „der größte Schauspieler der Welt“ den Untergang eines Gottes herbeiführen wird. Ist er auserwählt oder nur ein Werkzeug?
- **Brüderliche Rivalität:** Sein Bruder war der „ernsthafte“ Schauspieler, der für „Kunst“ stand, während er für „Unterhaltung“ stand. Jetzt ist der Bruder tot und er findet heraus, dass dessen Tod mit einer seiner Rollen zusammenhängt.
- **Die Kirche des Lichts:** Eine religiöse Gruppe verurteilt Theater als „Lüge“ und jagt ihn. Doch ihr Anführer ist heimlich sein größter Fan und will ihn für seine eigenen Zwecke nutzen.
---
**Frage an dich:** Soll der Charakter eher tragisch, komisch oder zynisch sein? Und wie viel Kontrolle soll er über sein Schicksal haben ist er ein Opfer der Umstände, oder treibt er die Ereignisse selbst voran? Das könnte helfen, die Hooks noch präziser zu gestalten!
File diff suppressed because it is too large Load Diff

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