Lore & Knowledge Graph
Track NPCs, locations, factions, and their relationships as a living knowledge graph. Reuse lore across parties with templates.
Last updated: July 19, 2026
What is Lore?
Most tools for tracking campaign details give you a pile of wiki pages. You end up with a folder of documents that mention each other in prose and nothing else connects them. ScryRPG’s Lore system is different: it is a knowledge graph for your campaign.
Every person, place, organization, and quest is a first-class entity. Entities are typed, so an NPC is not just a page titled “The Ashen Chancellor.” It is an NPC entity with a race, class, status, and disposition. And entities are connected. You can draw a typed, directional relationship from “The Ashen Chancellor” to “Blackreach” (“rules”) and from “Blackreach” to “The Deepdown” (“located in”). When you open the Chancellor’s page, his connection to Blackreach and the wider Deepdown is right there in the sidebar, not buried in a paragraph somewhere.
That small difference changes how your campaign notes work. Instead of re-reading a wiki to rebuild context, you navigate a map.
Replaces Campaign Entities
Lore replaces the older Campaign Entities concept from earlier versions of ScryRPG. If you are starting fresh, this is the only system you need. There is nothing to migrate.
Entity Categories
ScryRPG supports eight entity categories out of the box. Each category has its own icon and a set of optional structured fields (metadata) that match how GMs actually think about that kind of thing.
| Category | What It’s For | Structured Fields |
|---|---|---|
| NPC | People the party meets: allies, villains, shopkeepers, rivals | Race, class, level, status (alive/dead/missing/unknown), disposition (friendly/neutral/hostile/unknown) |
| Location | Anywhere the party might go, from continents to single rooms | Type (continent, region, city, town, village, building, dungeon, wilderness, landmark, other), population, government |
| Faction | Organizations, guilds, cults, armies, criminal outfits | Alignment, size, influence (local/regional/national/global), party reputation |
| Quest | Active and completed adventure hooks | Status (available/active/completed/failed/abandoned), priority (main/side/personal), level range, reward |
| Lore | Worldbuilding, history, cosmology, anything free-form | None (pure markdown) |
| Handout | In-fiction documents: letters, maps, prophecies, puzzle clues | Handout type (letter, map, drawing, clue, puzzle, prophecy, other) |
| Session | Session recaps and GM prep notes | Session number, date, duration, players present |
| Custom | Anything that does not fit the above (artifacts, deities, historical events) | Custom label you define |
Every entity, regardless of category, also gets: a name, a markdown body, tags, an optional section (for grouping), an optional image, a visibility setting, and a pinned flag.
Custom Category Is a Safety Valve
If you run a homebrew setting with its own lexicon (artifacts, deities, historical eras), use the Custom category and give it a label like “Artifact” or “Deity”. You get a full entity with relationships, just without the preset metadata fields.
NPC Reference Cards
An NPC entity can produce two independent printable cards. The handout carries the portrait, campaign identity, and revealed lore you can give to players. When usable creature statistics are available, the mechanical reference carries the focused stat information you want beside your dice. They are separate deck entries, never the front and back of one card. From the NPC detail page, open the card view to choose either one, add both, or send them to Print Studio.
ScryRPG resolves the mechanics safely:
- A valid linked creature is used only when you are allowed to read it.
- A valid inline stat block is used when there is no existing usable linked record.
- If neither source is safe and valid, ScryRPG offers the handout without manufacturing a rules reference.
An inaccessible or malformed existing linked creature fails directly to handout-only; it does not revive a possibly stale inline copy. The handout never carries the rejected stat source or hidden mechanics. GM notes, hidden relationships, and activity history are never baked into either card, even for the GM. Both variants link to the same living NPC, and party or GM card links still require normal membership and role checks when scanned.
See Printable Cards for the one-face Table Reference, lossless Full Rules continuations, Credits & Licenses companions, audience rules, QR behavior, saved decks, and physical output.
Creating Your First Entity
In the party view, open the Lore tab and click New Entity. The form is deliberately short. Most entities take under a minute to create.
- Name. Required. Short and memorable: “The Ashen Chancellor,” “Blackreach Undercity,” “The Obsidian Hand.”
- Category. Pick from the list above. The form adapts. Choosing NPC reveals the race/class/status fields; choosing Location reveals the location type and population.
- Section. Optional free-text grouping like “Chapter 1,” “Barovia,” or “The Deepdown.” You can filter the lore list by section later.
- Content. A markdown body with a live Write / Preview toggle. Aim for one to three focused paragraphs. This is a reference, not a novel chapter.
- Visibility. GM Only or Party. See the Visibility section below.
- Pinned. If on, the entity appears in the Pinned Lore panel on your party home dashboard.
- Artwork. Optional. Upload an image for the entity. NPC artwork uses a square portrait frame; other lore categories use a wide header-art frame. After saving, the Art action can also generate category-aware AI artwork using those same shapes.
- Tags. Comma-separated. Use tags for cross-cutting themes:
undead,underdark,act-one,redemption-arc.
Save, and the entity is live for your party immediately.
Sessions Have a Shortcut
When you create a Session entity, ScryRPG pre-fills the session number (max existing session + 1) and today’s date. Just name it and drop in your recap.
Pinning Entities to Your Party Home
Any entity can be pinned. Pinned entities appear on the party home dashboard in the Pinned Lore section, up to a few dozen at a glance. This is where you put the things your table needs to see every session.
Good candidates to pin:
- The current BBEG and their lieutenants
- The city the party is currently in
- The faction they are working for right now
- Any active main-arc quests
- The artifact they are hunting
When the party moves on to a new act, unpin the old set and pin the new one. The home page becomes a living spotlight instead of a static dashboard.
Pinned Is Also What Your Familiar Sees First
When your familiar answers a question about your campaign, it prioritizes pinned entities in its context. Pinning is not just decoration. It tells both your players and the assistant what matters right now.
Visibility: GM-Only vs Party-Visible
Every entity has a visibility flag. It is how you separate “things the players know” from “things the GM is still holding back.”
| Visibility | Who Sees It | Badge |
|---|---|---|
| Party | Every party member, including players | (visible, default state) |
| GM Only | GMs, managers, and admins | Amber “GM Only” badge with an eye-off icon |
GM-only entities are completely filtered out of the lore list and search results for players. They do not appear in relationship sidebars either. A player opening an entity will only see connections to things they are allowed to see.
You can flip visibility at any time. A common pattern: draft the villain’s backstory as a GM-only entity, then flip it to Party after the party discovers the truth in a session. The entity does not move, the URL does not change, players suddenly just have access to it.
Relationships Have Their Own Visibility
Each relationship also has a visibility setting. You can have a party-visible NPC with a GM-only relationship to a hidden cult. Players see the NPC, but the connection stays hidden until you reveal it. Useful for slow-burn reveals.
Relationships
Relationships are where the graph part of “knowledge graph” shows up. Open any entity, click Add Relationship in the sidebar, pick a target entity by name, and choose a type.
Relationship Types
There are thirteen built-in relationship types, organized around how tabletop campaigns actually work:
| Type | Typical Use |
|---|---|
| Located in | A city is located in a region, a dungeon is located in a forest |
| Member of | An NPC is a member of a faction |
| Parent of | A region is parent of a city, or a family lineage |
| Allied with | Two factions cooperating |
| Enemy of | Open hostility between factions or individuals |
| Quest giver | An NPC who handed the party a quest |
| Owns | An NPC owns a shop, a faction owns a stronghold |
| Guards | A creature or faction defending a location |
| Reports to | Chain of command within a faction |
| Serves | Looser loyalty (cultist serves a dark god) |
| Employs | A guild employs mercenaries |
| Related to | Generic catch-all when no other type fits |
| Knows | Personal acquaintance, useful for rumor networks |
Each relationship is directional (source to target) and can optionally be marked bidirectional for symmetric connections like allied/enemy pairs. You can also add a short free-text description to explain the connection, such as “hired the party in session 3” or “paid off by the Obsidian Hand.”
Once you have a few relationships wired up, every entity page shows a Relationships sidebar split into Outgoing and Incoming connections. It becomes trivial to answer questions like “who works for the Chancellor” or “what quests does this NPC have open.”
Templates vs Instances
If you have used ScryRPG’s items or shops, the next part will feel familiar. Lore uses the same template/instance pattern as the rest of the system, and it is the feature that makes the whole thing worth building.
The Pattern
A Lore Template is a reusable collection of entities that lives in your personal library. It is not attached to any party. You build it once (a homebrew pantheon, a published adventure’s NPC roster, or a shared setting you run at multiple tables) and it stays in your account forever.
A Lore Instance is what a specific party has. When you create a party, it gets an empty lore instance automatically. Every entity you create in that party’s Lore tab is an entity instance that lives only inside that party.
The magic happens when you deploy a template to a party: ScryRPG copies every entity and every relationship out of the template and into the party’s lore instance. The party now owns full copies it can edit freely.
| Layer | Where It Lives | Who Edits It | Example |
|---|---|---|---|
| Template | Your personal library | You (the creator) | “Curse of Strahd NPCs”: Strahd, Ireena, Ismark, Madame Eva, all wired up |
| Instance | Inside a specific party | GM and managers | Your Tuesday group’s Curse of Strahd run, with their session-specific edits |
Why This Matters
Build once, run many times. If you run the same adventure for multiple groups (a published module, a homebrew campaign you want to try again with different players, a one-shot convention module) build it as a template. Every time you start a new group, one deploy action sets up the entire lore graph.
Edits stay local. When the Tuesday party kills Strahd, that change lives in their instance. The original template is untouched. Your Friday group, running the same template, still has Strahd alive and plotting.
Promote instance content back to a template. Built something great in one campaign that deserves to be reusable? You can save a polished party instance back into your template library to deploy in future campaigns.
Deploying a Template
From a template’s detail page, click Deploy Template, pick a target party from the dropdown, and confirm. ScryRPG copies every entity and every relationship into that party’s lore instance and attributes the deploy to you. The dialog then gives you a direct link to jump into the party’s Lore tab.
Only GMs and managers can deploy to a given party, and you must own or have access to the template. Templates marked public in the marketplace can be deployed by anyone; private templates stay personal.
Deploy Is a Copy, Not a Link
After deploy, the party’s instance entities are independent copies. Updating the template later does not push changes to already-deployed parties. This is intentional; it keeps each campaign stable.
Activity Feed
Every entity instance has its own per-entity Activity Feed. It logs who did what, and when, with no extra bookkeeping required.
Logged actions include:
- Created: when the entity was added
- Updated: individual field changes, with before/after values
- Visibility changed: GM-only flipped to party or back
- Relationship added / removed: structural changes to the graph
- Archived / restored: soft deletion and recovery
The feed also tracks the source of each change. If an edit came from the web app it shows the user; if your familiar made the edit at a GM’s request, the feed shows scrybe_assistant in the source column. You always know where a change came from.
For GMs, the activity feed doubles as a between-session memory aid. Open an NPC before the session and you can see exactly what shifted since last time.
Your Familiar + Lore
Your familiar, ScryRPG’s AI assistant, has a dedicated lore_knowledge tool that reads and writes your party’s lore directly. The integration is the reason the graph structure matters: your familiar does not just grep text, it understands typed entities and relationships.
What Players Can Ask
Anything about party-visible lore. For example:
- “Who is the Ashen Chancellor and what do we know about him?”
- “What factions are we currently allied with?”
- “Which NPCs gave us active quests?”
- “What do we know about Blackreach?”
Your familiar searches your lore by category and query, pulls the matching entities, walks the relationship graph for related context, and answers in plain language. GM-only entities are invisible to player queries. Your familiar respects the same visibility rules the rest of the app does.
What GMs Can Ask
GMs get the full toolset: search, fetch, create, update, and change visibility, all through natural language.
- “Create an NPC called Kira Vex, half-elf rogue, friendly, member of the Obsidian Hand.”
- “Mark the Chancellor as dead and flip his backstory to party-visible.”
- “What active quests are tied to the Obsidian Hand?”
- “Add a quest called ‘Retrieve the Sunstone’, give it to the party from Madame Vex, make it a main quest.”
Your familiar picks the right category, fills in structured metadata, and can wire up relationships to existing entities by name in a single request. Everything your familiar creates is logged in the activity feed with scrybe_assistant as the source, so you always see exactly what it did.
For the full assistant reference (including how your familiar discovers your active party and which tools it has access to) see the AI Assistant Guide.
Common Questions
Do players see GM-only entities in search or familiar answers? No. GM-only entities are filtered out of the lore list, relationship sidebars, and your familiar’s search results when a player is asking. A player querying your familiar about a GM-only villain gets the same “no results” answer as if the entity did not exist.
Can I upload image files directly? Yes. Use the image field in the entity form. NPC uploads and generated artwork use a square portrait crop; other lore categories use a wide header. Existing wide NPC art remains visible in the app and printable cards without a destructive migration.
What happens to a party’s lore if I delete the template I deployed from? Nothing. Deployed entities are full copies. They have no live dependency on the source template. Deleting a template does not touch any parties it was deployed to.
Can I import lore from an existing document or adventure module? Yes. The Import tool extracts lore entities alongside items when you feed it a published module, your own campaign notes, or a reviewed session transcript. It identifies NPCs, locations, factions, and quests, and drops them straight into a template for review.
How many entities can a party have? There is no hard cap for typical campaigns. Practical performance stays excellent into the low thousands. If you are running a megacampaign brushing against those limits, reach out. We want to hear about it.
Can two GMs edit the same party’s lore at the same time? Yes. Both the GM and any managers can edit entities in the party instance. The activity feed records each change with the editor’s username so you can see who did what.
Do relationships show up both ways? The relationship sidebar shows Outgoing and Incoming links separately for each entity. Open an NPC and you see both “who they report to” (outgoing) and “who reports to them” (incoming). Mark a relationship as bidirectional for symmetric cases (allied/enemy).
Can I filter the lore list by tag or section? Yes. The lore page has both category filtering (in the sidebar) and section filtering (a toggle switches between “By Category” and “By Section” grouping). Tags are searchable through your familiar and the entity search.
Does Lore count toward my subscription’s inventory limits? No. Lore is tracked separately from inventory actions. See the Subscription Guide for current plan details.
What’s Next?
- Templates & Instances: The mental model Lore shares with items, shops, and loot
- Printable Cards: Print an NPC handout and, when available, a separate authorized mechanical reference
- AI Assistant Guide: The assistant that reads and writes your lore
- Party Management Guide: How pinned lore plugs into the party home dashboard
- Import Guide: Pull lore entities out of adventure PDFs, campaign docs, and reviewed session transcripts