Skip to main content

Campaign world / the four primitives DMs work with

A campaign world is a graph of records, not a bible.

Multiloop holds a campaign world as four connected primitives: Locations, Factions, Timeline, and the Characters who show up in all three. This page shows what each record actually stores, how they connect, and when to hand a session note to Analysis instead of editing by hand.

The panel below is one place, one faction pressuring it, and one timeline beat that touched both. Every field shown maps to a real field on a Multiloop record.

One panel / one world

One place. One faction pressuring it. One beat that touched both.

Read across the three lanes and the world connects: the faction's Voice is already standing in the tavern, and the timeline beat that named the Mireport contact happened in that same room on session 9. The identifier on every field is a real field on a Multiloop record.

Location

The Anchor and Lantern

TavernActiveParty only

Pinned on the Rumerton harbor map

Summary/ share-safe
The party's Rumerton meeting spot. Messages for the Fellwake crew get left here with the owner.
Inhabitants
The owner. Quill Harrowfen when she's waiting for the party. A new bartender as of session 9.

Faction

The Fellwake Hand

GuildActiveKnown to the party
Description/ share-safe
A small courier order running sealed letters between Fellwake and Mireport. Trades information and access with the party; will not risk open war on their behalf.
Headquarters
A warehouse on the Fellwake dockside ward.
Fellwake > Dockside ward
Parent faction
Fellwake Merchant Trust
Key members
Quill HarrowfenVoice
Cass's cousinRunner

Timeline beat

Session 9RevelationMajor

Quill names the Mireport contact at the Anchor and Lantern.

Linked session, location, characters
Session / Session 9
Location / The Anchor and Lantern
Characters / Quill Harrowfen, Cass (party)
Description/ share-safe
At the booth by the side door, Quill finally names the Mireport contact and hands over a sealed letter sigil. The party now carries the next delivery themselves.

DM notes, Secrets, and DM-only timeline notes stay on your side of the screen. The campaign share view filters each record by its visibility and its section inclusion before the party sees anything.

Timeline DM note / Fires the Mireport delivery clock. Madric's crew is already one step behind the vendor in Saltwright; if the party waits a session, the intact roster copy is burned too.

The four world primitives

Four record types carry the working world.

Each primitive is a record type with its own native editor. The fields below are the real ones the product stores; the notes guidance is where worksheet conventions land inside existing fields instead of inventing second ones.

Primitive

Locations

Places the party can stand in, pin on a map, or hear named at the table. Each location nests inside a parent chain.

Lives in / The World module. Locations live on their own route; factions, timeline, and relationships live under Lore.

Structured fields

  • Name, type, parent location, and current status.
  • Summary and Description for share-safe copy.
  • Inhabitants, population, government, economy, defenses, climate, terrain, and resources.
  • Visibility, plus DM notes and Secrets.

Notes guidance

  • "Last touched" and "what changed last" are DM-notes prompts, not separate storage.
  • "If the party returns" and "open thread" belong in DM notes or Secrets, depending on whether the content is prep context or a hidden truth.

Connects to

  • Factions reference a headquarters location.
  • Timeline entries can carry a structured location link alongside structured session and character links.
  • Characters carry a last-seen location string, not a structured foreign key.
  • Map pins can reference a location record and render on a campaign map.

Primitive

Factions

Orders, guilds, houses, cults, governments, and crews. Each faction carries its own accent color and emblem on the record.

Lives in / Under the Lore route inside the World module.

Structured fields

  • Name, faction type, status, headquarters (text), headquarters location link, and parent faction.
  • Color and emblem icon on the record.
  • Known-to-the-party flag, plus Description and DM notes.

Notes guidance

  • "What they want", "what they control", "what they owe", and "pressure on them" are Description or DM-notes prompts. No stakes fields exist on the record.
  • Posture toward the party (ally, contact, rival, patron, hostile, suspect) is writing shorthand kept in Description or DM notes.

