[{"data":1,"prerenderedAt":2019},["ShallowReactive",2],{"/learn/living-web":3,"learn-related-living-web":595},{"id":4,"title":5,"author":6,"body":7,"cta":581,"datePublished":582,"description":583,"extension":584,"meta":585,"navigation":586,"path":587,"seo":588,"stem":589,"tags":590,"tracking":593,"__hash__":594},"learn/learn/06.living-web.md","How to Link Characters, Locations, and Plot Into a Living Web","Jon",{"type":8,"value":9,"toc":566},"minimark",[10,14,28,31,54,57,62,68,79,84,87,150,153,160,170,178,185,195,197,201,207,211,214,217,228,289,294,301,305,316,322,333,337,340,343,359,362,370,372,376,382,385,462,469,473,476,479,513,516,522,543,551],[11,12,13],"p",{},"Most campaigns trail off from disconnection, not from lack of detail. You build a rich NPC profile, a detailed city description, a faction with internal politics, but none of them know about each other. You become the sole thread holding it all together. Forty sessions in, you can't remember which NPCs operate in which city or which faction controls the northern trade routes.",[11,15,16,17,22,23,27],{},"The fix isn't more notes. It's a ",[18,19,21],"a",{"href":20},"/features#relations","relational database"," where every character, location, and faction is a node in a web of explicit, system-tracked connections. When you write that Mira trained under Torvald, both entries update. When you ",[18,24,26],{"href":25},"/features#editor","@mention"," Ashenmoor in a session journal, Ashenmoor's \"Mentioned In\" list grows automatically. The web is self-documenting: every creative decision you make adds connective tissue that makes the next decision easier.",[11,29,30],{},"This guide covers how to build that web in Kanka from your first entry to your hundredth session.",[11,32,33,37,38,41,42,45,46,49,50,53],{},[34,35,36],"strong",{},"What you'll learn:"," How relational connections differ from wiki links, the three-stage connection workflow, and when to stop building and start reading the web ",[34,39,40],{},"Kanka features used:"," ",[18,43,44],{"href":20},"entry Relations",", ",[18,47,48],{"href":25},"@Mentions",", Relation Explorer, Campaign-Wide Connections Web, entry Archiving ",[34,51,52],{},"Time to complete:"," 15 minutes to learn, ongoing to master",[55,56],"hr",{},[58,59,61],"h2",{"id":60},"what-is-a-relational-web","What Is a Relational Web?",[11,63,64,67],{},[34,65,66],{},"A relational web is a campaign where every entry knows about every entry it's connected to, not through your memory, but through explicit, system-tracked links."," That distinction matters. A wiki page can link to another page, but neither page \"knows\" about the connection. A spreadsheet can list NPCs and their locations in columns, but it can't show you that the blacksmith in Ashenmoor is also the secret informant mentioned in three session journals.",[11,69,70,71,74,75,78],{},"A relational web treats your campaign as a graph. entries are nodes. ",[18,72,73],{"href":20},"entry relationships"," and ",[18,76,77],{"href":25},"@mentions"," are edges. The power is in the edges.",[80,81,83],"h3",{"id":82},"two-layers-of-connection","Two Layers of Connection",[11,85,86],{},"Kanka's web operates on two distinct layers, and understanding the difference is where most worldbuilders hit their first friction point.",[88,89,90,110],"table",{},[91,92,93],"thead",{},[94,95,96,101,104,107],"tr",{},[97,98,100],"th",{"align":99},"left","Layer",[97,102,103],{"align":99},"What It Does",[97,105,106],{"align":99},"When to Use It",[97,108,109],{"align":99},"Examples",[111,112,113,130],"tbody",{},[94,114,115,121,124,127],{},[116,117,118],"td",{"align":99},[34,119,120],{},"Explicit Relations",[116,122,123],{"align":99},"Permanent, labeled, bidirectional connections between entries",[116,125,126],{"align":99},"Structural relationships that won't change session to session",[116,128,129],{"align":99},"\"Member Of,\" \"Birthplace,\" \"Trained By,\" \"Opposes\"",[94,131,132,136,144,147],{},[116,133,134],{"align":99},[34,135,48],{},[116,137,138,139,143],{"align":99},"Lightweight, automatic links created whenever you type ",[140,141,142],"code",{},"@"," and reference an entry in any text field",[116,145,146],{"align":99},"Contextual connections that accumulate naturally during play",[116,148,149],{"align":99},"NPC referenced in session notes, location described in a quest briefing, faction named in a character backstory",[11,151,152],{},"Explicit Relations are the bones. @Mentions are the muscle. Together, they create a dual-layer system where some connections are deliberately designed and others emerge organically from play.",[154,155,159],"preview",{"url":156,"alt":157,"asset":158},"images/screenshots/learn/brom-web.png","Brom's relational web","","\n\nSee how elements of your worlds are interlinked with a relational web\n\n",[11,161,162],{},[163,164,165,166,169],"em",{},"Solid lines are the connections you design. Dotted lines are the connections that emerge from play. Together, they build a ",[18,167,168],{"href":20},"living world",".",[11,171,172,173,177],{},"The practical result: prep time decreases as the web grows. After 20 sessions, browsing an NPC's relations and mentions tells you more about their narrative significance than re-reading your notes ever could. The system surfaces relevant context instead of requiring you to recall it from memory. That's ",[18,174,176],{"href":175},"/features#entries","cross-referencing"," working for you instead of against you.",[11,179,180,181,184],{},"One more thing the web gives you: ",[34,182,183],{},"permission-aware connections."," Some relations are public—your players see the political alliances between factions. Others are admin-only—they don't see the secret patron behind the thieves' guild. Kanka's permission chaining ensures that private entries referenced in public relations stay hidden automatically. You design the web once; the system handles who sees what.",[11,186,187],{},[18,188,192],{"href":189,"rel":190},"https://app.kanka.io/register",[191],"nofollow",[34,193,194],{},"Try building your first relational web — free, unlimited entries →",[55,196],{},[58,198,200],{"id":199},"how-do-you-build-connections","How Do You Build Connections?",[11,202,203,206],{},[34,204,205],{},"Build connections in three stages: at creation, during play, and during review."," This isn't a one-time setup task. It's a habit that compounds over the life of your campaign.",[80,208,210],{"id":209},"stage-1-at-creation","Stage 1: At Creation",[11,212,213],{},"Every new entry gets one explicit Relation at birth. No exceptions.",[11,215,216],{},"The NPC links to a Location. The Location links to a parent region. The Organization links to a Character leader. This minimum-viable connection prevents orphan entries—nodes floating in the web with zero edges, invisible to the rest of your world.",[11,218,219,220,223,224,227],{},"Open ",[34,221,222],{},"Quick Creator"," (press ",[140,225,226],{},"N"," from any page) to create the entry without leaving your current context. Then add one Relation before moving on.",[88,229,230,243],{},[91,231,232],{},[94,233,234,237,240],{},[97,235,236],{"align":99},"entry Type",[97,238,239],{"align":99},"Minimum Relation at Creation",[97,241,242],{"align":99},"Example",[111,244,245,256,267,278],{},[94,246,247,250,253],{},[116,248,249],{"align":99},"Character (NPC)",[116,251,252],{"align":99},"Link to a Location",[116,254,255],{"align":99},"Mira → \"Resides In\" → Ashenmoor",[94,257,258,261,264],{},[116,259,260],{"align":99},"Location",[116,262,263],{"align":99},"Link to a parent Location",[116,265,266],{"align":99},"Ashenmoor → child of → The Greymarch",[94,268,269,272,275],{},[116,270,271],{"align":99},"Organization",[116,273,274],{"align":99},"Link to a Character leader",[116,276,277],{"align":99},"The Ashen Compact → \"Led By\" → Torvald",[94,279,280,283,286],{},[116,281,282],{"align":99},"Quest",[116,284,285],{"align":99},"Link to an instigator (Character or Organization)",[116,287,288],{"align":99},"The Stolen Ledger → \"Instigated By\" → Mira",[154,290,293],{"url":291,"alt":292,"asset":158},"images/screenshots/learn/quick-creator.png","The quick creator UI","\n\nQuickly create more content without leaving the page\n\n",[11,295,296,297,300],{},"The key constraint: ",[34,298,299],{},"never create a Relation you can't explain in-world."," \"Connected to\" is not a valid label. Use specific, narrative labels: \"Owes a Debt To,\" \"Trained By,\" \"Operates In.\" If you can't name the relationship in a sentence your players would understand, it doesn't belong in the web.",[80,302,304],{"id":303},"stage-2-during-play","Stage 2: During Play",[11,306,307,315],{},[34,308,309,310,314],{},"@mention every entry you reference in ",[18,311,313],{"href":312},"/features#journals","session journals",", descriptions, and quest briefings."," This is the lowest-effort, highest-return habit in relational worldbuilding.",[11,317,318,319,321],{},"Type ",[140,320,142],{}," in any text field. Kanka's autocomplete finds the entry. Select it. Done. The mention creates a traceable link, that entry's \"Mentioned In\" list now includes the document you're writing. You don't track this manually. The system records it.",[11,323,324,325,328,329,332],{},"After a dozen sessions, an NPC's \"Mentioned In\" page becomes a narrative timeline: every session journal, location description, and quest briefing where they appeared. That's ",[18,326,327],{"href":25},"auto-linking"," generating ",[18,330,331],{"href":175},"lore consistency"," without extra work.",[80,334,336],{"id":335},"stage-3-during-review","Stage 3: During Review",[11,338,339],{},"Between sessions, add one or two Relations to entries that gained screen time. If a player bargained with an NPC, that NPC earns a connection to the player's character or their faction. If a location hosted a significant event, link the event to the location.",[11,341,342],{},"The review phase is where organic @mentions become deliberate structure. But keep it bounded:",[344,345,346,350,353,356],"ul",{},[347,348,349],"li",{},"Add Relations only for entries that appeared in the most recent session",[347,351,352],{},"Don't retroactively connect old entries unless a plot thread specifically demands it",[347,354,355],{},"Limit deliberate Relations to 3–5 per entry, the @mention layer handles the rest",[347,357,358],{},"Use verb phrases for labels: \"Trained By,\" \"Opposes,\" \"Operates In\" not nouns like \"Alliance\"",[11,360,361],{},"In practice, most campaigns we've seen settle into a rhythm: 5 minutes of relation building after each session. That small investment compounds into a web dense enough to prep from by mid-campaign.",[11,363,364],{},[18,365,367],{"href":189,"rel":366},[191],[34,368,369],{},"Start connecting your campaign entries — free, no entry limits →",[55,371],{},[58,373,375],{"id":374},"when-is-the-web-done","When Is the Web \"Done\"?",[11,377,378,381],{},[34,379,380],{},"The web is never done and that's the point."," A relational web grows with your campaign. Expecting a finished state is like expecting a finished story before you've run session one.",[11,383,384],{},"Here's how the maturity curve works in practice:",[88,386,387,400],{},[91,388,389],{},[94,390,391,394,397],{},[97,392,393],{"align":99},"Campaign Stage",[97,395,396],{"align":99},"Web State",[97,398,399],{"align":99},"Your Role",[111,401,402,416,430,448],{},[94,403,404,407,410],{},[116,405,406],{"align":99},"Sessions 1–5",[116,408,409],{"align":99},"Sparse. Few Relations, scattered @mentions.",[116,411,412,415],{"align":99},[34,413,414],{},"Builder."," Seed connections deliberately. Every entry gets its first Relation.",[94,417,418,421,424],{},[116,419,420],{"align":99},"Sessions 6–20",[116,422,423],{"align":99},"Functional. Key NPCs have 3+ Relations. @mention references accumulate.",[116,425,426,429],{"align":99},[34,427,428],{},"Gardener."," The web grows from play documentation. Your review sessions fill structural gaps.",[94,431,432,435,442],{},[116,433,434],{"align":99},"Sessions 20–50",[116,436,437,438,441],{"align":99},"Dense. Browsing any entry's connections reveals ",[18,439,440],{"href":20},"narrative threads"," you didn't plan.",[116,443,444,447],{"align":99},[34,445,446],{},"Reader."," The Relation Explorer becomes a prep tool. You discover plot hooks by reading the web.",[94,449,450,453,456],{},[116,451,452],{"align":99},"Sessions 50+",[116,454,455],{"align":99},"Self-sustaining. Prep consists of browsing connections and deciding which threads to pull.",[116,457,458,461],{"align":99},[34,459,460],{},"Editor."," Prune stale connections. Archive completed storylines. The web generates story faster than you consume it.",[11,463,464,465,468],{},"The test of web maturity: can you prep a session by browsing the ",[34,466,467],{},"Relation Explorer"," alone, without re-reading old session notes? If yes, the web is doing its job.",[80,470,472],{"id":471},"keeping-the-web-healthy","Keeping the Web Healthy",[11,474,475],{},"The danger in long campaigns is web decay—connections that no longer serve the narrative. Dead NPCs still linked to active factions. Archived locations still appearing in relation maps. Completed quests cluttering the active entry list.",[11,477,478],{},"Periodic maintenance keeps the web useful:",[344,480,481,491,497,503],{},[347,482,483,486,487,490],{},[34,484,485],{},"Archive completed quest lines"," using Kanka's ",[34,488,489],{},"entry Archiving",". Archived entries keep all their Relations and @mentions as historical context, but they stop cluttering your active lists.",[347,492,493,496],{},[34,494,495],{},"Use Quest status tracking"," (Active / Completed / Failed) as a narrative index. Completed quests mark resolved storylines. Browse their linked entries for loose threads worth revisiting.",[347,498,499,502],{},[34,500,501],{},"Review the Relation Explorer quarterly"," for orphan entries (nodes with zero connections). Either connect them or archive them. Dead weight in the web makes it harder to read.",[347,504,505,508,509,512],{},[34,506,507],{},"Export your campaign"," (",[18,510,511],{"href":175},"JSON"," or Markdown for premium) periodically. The relational dataset is the most valuable artifact your campaign produces, back it up.",[11,514,515],{},"If the web ever feels overwhelming, the issue is usually tag taxonomy, not connection density. Simplify your tags, and the web becomes navigable again.",[11,517,518,519,521],{},"A sparse entry with rich relations is more useful than a detailed entry with zero connections. The connective tissue between your characters, locations, and factions is what turns a collection of notes into a ",[18,520,168],{"href":20},", one where the system remembers what you'd otherwise forget.",[11,523,524,525,529,530,45,534,538,539,169],{},"This article is part of our ",[18,526,528],{"href":527},"/learn/worldbuilding","Worldbuilding for Tabletop RPGs"," guide. For entry-specific workflows, see our guides on ",[18,531,533],{"href":532},"/learn/hierarchies","building locations",[18,535,537],{"href":536},"/learn/characters","tracking NPCs",", and ",[18,540,542],{"href":541},"/learn/factions","managing factions",[11,544,545],{},[18,546,548],{"href":189,"rel":547},[191],[34,549,550],{},"Start building your campaign web — free, unlimited entries, full data export →",[11,552,553,554,559,560,565],{},"If you have any questions, join us over on our ",[18,555,558],{"href":556,"rel":557},"https://kanka.io/go/discord",[191],"Discord","! We also have ",[18,561,564],{"href":562,"rel":563},"https://blog.kanka.io",[191],"more tutorials"," on our blog.",{"title":158,"searchDepth":567,"depth":567,"links":568},2,[569,573,578],{"id":60,"depth":567,"text":61,"children":570},[571],{"id":82,"depth":572,"text":83},3,{"id":199,"depth":567,"text":200,"children":574},[575,576,577],{"id":209,"depth":572,"text":210},{"id":303,"depth":572,"text":304},{"id":335,"depth":572,"text":336},{"id":374,"depth":567,"text":375,"children":579},[580],{"id":471,"depth":572,"text":472},"Creating a living web for your world","2026-04-10","Notes aren't worldbuilding tools. Link every NPC, location, and faction into a living web so plot threads and rivalries surface themselves between sessions","md",{},true,"/learn/living-web",{"title":5,"description":583},"learn/06.living-web",[591,592],"living web","relations","living-web","kplNWGc2uUA4DXKaVluSKHGZoPRs8ZPcHgU7ib7U0L4",[596,1195,1561],{"id":597,"title":598,"author":6,"body":599,"cta":158,"datePublished":582,"description":1187,"extension":584,"meta":1188,"navigation":586,"path":527,"seo":1189,"stem":1190,"tags":1191,"tracking":1192,"__hash__":1194},"learn/learn/00.worldbuilding.md","Worldbuilding for Tabletop RPGs: Start Small, Build What You Need",{"type":8,"value":600,"toc":1179},[601,631,633,637,640,651,654,661,668,672,678,681,749,752,767,774,777,787,791,797,800,811,814,826,837,840,849,853,859,866,869,937,943,950,963,967,977,980,986,996,1056,1063,1067,1073,1079,1099,1105,1112,1115,1122,1126,1132,1142,1149,1158,1163,1171],[11,602,603,605,606,41,608,45,611,45,614,45,617,45,621,45,625,41,628,630],{},[34,604,36],{}," How to worldbuild reactively — expanding only where players push — instead of burning out before session 1 ",[34,607,40],{},[18,609,610],{"href":175},"entry hierarchy",[18,612,613],{"href":20},"Relations",[18,615,616],{"href":25},"@mention system",[18,618,620],{"href":619},"/features#collaborative","Permissions",[18,622,624],{"href":623},"/features#dashboards","Dashboards",[18,626,627],{"href":312},"Journals",[34,629,52],{}," 15 minutes to set up your starting structure",[55,632],{},[634,635,598],"h1",{"id":636},"worldbuilding-for-tabletop-rpgs-start-small-build-what-you-need",[11,638,639],{},"The number one reason GMs abandon worldbuilding projects is they built too much before anyone sat down to play. The conventional advice to design your pantheon, sketch your continents, write your creation myth, front-loads months of creative work before a single session happens. Most campaigns never survive contact with players anyway.",[11,641,642,643,646,647,650],{},"This is the \"Worldbuilder's Trap\": the belief that a world has to be ",[163,644,645],{},"complete"," before it can be ",[163,648,649],{},"used",". The opposite is true. The most resilient campaign worlds are built reactively by expanding only where players push, deepening only where the story demands.",[11,652,653],{},"Session 1. The party arrives in the starting village. A player asks: \"What god does this village worship?\" You haven't built a pantheon. You improvise: \"Solara, goddess of the hearth.\" Three sessions later, a cleric player asks about Solara's rival deity, and you can't remember whether you said \"Solara\" or \"Solaris,\" or what domain you implied.",[11,655,656,657,660],{},"The problem isn't that you improvised. It's that you had no system to ",[163,658,659],{},"capture"," the improvisation and connect it to everything else.",[11,662,663,664,667],{},"This guide covers the methodology that prevents two common failure modes, overbuilding and losing continuity, by using a ",[18,665,666],{"href":175},"relational entry system"," that grows with your campaign instead of demanding everything upfront.",[58,669,671],{"id":670},"what-should-you-build-first","What Should You Build First?",[11,673,674,677],{},[34,675,676],{},"Build the smallest playable unit: one location, three NPCs, and one conflict."," Everything else can wait.",[11,679,680],{},"This method works in concentric circles:",[88,682,683,699],{},[91,684,685],{},[94,686,687,690,693,696],{},[97,688,689],{"align":99},"Circle",[97,691,692],{"align":99},"What to Build",[97,694,695],{"align":99},"When",[97,697,698],{"align":99},"entry Count",[111,700,701,717,733],{},[94,702,703,708,711,714],{},[116,704,705],{"align":99},[34,706,707],{},"1 — Starting Point",[116,709,710],{"align":99},"One settlement, three NPCs, one quest hook, one rumor pointing outward",[116,712,713],{"align":99},"Before session 1",[116,715,716],{"align":99},"5–8",[94,718,719,724,727,730],{},[116,720,721],{"align":99},[34,722,723],{},"2 — Immediate Region",[116,725,726],{"align":99},"Surrounding geography, neighboring settlements, the faction or threat driving Arc 1",[116,728,729],{"align":99},"Sessions 2–5",[116,731,732],{"align":99},"15–25",[94,734,735,740,743,746],{},[116,736,737],{"align":99},[34,738,739],{},"3 — Wider World",[116,741,742],{"align":99},"Political structures, distant empires, pantheons, historical events",[116,744,745],{"align":99},"Sessions 6+ (only when referenced)",[116,747,748],{"align":99},"As needed",[11,750,751],{},"Each circle's entries reference the previous circle's entries. The blacksmith in Circle 1 was born in the mining town in Circle 2. The mining town's economy depends on trade routes controlled by the empire in Circle 3. Building outward deepens existing connections rather than adding disconnected content.",[11,753,754,755,758,759,761,762,766],{},"Use ",[18,756,757],{"href":175},"Location entries"," with nesting for Circle 1: the starting settlement as parent, key buildings as children. Link NPCs to those Locations via ",[18,760,613],{"href":20}," (\"Owner,\" \"Patron,\" \"Guard\"). Create a single ",[18,763,765],{"href":764},"/features#quests","Quest entry"," for the starting hook and link its instigator and relevant locations as quest elements.",[11,768,769,770,773],{},"The discipline: name things immediately, detail them later. A location called \"The Thornwood\" with no description is more useful than no location at all. A Character entry with nothing but \"Innkeeper\" in the ",[34,771,772],{},"Type"," field is enough to start.",[11,775,776],{},"Circle 1 should take no more than 60 minutes. If an entry has zero connections after two sessions, set it aside, it's not a living part of the world yet.",[11,778,779,780,783,784,169],{},"For the full walkthrough on spatial structure such as how deep hierarchies go, when to create new locations, how uploaded maps connect to your entry hierarchy, see ",[18,781,782],{"href":532},"How to Organize Fantasy Locations: Hierarchies That Scale",". For the NPC creation pattern that makes every character findable and connected from birth, see ",[18,785,786],{"href":536},"NPC Management for Game Masters",[58,788,790],{"id":789},"how-do-details-stay-connected","How Do Details Stay Connected?",[11,792,793,796],{},[34,794,795],{},"The difference between notes and a living, breathing world is that a world knows its own connections."," A document full of NPC profiles is static. You have to remember that the blacksmith's daughter joined the thieves' guild, that the guild operates out of the abandoned temple, that the temple was abandoned because of the plague 40 years ago. In a flat note system, those connections exist only in your head.",[11,798,799],{},"In a relational system, updating one entry ripples context to every connected entry. When you write that Mira trained under Grandmaster Torvald, both Mira and Torvald reflect that connection. Open Torvald's page during prep and you see that Mira is his student without searching.",[11,801,802,803,806,807,810],{},"This is the core architectural principle: ",[34,804,805],{},"entries reference each other, not just coexist."," Each new entry increases the context density of every entry it touches. Prep time ",[163,808,809],{},"decreases"," over time because the web does the memory work.",[11,812,813],{},"Two tools make this work:",[11,815,816,818,819,822,823,825],{},[34,817,613],{}," with custom labels (\"Trained Under,\" \"Rival Of,\" \"Operates In\") and ",[34,820,821],{},"Mirror Relations"," enabled, so every connection is automatically bidirectional. The ",[18,824,467],{"href":20}," visualizes the full connection web during prep revealing narrative threads you didn't consciously plan.",[11,827,828,830,831,833,834,836],{},[34,829,77],{}," in every text field. Type ",[140,832,142],{}," followed by any entry name in ",[18,835,313],{"href":312},", descriptions, or quest briefings. Every @mention creates a traceable reference: the \"Mentioned In\" interface shows everywhere an entry appears across the entire campaign wiki. Lore consistency scales beyond human memory.",[11,838,839],{},"Session 8. A player asks: \"Didn't that merchant say he was from the same village as the guard captain?\" You type the merchant's name, see his Relations tab: yes, \"Former Neighbor\" relation to the guard captain, linked to the village of Ashenmoor. You also notice Ashenmoor was recently tagged \"Status:Threatened.\" The merchant hasn't heard the news. You have a plot hook you didn't plan  because the system surfaced the connective tissue that made it possible.",[11,841,842,843,845,846,169],{},"Don't create connections you can't justify in-world. Relational clutter is worse than relational sparsity. For the full workflow on building, labeling, and maintaining entry relations at scale, see ",[18,844,5],{"href":587},". For applying this specifically to political factions, see ",[18,847,848],{"href":541},"How to Build Factions That Drive Conflict",[58,850,852],{"id":851},"what-should-players-see","What Should Players See?",[11,854,855,858],{},[34,856,857],{},"Players should see exactly what their characters have discovered, no more, no less."," The biggest UX mistake GMs make with digital tools is treating them as either fully private or fully public. The answer is granular: entry-by-entry, section-by-section, session-by-session.",[11,860,861,862,865],{},"The permission layer transforms a GM's personal wiki into a ",[18,863,864],{"href":619},"collaborative worldbuilding"," tool. Done well, players browse the campaign wiki between sessions, re-read what they know, discover connections between things they've encountered, and feel a growing sense of mastery over the world. But they never see the secret patron behind the thieves' guild.",[11,867,868],{},"The key pattern: public entry + private Articles = mystery that players can engage with without spoiling. A Character entry is visible, players see the NPC's name, appearance, role, but an Article titled \"True Allegiance\" on that same entry stays admin only. The fog of war holds.",[88,870,871,883],{},[91,872,873],{},[94,874,875,878,881],{},[97,876,877],{"align":99},"Permission Layer",[97,879,880],{"align":99},"What It Controls",[97,882,242],{"align":99},[111,884,885,898,911,924],{},[94,886,887,892,895],{},[116,888,889],{"align":99},[34,890,891],{},"entry visibility",[116,893,894],{"align":99},"Whether the entry exists for players at all",[116,896,897],{"align":99},"Hide the dungeon they haven't found",[94,899,900,905,908],{},[116,901,902],{"align":99},[34,903,904],{},"Article visibility",[116,906,907],{"align":99},"Secrets attached to otherwise public entries",[116,909,910],{"align":99},"Admin only \"Secret Mission\" article on a public NPC",[94,912,913,918,921],{},[116,914,915],{"align":99},[34,916,917],{},"Relation visibility",[116,919,920],{"align":99},"Which connections players can see",[116,922,923],{"align":99},"Public \"Guild Leader\" relation, hidden \"Secret Patron\" relation",[94,925,926,931,934],{},[116,927,928],{"align":99},[34,929,930],{},"Mention redaction",[116,932,933],{"align":99},"@mentions of private entries auto display as [redacted]",[116,935,936],{"align":99},"Write freely in session notes; the system handles what shows",[11,938,754,939,942],{},[34,940,941],{},"\"View As\" member switching"," before each session to experience the wiki from any player's perspective. This catches accidental reveals.",[11,944,945,946],{},"Reveal permissions progressively: after a major story beat, flip an Article from private to visible. The wiki becomes a record of discovery, not just a reference. For the complete guide to building a player-facing wiki experience with dashboards, organization, and the structural reasons players avoid wikis see ",[18,947,949],{"href":948},"/learn/players","Why Don't Your Players Use the Wiki You Built?",[11,951,952,958,959,169],{},[18,953,955],{"href":189,"rel":954},[191],[34,956,957],{},"Try this in your own campaign →"," Per-entry permissions work on the ",[18,960,962],{"href":961},"/pricing","free tier",[58,964,966],{"id":965},"how-do-you-keep-it-organized","How Do You Keep It Organized?",[11,968,969,972,973,976],{},[34,970,971],{},"Organization in worldbuilding isn't about folders it's about retrievability."," The goal is finding any piece of your world in under 10 seconds during a live session. That changes the design principle: organize by ",[163,974,975],{},"context",", not just by type.",[11,978,979],{},"Two organizational layers survive long campaigns:",[11,981,982,985],{},[34,983,984],{},"entry types handle the \"what.\""," Characters, Locations, Organizations, Quests, Kanka's built-in taxonomy means you never decide where an NPC \"goes.\" A Character is always a Character. A city is always a Location. This structural clarity eliminates \"where did I put that note?\"",[11,987,988,991,992,995],{},[34,989,990],{},"Tags handle the \"why.\""," Tags are the ",[18,993,994],{"href":175},"cross referencing"," layer that connects entries by narrative relevance. Tag an NPC, a Location, and a Quest with \"Arc:TheDragonWar\" and you've created an instant filter showing everything relevant to that storyline regardless of entry type.",[88,997,998,1010],{},[91,999,1000],{},[94,1001,1002,1005,1008],{},[97,1003,1004],{"align":99},"Organizational Principle",[97,1006,1007],{"align":99},"What It Solves",[97,1009,242],{"align":99},[111,1011,1012,1023,1034,1045],{},[94,1013,1014,1017,1020],{},[116,1015,1016],{"align":99},"entry types (permanent)",[116,1018,1019],{"align":99},"\"What is this thing?\"",[116,1021,1022],{"align":99},"A Character is always a Character",[94,1024,1025,1028,1031],{},[116,1026,1027],{"align":99},"Tags (fluid)",[116,1029,1030],{"align":99},"\"Why does this matter right now?\"",[116,1032,1033],{"align":99},"\"Arc:TheDragonWar\" + \"Status:Active\" + \"Faction:KingsGuard\"",[94,1035,1036,1039,1042],{},[116,1037,1038],{"align":99},"Location hierarchy",[116,1040,1041],{"align":99},"\"Where is this in the world?\"",[116,1043,1044],{"align":99},"Continent > Region > City > District",[94,1046,1047,1050,1053],{},[116,1048,1049],{"align":99},"Dashboard widgets",[116,1051,1052],{"align":99},"\"What do I need for next session?\"",[116,1054,1055],{"align":99},"Filtered lists of active quests, seed entries, recent journals",[11,1057,1058,1059,1062],{},"Use 3–5 tags per entry maximum. Create a tag taxonomy early: \"Arc:[Name]\", \"Status:[State]\", \"Faction:[Name]\" as prefixes prevent sprawl. Configure ",[18,1060,1061],{"href":623},"dashboard"," widgets with filtered entry lists, a \"Current Arc NPCs\" widget, an \"Active Quests\" widget, a \"Seed Notes\" widget. The dashboard becomes the session-prep command center.",[58,1064,1066],{"id":1065},"when-does-worldbuilding-happen","When Does Worldbuilding Happen?",[11,1068,1069,1072],{},[34,1070,1071],{},"The best worldbuilding happens in three distinct moments: before session 1, during sessions, and between sessions."," Most advice focuses on pre-campaign building. In practice, a lot of meaningful worldbuilding happens reactively.",[11,1074,1075,1078],{},[34,1076,1077],{},"Moment 1: The Seed Phase (pre-campaign)."," Build Circle 1. Set up the starting location, three NPCs, one quest. Establish your tag taxonomy. Time: 60–90 minutes.",[11,1080,1081,1084,1085,1088,1089,1091,1092,1094,1095,1098],{},[34,1082,1083],{},"Moment 2: The Capture Phase (during sessions)."," A player asks a question you haven't prepped. You improvise an answer. The discipline is capturing that answer immediately, press ",[34,1086,1087],{},"'N'"," or click ",[34,1090,222],{}," to create a seed entry in under 10 seconds. Name, type, one tag, done. Then write ",[140,1093,142],{}," and the entry name in your ",[18,1096,1097],{"href":312},"session journal"," to link it to its narrative origin. Speed matters more than completeness.",[11,1100,1101,1104],{},[34,1102,1103],{},"Moment 3: The Weave Phase (between sessions)."," Spend 15–30 minutes doing three things: flesh out seed entries from last session, add Relations between new and existing entries, review \"Mentioned In\" lists for key NPCs to spot emergent connections.",[11,1106,1107,1108,1111],{},"The critical insight: Moment 2 feeds Moment 3, which enriches Moment 2 of the next session. The more you capture, the more connections emerge. The more connections exist, the easier improvisation becomes. Prep time should ",[163,1109,1110],{},"decrease"," per session as the relational web grows.",[11,1113,1114],{},"The test: can you prep the next session using only your campaign wiki, without re-reading raw session notes? If yes, the system is working. Session prep gets shorter every week because the web is doing the recall for you.",[11,1116,1117,1118],{},"For the concrete 5 step repeatable workflow that turns this rhythm into a 30 minute habit, see ",[18,1119,1121],{"href":1120},"/learn/prep","How Do I Prep a Session in 30 Minutes?",[58,1123,1125],{"id":1124},"what-does-a-living-world-look-like","What Does a Living World Look Like?",[11,1127,1128,1131],{},[34,1129,1130],{},"A living world is one where the GM is surprised by their own creation."," Not because they forgot what they wrote but because the connections between entries surface narrative possibilities they didn't consciously plan. The merchant's hometown is threatened. The cleric's deity has a rivalry with the faction's patron god. The abandoned temple is linked to the same plague that orphaned two NPCs in different cities. None of these were designed. They emerged from the accumulation of relational decisions made over months of play.",[11,1133,1134,1135,1137,1138,1141],{},"After 10, 20, 50 sessions, the campaign wiki isn't a reference document, it's an emergent narrative engine. The ",[18,1136,73],{"href":20}," have grown dense enough that prep means browsing connections, not inventing from scratch. The question shifts from \"what should happen next?\" to \"what ",[163,1139,1140],{},"wants"," to happen next, given everything that's already connected?\"",[11,1143,1144,1145,1148],{},"This is where reactive worldbuilding proves its value. A pre-built world has the depth its creator imagined. A reactively built world has the depth its players ",[163,1146,1147],{},"demanded",", which means every detail is load-bearing, every NPC is relevant, every location has been touched by play. There's no dead content.",[11,1150,1151,1152,74,1154,1157],{},"Use the ",[34,1153,467],{},[34,1155,1156],{},"Campaign Wide Connections Web"," as primary prep tools in mature campaigns. Browse the visual web for underused connections, orphaned entries, and narrative threads. The relational dataset is the most valuable artifact your campaign produces.",[11,1159,1160,1161,169],{},"The living world depends on connection density. For the detailed guide on building, labeling, and maintaining that web from your first entry to your hundredth session, see ",[18,1162,5],{"href":587},[11,1164,1165],{},[18,1166,1168],{"href":189,"rel":1167},[191],[34,1169,1170],{},"Start building your world for free, no entry limits →",[11,1172,553,1173,559,1176,565],{},[18,1174,558],{"href":556,"rel":1175},[191],[18,1177,564],{"href":562,"rel":1178},[191],{"title":158,"searchDepth":567,"depth":567,"links":1180},[1181,1182,1183,1184,1185,1186],{"id":670,"depth":567,"text":671},{"id":789,"depth":567,"text":790},{"id":851,"depth":567,"text":852},{"id":965,"depth":567,"text":966},{"id":1065,"depth":567,"text":1066},{"id":1124,"depth":567,"text":1125},"Stop building worlds you'll never use. Start with one town, expand from play, and let a relational system keep it all connected. Free, no entry limits.",{},{"title":598,"description":1187},"learn/00.worldbuilding",[1192,1193],"worldbuilding","hub","cGiqMRkQ137bcI6hmW4NKxDVQIdGHe5crMAzJ51bN_0",{"id":1196,"title":782,"author":6,"body":1197,"cta":1551,"datePublished":582,"description":1552,"extension":584,"meta":1553,"navigation":586,"path":532,"seo":1554,"stem":1555,"tags":1556,"tracking":1559,"__hash__":1560},"learn/learn/01.hierarchies.md",{"type":8,"value":1198,"toc":1546},[1199,1220,1223,1229,1239,1243,1249,1252,1312,1315,1318,1326,1329,1332,1338,1341,1351,1361,1364,1371,1375,1381,1388,1395,1398,1441,1444,1447,1463,1468,1470,1473,1477,1483,1486,1492,1495,1498,1504,1510,1512,1515,1522,1536,1538],[11,1200,1201,1203,1204,41,1206,45,1208,45,1212,45,1214,41,1217,1219],{},[34,1202,36],{}," How to structure locations so any place in your world is findable in under 10 seconds, whether you have 15 entries or 500. ",[34,1205,40],{},[18,1207,757],{"href":175},[18,1209,1211],{"href":1210},"/features#maps","Maps",[18,1213,613],{"href":20},[18,1215,1216],{"href":175},"Tags",[34,1218,52],{}," 20 minutes",[11,1221,1222],{},"Every campaign hits the same wall. You've got 40 locations in a flat list, a player asks \"wait, is the Iron Bazaar in Thornmere or Ashenmoor?\" and you're panicking, scrolling through entries trying to remember. Both cities have markets, why didn't you give them more detail when you wrote it down!. The problem is that list doesn't encode spatial relationships. You built a filing cabinet when you needed a map of your world's geography.",[11,1224,16,1225,1228],{},[18,1226,1227],{"href":175},"location hierarchy"," that mirrors how your world actually works: continents contain regions, regions contain settlements, settlements contain districts and buildings. When you nest locations inside each other, browsing Thornmere's entry shows you every sub-location at a glance. The structure answers the question before you finish typing.",[11,1230,1231,1232,1234,1235,1238],{},"This tutorial covers the hierarchy depth that handles 95% of campaigns, when to create new locations, and how uploaded maps connect to your ",[18,1233,610],{"href":175},". If you haven't read our hub article on ",[18,1236,1237],{"href":527},"worldbuilding for tabletop RPGs",", start there, it introduces the concentric circles model we'll build on here.",[58,1240,1242],{"id":1241},"how-deep-should-hierarchies-go","How Deep Should Hierarchies Go?",[11,1244,1245,1248],{},[34,1246,1247],{},"Three to four levels of nesting handle 95% of campaign worlds."," More than that creates navigation overhead that costs more than it saves.",[11,1250,1251],{},"Here's what works for most campaigns:",[88,1253,1254,1266],{},[91,1255,1256],{},[94,1257,1258,1261,1263],{},[97,1259,1260],{"align":99},"Level",[97,1262,242],{"align":99},[97,1264,1265],{"align":99},"Location Type",[111,1267,1268,1279,1290,1301],{},[94,1269,1270,1273,1276],{},[116,1271,1272],{"align":99},"1 — Continent/World",[116,1274,1275],{"align":99},"The Sunward Reaches",[116,1277,1278],{"align":99},"Continent",[94,1280,1281,1284,1287],{},[116,1282,1283],{"align":99},"2 — Region/Province",[116,1285,1286],{"align":99},"Thornmere Province",[116,1288,1289],{"align":99},"Region",[94,1291,1292,1295,1298],{},[116,1293,1294],{"align":99},"3 — Settlement",[116,1296,1297],{"align":99},"Thornmere City",[116,1299,1300],{"align":99},"City",[94,1302,1303,1306,1309],{},[116,1304,1305],{"align":99},"4 — District/Building",[116,1307,1308],{"align":99},"The Iron Bazaar, Castle Ward, Docks District",[116,1310,1311],{"align":99},"Market, Fortress, District",[11,1313,1314],{},"This structure maps to how players actually think about space. \"We're heading to the Iron Bazaar\" triggers a mental chain: that's in Thornmere City, in Thornmere Province, somewhere in the Sunward Reaches. The hierarchy encodes that chain so you don't have to remember it.",[11,1316,1317],{},"The exception is dungeon-heavy campaigns. If you're tracking individual rooms in a megadungeon, add a fifth level — but the dungeon itself stays a Location at level 4, with rooms as children. You're still within the guideline.",[154,1319,1322,1323],{"url":1320,"alt":1321,"asset":158},"images/screenshots/learn/sunward.png","Sunward Reaches","\n\nLocation tree in Kanka showing The Sunward Reaches > Thornmere Province > Thornmere City > Iron Bazaar / Castle Ward / Docks District, with Ashenmoor as a sibling of Thornmere City\n",[1324,1325],"br",{},[11,1327,1328],{},"It should now look something like this.",[11,1330,1331],{},"A few things make this hierarchy work harder for you:",[11,1333,1334,1335,1337],{},"Every Location can have a ",[34,1336,772],{}," — City, Dungeon, Building, Wilderness, Natural Feature. This isn't just labeling. It enables cross-hierarchy filtering: \"show me all Dungeons regardless of which region they're in.\" That filter saves serious time when your world grows past 100 entries.",[11,1339,1340],{},"Create parent Locations before children, even if the parent is just a name with no description yet. A region called \"Thornmere Province\" with nothing but a name is better than three orphaned cities you'll have to reorganize later.",[11,1342,1151,1343,1346,1347,1350],{},[34,1344,1345],{},"Nested Layout Toggle"," during prep to see the full tree structure. Switch to ",[34,1348,1349],{},"Flatten Layout Toggle"," during sessions, flat lists are faster to scan when a player catches you off-guard.",[11,1352,1353,1354,1357,1358,1360],{},"Not everything fits a parent-child model, though. Trade routes between Thornmere and Ashenmoor, border disputes, military alliances, these are lateral connections, not hierarchical. Use ",[18,1355,1356],{"href":20},"entry relations"," for these. Set up a \"Trade Route\" relation between two cities, a \"Border Dispute\" between two regions. These cross-references turn static geography into a political and economic web, a ",[18,1359,168],{"href":175}," where the spatial layer connects to everything else.",[11,1362,1363],{},"Parent-child hierarchy handles spatial containment. Relations handle everything else: trade, conflict, alliance.",[11,1365,1366,1367,1370],{},"This section establishes the spatial skeleton of your ",[18,1368,1369],{"href":619},"campaign wiki",". But a skeleton is empty without inhabitants. The next question: when do you actually create these locations?",[58,1372,1374],{"id":1373},"when-do-you-add-new-locations","When Do You Add New Locations?",[11,1376,1377,1380],{},[34,1378,1379],{},"Create a location when players are about to visit it, or when an existing entry references it."," Not before.",[11,1382,1383,1384,1387],{},"The concentric circles model from the ",[18,1385,1386],{"href":527},"hub article"," gives you the timing. Circle 1 locations, the starting settlement and its key buildings, exist before session 1. Circle 2 locations emerge during sessions 2–5 as the party explores outward. Circle 3 locations get created only when an NPC names them or a quest points there.",[11,1389,1390,1391,1394],{},"The discipline is resisting the urge to build every location on your map before session one. A location that players never visit is part of the lore, but not part of your player's world. Worldbuilding is fun, but if you're being a bit utilitarian, don't use too much of your ",[18,1392,1393],{"href":312},"session prep"," time without producing any play value. A location created in response to player action is guaranteed to be relevant.",[11,1396,1397],{},"A new location needs only three things at creation:",[88,1399,1400,1410],{},[91,1401,1402],{},[94,1403,1404,1407],{},[97,1405,1406],{"align":99},"Field",[97,1408,1409],{"align":99},"Why It's Required",[111,1411,1412,1422,1431],{},[94,1413,1414,1419],{},[116,1415,1416],{"align":99},[34,1417,1418],{},"Name",[116,1420,1421],{"align":99},"You can't reference what you can't name",[94,1423,1424,1428],{},[116,1425,1426],{"align":99},[34,1427,772],{},[116,1429,1430],{"align":99},"Enables filtering across the hierarchy",[94,1432,1433,1438],{},[116,1434,1435],{"align":99},[34,1436,1437],{},"Parent Location",[116,1439,1440],{"align":99},"Prevents orphans and places the location in spatial context",[11,1442,1443],{},"Everything else can wait. Description, population, political affiliations, you can add those when the party approaches or when you're prepping the session that features it.",[11,1445,1446],{},"For locations mentioned in conversation but not yet visited, create a seed entry. You can create a tag called \"Status:Seed\" so you know it's a placeholder and you can come back to it later to add content. Don't flesh it out until the party is two sessions away. This is how your world grows organically without overwhelming your prep schedule.",[11,1448,1449,1450,1452,1453,1456,1457,1459,1460,1462],{},"Press ",[34,1451,1087],{}," or click the ",[34,1454,1455],{},"Create"," button to create locations mid-session. Name, Type, Parent, done in under 15 seconds. Then add one ",[140,1458,26],{}," linking the new location to whatever spawned it: the NPC who mentioned it, the quest that leads there, the ",[18,1461,1097],{"href":312}," where it first appeared. That single link ensures the location is never disconnected from its narrative origin.",[154,1464,1467],{"url":1465,"alt":1466,"asset":158},"images/screenshots/learn/quick-creator-location.png","Médina Map","\n\nQuick Creator showing a new location being created with Name, Type, and Parent Location fields filled in\n\n",[11,1469,1328],{},[11,1471,1472],{},"When you write location descriptions, write from the arriving party's perspective. What do they see, hear, smell? This turns your wiki from a dry reference document into something you can read aloud at the table. \"The salt wind hits you before you see the harbor\" is more useful mid-session than \"Thornmere is a coastal trading city.\"",[58,1474,1476],{"id":1475},"how-do-maps-fit-in","How Do Maps Fit In?",[11,1478,1479,1482],{},[34,1480,1481],{},"Maps are the visual layer over your location hierarchy — not a replacement for it."," A beautiful map shows where things are. The hierarchy shows what those places contain, who lives there, and how they connect.",[11,1484,1485],{},"Upload maps you've created in any tool: Inkarnate, Wonderdraft, Dungeon Scrawl, or hand-drawn and scanned, directly to Kanka. Then add interactive pins linked to your Location entries. Clicking a pin shows the full location profile: geography and lore unified. Your players see the map; clicking a city pin shows them everything you've made visible about that city.",[11,1487,1488,1489,1491],{},"The two systems complement each other. The map provides spatial intuition: distances, terrain, borders at a glance. The ",[18,1490,610],{"href":175}," provides relational depth, who rules there, what factions operate, which quests point to that region. Neither replaces the other.",[11,1493,1494],{},"Here's how to get the most from map integration:",[11,1496,1497],{},"Upload maps at the highest reasonable resolution. Players will zoom in during sessions, and blurry maps break immersion faster than any lore inconsistency.",[11,1499,754,1500,1503],{},[34,1501,1502],{},"Map Groups"," to organize pins into logical clusters: \"Cities,\" \"Dungeons,\" \"Points of Interest,\" \"Secret Locations.\" This keeps your map readable as pin count grows.",[154,1505,1507,1508],{"url":1506,"alt":1466,"asset":158},"images/screenshots/learn/map.png","\n\nMap with grouped pins showing Cities (visible to all) and Secret Locations (admin-only) groups\n",[1324,1509],{},[11,1511,1328],{},[11,1513,1514],{},"Pin placement is an ongoing activity. Add pins as new locations enter play. Don't try to pin everything on day one, that's the same overbuilding trap we talked about with location entries. Let the map grow alongside the campaign.",[11,1516,1517,1518,1521],{},"For campaigns spanning multiple scales or timelines, use ",[34,1519,1520],{},"Map Layer"," hierarchy for multi-scale mapping. Your world map serves as the base layer. Different layers of detail are here to add… layers relevant to any different set of circumstances. Think adding/removing historical borders. They use the base image and adapt it to your time context.",[11,1523,1524,1525,1528,1529,1531,1532,1535],{},"Locations are where your world's geography lives. But they're also where ",[18,1526,1527],{"href":541},"factions operate",". Linking ",[34,1530,271],{}," entries to their territorial Locations transforms static geography into a political landscape which is exactly what the ",[18,1533,1534],{"href":541},"next article in this series"," covers.",[55,1537],{},[11,1539,553,1540,559,1543,565],{},[18,1541,558],{"href":556,"rel":1542},[191],[18,1544,564],{"href":562,"rel":1545},[191],{"title":158,"searchDepth":567,"depth":567,"links":1547},[1548,1549,1550],{"id":1241,"depth":567,"text":1242},{"id":1373,"depth":567,"text":1374},{"id":1475,"depth":567,"text":1476},"Hierarchies That Scale","Organize fantasy locations from continent to single room. A D&D world building hierarchy that stays searchable as your campaign grows past 200 entries",{},{"title":782,"description":1552},"learn/01.hierarchies",[1557,1558],"locations","hierarchy","hierarchies","2M86haCiSih-pe9hDwgh63rtypWIDiJ0vhdXFMAf-74",{"id":1562,"title":1563,"author":6,"body":1564,"cta":2010,"datePublished":582,"description":2011,"extension":584,"meta":2012,"navigation":586,"path":536,"seo":2013,"stem":2014,"tags":2015,"tracking":2016,"__hash__":2018},"learn/learn/02.characters.md","NPC Management for Game Masters: Track Characters That Actually Matter",{"type":8,"value":1565,"toc":1999},[1566,1586,1588,1591,1602,1605,1612,1616,1622,1628,1631,1637,1691,1695,1698,1707,1719,1735,1738,1740,1744,1747,1818,1825,1833,1837,1847,1857,1861,1864,1916,1923,1928,1930,1934,1937,1962,1968,1972,1983,1989,1991],[11,1567,1568,1570,1571,41,1573,1576,1577,45,1580,1582,1583,1585],{},[34,1569,36],{}," How to create NPCs that stay useful across dozens of sessions, connect them to your world, and find them instantly mid-game. ",[34,1572,40],{},[18,1574,1575],{"href":175},"Character"," entries, ",[18,1578,1579],{"href":20},"Entry Relations",[18,1581,616],{"href":25},", Property Kits ",[34,1584,52],{}," 15 minutes for your first three NPCs",[55,1587],{},[11,1589,1590],{},"Session 6. A player says: \"We want to go back and talk to that blacksmith from session 2.\" You created him on the fly, name: \"Brom.\" No other details. In a flat note system, you search \"Brom\" and find a single line. What did he look like? What did he know? Where was his shop?",[11,1592,1593,1594,1597,1598,1601],{},"Now picture the alternative. Brom's ",[18,1595,1596],{"href":175},"Character entry"," shows a Location relation (\"Shop in Thornmere's Market District\"), his @mentions in the session 2 journal (\"Brom mentioned strange noises from the old mine\"), and a single Tag (",[140,1599,1600],{},"Status:Seed","). In Kanka, Tags are an incredibly convenient way to group entries that don’t always fit under the same umbrella, like Gods. They might be creatures, they might be Characters, but giving them that Deity Tag makes it oh so much easier to find them. You have everything you need to improvise a rich follow-up — because the system captured the connective context around Brom, not just his name.",[11,1603,1604],{},"That's the difference between storing NPCs and actually managing them. This guide covers the creation pattern that makes every Non-Player Character findable, connected, and worth keeping.",[11,1606,1607,1608,1611],{},"If you're building your world from the ground up, our ",[18,1609,1610],{"href":527},"Worldbuilding Fundamentals hub"," covers the broader structure this fits into.",[58,1613,1615],{"id":1614},"how-many-npcs-do-you-need","How Many NPCs Do You Need?",[11,1617,1618,1621],{},[34,1619,1620],{},"Three deep NPCs with real connections beat twenty shallow names in a spreadsheet."," The \"NPC bloat\" problem isn't about memory. It's about signal to noise ratio.",[11,1623,1624,1625,1627],{},"A campaign with 200 NPCs where 180 have nothing but a name is harder to search than a campaign with 20 where each one links to ",[18,1626,1557],{"href":175},", factions, and plot. The litmus test: if an NPC doesn't have at least one Relation to another entry, they're not yet fully integrated into your world..",[11,1629,1630],{},"Start with three for session 1: a quest-giver, an ally, and an obstacle. Create every other NPC reactively: only when a player engages with a background character enough to make them worth tracking. Don't build profiles for unnamed tavern patrons. Build them for Brom, the blacksmith your players decided to care about.",[11,1632,1633,1634,1636],{},"Here's the ceiling and floor for ",[18,1635,1393],{"href":312},":",[88,1638,1639,1649],{},[91,1640,1641],{},[94,1642,1643,1646],{},[97,1644,1645],{"align":99},"Guideline",[97,1647,1648],{"align":99},"Rule",[111,1650,1651,1659,1667,1675,1683],{},[94,1652,1653,1656],{},[116,1654,1655],{"align":99},"Session 1 minimum",[116,1657,1658],{"align":99},"3 NPCs (quest-giver, ally, obstacle)",[94,1660,1661,1664],{},[116,1662,1663],{"align":99},"Session 1 maximum",[116,1665,1666],{"align":99},"10 named NPCs",[94,1668,1669,1672],{},[116,1670,1671],{"align":99},"Creation trigger",[116,1673,1674],{"align":99},"A player interacts with the character",[94,1676,1677,1680],{},[116,1678,1679],{"align":99},"Archive trigger",[116,1681,1682],{"align":99},"If repeatedly no relations after multiple sessions, consider merging, archiving, or connecting",[94,1684,1685,1688],{},[116,1686,1687],{"align":99},"Background characters",[116,1689,1690],{"align":99},"Don't create entries for unnamed crowds",[80,1692,1694],{"id":1693},"the-three-point-creation-pattern","The Three-Point Creation Pattern",[11,1696,1697],{},"Every NPC gets three things at birth. No more, no less.",[11,1699,1700,1703,1704,1706],{},[34,1701,1702],{},"1. A Type field."," Not a physical description, a role. \"Innkeeper,\" \"Guard Captain,\" \"Fence.\" During play, you're scanning for function, not eye color. Put the role in the ",[34,1705,772],{}," field on the Character entry. It shows up in search results and hover previews, so you can spot the right NPC without clicking through.",[11,1708,1709,1712,1713,1715,1716,1718],{},[34,1710,1711],{},"2. One Relation."," Link the NPC to a Location or Organization. Click ",[34,1714,613],{}," on the Character's overview, add a connection to wherever they operate. Brom gets linked to Thornmere's Market District. Now searching for that Location also surfaces Brom, ",[18,1717,176],{"href":20}," happens automatically.",[11,1720,1721,1724,1725,1728,1729,1731,1732,1734],{},[34,1722,1723],{},"3. One @mention."," Write ",[140,1726,1727],{},"@Brom"," in the ",[18,1730,1097],{"href":312}," where they first appear. That's it. The ",[18,1733,616],{"href":25}," auto-links to Brom's full profile and adds the journal to his \"Mentioned In\" list. Over time, this list becomes Brom's story: every scene he appeared in, every plot thread he touched, aggregated without extra work.",[11,1736,1737],{},"[Screenshot: Character entry for \"Brom\" showing Title field (\"Blacksmith\"), one Relation to \"Thornmere - Market District,\" and a Mentioned In list with two session journal links]",[11,1739,1328],{},[80,1741,1743],{"id":1742},"the-character-card-pattern","The Character Card Pattern",[11,1745,1746],{},"For NPCs who stick around past their first scene, apply a Property Kit with 3–5 lightweight fields. Create the template once, then apply it to every new NPC with a click.",[88,1748,1749,1761],{},[91,1750,1751],{},[94,1752,1753,1756,1759],{},[97,1754,1755],{"align":99},"Property",[97,1757,1758],{"align":99},"Purpose",[97,1760,242],{"align":99},[111,1762,1763,1774,1785,1796,1807],{},[94,1764,1765,1768,1771],{},[116,1766,1767],{"align":99},"Motivation",[116,1769,1770],{"align":99},"What drives them",[116,1772,1773],{"align":99},"\"Revenge against the Guild\"",[94,1775,1776,1779,1782],{},[116,1777,1778],{"align":99},"Secret",[116,1780,1781],{"align":99},"What they're hiding",[116,1783,1784],{"align":99},"\"Works for the Merchant Consortium\"",[94,1786,1787,1790,1793],{},[116,1788,1789],{"align":99},"Attitude Toward Party",[116,1791,1792],{"align":99},"Current disposition",[116,1794,1795],{"align":99},"\"Suspicious, trusts no one new\"",[94,1797,1798,1801,1804],{},[116,1799,1800],{"align":99},"Voice Note",[116,1802,1803],{"align":99},"One-line speech cue",[116,1805,1806],{"align":99},"\"Speaks slowly, avoids eye contact\"",[94,1808,1809,1812,1815],{},[116,1810,1811],{"align":99},"Status",[116,1813,1814],{"align":99},"Campaign lifecycle tag",[116,1816,1817],{"align":99},"\"Active / Seed / Archived\"",[11,1819,1820,1821,1824],{},"Set up the kit by clicking on ",[34,1822,1823],{},"Property Kits"," in your sidebar.",[11,1826,1827,1828,1832],{},"For NPCs who are merchants or carry plot-relevant items, add entries to their ",[18,1829,1831],{"href":1830},"/features#inventory","inventory",". Each item can either link to an Item entry, or remain free text for now, creating another relational thread your players can pull on.",[58,1834,1836],{"id":1835},"how-do-npcs-connect-to-everything","How Do NPCs Connect to Everything?",[11,1838,1839,1842,1843,1846],{},[34,1840,1841],{},"An NPC's value isn't in their profile it's in their connections."," A 500-word backstory that connects to nothing is less useful than a one-line character with entry ",[18,1844,1845],{"href":20},"relationships"," to two Locations, one Organization, and three other Characters.",[11,1848,1849,1850,1852,1853,1856],{},"The connections are what make NPCs findable, surprising, and useful during play. When you search a Location, related NPCs surface. When you open an Organization, its members appear. When you check a Character, their allies and enemies show up. This is ",[18,1851,327],{"href":20}," doing the memory work for you, it helps your campaign become a living index your ",[18,1854,1855],{"href":623},"Campaign Dashboard"," showcases.",[80,1858,1860],{"id":1859},"the-connection-minimum","The Connection Minimum",[11,1862,1863],{},"After an NPC has appeared in 2+ sessions, they earn three Relations:",[88,1865,1866,1878],{},[91,1867,1868],{},[94,1869,1870,1873,1876],{},[97,1871,1872],{"align":99},"Relation Type",[97,1874,1875],{"align":99},"What It Creates",[97,1877,242],{"align":99},[111,1879,1880,1892,1904],{},[94,1881,1882,1886,1889],{},[116,1883,1884],{"align":99},[34,1885,260],{},[116,1887,1888],{"align":99},"Where they operate",[116,1890,1891],{"align":99},"Brom → \"Runs shop in\" → Thornmere City",[94,1893,1894,1898,1901],{},[116,1895,1896],{"align":99},[34,1897,271],{},[116,1899,1900],{"align":99},"Who they serve or oppose",[116,1902,1903],{"align":99},"Brom → \"Secretly reports to\" → Thieves' Guild",[94,1905,1906,1910,1913],{},[116,1907,1908],{"align":99},[34,1909,1575],{},[116,1911,1912],{"align":99},"Who they know",[116,1914,1915],{"align":99},"Brom → \"Owes a debt to\" → Captain Aldara",[11,1917,1918,1919,1922],{},"Use custom Relation labels that tell a story. \"Owes a debt to\" is more useful mid-session than \"Connected to.\" Enable ",[34,1920,1921],{},"Reciprocal link"," on the Character entry so connections are always bidirectional, linking Brom to the Thieves' Guild automatically creates the reverse link on the Guild's page.",[154,1924,1927],{"url":1925,"alt":1926,"asset":158},"images/screenshots/learn/brom.png","Brom","\n\nBrom is connected to Thornmere City, the Thieve's guild, and has a relation to Captain Aldara\n\n",[11,1929,1328],{},[80,1931,1933],{"id":1932},"identity-fields-players-ask-about","Identity Fields Players Ask About",[11,1935,1936],{},"Fill the fields your table actually references during play:",[344,1938,1939,1945,1956],{},[347,1940,1941,1944],{},[34,1942,1943],{},"Pronouns"," — dedicated field on every Character entry",[347,1946,1947,1950,1951,1955],{},[34,1948,1949],{},"Age",": While the Age field is free text, you can create a reminder after the character is created, and it can be linked to your ",[18,1952,1954],{"href":1953},"/features#calendars","fantasy calendar",", which will then show their age in relation to the ‘present’.",[347,1957,1958,1961],{},[34,1959,1960],{},"Appearance Traits"," — keep it to one sentence; players remember \"missing left hand\" better than a paragraph",[11,1963,1964,1965,1967],{},"The ",[34,1966,1811],{}," field on Character entries works as an archival tool. Deceased NPCs keep all their Relations as historical context: a dead NPC's connections still tell the story of who they were, while someone missing might signal that they are part of the next hook.",[80,1969,1971],{"id":1970},"deeper-connection-tools","Deeper Connection Tools",[11,1973,1974,1975,1978,1979,1982],{},"For dynasty or lineage NPCs, use ",[18,1976,1977],{"href":175},"Family entries"," with member tracking instead of just Character-to-Character Relations. Premium campaigns get ",[34,1980,1981],{},"Family Tree Visualization"," for visual genealogy mapping.",[11,1984,1985,1986,1988],{},"Individual NPC connections are the atoms of your ",[18,1987,1369],{"href":175},". At scale, these connections form emergent patterns — faction alliances, regional power structures, narrative themes.",[55,1990],{},[11,1992,553,1993,559,1996,565],{},[18,1994,558],{"href":556,"rel":1995},[191],[18,1997,564],{"href":562,"rel":1998},[191],{"title":158,"searchDepth":567,"depth":567,"links":2000},[2001,2005],{"id":1614,"depth":567,"text":1615,"children":2002},[2003,2004],{"id":1693,"depth":572,"text":1694},{"id":1742,"depth":572,"text":1743},{"id":1835,"depth":567,"text":1836,"children":2006},[2007,2008,2009],{"id":1859,"depth":572,"text":1860},{"id":1932,"depth":572,"text":1933},{"id":1970,"depth":572,"text":1971},"Track Characters That Actually Matter","Stop losing NPCs in scattered notes. Link every character to their location, faction, and quest so context surfaces the moment a player asks. Free, any system",{},{"title":1563,"description":2011},"learn/02.characters",[2016,2017],"characters","npcs","mlQuav-3rER_vh8okVfSLSmWk8SWIZBcqT7Wsm-UiTQ",1775837391781]