...
|
|
@ -0,0 +1 @@
|
|||
,torsten,pop-os,06.03.2026 16:24,file:///home/torsten/.config/libreoffice/4;
|
||||
BIN
Druckmaterial/Spielkarten/Organisationen/Organisationen-A.odg
Normal file
3
RPG/.obsidian/app.json
vendored
|
|
@ -9,5 +9,6 @@
|
|||
"landscape": false,
|
||||
"margin": "1",
|
||||
"downscalePercent": 100
|
||||
}
|
||||
},
|
||||
"newFileLocation": "current"
|
||||
}
|
||||
11
RPG/.obsidian/community-plugins.json
vendored
|
|
@ -1,10 +1,11 @@
|
|||
[
|
||||
"obsidian-style-settings",
|
||||
"fantasy-name",
|
||||
"fantasy-content-generator",
|
||||
"obsidian-excalidraw-plugin",
|
||||
"oz-clear-unused-images",
|
||||
"editing-toolbar",
|
||||
"obsidian-excalidraw-plugin",
|
||||
"obsidian-style-settings",
|
||||
"mousewheel-image-zoom",
|
||||
"manual-sorting",
|
||||
"editing-toolbar"
|
||||
"obsidian-leaflet-plugin",
|
||||
"fantasy-name",
|
||||
"fantasy-content-generator"
|
||||
]
|
||||
32
RPG/.obsidian/plugins/manual-sorting/data.json
vendored
|
|
@ -2,12 +2,6 @@
|
|||
"customOrder": {
|
||||
"/": {
|
||||
"children": [
|
||||
"Pasted image 20260305221102.png",
|
||||
"Pasted image 20260305221419.png",
|
||||
"Pasted image 20260305221556.png",
|
||||
"Pasted image 20260305221755.png",
|
||||
"Pasted image 20260305222825.png",
|
||||
"wohnung_silbergasse.jpg",
|
||||
"1-Sessions",
|
||||
"2-Spieler",
|
||||
"3-Welt",
|
||||
|
|
@ -15,7 +9,6 @@
|
|||
"5-Regeln",
|
||||
"6-Dokumente",
|
||||
"7-Prep",
|
||||
"Excalidraw",
|
||||
"zz_archiv"
|
||||
],
|
||||
"sortOrder": "custom"
|
||||
|
|
@ -31,7 +24,7 @@
|
|||
"1-Sessions/Sitzung 005, 18.07.2025.md",
|
||||
"1-Sessions/Sitzung 006, 03.10.2025.md",
|
||||
"1-Sessions/Sitzung 007, 09.01.2026.md",
|
||||
"1-Sessions/Sitzung 008 prep.md"
|
||||
"1-Sessions/Sitzung 008 Prep 06.03.2026"
|
||||
],
|
||||
"sortOrder": "custom"
|
||||
},
|
||||
|
|
@ -77,6 +70,14 @@
|
|||
],
|
||||
"sortOrder": "custom"
|
||||
},
|
||||
"1-Sessions/Sitzung 008 Prep 06.03.2026": {
|
||||
"children": [
|
||||
"1-Sessions/Sitzung 008 Prep 06.03.2026/Garana Events.md",
|
||||
"1-Sessions/Sitzung 008 Prep 06.03.2026/Übersicht Prep 08.md",
|
||||
"1-Sessions/Sitzung 008 Prep 06.03.2026/Hooks.md"
|
||||
],
|
||||
"sortOrder": "custom"
|
||||
},
|
||||
"1-Sessions/Sitzungsarchiv": {
|
||||
"children": [
|
||||
"1-Sessions/Sitzungsarchiv/Sitzung 001, 29.11.2024.md"
|
||||
|
|
@ -486,14 +487,9 @@
|
|||
],
|
||||
"sortOrder": "custom"
|
||||
},
|
||||
"Excalidraw": {
|
||||
"children": [
|
||||
"Excalidraw/Drawing 2026-01-03 21.06.39.excalidraw.md"
|
||||
],
|
||||
"sortOrder": "custom"
|
||||
},
|
||||
"zz_archiv": {
|
||||
"children": [
|
||||
"zz_archiv/Garana_Umgebung.png",
|
||||
"zz_archiv/images",
|
||||
"zz_archiv/prep_Notizen",
|
||||
"zz_archiv/Youtube Prep Notes",
|
||||
|
|
@ -503,6 +499,14 @@
|
|||
},
|
||||
"zz_archiv/images": {
|
||||
"children": [
|
||||
"zz_archiv/images/das_koenligliche_magie_kollegium.jpg",
|
||||
"zz_archiv/images/zoctaban_der_rote 1.jpg",
|
||||
"zz_archiv/images/Pasted image 20260305221102.png",
|
||||
"zz_archiv/images/Pasted image 20260305221419.png",
|
||||
"zz_archiv/images/Pasted image 20260305221556.png",
|
||||
"zz_archiv/images/Pasted image 20260305221755.png",
|
||||
"zz_archiv/images/Pasted image 20260305222825.png",
|
||||
"zz_archiv/images/wohnung_silbergasse.jpg",
|
||||
"zz_archiv/images/der_unsichtbare_turm__die_silberschmiede.jpg",
|
||||
"zz_archiv/images/heiltrank.jpg",
|
||||
"zz_archiv/images/Pasted image 20260304215813.png",
|
||||
|
|
|
|||
157
RPG/.obsidian/plugins/mousewheel-image-zoom/main.js
vendored
|
|
@ -57,7 +57,7 @@ class Util {
|
|||
* @private
|
||||
*/
|
||||
static isInTable(searchString, fileValue) {
|
||||
return fileValue.search(new RegExp(`^\\|.+${searchString}.+\\|$`, "m")) !== -1;
|
||||
return fileValue.search(new RegExp(`^\\|.+${escapeRegex(searchString)}.+\\|$`, "m")) !== -1;
|
||||
}
|
||||
/**
|
||||
* Get the image name from a given src uri of a local image
|
||||
|
|
@ -90,12 +90,12 @@ class Util {
|
|||
const sizeSeparator = isInTable ? "\\|" : "|";
|
||||
// Separator to use for the regex: isInTable ? \\\| : \|
|
||||
const regexSeparator = isInTable ? "\\\\\\|" : "\\|";
|
||||
const imageAttributes = this.getImageAttributes(imageName, fileText);
|
||||
imageName = `${imageName}${imageAttributes}`;
|
||||
// check character before the imageName to check if markdown link or obsidian link
|
||||
const imageNamePosition = fileText.indexOf(imageName);
|
||||
const isObsidianLink = fileText.charAt(imageNamePosition - 1) === "[";
|
||||
if (isObsidianLink) {
|
||||
const imageAttributes = this.getImageAttributes(imageName, fileText);
|
||||
imageName = `${imageName}${imageAttributes}`;
|
||||
return Util.generateReplaceTermForObsidianSyntax(imageName, regexSeparator, sizeSeparator);
|
||||
}
|
||||
else {
|
||||
|
|
@ -243,8 +243,10 @@ var ModifierKey;
|
|||
const DEFAULT_SETTINGS = {
|
||||
modifierKey: ModifierKey.ALT,
|
||||
stepSize: 25,
|
||||
initialSize: 500
|
||||
initialSize: 500,
|
||||
resizeInCanvas: true,
|
||||
};
|
||||
const CtrlCanvasConflictWarning = "Warning: Using Ctrl as the modifier key conflicts with default canvas zooming behavior when 'Resize in canvas' is enabled. Consider using another modifier key or disabling 'Resize in canvas'.";
|
||||
class MouseWheelZoomPlugin extends obsidian.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
|
|
@ -259,8 +261,40 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
this.registerEvents(window);
|
||||
this.addSettingTab(new MouseWheelZoomSettingsTab(this.app, this));
|
||||
console.log("Loaded: Mousewheel image zoom");
|
||||
this.checkExistingUserConflict();
|
||||
});
|
||||
}
|
||||
checkExistingUserConflict() {
|
||||
const noticeShownKey = 'mousewheel-zoom-ctrl-warning-shown'; // Key for localStorage flag
|
||||
const isCtrl = this.settings.modifierKey === ModifierKey.CTRL || this.settings.modifierKey === ModifierKey.CTRL_RIGHT;
|
||||
// Only show the notice if the conflict exists AND the user hasn't dismissed it before (using localStorage flag)
|
||||
if (isCtrl && this.settings.resizeInCanvas && !localStorage.getItem(noticeShownKey)) {
|
||||
const fragment = document.createDocumentFragment();
|
||||
const titleEl = document.createElement('strong');
|
||||
titleEl.textContent = "Mousewheel Image Zoom";
|
||||
fragment.appendChild(titleEl);
|
||||
fragment.appendChild(document.createElement('br'));
|
||||
const messageEl = document.createElement('span');
|
||||
messageEl.textContent = CtrlCanvasConflictWarning;
|
||||
fragment.appendChild(messageEl);
|
||||
fragment.appendChild(document.createElement('br'));
|
||||
const settingsButton = document.createElement('button');
|
||||
settingsButton.textContent = "Open Settings";
|
||||
settingsButton.style.marginTop = "5px";
|
||||
settingsButton.onclick = () => {
|
||||
// settings is a private property of the app object, so we need to cast it to any to access it
|
||||
// See https://forum.obsidian.md/t/open-settings-for-my-plugin-community-plugin-settings-deeplink/61563/4
|
||||
const setting = this.app.setting;
|
||||
setting.open();
|
||||
setting.openTabById(this.manifest.id);
|
||||
};
|
||||
fragment.appendChild(settingsButton);
|
||||
new obsidian.Notice(fragment, 0);
|
||||
// Set the flag in localStorage so the notice doesn't appear again
|
||||
// unless the user clears their localStorage or the key changes.
|
||||
localStorage.setItem(noticeShownKey, 'true');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* When the config key is released, we enable the scroll again and reset the key held down flag.
|
||||
*/
|
||||
|
|
@ -280,7 +314,13 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
registerEvents(currentWindow) {
|
||||
const doc = currentWindow.document;
|
||||
this.registerDomEvent(doc, "keydown", (evt) => {
|
||||
var _a;
|
||||
if (evt.code === this.settings.modifierKey.toString()) {
|
||||
// When canvas mode is enabled we just ignore the keydown event if the canvas is active
|
||||
const isActiveViewCanvas = ((_a = this.app.workspace.getActiveViewOfType(obsidian.View)) === null || _a === void 0 ? void 0 : _a.getViewType()) === "canvas";
|
||||
if (isActiveViewCanvas && !this.settings.resizeInCanvas) {
|
||||
return;
|
||||
}
|
||||
this.isKeyHeldDown = true;
|
||||
if (this.settings.modifierKey !== ModifierKey.SHIFT && this.settings.modifierKey !== ModifierKey.SHIFT_RIGHT) { // Ignore shift to allow horizontal scrolling
|
||||
// Disable the normal scrolling behavior when the key is held down
|
||||
|
|
@ -309,7 +349,7 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
if (targetIsCanvas || targetIsCanvasNode || targetIsImage) {
|
||||
this.disableScroll(currentWindow);
|
||||
}
|
||||
if (targetIsCanvas) {
|
||||
if (targetIsCanvas && this.settings.resizeInCanvas) {
|
||||
// seems we're trying to zoom on some canvas node.
|
||||
this.handleZoomForCanvas(evt, eventTarget);
|
||||
}
|
||||
|
|
@ -320,6 +360,12 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
}
|
||||
}
|
||||
});
|
||||
this.registerDomEvent(currentWindow, "blur", () => {
|
||||
// When the window loses focus, ensure scrolling is re-enabled for this window
|
||||
// and reset the key held state defensively, although the keyup should ideally handle it.
|
||||
this.isKeyHeldDown = false;
|
||||
this.enableScroll(currentWindow);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Handles zooming with the mousewheel on canvas node
|
||||
|
|
@ -357,36 +403,44 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const imageUri = eventTarget.attributes.getNamedItem("src").textContent;
|
||||
const activeFile = yield this.getActivePaneWithImage(eventTarget);
|
||||
let fileText = yield this.app.vault.read(activeFile);
|
||||
const originalFileText = fileText;
|
||||
// Get parameters like the regex or the replacement terms based on the fact if the image is locally stored or not.
|
||||
const zoomParams = this.getZoomParams(imageUri, fileText, eventTarget);
|
||||
// Check if there is already a size parameter for this image.
|
||||
const sizeMatches = fileText.match(zoomParams.sizeMatchRegExp);
|
||||
// Element already has a size entry
|
||||
if (sizeMatches !== null) {
|
||||
const oldSize = parseInt(sizeMatches[1]);
|
||||
let newSize = oldSize;
|
||||
if (evt.deltaY < 0) {
|
||||
newSize += this.settings.stepSize;
|
||||
yield this.app.vault.process(activeFile, (fileText) => {
|
||||
let frontmatter = "";
|
||||
let body = fileText;
|
||||
const frontmatterRegex = /^---\s*([\s\S]*?)\s*---\n*/;
|
||||
const match = fileText.match(frontmatterRegex);
|
||||
if (match) {
|
||||
frontmatter = match[0]; // Keep the full matched frontmatter block including delimiters and trailing newline
|
||||
body = fileText.slice(frontmatter.length); // The rest is the body
|
||||
}
|
||||
else if (evt.deltaY > 0 && newSize > this.settings.stepSize) {
|
||||
newSize -= this.settings.stepSize;
|
||||
const zoomParams = this.getZoomParams(imageUri, body, eventTarget);
|
||||
// Perform replacements ONLY on the body
|
||||
let modifiedBody = body;
|
||||
const sizeMatches = body.match(zoomParams.sizeMatchRegExp);
|
||||
// Element already has a size entry in the body
|
||||
if (sizeMatches !== null) {
|
||||
const oldSize = parseInt(sizeMatches[1]);
|
||||
let newSize = oldSize;
|
||||
if (evt.deltaY < 0) {
|
||||
newSize += this.settings.stepSize;
|
||||
}
|
||||
else if (evt.deltaY > 0 && newSize > this.settings.stepSize) {
|
||||
newSize -= this.settings.stepSize;
|
||||
}
|
||||
// Replace within the body
|
||||
modifiedBody = body.replace(zoomParams.replaceSizeExist.getReplaceFromString(oldSize), zoomParams.replaceSizeExist.getReplaceWithString(newSize));
|
||||
}
|
||||
fileText = fileText.replace(zoomParams.replaceSizeExist.getReplaceFromString(oldSize), zoomParams.replaceSizeExist.getReplaceWithString(newSize));
|
||||
}
|
||||
else { // Element has no size entry -> give it an initial size
|
||||
const initialSize = this.settings.initialSize;
|
||||
var image = new Image();
|
||||
image.src = imageUri;
|
||||
var width = image.naturalWidth;
|
||||
var minWidth = Math.min(width, initialSize);
|
||||
fileText = fileText.replace(zoomParams.replaceSizeNotExist.getReplaceFromString(0), zoomParams.replaceSizeNotExist.getReplaceWithString(minWidth));
|
||||
}
|
||||
// Save changed size
|
||||
if (fileText !== originalFileText) {
|
||||
yield this.app.vault.modify(activeFile, fileText);
|
||||
}
|
||||
else { // Element has no size entry in the body -> give it an initial size
|
||||
const initialSize = this.settings.initialSize;
|
||||
const image = new Image();
|
||||
image.src = imageUri;
|
||||
const width = image.naturalWidth || initialSize;
|
||||
const minWidth = Math.min(width, initialSize);
|
||||
// Replace within the body
|
||||
modifiedBody = body.replace(zoomParams.replaceSizeNotExist.getReplaceFromString(0), zoomParams.replaceSizeNotExist.getReplaceWithString(minWidth));
|
||||
}
|
||||
// Combine original frontmatter with the modified body
|
||||
return frontmatter + modifiedBody;
|
||||
});
|
||||
});
|
||||
}
|
||||
/**
|
||||
|
|
@ -422,6 +476,11 @@ class MouseWheelZoomPlugin extends obsidian.Plugin {
|
|||
const imageName = Util.getLocalImageNameFromUri(imageUri);
|
||||
return Util.getLocalImageZoomParams(imageName, fileText);
|
||||
}
|
||||
else if (imageUri.contains("data:image/")) { // for image generated by PDF++ extension
|
||||
// example: data:image/png;base64,iVB...
|
||||
const imageName = Util.getLocalImageNameFromUri(target.parentElement.getAttribute("src"));
|
||||
return Util.getLocalImageZoomParams(imageName, fileText);
|
||||
}
|
||||
throw new Error("Image is not zoomable");
|
||||
}
|
||||
loadSettings() {
|
||||
|
|
@ -469,6 +528,23 @@ class MouseWheelZoomSettingsTab extends obsidian.PluginSettingTab {
|
|||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
// Helper function to update the warning message
|
||||
updateWarningMessage(modifierKey, resizeInCanvas) {
|
||||
if (!this.warningEl)
|
||||
return;
|
||||
const isCtrl = modifierKey === ModifierKey.CTRL || modifierKey === ModifierKey.CTRL_RIGHT;
|
||||
const conflict = isCtrl && resizeInCanvas;
|
||||
if (conflict) {
|
||||
this.warningEl.setText(CtrlCanvasConflictWarning);
|
||||
this.warningEl.style.display = 'block';
|
||||
this.warningEl.style.color = 'var(--text-warning)';
|
||||
this.warningEl.style.marginTop = '10px';
|
||||
}
|
||||
else {
|
||||
this.warningEl.setText("");
|
||||
this.warningEl.style.display = 'none';
|
||||
}
|
||||
}
|
||||
display() {
|
||||
let { containerEl } = this;
|
||||
containerEl.empty();
|
||||
|
|
@ -486,6 +562,7 @@ class MouseWheelZoomSettingsTab extends obsidian.PluginSettingTab {
|
|||
.setValue(this.plugin.settings.modifierKey)
|
||||
.onChange((value) => __awaiter(this, void 0, void 0, function* () {
|
||||
this.plugin.settings.modifierKey = value;
|
||||
this.updateWarningMessage(this.plugin.settings.modifierKey, this.plugin.settings.resizeInCanvas);
|
||||
yield this.plugin.saveSettings();
|
||||
})));
|
||||
new obsidian.Setting(containerEl)
|
||||
|
|
@ -516,6 +593,20 @@ class MouseWheelZoomSettingsTab extends obsidian.PluginSettingTab {
|
|||
yield this.plugin.saveSettings();
|
||||
}));
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName('Resize in canvas')
|
||||
.setDesc('When enabled, all nodes on the Obsidian canvas can also be resized using the Modifier key')
|
||||
.addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.resizeInCanvas)
|
||||
.onChange((value) => __awaiter(this, void 0, void 0, function* () {
|
||||
this.plugin.settings.resizeInCanvas = value;
|
||||
this.updateWarningMessage(this.plugin.settings.modifierKey, value);
|
||||
yield this.plugin.saveSettings();
|
||||
}));
|
||||
});
|
||||
this.warningEl = containerEl.createDiv({ cls: 'mousewheel-zoom-warning' });
|
||||
this.warningEl.style.display = 'none';
|
||||
this.updateWarningMessage(this.plugin.settings.modifierKey, this.plugin.settings.resizeInCanvas);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "mousewheel-image-zoom",
|
||||
"name": "Mousewheel Image zoom",
|
||||
"version": "1.0.22",
|
||||
"version": "1.0.24",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "This plugin enables you to increase/decrease the size of an image by scrolling",
|
||||
"author": "Nico Jeske",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
{
|
||||
"copyLinkToElemenetAnchorTo100": false,
|
||||
"copyFrameLinkByName": false,
|
||||
"disableDoubleClickTextEditing": false,
|
||||
"folder": "Excalidraw",
|
||||
"cropFolder": "",
|
||||
"annotateFolder": "",
|
||||
|
|
@ -21,7 +24,9 @@
|
|||
"drawingFilnameEmbedPostfix": " ",
|
||||
"drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss",
|
||||
"useExcalidrawExtension": true,
|
||||
"cropSuffix": "",
|
||||
"cropPrefix": "cropped_",
|
||||
"annotateSuffix": "",
|
||||
"annotatePrefix": "annotated_",
|
||||
"annotatePreserveSize": false,
|
||||
"previewImageType": "SVGIMG",
|
||||
|
|
@ -35,6 +40,9 @@
|
|||
"overrideObsidianFontSize": false,
|
||||
"dynamicStyling": "colorful",
|
||||
"isLeftHanded": false,
|
||||
"desktopUIMode": "tray",
|
||||
"tabletUIMode": "compact",
|
||||
"phoneUIMode": "mobile",
|
||||
"iframeMatchExcalidrawTheme": true,
|
||||
"matchTheme": false,
|
||||
"matchThemeAlways": false,
|
||||
|
|
@ -44,6 +52,7 @@
|
|||
"penModeDoubleTapEraser": true,
|
||||
"penModeSingleFingerPanning": true,
|
||||
"penModeCrosshairVisible": true,
|
||||
"panWithRightMouseButton": false,
|
||||
"renderImageInMarkdownReadingMode": false,
|
||||
"renderImageInHoverPreviewForMDNotes": false,
|
||||
"renderImageInMarkdownToPDF": false,
|
||||
|
|
@ -52,6 +61,9 @@
|
|||
"zoomToFitOnOpen": true,
|
||||
"zoomToFitOnResize": true,
|
||||
"zoomToFitMaxLevel": 2,
|
||||
"zoomStep": 0.05,
|
||||
"zoomMin": 0.1,
|
||||
"zoomMax": 30,
|
||||
"linkPrefix": "📍",
|
||||
"urlPrefix": "🌐",
|
||||
"parseTODO": false,
|
||||
|
|
@ -64,6 +76,7 @@
|
|||
"focusOnFileTab": true,
|
||||
"openInMainWorkspace": true,
|
||||
"showLinkBrackets": true,
|
||||
"syncElementLinkWithText": false,
|
||||
"allowCtrlClick": true,
|
||||
"forceWrap": false,
|
||||
"pageTransclusionCharLimit": 200,
|
||||
|
|
@ -100,7 +113,7 @@
|
|||
"library2": {
|
||||
"type": "excalidrawlib",
|
||||
"version": 2,
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.8.3",
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.20.6",
|
||||
"libraryItems": []
|
||||
},
|
||||
"imageElementNotice": true,
|
||||
|
|
@ -111,15 +124,16 @@
|
|||
"mdBorderColor": "Black",
|
||||
"mdCSS": "",
|
||||
"scriptEngineSettings": {},
|
||||
"defaultTrayMode": true,
|
||||
"previousRelease": "2.8.3",
|
||||
"previousRelease": "2.20.6",
|
||||
"showReleaseNotes": true,
|
||||
"compareManifestToPluginVersion": true,
|
||||
"showNewVersionNotification": true,
|
||||
"latexBoilerplate": "\\color{blue}",
|
||||
"latexPreambleLocation": "preamble.sty",
|
||||
"taskboneEnabled": false,
|
||||
"taskboneAPIkey": "",
|
||||
"pinnedScripts": [],
|
||||
"sidepanelTabs": [],
|
||||
"customPens": [
|
||||
{
|
||||
"type": "default",
|
||||
|
|
@ -467,8 +481,10 @@
|
|||
"markdownNodeOneClickEditing": false,
|
||||
"canvasImmersiveEmbed": true,
|
||||
"startupScriptPath": "",
|
||||
"aiEnabled": true,
|
||||
"openAIAPIToken": "",
|
||||
"openAIDefaultTextModel": "gpt-3.5-turbo-1106",
|
||||
"openAIDefaultTextModelMaxTokens": 4096,
|
||||
"openAIDefaultVisionModel": "gpt-4o",
|
||||
"openAIDefaultImageGenerationModel": "dall-e-3",
|
||||
"openAIURL": "https://api.openai.com/v1/chat/completions",
|
||||
|
|
@ -795,5 +811,7 @@
|
|||
"customPaperColor": "#ffffff",
|
||||
"alignment": "center",
|
||||
"margin": "normal"
|
||||
}
|
||||
},
|
||||
"disableContextMenu": false,
|
||||
"defaultTrayMode": true
|
||||
}
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.8.3",
|
||||
"minAppVersion": "1.1.6",
|
||||
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
||||
"version": "2.20.6",
|
||||
"minAppVersion": "1.5.7",
|
||||
"description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
|
||||
"author": "Zsolt Viczian",
|
||||
"authorUrl": "https://www.zsolt.blog",
|
||||
"authorUrl": "https://excalidraw-obsidian.online",
|
||||
"fundingUrl": "https://ko-fi.com/zsolt",
|
||||
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
38
RPG/.obsidian/plugins/obsidian-leaflet-plugin/data.json
vendored
Normal 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": "© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors © <a href=\"https://carto.com/attributions\">CARTO</a>",
|
||||
"defaultTileSubdomains": "a,b,c,d"
|
||||
}
|
||||
4
RPG/.obsidian/types.json
vendored
|
|
@ -22,6 +22,8 @@
|
|||
"excalidraw-css": "text",
|
||||
"excalidraw-autoexport": "text",
|
||||
"excalidraw-embeddable-theme": "text",
|
||||
"excalidraw-open-md": "checkbox"
|
||||
"excalidraw-open-md": "checkbox",
|
||||
"excalidraw-export-internal-links": "checkbox",
|
||||
"excalidraw-embed-md": "checkbox"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
28
RPG/1-Sessions/Sitzung 008 Prep 06.03.2026/Garana Events.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
| **Würfel (d10)** | **Ereignis** | **Effekt / Hook** | geschehen |
|
||||
| ---------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
|
||||
| **1** | **Der flüsternde Bettler** | Ein ehemaliger Soldat von Lord Balador erkennt das Wappen der Gruppe. Er faselt von "silbernem Fleisch" im Nordgebirge. | <center></center> |
|
||||
| **2** | **Die Metall-Razzia** | Die Stadtwache (Valyrias Leute) beschlagnahmt wahllos Besteck und Werkzeuge aus Eisen. Offiziell für die "Rüstkammer", in Wahrheit für Ferrum. | <center></center> |
|
||||
| **3** | **Traumdiebstahl** | Tarazul erwacht schweißgebadet. Er erinnert sich an ein Schiff mit purpurnen Segeln. Ein kleiner, wertloser Gegenstand aus seinem Inventar fehlt. | <center></center> |
|
||||
| **4** | **Der Bote aus Kandelstein** | Ein Bote von Meister Eldoras wird überfallen. Die Gruppe kann eine verschlüsselte Nachricht retten, die von "Leckagen im Siegel" spricht. | <center></center> |
|
||||
| **5** | **Das Wunder von Gelbenstedt** | Ein Kranker wird öffentlich geheilt. Terian bemerkt jedoch, dass die Wunde nicht narbig schließt, sondern einen unnatürlichen, metallischen Glanz hat. | <center></center> |
|
||||
| **6** | **Flugblätter der Obsidianer** | Anonyme Schriften tauchen auf, die die Paktlords als "altes, schwaches Fleisch" verspotten. Die Stadtwache reagiert extrem brutal darauf. | <center></center> |
|
||||
| **7** | **Der Marktplatz-Zwischenfall** | Eine Kiste der Tassianischen Handelsgilde bricht auf. Zum Vorschein kommen seltsame, pulsierende Ranken (Dornengeflecht!). | <center></center> |
|
||||
| **8** | **Ein alter Freund** | Rambastulon (oder ein Brief von ihm) taucht auf. Er braucht Hilfe bei der Übersetzung eines Textes, der König Ferrums Verbannung beschreibt. | <center></center> |
|
||||
| **9** | **Die schattenhafte Käuferin** | Eine elegante Frau (Lady Valyria inkognito?) beobachtet die Gruppe beim Training und bietet ihnen ein "diskretes" Geschäft an. | <center></center> |
|
||||
| **10** | **Der Gnadenbringer** | Ein Asket (Wächter des letzten Pfades) versucht, ein krankes Kind "zu erlösen". Die Gruppe muss einschreiten, bevor es zum Mord kommt. | <center></center> |
|
||||
|
||||
|
||||
|
||||
|
||||
| **Würfel (d10)** | **Ereignis** | **Beschreibung / Hook** |
|
||||
| ---------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **1** | **Der rostende Dolch** | Gregor (Paladin) findet einen weggeworfenen Dolch, dessen Klinge sich wie Fleisch anfühlt und bei Berührung leicht pulsiert. Es ist "lebendiges Eisen" aus dem Nordgebirge. |
|
||||
| **2** | **Schmuggler-Glück** | Die Gruppe beobachtet in einer offenen Lagerhalle, wie Kisten mit dem Siegel des _Goldenen Pegasus_ auf Wagen mit dem Siegel von Lady Valyria umgeladen werden. |
|
||||
| **3** | **Zoctabans Vorbote** | Ein Bote aus Aschenheim trifft ein. Er ist völlig verbrannt, lebt aber noch durch Magie. Er schreit: "Er bereitet das Feuer vor! Niemand ist sicher!" bevor er zu Asche zerfällt. |
|
||||
| **4** | **Die stumme Wache** | |
|
||||
| **5** | **Das Echo von Wirmsheim** | Ein alter Gelehrter aus der _Arkanen Akademie_ bittet Tarazul um Hilfe: Er hat alte Aufzeichnungen gefunden, die belegen, dass Theobald von Wirmsheim kein Wahnsinniger, sondern ein verzweifelter Heiler war. |
|
||||
| **6** | **Sporen-Invasion** | Ein Händler auf dem Markt bricht zusammen. Aus seinem Mund wachsen rasant Ranken des _Dornengeflechts_. Die Stadtwache verbrennt ihn sofort, ohne Hilfe zuzulassen. |
|
||||
| **7** | **Die verlorene Seele** | Ein Mitglied der _Wächter des letzten Pfades_ spricht Terian an und lobt seinen Gott Amaunator – aber nur, weil die Sonne alles zu Ende brennt. Er bietet ein "Gift der Gnade" an. |
|
||||
| **8** | **Baladors Spione** | Die Gruppe bemerkt, dass sie von einem Agenten der _Zitadelle von Hammerwacht_ beschattet wird. Lord Balador traut Lady Valyria nicht und lässt alle Fremden in ihrer Stadt prüfen. |
|
||||
| **9** | **Traum-Marktplatz** | Während einer Rast erleben alle Spieler denselben Traum: Sie stehen auf einem Basar der _Purpurnen Navigatoren_. Dort wird die "Erinnerung an ihre erste Heldentat" zum Verkauf angeboten. |
|
||||
| **10** | **Der korrupte Segen** | Sirena von Gelbenstedt schickt eine Gabe an die Armen von Garana: Brot, das unglaublich sättigt, aber die Essenden emotional völlig stumpf und gleichgültig macht. |
|
||||
12
RPG/1-Sessions/Sitzung 008 Prep 06.03.2026/Hooks.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
## 3. Hinweise auf die Paktlords & Spannungen
|
||||
|
||||
Nutze die Zeit in Garana, um die ersten Risse im Fundament der Paktlords zu zeigen. Da Valyria heimlich mit Ferrum handelt, ist sie der perfekte Einstiegspunkt für die Korruption.
|
||||
|
||||
### Drei subtile Hinweise (Hooks):
|
||||
|
||||
1. **Der rostige Wagen:** Die Gruppe sieht nachts einen schweren, gut bewachten Wagenkonvoi, der aus der Stadt Richtung Norden fährt. Ein Rad bricht. In der Kiste, die herausfällt, glitzert es nicht wie Gold, sondern es ist **seltsames, kaltes Metall** (Ferrums Material).
|
||||
|
||||
2. **Das Gerücht in der Schänke:** Ein betrunkener ehemaliger Soldat aus Hammerwacht schimpft lautstark: _"Lord Balador ist wahnsinnig geworden! Er lässt uns Mauern gegen Gespenster bauen, während Lady Valyria hier in Seide badet und uns nicht mal Verstärkung schickt!"_
|
||||
|
||||
3. **Die verschwundene Heilung:** Ein NSC, den die Gruppe mag, braucht Heilung. Der lokale Heiler sagt: _"Ich habe nichts mehr. Alle Lieferungen von Sirena aus Lichtenwalde sind diesen Monat ausgeblieben. Man sagt, sie schickt ihr 'Wundermetall' nur noch an Lord Balador."_
|
||||
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
Do, 07.10.130, Gruppe in [[Garana]], Westreiche
|
||||
|
||||
[[Tarazul]] - Marco
|
||||
[[Rain]] - Michi
|
||||
[[Gregor Eisenhorn]] - Mike
|
||||
[[Harissa]] - Silke
|
||||
[[Terian]] - Udo
|
||||
|
||||
Nachträgliche xp Vergabe:
|
||||
|
||||
1,5 Jahre Echtzeit Spiel, 4 Monate In-Game
|
||||
|
||||
Langzeit Bonus: 1000xp pro Spieler
|
||||
|
||||
|
||||
|
||||
|
||||
## 2. Die Trainingswochen in Garana
|
||||
|
||||
Garana ist das Zentrum von Lady Valyrias Geheimdienst und Handel. Während die Helden trainieren, können sie die Atmosphäre der Stadt aufsaugen.
|
||||
|
||||
### Trainings-Szenarien pro Charakter:
|
||||
|
||||
- **Raven (Kämpferin) & Gregor (Paladin):** Trainieren auf den Übungsplätzen der Stadtwache. Hier fällt ihnen auf, dass die Ausrüstung der Wachen seltsam hochwertig ist – fast zu gut für eine normale Handelsstadt.
|
||||
|
||||
- **Harissa (Waldläuferin):** Sucht nach neuen Pfeilen. Sie bemerkt, dass im Umland von Garana ungewöhnlich viele Patrouillen unterwegs sind, die nicht nach Monstern jagen, sondern nach "Schmugglern".
|
||||
|
||||
- **Terian (Kleriker) & Tarazul (Magier):** Suchen die lokalen Bibliotheken oder Tempel auf. Sie finden heraus, dass Garana enorme Mengen an Gold für "spezielle Lieferungen" aus dem Norden ausgibt.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Mietinfo: Neben der Miete wird auch Nahrung benötigt. Pro Tag sind das pro Person 2 Kreuzer, bei einfacher Bevorratung, bis zu 20 Kreuzer pro Tag bei gehobener Bevorratung.
|
||||
|
||||
###### Verfügbare Häuser (Miete) in Garana:
|
||||
|
||||
**Kellerwohnung in der Silbergasse (4 Silber/Monat):** Eine sehr günstige, aber feuchte Unterkunft im Marktviertel. Sie ist ideal, wenn die Gruppe unauffällig bleiben will, allerdings gehört sie einem Hehler, der Verbindungen zu Lady Valyrias Organisation hat.
|
||||
|
||||
![[wohnung_silbergasse.jpg]]
|
||||
|
||||
|
||||
**Die verlassene Schreinerei (Handwerksviertel) – 6 Silber/Monat:** Ein funktionales Gebäude mit einer großen Werkstatt im Erdgeschoss. Es ist etwas baufällig, bietet aber viel Privatsphäre – ideal für Tarazul, um ungestört zu studieren. Der Besitzer ist ein verschuldeter Handwerker, der froh über jede Einnahme ist.
|
||||
![[Pasted image 20260305221419.png]]
|
||||
|
||||
|
||||
**Ehemalige Wachstube am Westtor (12 Silber/Monat):** Ein robustes, wehrhaftes Gebäude der Stadtwache. Es bietet viel Platz für Kampfübungen, aber man steht natürlich unter der indirekten Beobachtung der hiesigen Autoritäten.
|
||||
![[Pasted image 20260305221556.png]]
|
||||
|
||||
|
||||
|
||||
**Villa „Abendstern“ (15 Gold/Monat):** Ein luxuriöser Prachtbau im Adelsviertel. Dieses Objekt ist für die Gruppe **noch nicht zugänglich**, da es ein offizielles *Empfehlungsschreiben eines Paktlords* oder einen deutlich *höheren Ruf* voraussetzt.
|
||||
![[Pasted image 20260305221755.png]]
|
||||
|
||||
|
||||
**Der Turm der Seher (Adelsviertel) – 20 Gold/Monat:** Ein beeindruckender, magisch geschützter Turm inklusive Labor. Dieses Objekt ist jedoch **noch nicht verfügbar**, da es eine Akkreditierung der Akademie von Kandelstein oder ein „Silbernes Siegel“ erfordert (eine Auszeichnung für fortgeschrittene arkane Studien). Zudem gehört es einem Verwandten von Meister Eldoras (Magister Valerius Eldoras), was eine Verbindung zum Paktlord herstellt.
|
||||
|
||||
![[Pasted image 20260305222825.png]]
|
||||
|
||||
|
||||
## 3. Hinweise auf die Paktlords & Spannungen
|
||||
|
||||
Nutze die Zeit in Garana, um die ersten Risse im Fundament der Paktlords zu zeigen. Da Valyria heimlich mit Ferrum handelt, ist sie der perfekte Einstiegspunkt für die Korruption.
|
||||
|
||||
### Drei subtile Hinweise (Hooks):
|
||||
|
||||
1. **Der rostige Wagen:** Die Gruppe sieht nachts einen schweren, gut bewachten Wagenkonvoi, der aus der Stadt Richtung Norden fährt. Ein Rad bricht. In der Kiste, die herausfällt, glitzert es nicht wie Gold, sondern es ist **seltsames, kaltes Metall** (Ferrums Material).
|
||||
|
||||
2. **Das Gerücht in der Schänke:** Ein betrunkener ehemaliger Soldat aus Hammerwacht schimpft lautstark: _"Lord Balador ist wahnsinnig geworden! Er lässt uns Mauern gegen Gespenster bauen, während Lady Valyria hier in Seide badet und uns nicht mal Verstärkung schickt!"_
|
||||
|
||||
3. **Die verschwundene Heilung:** Ein NSC, den die Gruppe mag, braucht Heilung. Der lokale Heiler sagt: _"Ich habe nichts mehr. Alle Lieferungen von Sirena aus Lichtenwalde sind diesen Monat ausgeblieben. Man sagt, sie schickt ihr 'Wundermetall' nur noch an Lord Balador."_
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
Do, 07.10.130, Gruppe in [[Garana]], Westreiche
|
||||
|
||||
[[Tarazul]] - Marco
|
||||
[[Rain]] - Michi
|
||||
[[Gregor Eisenhorn]] - Mike
|
||||
[[Harissa]] - Silke
|
||||
[[Terian]] - Udo
|
||||
|
||||
|
||||
|
||||
###### Verfügbare Häuser (Miete) in Garana:
|
||||
|
||||
**Kellerwohnung in der Silbergasse (4 Silber/Monat):** Eine sehr günstige, aber feuchte Unterkunft im Marktviertel. Sie ist ideal, wenn die Gruppe unauffällig bleiben will, allerdings gehört sie einem Hehler, der Verbindungen zu Lady Valyrias Organisation hat.
|
||||
|
||||
![[wohnung_silbergasse.jpg]]
|
||||
|
||||
|
||||
**Die verlassene Schreinerei (Handwerksviertel) – 6 Silber/Monat:** Ein funktionales Gebäude mit einer großen Werkstatt im Erdgeschoss. Es ist etwas baufällig, bietet aber viel Privatsphäre – ideal für Tarazul, um ungestört zu studieren. Der Besitzer ist ein verschuldeter Handwerker, der froh über jede Einnahme ist.
|
||||
![[Pasted image 20260305221419.png]]
|
||||
|
||||
|
||||
**Ehemalige Wachstube am Westtor (12 Silber/Monat):** Ein robustes, wehrhaftes Gebäude der Stadtwache. Es bietet viel Platz für Kampfübungen, aber man steht natürlich unter der indirekten Beobachtung der hiesigen Autoritäten.
|
||||
![[Pasted image 20260305221556.png]]
|
||||
|
||||
|
||||
|
||||
**Villa „Abendstern“ (15 Gold/Monat):** Ein luxuriöser Prachtbau im Adelsviertel. Dieses Objekt ist für die Gruppe **noch nicht zugänglich**, da es ein offizielles *Empfehlungsschreiben eines Paktlords* oder einen deutlich *höheren Ruf* voraussetzt.
|
||||
![[Pasted image 20260305221755.png]]
|
||||
|
||||
|
||||
**Der Turm der Seher (Adelsviertel) – 20 Gold/Monat:** Ein beeindruckender, magisch geschützter Turm inklusive Labor. Dieses Objekt ist jedoch **noch nicht verfügbar**, da es eine Akkreditierung der Akademie von Kandelstein oder ein „Silbernes Siegel“ erfordert (eine Auszeichnung für fortgeschrittene arkane Studien). Zudem gehört es einem Verwandten von Meister Eldoras (Magister Valerius Eldoras), was eine Verbindung zum Paktlord herstellt.
|
||||
|
||||
![[Pasted image 20260305222825.png]]
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
Magier, gespielt von Marco
|
||||
|
||||
Geburtstag 10.10.114
|
||||
Kontaktperson: [[Vater Damian]]
|
||||
Kontaktperson: [[Rambastulon]]
|
||||
|
||||
Aktuelle Quests
|
||||
<geheim>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Flammenfürst, Wächter der brennenden Schwelle, Herrscher über Aschenheim (Paktlord)
|
||||
|
||||
|
||||
![[zoctaban_der_rote.jpg|725]]
|
||||
![[zoctaban_der_rote 1.jpg|725]]
|
||||
|
|
@ -1,6 +1,37 @@
|
|||
1. **Großes Stadtfest:** Ein jährliches Fest zur Erinnerung an einen Sieg gegen Orks wird nachgestellt. Die Stadtwache spielt die Orks, ist aber genervt, immer zu verlieren
|
||||
1. **Großes Stadtfest:** Ein jährliches Fest zur Erinnerung an einen Sieg gegen den Golem Gott wird nachgestellt. Die Stadtwache spielt die Orks, ist aber genervt, immer zu verlieren
|
||||
2. 1. Die SC erwachen vom Geschrei eines zornigen Mobs vor ihrem Gasthaus. Es handelt sich um (1W2):
|
||||
Anhänger und Speichellecker
|
||||
religiöse Fanatiker, die den Tod der SC fordern
|
||||
3. Einer der Priester der Siedlung weist alle Bewohner an, ihre Türrahmen mit dem Blut von Kälbern zu bestreichen, da in der Nacht ein Engel seiner Gottheit erscheinen werde, der jeden tötet, dessen Türrahmen ohne Kälberblut sei. Die Bewohner (1W6, 1-3: hören auf den Priester, 4-6: knüpfen den Priester auf), der Engel (1W6, 1-3: erscheint, 4-6: erscheint nicht).
|
||||
4. Ein ungepflegter junger Mann bietet der Gruppe 1W10 GM, wenn sie einige Plakate in der Siedlung anschlagen. Ortsfremde müssen einen entsprechenden Wurf ablegen, um zu erkennen, dass es sich um aufrührerisches Material handelt.
|
||||
4. Ein ungepflegter junger Mann bietet der Gruppe 1W10 GM, wenn sie einige Plakate in der Siedlung anschlagen. Ortsfremde müssen einen entsprechenden Wurf ablegen, um zu erkennen, dass es sich um aufrührerisches Material handelt.
|
||||
|
||||
|
||||
### Gerüchte aus den Schatten von Garana
|
||||
|
||||
1. **Das "lebendige" Silber:** > _"Hast du die neuen Dolche der Stadtwache gesehen? Sie glänzen nicht wie Stahl, sondern schimmern bläulich. Man sagt, Lady Valyria habe ein altes Depot aus der Zeit des Golem-Krieges gefunden. Aber manche flüstern, das Metall würde nachts leise summen..."_
|
||||
|
||||
- **Hintergrund:** Ein Hinweis auf ihren Handel mit Ferrum.
|
||||
|
||||
2. **Die verschwundenen Bettler:**
|
||||
|
||||
> _"In den Gassen von Garana ist es nachts zu still geworden. Erst waren es die Waisen, dann die Tagelöhner. Die Stadtwache sagt, sie seien 'umgesiedelt' worden, um in den Minen zu arbeiten. Aber niemand hat je einen Brief von ihnen erhalten."_
|
||||
|
||||
- **Hintergrund:** Valyria liefert "Rohmaterial" (Menschen) an Ferrum im Austausch für Reichtum.
|
||||
|
||||
3. **Der Geister-Konvoi:**
|
||||
|
||||
> _"Ein Cousin von mir ist Kutscher. Er schwor beim Licht Amaunators, dass er eine Karawane sah, die tief in der Nacht das Nordtor verließ – ohne Fackeln, ohne Pferdegeschrei. Die Wagen rollten von selbst, als hätten sie einen eigenen Willen."_
|
||||
|
||||
- **Hintergrund:** Golem-Technologie oder magisch bewegte Fracht für den Norden.
|
||||
|
||||
4. **Die Angst des Löwen:**
|
||||
|
||||
> _"Boten aus der Zitadelle von Hammerwacht berichten, dass Lord Balador die Steuern erhöht hat, um die Mauern zu verdoppeln. Er traut seinen eigenen Waffenbrüdern nicht mehr. Er glaubt wohl, König Ferrum sei nie wirklich besiegt worden, sondern nur... geduldig."_
|
||||
|
||||
- **Hintergrund:** Etabliert Baladors Paranoia und die bröckelnde Einheit der Paktlords.
|
||||
|
||||
5. **Der Traum-Diebstahl:**
|
||||
|
||||
> _"Schlaf heute Nacht mit einem Messer unter dem Kissen. In der Unterstadt erzählen sie von den 'Purpurnen', die durch die Schlüssellöcher in deine Träume kriechen. Sie stehlen dir nicht dein Gold, sondern deine liebsten Erinnerungen."_
|
||||
|
||||
- **Hintergrund:** Erster Teaser für die Organisation der _Purpurnen Navigatoren_.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
Der eiserne Vogt Hammerwachts. Erster Paktlord.
|
||||
![[lord_balador.jpg|650]]
|
||||
<p align="left"></p>
|
||||
![[Pasted image 20260304215813.png|425]]
|
||||
|
||||
|
||||
|
||||
![[wappen_balador.png]]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
![[Garana_Nebelmoor.png|1175]]
|
||||
![[Garana_Umgebung.png]]
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
![[Pasted image 20251220080554.png]]
|
||||
|
||||
Eine radikale Fraktion von Druiden und Waldläufern, die die Zivilisation als Infektion betrachten. Sie nutzen keine Feuerbälle, sondern biologische Kriegsführung: Ranken, die Stein zersetzen, Sporen, die den Verstand korrumpieren, und mutierte Bestien, die nachts die Viehbestände der Bauern reißen.
|
||||
![[das_dornen_geflecht 1.png|500]]
|
||||
Eine radikale Fraktion von Druiden und Waldläufern, die die Zivilisation als Infektion betrachten. Sie nutzen keine Feuerbälle,
|
||||
sondern biologische Kriegsführung: Ranken, die Stein zersetzen, Sporen, die den Verstand korrumpieren, und mutierte Bestien,
|
||||
die nachts die Viehbestände der Bauern reißen.
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
![[Pasted image 20251220080419.png]]
|
||||
![[die_obsidian_zitadelle 1.png|500]]
|
||||
|
||||
(Vorbild: Kleriker aus Equilibrium)
|
||||
|
||||
Ein Orden von abtrünnigen Paladinen, die den Glauben an die Götter aufgegeben haben und nun eine Weltordnung anstreben, die rein auf logischer (und grausamer) Effizienz basiert. Sie unterdrücken Emotionen und Kunst, da diese als Schwachstellen im "perfekten Staat" gelten.
|
||||
Ein Orden von abtrünnigen Paladinen, die den Glauben an die Götter aufgegeben haben und nun eine Weltordnung anstreben,
|
||||
die rein auf logischer (und grausamer) Effizienz basiert. Sie unterdrücken Emotionen und Kunst, da diese als Schwachstellen
|
||||
im "perfekten Staat" gelten.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
![[Pasted image 20251220080742.png]]
|
||||
|
||||
![[die_waechter_des_letzten_pfades.png|350]]
|
||||
Ein asketischer Orden, der davon überzeugt ist, dass die Welt übervölkert ist und die Reinkarnation gestoppt werden muss. Sie töten nicht aus Hass, sondern aus einer perversen Form von "Gnade", um Seelen in das endgültige Nichts zu schicken, damit sie nicht erneut leiden müssen.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
![[Pasted image 20251220081201.png]]
|
||||
![[die_purpurnen_navigatoren.png|375]]
|
||||
|
||||
Ein Piratenkartell, das nicht auf dem Meer, sondern in den Träumen der Menschen segelt. Sie nutzen Schlafmittel und Zauber, um in die Alpträume ihrer Opfer einzudringen und dort Schätze oder Geheimnisse zu stehlen, die im wachen Zustand verborgen bleiben.
|
||||
Ein Piratenkartell, das nicht auf dem Meer, sondern in den Träumen der Menschen segelt.
|
||||
Sie nutzen Schlafmittel und Zauber, um in die Alpträume ihrer Opfer einzudringen und dort
|
||||
Schätze oder Geheimnisse zu stehlen, die im wachen Zustand verborgen bleiben.
|
||||
|
|
@ -1 +1 @@
|
|||
![[DasKöniglicheMagieKollegium.png]]
|
||||
![[das_koenligliche_magie_kollegium.jpg|300]]
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
|
||||
|
||||
|
||||
## Drawing
|
||||
```compressed-json
|
||||
N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQAswYKDXgB6MQHNsYfpwBGAOlT0AtmIBeNCtlQbs6RmPry6uA4wC0KDDgLFLUTJ2lH8MTDHQ0YNMWHRJMRZFAA5FAGYyJE9VGEYwGgQAbQBdcnQoKABlALA+UEl8PGzsDT5GTkxMch0YIgAhdFQAayKuRlwAYXpMenwEEABiADMx8ZAAX0mgA
|
||||
```
|
||||
%%
|
||||
BIN
RPG/das_dornen_geflecht 1.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
RPG/die_obsidian_zitadelle 1.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
RPG/die_purpurnen_navigatoren.png
Normal file
|
After Width: | Height: | Size: 978 KiB |
BIN
RPG/die_waechter_des_letzten_pfades.png
Normal file
|
After Width: | Height: | Size: 708 KiB |
BIN
RPG/wappen_balador.png
Normal file
|
After Width: | Height: | Size: 235 KiB |
BIN
RPG/zz_archiv/Garana_Umgebung.png
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 821 KiB |
|
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
|
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
BIN
RPG/zz_archiv/images/das_koenligliche_magie_kollegium.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 305 KiB |
BIN
RPG/zz_archiv/images/zoctaban_der_rote 1.jpg
Normal file
|
After Width: | Height: | Size: 143 KiB |