Connects to

  • Characters can be members of a faction with a role (a structured membership record).
  • A faction's headquarters can point at a location record.
  • Ties between factions belong in Description or DM notes until they become something the DM wants to model elsewhere.

Primitive

Timeline

Change-shaped moments the campaign should remember five sessions from now. One event type per entry from a closed set of fifteen.

Lives in / Under the Lore route inside the World module.

Structured fields

  • Title, event type (fifteen values), event date, display date label, and timeline position.
  • Major-event marker for the handful of entries a year of timeline should still lead with.
  • Linked session, linked location, one or more linked characters, and a location label fallback.
  • Description for share-safe copy and DM notes for private context.

Notes guidance

  • The native editor can link a timeline entry to a location record. Analysis-created entries currently fill the location label rather than the structured location link.
  • Per-entry visibility is not a setting the timeline editor exposes today; keep private context in DM notes rather than expect a player-view toggle per entry.

Connects to

  • Each entry can link a session, a location record, and one or more character records.
  • Faction and location mentions inside Description or DM notes are rich-text references, not structured links.

Primitive

Characters

The NPCs the party keeps meeting, plus the player characters. Characters link into every other primitive in the world.

Lives in / The Entities route. Characters is the canonical surface for managing campaign-backed NPCs and PCs.

Structured fields

  • Identity, appearance, personality, backstory, story hooks, and people-and-relationships sections.
  • Faction memberships with a role, as structured records.
  • Last-seen location, stored as text alongside the character.
  • Visibility and DM notes for private context.

Notes guidance

  • The last-seen location is a text hint, not a structured link to the location record.
  • Player-known versus DM-only context splits between Description and DM notes, plus the record-level visibility signal.

Connects to

  • A character can appear on a timeline entry through the linked-characters field.
  • A character can carry one or more faction memberships with a role.
  • Relationships to other characters live in the Relationships surface under Lore.

How the primitives connect

Five connection points do most of the work.

The world reads as a graph because the connections are structured, not just prose mentions. These are the five edges that carry the most weight at the table.

  1. Parent chains nest records

    A location can sit inside another location; a faction can sit inside another faction. Both are self-referential links, and both are how breadcrumb rows render in the product. Use them the same way you use nested folders: one parent up, one level at a time.

  2. Headquarters connect a faction to a place

    A faction record carries a headquarters text field plus an optional structured link to a location record. When the link is set, the location appears on the faction card and the faction appears on the location's backlinks.

  3. Faction memberships are structured

    A character can be a member of a faction with a role ("Voice", "Runner", "Elder"). Memberships are their own records, so one character can sit inside several factions, and a faction outlives any single member.

  4. Timeline entries link a session and characters

    The session link, linked-characters list, and linked location are structured, with a location label as a fallback. Rich-text references to other records inside Description and DM notes are how you mention factions, secondary locations, and off-screen characters without inventing structured links for every mention.

  5. Map pins sit under a location

    A campaign map can carry pins that reference a location record. The pin's label, description, icon, and shape live on the pin; the fields the party remembers about the place still live on the location record. The map is a manual surface today and is not proposed by Analysis.

What Analysis proposes

Analysis writes new candidates. It does not silently update the world.

Analysis reads DM session notes and shared player notes. When it sees a place, order, moment, or character concrete enough to store, it proposes reviewable suggestions. New Location, Faction, Timeline, and NPC candidates can be approved from the queue. Existing Location, Faction, and Timeline fields stay deliberate edits in their native editors; supported Character updates can also be reviewed and approved when Analysis proposes them.

  • Locations

    Creates new location candidates from places the session notes name concretely. If a location with the same name already exists in the campaign, the suggestion is marked applied and no new record is created. Does not edit fields on existing locations.

  • Factions

    Creates new faction candidates when an order, guild, cult, government, or crew becomes concrete in the notes. Same name-match guard as locations. Does not edit fields on existing factions, does not change a faction's status, and does not place faction-to-faction relationships.

  • Timeline

    Creates new timeline entries for change-shaped moments in the session notes, with an event type, a description, the session, a location label, and the characters the moment touched. The native editor can also attach a structured location link after review. Analysis does not deduplicate against prior entries and does not rewrite existing entries.

  • Characters

    Creates new NPC candidates. When a new NPC arrives with a faction name in the suggestion, Analysis also writes a structured faction membership for that character. Separate character-update suggestions can update supported character fields only after review and approval. The last-seen-location hint extracted from new-NPC notes is not applied to an existing character today.

  • Map pins

    Not in Analysis scope. Pins are a manual surface: a DM drops them on the campaign map when a place earns a pin. A location can be proposed by Analysis and then pinned by hand on the map the same session.

