๐Ÿ•ธ๏ธ Story Web

๐Ÿ‘ค For: Game Masters ยท ๐Ÿ’ณ Plan: All plans ยท ๐Ÿงต Story generation 4 ยท ๐Ÿ”„ Updated 2026-10-17

The Story Web is a live visual graph of everything connected in your campaign. Every NPC, location, faction, scene, plotline, and item is a node; every relationship is an edge. New links you create elsewhere in Wovenkeep appear here automatically โ€” no re-import needed.

The Story Web in the GM tool: toolbar, the graph of the demo campaign and the side panel of the session Into the Dark with its 13 connections

What it does

The Story Web derives its graph live from the connections you build across the tool โ€” NPC relationships, plotline links, scene references, and more. Manually added nodes and edges overlay the derived graph. Switch between a focused Local view (the immediate neighbourhood of one entity) and the Full graph to keep large campaigns manageable.

When to use it

  • You want to see at a glance who is connected to whom before a session
  • You are planning a faction conflict and need to spot missing links
  • A player asks "who do we know in this city?" and you want to quickly map it
  • You need to navigate from a character to a related scene without losing your place

Step by step

  1. Open Story Web from the sidebar (in the Story & Tantu group) โ€” it opens embedded in the GM tool, using your current campaign.
  2. Prefer a full screen? A standalone version lives at /gm/story-web.html (the embedded view links to it on small screens). The standalone page has a campaign dropdown in the toolbar.
  3. The graph loads automatically in Local view โ€” centred on the most-connected node in your campaign.
  4. Click any node to open its details panel on the right.
  5. Use ๐ŸŽฏ Focus in the details panel to make that node the centre of the Local view.
  6. On the standalone page, switch to Full graph in the toolbar to see every node at once.

๐Ÿ’ก Tip: Double-click an empty area of the canvas to create a new node directly, without opening the toolbar dialog.


The interface

The standalone Story Web page: toolbar, graph in Local view and the details panel of a node

The canvas takes up most of the page. The toolbar at the top has the main actions. The side panel (toggled with Panel) shows details of the selected node or edge.


Local view vs. Full graph

Mode What you see Best for
Local Nodes within 1โ€“2 hops of the focus node Large campaigns, session prep
Full graph Every node in the campaign Small campaigns, overview

Switch with the Local / Full graph buttons in the toolbar of the standalone page (/gm/story-web.html). Use the 1 hop / 2 hops selector to adjust how far the Local view reaches. The embedded view in the GM tool opens in Local view โ€” use ๐ŸŽฏ Focus to navigate, or open the standalone page for the Full-graph toggle.

Changing focus: click any node โ†’ in the details panel click ๐ŸŽฏ Focus to make that node the centre of the Local view.

Deep links: the ๐Ÿ”— Links panel of NPCs, locations, plotlines, clues and scenes has a ๐Ÿ•ธ Show in web button. Clicking it opens the Story Web in a new browser tab with that entity already in focus โ€” the GM tool stays where you were.


Live derivation โ€” connections appear automatically

When you link entities elsewhere in Wovenkeep (add an NPC to a scene, connect two plotlines, link a clue to an NPC or a scene) those connections appear in the Story Web immediately on the next load. You do not need to re-import. Clues you linked appear as ๐Ÿ” nodes.

Acts and chapters are the exception: they enter the web only through Import from story โ€” with part of edges from chapter to act and from scene to chapter โ€” and are not updated afterwards. If you rename or regroup them later, the web keeps the imported state.

Automatically derived edges are labelled auto in the details panel and cannot be deleted directly โ€” they reflect your actual campaign data. Manual edges (ones you draw yourself) show a delete button.


Importing from your campaign

Click Import from story to add nodes for entities that are not yet in the web.

A dialog lets you choose which categories to import:

โ˜‘ NPCs              โ˜‘ Scenes        โ˜‘ Locations
โ˜‘ Acts              โ˜‘ Chapters      โ˜‘ Plotlines
โ˜‘ Foreshadowing     โ˜‘ Encounters    โ˜‘ Handouts
โ˜‘ Sessions          โ˜‘ Player characters
โ˜‘ Items             โ˜‘ Monsters

All thirteen are ticked to begin with. Pick a layout under Position โ€” Tree (hierarchical) or Grid โ€” and click Import. Existing nodes are not duplicated; in the tree, acts form the first row and chapters the second.


Node types

Fifteen default types are available. The colour and icon are shown on the canvas:

Type Color Icon Typical use
NPC Blue ๐Ÿ‘ค Non-player character
Location Teal ๐Ÿ“ City, dungeon, region
Faction Amber โš”๏ธ Guild, army, cult
Item Red ๐Ÿ’Ž Artifact, key object
Event Purple โšก Battle, ritual, betrayal
Plotline Purple ๐Ÿ“œ A story thread
Hint Amber ๐Ÿ” Foreshadowing or clue
Act Red ๐ŸŽญ Story act
Chapter Orange ๐Ÿ“– Chapter within an act
Session Cyan ๐Ÿ“… A played session
Encounter Dark red โš”๏ธ Combat or skill challenge
Handout Green ๐Ÿ“ Document given to players
PC Blue ๐Ÿง™ A player character
Monster Dark red ๐Ÿฒ Custom or SRD creature
Custom Gray ๐Ÿ”ฎ Anything else