Every suggestion is reviewable before it applies. The recommended rhythm is to write the DM session note, skim Analysis after the game, approve the new records that match what happened, and keep deliberate field edits to the native editor for each record type.

Map and pins

The campaign map is the spatial reference. The locations are the change log.

A campaign map lives inside each campaign. A location record can be pinned on a map; the pin carries a label, a short description, and a shape and icon. Pins do not invent a new record; they reference the location. The map is a manual surface today, which means a DM drops a pin when it matters and leaves the rest of the map quiet.

Share view / knowledge split

What the party reads, and what stays on the DM side of the screen.

Campaign sharing works in two layers. First, the campaign share view chooses which modules to include (Locations, Factions, Timeline, Characters). Second, each record inside those modules carries its own visibility signal. DM notes and Secrets never appear in the share view, no matter how the modules are configured.

Locations
Visibility controlRecord-level visibility (public, party only, or DM only), plus include/exclude at the campaign-share level.
DM only stays outDM notes and Secrets never render in the share view.
Factions
Visibility controlKnown-to-the-party flag on the faction, plus include/exclude at the campaign-share level.
DM only stays outDescription is share-safe; DM notes stay private.
Timeline
Visibility controlInclude/exclude the Timeline section at the campaign-share level. Per-entry visibility is not exposed as a timeline-entry setting today.
DM only stays outDM notes on a timeline entry stay private.
Characters
Visibility controlRecord-level visibility on each character, plus include/exclude at the campaign-share level.
DM only stays outDM notes stay private; structured faction memberships render when the character is shared.

Two ways to run it

Edit directly, or write the session note and let Analysis draft the world.

Both lanes land in the same native editors. The first is for small and certain changes. The second is for the rhythm most campaigns settle into after a few sessions.

Lane A / manual

Edit the world directly when you know what changed.

Open the editor for the record that moved and write the change in. No review flow, no queue, no suggestions. This is the lane for small and certain edits.

  1. 01Open the location, faction, timeline entry, or character editor. Each primitive has its own native editor.
  2. 02Update the fields that changed, including Status, Known-to-the-party, Description, Inhabitants, and Headquarters.
  3. 03Keep session-to-session deltas in DM notes. Keep true-but-hidden context in Secrets.
  4. 04Drop a map pin on the campaign map if the place earned a pin this session.

Lane B / recommended rhythm

Write the session note. Review Analysis. Approve what actually happened.

Hand the change-shaped parts of the session to Analysis and let it draft the new records for you to approve. This is the lane that keeps the world current without re-typing what the party already named.

  1. 01Write the DM session note. Let players add their own session notes when useful.
  2. 02Run Analysis on the session. It reads the DM note and any shared player notes.
  3. 03Review the proposed new Location, Faction, Timeline, and Character candidates. Approve the ones that match what happened.
  4. 04Handle deliberate Location, Faction, Timeline, and map-pin field edits in the native editor for that record. Supported Character updates can also come through reviewable suggestions when Analysis proposes them.

Margin rule / cut

Leave these out of the working world.

Every record you write is a record you maintain. Keep the working world small by keeping these out of it.

  • Pre-campaign setting essays the party may never surface. Keep those in your worldbuilding doc, not the working world.
  • Minor named NPCs the party has not met and the world is not about to push in front of them.
  • Timeline entries for every scene. The timeline is a change log, not a transcript.
  • Every shop, guard post, and side street. A location becomes a row the first time the party stands in it or earns a working lead to it.
  • Faction ideology charts the party will never have an opinion on. Keep those in your setting notes.
  • Map pins for places that never returned to play.