You can also create your own types โ€” see Custom types.


Edge types

Nine default edge types are available:

Type Color Meaning
Connection Gray Generic relationship
Ally Teal Friendly bond
Enemy Red Hostile relationship
Family Amber Blood or marriage tie
Location Link Teal "X is at location Y"
Quest Link Purple Related to a plotline
Part of Gray Structural hierarchy
Appears in Blue Entity appears in an entity
Foreshadowing Amber Narrative foreshadowing

Adding nodes

Click Import from story and select the categories to import. Existing nodes are skipped.

Manually โ€” + Node

Click + Node. A form opens in the side panel:

The New Node form in the side panel

The node appears at the canvas centre. Drag it to position.

When you create an NPC or Location node, you can link it directly to an existing NPC or scene from the dropdown โ€” this creates a live entity link so changes are reflected automatically.


Adding edges

Click ๐Ÿ”— Connect to enter connect mode โ€” the button highlights to show it is active.

In connect mode:

  1. Click a source node
  2. Click a target node
  3. A form opens in the side panel โ€” pick the edge type and an optional label
  4. Click Save

To exit connect mode, press Escape or click ๐Ÿ”— Connect again.

You can also Shift + drag from any node to start a connection without switching modes.


Editing and deleting

Action How
Open node details Single-click a node
Edit node (name, type, notes) Double-click a node, or single-click โ†’ Edit in panel
Reposition node Drag
Delete manual node Right-click โ†’ Delete, or single-click โ†’ Delete in panel
Delete manual edge Click the edge โ†’ Delete in panel
Clear all content ๐Ÿ—‘ Content in toolbar (confirmation required; custom type definitions are kept)

Note: Derived nodes (auto-generated from campaign entities) cannot be deleted from the Story Web. Remove the underlying link in the entity itself.

All edits save automatically.


The side panel

Toggle with Panel in the toolbar.

Node selected:

The side panel with a selected NPC node and its connections

Derived edges show auto โ€” they cannot be deleted here. Manual edges show [x].

The NPC bearbeiten / Szene รถffnen quick-link jumps directly to that entity's editor.


Custom types

Click โš™ in the toolbar to open Type Settings.

Node types tab

Add a new type with + Type (key, label, color, icon). Existing nodes can be re-assigned to new types.

Edge types tab

Same structure for edge styles (line color, label). Custom edge types appear alongside the defaults when you draw a connection.


Control Action
Fit button in the toolbar Auto-scales view to show all visible nodes
Pan Click-drag on empty canvas
Zoom Scroll wheel
D3 force layout Runs automatically; connected nodes drift together
Manual position Drag any node to pin it; others adjust around it

Performance notes

  • D3 force simulation runs smoothly up to ~100 nodes in view
  • 100โ€“300 nodes: noticeable but tolerable
  • 300+ nodes: layout may stutter on every drag

For large campaigns, stay in Local view with 1 Hop to keep the visible node count low. Use ๐ŸŽฏ Focus to navigate session-by-session rather than loading the full graph.


When to use the Story Web

Use case Effectiveness
Tracking relationships in a 5-NPC campaign Low โ€” overkill
Tracking relationships in a 25-NPC campaign High โ€” essential
Visualising a faction war (three factions) High
Planning a heist with many connected NPCs High
Navigating from one entity to related entities High (use Local view + ๐ŸŽฏ Focus)
Session-by-session story planning Low โ€” use Story Coach instead

Troubleshooting

Symptom Cause Fix
A connection I made elsewhere isn't showing Graph not reloaded Re-select the campaign from the dropdown (standalone page), or leave and reopen the Story Web section (embedded)
Node appears but has no edges Entity was imported but not linked anywhere Link it via the entity's detail page; the edge appears automatically
"Derived nodes cannot be deleted" toast You tried to delete a derived (auto) node Remove the underlying link in the NPC, scene, or entity itself
Canvas is blank after switching campaigns D3 simulation is running; large graph takes a moment Wait 2โ€“3 seconds; use Fit if nodes are off-screen
Local view shows only one node Focus node has no edges yet Draw a connection, or switch to Full graph to see all nodes

Optional: Story suggestion from your web (AI)

Everything above works without AI. If you like, the Generate story button turns your web into narrative material. It sends your current nodes and edges to Tantu and returns, in the side panel:

  • a story summary weaving your connected entities into a coherent narrative,
  • a list of plot ideas based on the relationships in the graph,
  • suggested nodes โ€” entities that are missing according to Tantu, each with a reason and a + Hinzufรผgen button that adds it to the web in one click.

Tantu answers with the help of AI. You need at least 2 nodes in the web before generating. The button carries a 4 ๐Ÿงต badge (long text action; 0 ๐Ÿงต with your own AI key), and a confirm dialog with cost and balance appears before anything is spent. The voice you set in ๐Ÿชถ Tantu: name & voice shapes the result.