Copy the world seed into your notes app.

Markdown / plain text

One block per primitive. Paste it into a document, a markdown file, a notebook page, or a campaign workspace. The structure maps to the real Multiloop records underneath.

# Campaign world seed

## Locations
   Name:
   Type: (region, city, town, village, building, tavern, temple, dungeon, wilderness, landmark, camp, other)
   Parent location:
   Status: (active, hidden, abandoned, destroyed, unknown)
   Summary (share-safe):
   Description (share-safe):
   Inhabitants:
   DM notes:
   Secrets:
   Visibility: (public / party only / DM only)

## Factions
   Name:
   Type: (guild, kingdom, military, religious, merchant, criminal, academic, family, cult, other)
   Status: (active, secret, disbanded, destroyed)
   Headquarters:
      Location link:
   Parent faction:
   Known to the party: (yes / no)
   Key members:
      Role: Name
   Description (share-safe):
   DM notes:

## Timeline
   Session:
   Event type: (Plot Point, Character Introduction, Character Death, Location Change, Combat, Revelation, Quest Started, Quest Ended, Session, Discovery, Quest Completed, Death, Romance, Alliance, Other)
   Title:
   Major event: (yes / no)
   Linked session:
   Linked location:
   Linked characters:
   Description (share-safe):
   DM notes:

## Characters
   Name:
   Known to the party: (yes / no)
   Faction memberships:
      Faction: Role
   Last seen location:
   Description (share-safe):
   DM notes:

## Last change from session notes
   Session:
   What moved in the world:

FAQ

Before you seed the first record.

Is this a world generator?
No. This is a map of how Multiloop stores the world a DM already has in play. Locations, Factions, Timeline, and Characters are record types with real fields; the page shows what they store and how they connect so a DM can keep them current without re-typing the session.
Do I need all four primitives at once?
No. Start with the one that changed. Most campaigns open with a handful of Locations and the Characters who live in them, pick up Factions when a named group starts pressuring the party, and pick up Timeline once the campaign is a few sessions in and the DM wants a handful of change-shaped rows to remember.
What does Analysis touch, and what does it leave alone?
Analysis proposes new Location, Faction, Timeline, and Character candidates from DM session notes and shared player notes, and it writes a faction membership when a new character arrives with a faction named. Existing Location, Faction, and Timeline edits stay manual. Supported Character updates can also be reviewed and approved. Analysis does not change statuses, place map pins, or promise silent background updates.
How do I keep secrets out of the player-facing side?
Every record has a share-safe side and a DM-only side. For locations and characters, record-level visibility plus DM notes and Secrets control the split. For factions, the known-to-the-party flag and DM notes carry it. The campaign share view also chooses which sections to include at the share level, so a DM can hide a whole module or just the private content inside each record.
How is this different from a worldbuilding bible?
A bible captures who the world is forever. This is the working layer underneath that bible: the places that changed this month, the factions that are pressuring the party right now, the timeline beats the DM will actually reference, and the NPCs still in play. Bible notes can live alongside it; the working layer is what keeps prep short.
Can players contribute to world notes?
Yes. Invite players with the right permissions and they can add session notes from their side of the table. Shared player notes are one of the signals Analysis reads when it proposes new records, so player-surfaced names flow into the same review queue a DM is already using.
Does this work outside D&D?
Yes. Pathfinder, Call of Cthulhu, Blades in the Dark, and most campaign-based tabletop RPGs use the same four primitives: the places the party walks through, the organizations squeezing them, the moments that changed the world, and the people in both. The structure is system-agnostic.

Get Early Access

Keep the campaign world current after the game.

Multiloop holds your world as four connected primitives. Analysis proposes new Location, Faction, Timeline, and Character candidates from session notes; you review and approve what actually happened, and deliberate field edits stay in the native editor for each record.