Author’s Guide

v0.1.0-alpha.1

AxiomWeaver Documentation

Everything you need to know to get started and go deep. Start with What AxiomWeaver is or jump straight to your first 30 minutes.

Getting Started

What AxiomWeaver is

Think of AxiomWeaver as two tools in one: a sandbox game design environment and a modern prose editor, connected by the event ledger.

The game design side is where you build your world’s rules — character templates, stat systems, item databases, skill trees, faction relationships. Everything that normally lives in a spreadsheet or a custom doc that only you can fully read.

The prose editor side is where you write. A full-featured manuscript editor with chapters, scenes, focus mode, and word sprints — the whole thing.

The event ledger connects them. Every stat change, level-up, loot drop, or status applied is recorded there and linked to a specific moment in your manuscript. That link is what makes everything else in the app meaningful: the Context Panel knows which entities are in this scene and what they look like right now. The hover card shows a character’s HP at exactly this sentence. Every view in AxiomWeaver is a different window into the relationship between your world model and your prose.

Most LitRPG authors already have both halves. The game design stuff is in a spreadsheet. The prose is in Scrivener or Google Docs. They don’t talk to each other. AxiomWeaver is what happens when they’re the same app.

Three concepts make this work:

Entities

The discrete things in your world — characters, locations, items, monsters, factions, skills. Each entity is a structured record with typed properties and a full history of changes.

The Universe

The rules of your world — what kinds of things exist, what properties they have, and how they relate to each other. Templates, property groups, relationships, and progression tracks all live here.

The Event Ledger

A sequenced record of every change to your world — every stat change, level up, item acquired, or status applied. Entity state is never stored directly; it is always computed from this ledger. This is what makes time-travel and world-time projection possible.

The Lexicon, Timeline, Pinboard, and Journal are all views into this data. They don’t store anything themselves — they surface what’s already in your entities and event ledger from different angles.

Your first 30 minutes

AxiomWeaver is a complex app. This walkthrough gets you to your first working entity and your first recorded event — the two things that unlock everything else.

New projects open with a blank Universe. Before you can create an entity, you need a template. Templates define the structure. Entities are the instances.
1

Create a new project

File menu or ⌘N. Name it, choose where to save the .weave file. A vocabulary pack dialog appears — apply the LitRPG vocabulary pack to seed your project with 11 event types and 14 actions (level-up, combat, loot drops, and more), or skip and start completely blank. You can apply it later from the command palette.
2

Create your first template in the Universe

Click in the activity bar (or press ⌘U) to open the Universe. Click + New Template and name it Character. Add a property group called Stats with Number properties for HP, MP, and Level. Save.
3

Create your first entity using the wizard

Click in the activity bar (or press ⌘L) to open the Lexicon, then click + Add Entity. The Entity Creation Wizard appears — choose Character, name your protagonist, and check which properties to include (HP and MP are opt-in, pre-ticked by default). The wizard creates the Character template and entity together in one step — you don’t need to set up the Universe first for the four built-in archetypes.
4

Write something in the editor — watch the entity get detected

Click in the activity bar (or press ⌘D) and type your character’s name in a sentence. After a short pause, the name will be underlined — it’s been detected and linked to their Lexicon entry. The Context Panel on the right will show their current stats.
5

Record your first event

Write a sentence where something happens to your character — a fight, a level up, taking damage. Hover over their underlined name and click Create Event, or use the /event slash command. In the event editor: name the event, set your character as the actor, and add an effect — for example, HP modified by -20. Save.
6

Hover the name — see the state at that point

Hover over your character’s name again. The hover card now shows their HP at minus 20. Scroll back up past that event — hover again. HP is back at the original value. The engine tracks state at every point in the manuscript, not just the end.
Main editor with entity name underlined, Context Panel showing live stats on the right
Entity detected mid-prose — Context Panel shows current state without leaving the editor
From here, everything else is additive. Add more properties, more entities, relationships between them, progression tracks for leveling. You don’t have to set up the whole Universe before you start writing — build it as you need it.

Core Concepts

Entities and Templates

Entity sheet showing property groups, stat values, and progression track
An entity sheet — property groups, stat grants from relationships, and event history

Templates

A template is a reusable blueprint that defines the structure an entity takes when created. It specifies which property groups the entity has, what composition slots it offers (e.g. a Character has a Race slot and a Class slot), and what attachment groups appear on its sheet (equipment slots, inventory grids, ability lists).

Entity sheets are always rendered from the current template definition — adding a property group to a template immediately makes it available on all existing entities built from that template, with empty values until events populate them. Removing a group from a template removes it from existing entities too. The template is the live source of structure; entities own their values, not their shape.

Property Groups

Property groups are named sets of typed properties — Number, String, Formula, Boolean, Entity Link, or Value Set. Groups are defined once in the Universe and shared across templates. An Ability Scores group can appear on both a Character and an NPC template; editing the group once updates both.

Composition Slots

Composition slots are typed positions that accept other entities. A Character slot for Race accepts any entity built from the Race template. When you fill a slot, the slotted entity’s property groups merge onto the source entity’s sheet — a Dark Elf race entity’s Racial Bonuses appear on the character’s sheet automatically.

Relationships

Relationships are typed, structured links between entities with defined behavior. Each relationship type specifies direction (bilateral or one-way), stat grants (bonuses that flow through the link), and action labels (custom verbs like “Equip”/“Unequip” instead of “Attach”/“Detach”). A character equipping a sword is a relationship — the sword’s +2 Strength grant transfers to the character’s sheet automatically.

Progression Tracks

Progression tracks model any kind of advancement through defined milestones — XP leveling, faction reputation, weapon sentience stages, qi core compression. Each tier has optional requirements (property thresholds, event counts) and rewards (stat bonuses, new abilities). Advancement is always triggered by the author — the system flags when requirements are met, never auto-advances. Rewards can have prerequisites, creating a directed skill tree: Swordsmanship I must be unlocked before Swordsmanship II.

The Event Ledger

The event ledger is the heart of AxiomWeaver. It is a sequenced set of deltas — discrete records of every change to your story world, each with a position in the timeline. Entity property values are never stored directly — the current state of any entity is always computed by replaying the relevant ledger events in sequence order.

This means every change is auditable. Hover any stat on an entity sheet and the tooltip shows every source: base value, equipment grants, level-up bonuses, active effects. Every modifier, traced.

Event editor showing actor, event type picker, and live before/after property preview
Event editor — add effects and see the before/after delta before committing

Recording an event

Four ways to open the event recorder:

  • Hover over any underlined entity name in prose → Create Event
  • Click the + circle that appears on the left of any paragraph on hover
  • Type /event anywhere in the editor
  • Click + Add event between two existing events in the Timeline view

In the event editor, set a description, choose the actor, pick an event type (for color/icon coding in the Timeline), and add effects — one or more property changes on one or more target entities. Each effect shows a live before/after preview before you save.

Permanent vs. temporary

Permanent effects persist indefinitely. Temporary effects are time-limited and tracked as active modifiers — visible in the hover card and Context Panel until explicitly cleared by another event.

World-Time

Every event in the ledger carries two time coordinates:

seq_order — World time

The in-world chronological position. For a time-loop story, this resets when the world resets.

sub_order — Subjective time

The entity’s personal timeline. Always increments, never resets. A character who retains XP across loop resets accumulates sub_order higher than the reset point — the engine tracks their accumulated state correctly.

This is what makes flashbacks work correctly. Write a scene set three years before your current arc — entity hover cards show their state at that world-time, not their current level. Add an event in the flashback that changes a stat, and downstream scenes where that change matters get flagged automatically.

Timeline with world-time scrubber active, entity hover card showing historical stat values
Scrub to any world-time position — hover cards show state at that exact moment
The Author Lens (shown in the status bar, bottom-left) sorts events by world time and includes all events including hidden backstory. This is the default view while writing — it shows what actually happened, regardless of what the reader has seen yet.

Feature Reference

Draft

Access⌘D·Activity bar → Draft icon

Draft is the main writing surface in AxiomWeaver. It is a full-featured prose editor built on ProseMirror, with your manuscript structure in a collapsible left panel and the world model always within reach — no view switching required.

Manuscript structure

Your manuscript is organised as Arc → Chapter → Scene. The left panel shows the full tree; scenes are the primary writing unit. Drag and drop to reorder chapters or scenes within an arc. Right-click any node for rename, duplicate, move, and delete options. The panel collapses to give more writing room — the keyboard shortcut also works in Focus Mode.

Block types

Every paragraph is a block. Switch type with the block picker in the Editor Toolbar (appears on text selection) or with slash commands. Available types:

ParagraphDefault prose block.
Heading 1 / 2 / 3Section headings — useful for in-scene structural notes.
Block QuoteIndented pull-quote style. Good for epigraphs and in-world text.
Code BlockMonospace, no smart quotes. Handy for stat blocks or world-building tables.
System MessageStyled like an in-world notification panel. LitRPG staple.

Focus Mode

Focus Mode is a distraction-free writing environment. Toggle with ⌘. or View menu → Focus Mode. It activates two behaviours simultaneously:

Paragraph dimming

All paragraphs except the one your cursor is in fade to low opacity. As you move between paragraphs, the active one sharpens and the rest dim. Keeps your attention on the sentence you are writing, not the one you already wrote.

Typewriter scrolling

The cursor line is pinned to the vertical centre of the screen. The page scrolls as you type so your insertion point never drifts to the bottom. Eliminates the constant head-tilt of bottom-of-screen writing.

The Context Panel, status bar, and scene tree remain accessible in Focus Mode. Press Esc or toggle the shortcut again to exit.

Synopsis & scene outlining

Type /synopsis at the start of a scene to insert a synopsis block. A framework picker appears — choose one and the block renders a structured question form for that framework. Fill it in before you write, or after; it stays attached to the scene.

Available frameworks:

Freeform

Single text field, no structure. Write whatever is useful for this scene.

Scene & Sequel

Dwight Swain framework. Action sub-type: Goal → Conflict → Outcome. Reaction sub-type: Reaction → Dilemma → Decision. Toggle between the two within the same block.

Scene Purpose

What Happens → Why It Matters → What Changes. Accessible scene analysis — the simplest structured option after Freeform.

Story Grid

Shawn Coyne framework. Value Shift (Life → Death, Freedom → Captivity), Turning Point (the moment that shifts the value), Polarity (positive, negative, or ironic).

Emotional Arc

Opening State → Catalyst → Closing State. Tracks the character's emotional journey through the scene independent of plot.

Try-Fail Cycle

Attempt → Obstacle → Result → New Complication. Iterative tension structure for scenes built around escalating pressure.

Five W's

Who, What, Where, When, Why. Minimal scaffold — useful for quick orientation beats or scenes that don't need deeper analysis.

Synopsis blocks are invisible in manuscript exports. They surface in the Journal view organised by chapter so you can review your scene-level plan in one place.

Notes, todos & inline comments

Inline annotations are inserted with slash commands and stay anchored to the paragraph where they are written. They are invisible in exports. All annotations surface in the Journal view aggregated by chapter.

  • /noteGeneral author note. Use for research reminders, worldbuilding observations, or anything that isn't a task.
  • /todoAn actionable task. Shows in the Journal with a checkbox so you can mark it done without leaving the view.
  • /todo-continuityA continuity check flagged for later. Useful when you know something needs cross-referencing but don't want to break flow now.
  • /todo-expandA placeholder for a section you intend to write out further. Marks the spot without leaving a gap in the prose.
  • /commentAn inline markup comment attached to a text selection. Equivalent to a Word margin comment. Tagged text gets a subtle highlight.
  • Tag entities in any annotation with @EntityName — the annotation surfaces on that entity’s Activity tab alongside the entity’s event history.

    Slash commands reference

    Type / anywhere in the editor to open the command palette. Common commands:

    /eventOpen the event editor anchored to this paragraph
    /synopsisInsert a scene synopsis block with framework picker
    /noteInsert an inline author note
    /todoInsert an actionable task reminder
    /todo-continuityFlag a continuity check for later
    /todo-expandMark a section for future expansion
    /commentAttach an inline markup comment to selected text
    /sprintStart a writing sprint with a timer and word goal
    /h1, /h2, /h3Insert a heading block
    /quoteInsert a block quote
    /codeInsert a code or stat block
    /systemInsert a system message block
    The fastest path from prose to world model: write the moment, select the text, click in the toolbar — the event editor opens anchored to that exact paragraph with the selected text as context.

    Lexicon

    Access⌘L·Activity bar → Lexicon·Right-click text in prose → Add to Lexicon

    The Lexicon is the browsable catalog of all entities in the project. Entities are grouped by template type (Character, Monster, Location, etc.) and displayed as cards with a portrait, name, and two activity indicators: manuscript mention count and event count. Two view modes: Cards and Table.

    Lexicon showing entity cards grouped by template type with mention and event count badges
    Lexicon — every entity in the project, grouped by type
    Currently every entity in the Lexicon is a first-class named individual. If you have a goblin encounter with five distinct goblins, you create five separate entities — Goblin A, Goblin B, etc. A future version will add a definition/instance system where “Goblin Warrior” is a shared definition and individual goblins are instances of it, each with their own property overrides.

    Clicking a card opens the entity sheet — the full detail view. The entity sheet shows all property groups, a timeline scrubber that lets you see the entity’s state at any point in its history, and three tabs: All (every property group), Stat Blocks (custom display templates), and Activity (manuscript mentions, author notes, and recorded events for this entity).

    Discovery

    The Discovery panel (inside the Lexicon) scans the manuscript for potential entity candidates — named things that appear repeatedly. Each candidate shows a confidence score, mention count, and suggested type. You review and select which to create. Nothing is added automatically. Useful for authors importing an existing manuscript who need to build out their Lexicon from existing prose.

    Universe

    Access⌘U·Activity bar → Universe

    The Universe is where you define the rules of your world. It contains your templates, property groups, relationship types, progression tracks, event types, and actions. New projects start with a blank Universe containing only the system — a stub entity intended as the actor for game-system events like level ups, loot drops, and skill grants.

    The Universe sidebar organizes everything by type. Templates are the starting point for most world-building — create a Character template before you can create a character entity.

    Universe sidebar showing templates, property groups, relationship types, and event types
    Universe — define the rules of your world before populating it with entities
    When you create a new project, a vocabulary pack dialog offers to seed your Universe with LitRPG event types and actions — Combat, Level Up, XP Award, Rest/Recovery, and more. You can skip it and start blank, or apply it later from the command palette or from the empty-state prompt inside the event type and action lists. Support for property groups and progression tracks is coming. Everything it adds is deletable. Future packs (TTRPG, sci-fi, dungeon core) will follow the same pattern.

    Journal

    Access⌘J·Activity bar → Journal

    The Journal aggregates all author annotations written throughout the manuscript — synopses, notes, TODOs, and markup comments — organized by chapter location. Notes are not written from the Journal. They are written inline in the manuscript editor using / commands and surface here automatically.

    Slash commands for annotations

    • /noteGeneral inline annotation
    • /synopsisScene synopsis with framework picker (Scene/Sequel, Story Grid, Five Ws, and more)
    • /todoActionable task reminder
    • /todo-continuityContinuity check
    • /todo-expandExpansion note

    Tag entities in any annotation with @EntityName — the annotation then surfaces on that entity’s Activity tab, letting you see all planning notes about a character in one place.

    Pinboard

    Access⌘P·Activity bar → Pinboard·⌘⇧K·open Pinboard from anywhere

    The Pinboard is a free-form visual canvas for placing mixed node types — entities, scenes, notes, and time-anchored state snapshots — in spatial relationship to each other. A project can have multiple independent boards.

    Pinboard with entity cards connected to a WorldTime node, scrubbing through events
    Pinboard — entity cards connected to a WorldTime node update live as you scrub

    The most powerful node type is the WorldTime node. Connect any number of entity cards to a WorldTime node, then scrub through the event log — each connected entity card updates to show its state at that exact world-time position. Step through a battle event by event and watch which characters are affected in real time.

    Entity cards on the board are live — they reflect current entity state. The board is a visualization surface, not a second source of truth. Moving a node does not change entity data.

    Timeline

    Access⌘T·Activity bar → Timeline·⌘⇧T·inline panel from Draft

    The Timeline is the master event log for the project — the full, ordered record of every state change across all entities, organized by arc, scene, and event. Each event entry shows its type badge (color-coded), description, and world-time position. Expanding an event shows every entity affected and the before/after delta for each changed property.

    Timeline view showing color-coded event type badges organized by arc and scene
    Timeline — the full project event log, organized by arc and filterable by entity

    The top of the Timeline shows a horizontal arc overview — all arcs displayed as column headers, giving a birds-eye sense of where events fall across the story.

    Filter by entity to turn the full project log into a character-specific event history. Use “+ Add event” between any two existing events to insert an event at a specific world-time position.

    Goals & Writing Sprints

    Access⌘G·Activity bar → Goals·click word count in status bar·/sprint in editor

    The Goals view tracks session, daily, weekly, and project-level progress across four dimensions — words, entities added, events recorded, and planning notes created. Tracking entities and events alongside word count is intentional: a session spent building out your world model is productive authoring work even if the prose word count is zero.

    The word count in the bottom status bar is a live clickable goal indicator. Clicking it opens a quick Goals popover without leaving the editor.

    Writing sprints are launched from the /sprint slash command or the Goals popover. Set a duration (5–30 min) and an optional word goal. The status bar shows live words written, time remaining, and current WPM during an active sprint. Sprints do not lock the editor — stop anytime.

    Entity Creation Wizard

    AccessRight-click selected text → Add to Lexicon·Lexicon → + New Entity

    The entity creation wizard is the fastest path from “I need a character” to a fully structured entity with the right properties. It covers four archetypes out of the box: Character, Location, Item, and Creature.

    Entity creation wizard showing archetype picker — Character, Location, Item, Creature tiles, then a property checklist step
    Pick an archetype, name your entity, choose which properties to include — template created automatically

    Open it from:

    • The + Add Entity button in the Lexicon
    • The command palette (⌘K) → New Entity
    • Right-click an underlined entity name in prose → Add to Lexicon
    • Select any text in the editor → bubble menu → 📖+ Add to Lexicon

    Step 1 — Choose an archetype

    Each archetype comes with a pre-built property set relevant to that type. Character gets HP, MP, Race, Class, and Level. Location gets Type, Environment, and Danger Level. Item gets Type, Rarity, and Slot. Creature gets Type, Level, and HP. Optional properties are presented as checkboxes — nothing is forced on you.

    Step 2 — Name and configure

    Give the entity a name and check the properties you want. The wizard creates the template structure automatically. If a template for that archetype already exists in your project, it reuses it — so all characters of the same type share the same structure.

    Custom types

    For anything beyond the four archetypes — Factions, Skills, Quests, Vehicles — choose New custom type. You name the type and get a blank entity. Add property groups to it later in the Universe, or build the template first and create entities from it.

    Event Types & Actions

    Access⌘U·Universe → Event Types or Actions (left sidebar)

    Event types and actions are both defined in the Universe and used in the event editor. They serve different purposes: event types organize and color-code your event log, while actions define the named vocabulary of things that can happen in your world.

    Event Types

    An event type is a labeled category with a color and icon. Every event you record gets an event type, and that type is used throughout the Timeline for visual organization and filtering. Combat events show red, Level Up events show gold, Social events show blue — at a glance you can see the shape of a chapter.

    The LitRPG vocabulary pack seeds 11 event types: Combat, Level Up, XP Award, Loot, Rest/Recovery, Travel, Social, Magic, Status Effect, Crafting, and System. You can add, edit, or delete types from Universe → Event Types. Create custom types for anything your world needs — Rift Incursion, Qi Cultivation, Tribulation — and assign them a color and icon that matches.

    Actions

    An action is a named narrative primitive — the vocabulary of world-state changes. Examples from the LitRPG pack: Melee Attack, Ranged Attack, Cast Spell, Level Up, Pick Up Item, Use Item, Take Damage, Apply Status. When you record an event, you select an action to describe what happened.

    Each action can have a delta pattern — a pre-configured set of effect fields that load when you pick the action in the event editor. A “Take Damage” action configured with a HP modifier means you only need to fill in the amount; the property and direction are already set. The LitRPG pack seeds 14 actions with empty delta patterns — configure them once to match your world’s property setup, and they speed up every event you record after that.

    Add custom actions from Universe → Actions → + New. Name it, link it to an event type for default color coding, and optionally configure a delta pattern.

    Naming actions specifically pays off when reviewing the Timeline later. “Level Up” is more scannable than “Custom Event,” and filtering the Timeline by event type gives a fast chapter-by-chapter read of how much combat vs. narrative vs. exploration your story contains.

    Capabilities

    Access⌘U·Universe → open a template → Capabilities tab

    Capabilities are labels you assign to templates that declare what entities of that type can do — be carried, be traversed, contain other entities — and automatically provision the relevant properties on the template so you don’t have to add them by hand.

    Assign capabilities to a template in the Universe → open the template → Capabilities tab. Child templates inherit their parent’s capabilities and can suppress individual ones if the child type is an exception.

    The five capabilities

    Active

    This entity can act on other entities. Provisions a possible_targets property — a list of entity types this entity can target. Use for characters, monsters, skills, spells, anything that initiates an action on something else.

    Common uses: Character, Skill, Spell, Ability

    Attachable

    This entity can be placed into slots on other entities. Provisions a slot_types property that defines which slot types this entity can fill. Use for gear, accessories, runes, mods — anything that goes into an equipment slot.

    Common uses: Weapon, Armor, Ring, Rune

    Carriable

    This entity can be picked up and carried. Provisions weight, stack_size, and value properties. Use for items in inventory — consumables, loot, crafting materials.

    Common uses: Item, Consumable, Loot, Material

    Fillable

    This entity can contain other entities. Provisions capacity and an accepts property that defines which entity types it can hold. Use for containers, bags, chests, pouches.

    Common uses: Bag, Chest, Quiver, Pouch

    Traversable

    This entity is a location that can be entered or moved through. Provisions a parent_location property linking it to a containing location. Use for any entity that exists in physical space — regions, towns, dungeons, rooms.

    Common uses: Region, City, Dungeon, Room

    Combining capabilities

    A template can have multiple capabilities. A Bag of Holding template would be Carriable (it has weight and value) and Fillable (it can contain items). A Dungeon Boss would be Active (it can act on characters) and Traversable (it occupies a location). Assign as many as apply.

    Suppressing inherited capabilities

    If a child template inherits a capability from its parent but shouldn’t have it, suppress it in the Capabilities tab. A Cursed Sword template inherits Carriable from its Weapon parent, but suppressing Carriable means weight, stack_size, and value won’t appear on entities of that type.

    The five built-in capabilities cover the most common patterns. Custom capability creation is not available yet — if you need something not covered, model it with a property group instead.

    Context Panel

    Access⌘]·toggle button in editor chrome·auto-visible in Draft when entities are present

    The Context Panel is docked to the right of the editor and surfaces entity data scoped to wherever you are writing — by paragraph, scene, or chapter. As you type, it shows which entities are present and what their current state is, without requiring you to leave the editor.

    Each entity card in the panel shows live property values — a skill entity shows Cost, Type, Cooldown, and Effect; a location entity shows History and Key Events. The panel has three scope levels (This Block, This Scene, Elsewhere in Chapter) and three filter modes (All, Mentioned, Affected).

    At the bottom of the panel, the World Timeline mini-panel shows events within the current scope. Hovering an event shows the full property delta. Clicking it jumps the editor to the block where that event was recorded.

    Editor Toolbar

    AccessSelect any text in the editor — toolbar appears automatically

    Select any text in the manuscript and a context toolbar floats above the selection. It has two groups separated by a vertical rule: formatting on the left, world-building on the right.

    Editor toolbar showing format group (Bold, Italic, More, Block type) and AW group (Lexicon, Event, Comment) separated by a vertical rule
    Format group left, AW group right — appears on any text selection

    Format group

    • Bold / Italic — Direct mark toggles. Active state is highlighted.
    • More — Overflow marks: Strikethrough, Underline, Superscript, Subscript, Inline Code, and Clear All Formatting.
    • ¶▾ Block type — Switch the current block: Paragraph, Heading 1–3, Block Quote, Code Block, or System Message. Alignment controls sit at the bottom of the picker. The button label reflects the current block type dynamically.

    AW group

    • Add to Lexicon — Opens the entity creation wizard with the selected text pre-filled as the entity name. If the text already matches a known entity, the button switches to View in Lexicon and opens the entity sheet instead.
    • Add Event — Opens the event editor anchored to the current paragraph, with the selected text passed as context. Fastest path from prose to a recorded world-state change.
    • Add Comment — Attaches an inline markup comment to the selection. Comments appear in the Journal, are invisible in exports, and can be tagged to entities with @Name.
    The AW group is the fastest path from prose to world model. Write a name, select it, click — wizard opens with the name filled in. Select a sentence describing a stat change, click — event editor opens anchored to that paragraph.

    Find & Replace

    Access⌘F·chapter search·⌘⇧F·manuscript search·⌘H·find & replace panel

    Two modes: a chapter-scoped inline bar (⌘F) and a manuscript-wide Search panel (⌘⇧F). The manuscript-wide panel shows results grouped by chapter and scene with prose excerpts.

    Entity-aware rename dialog showing Rename, Replace All and Untag, and Skip Entities options
    Find & Replace — entity-aware rename keeps Lexicon records and event history intact

    Entity-aware rename

    When a Replace All action would affect text that is entity-tagged in prose, AxiomWeaver intercepts and surfaces a disambiguation dialog. For each affected entity it offers: Rename (renames the Lexicon entry and updates all tagged occurrences — the entity record, event history, and relationships are preserved), Replace All & Untag (replaces the text everywhere and removes entity tags), or Skip Entities (replaces only untagged occurrences). Renaming a character mid-series is a single action.

    Import & Export

    Access⌘⇧I·import·⌘⇧E·export·File menu

    Import

    AxiomWeaver imports DOCX, Markdown, EPUB, Scrivener, and plain text. The import wizard maps your existing document structure to AxiomWeaver’s arc/chapter/scene hierarchy and then runs the Discovery scanner on the imported manuscript — surfacing entity candidates for you to review and add to the Lexicon. Nothing is created automatically.

    Export

    Export the manuscript as Markdown or Plain Text via File → Export Manuscript (⌘⇧E). Markdown preserves bold, italic, headings, and stat block tables. Plain text renders everything as clean copy. Export is manuscript-only — it does not export entity data or event logs. EPUB, PDF, and DOCX export are planned for v1.

    Draft History

    Access⌘K·Command Palette → search 'restore draft'·File menu → Draft History

    Draft History is a project snapshot system — RPG-style save slots for your manuscript. Three categories: named drafts you create manually (milestone saves like “before the big rewrite”), shutdown drafts created automatically each time the app closes, and auto drafts created at intervals.

    Access via the Command Palette (⌘K). Each draft captures word count, entity count, event count, chapter count, and timestamp. Actions per draft: restore, branch (create a new project from this state), rename, or delete.

    Game Design Recipes

    Adding and managing property groups

    Property groups are the building blocks of your world model. Before you can track HP, Level, or STR on an entity, you create a group that holds those properties, then attach it to the templates that need it. The same group can appear on multiple templates — edit it once and every template that uses it updates automatically.

    1

    Open the Universe and create a group

    Press ⌘U to open the Universe. Select Property Groups in the left sidebar and click + New Group. Give it a descriptive name — Combat Stats, Character Background, Skill Properties.
    2

    Add properties to the group

    Click + Add Property. Each property has a name and a type. For a Combat Stats group, add: HP (Number), MP (Number), STR (Number), DEX (Number), Level (Number). See the property type reference below for when to use each type.
    3

    Attach the group to a template

    Open the template that should use this group (e.g. the Character template). In the template editor, go to the Property Groups tab and click + Add Group → select Combat Stats. Save. Every character entity built from this template now has the Combat Stats block on their sheet with those properties.
    4

    Edit once, update everywhere

    If you later add AC or XP to Combat Stats, every template that includes the group gains those properties immediately — and so do all existing entities built from those templates. You never update templates or entities individually.

    Property types

    Number

    Integers and decimals. HP, gold, XP, attack bonus. The most common type in LitRPG builds.

    String

    Freeform text. Background, title, description, notes. Not tracked by the event ledger — use Number for anything you want to watch change over time.

    Formula

    Computed from other properties in the same group. AC = 10 + floor((DEX - 10) / 2). Recalculates automatically when source values change. Read-only on the entity sheet.

    Boolean

    True/false flag. Is Cursed, Has Flying, Awakened. Useful as unlock conditions in progression tracks.

    Entity Link

    A reference to another entity. Race, Class, Party, Mentor. Selecting an entity fills the slot — filling a composition slot (not this property type) is what triggers stat grants.

    Value Set

    A fixed list of choices. Rarity: Common / Uncommon / Rare / Legendary. Element: Fire / Ice / Lightning. Define the options once; all entities using the group pick from the same list.

    The LitRPG vocabulary pack seeds one property group (Stats) with HP and Level. You can extend it with additional properties or replace it entirely. Everything the pack creates is editable. Find the pack in the command palette (⌘K) → Apply Vocabulary Pack.

    Composition slots

    A composition slot is a typed position on a template that accepts another entity. When you fill a slot, the slotted entity’s property groups merge onto the host entity’s sheet — automatically, live, without copying anything. This is how Race bonuses appear on a Character sheet, how a Class defines a character’s skill list, how a Faction affiliation surfaces its bonuses on a member.

    The key mental model: composition slots let one entity borrow the structure and values of another. The borrowed data stays live — edit the Race entity and every character using it sees the update.

    Worked example: Race and Class

    1

    Create Race and Class templates

    In the Universe, create two new templates: Race and Class. Add property groups to each — for example, Race gets a Racial Traits group (STR bonus, low-light vision, movement speed), and Class gets a Class Features group (primary stat, hit die, save proficiencies).
    2

    Add composition slots to the Character template

    Open the Character template in the Universe. Go to the Composition Slots tab and click + Add Slot. Name it Race and set the accepted type to the Race template. Add a second slot named Class accepting the Class template. Save.
    3

    Create your Race and Class entities

    In the Lexicon, create a new entity from the Race template and name it Dark Elf. Set its Racial Traits: STR bonus +2, low-light vision true, movement speed 35. Create another from the Class template: Rogue, with DEX as primary stat, d8 hit die.
    4

    Fill the slots on a character

    Open your character’s entity sheet. The Race and Class slots appear as empty positions. Click the Race slot and select Dark Elf. The Racial Traits property group — STR bonus, movement speed, low-light vision — appears immediately on the character’s sheet, sourced from Dark Elf. Fill the Class slot with Rogue. The Class Features group appears alongside it.
    5

    See changes propagate

    Go back to the Dark Elf entity and change the movement speed from 35 to 40. Open any character with Dark Elf in their Race slot — their movement speed is now 40. The data was never copied; the slot points to the entity and the sheet renders from it live.

    Other uses for composition slots

    Faction membership

    Add a Faction slot to the Character template. Fill it with a Faction entity — the faction's territory, allegiances, and bonuses appear on the character sheet. Reassign the slot when a character changes sides.

    Mount or companion

    A Mount slot on a Character accepts a Creature entity. The mount's speed and carrying capacity merge onto the character sheet while the slot is filled.

    Skill specialization

    A Specialization slot on a Skill entity accepts another Skill — Swordsmanship can be specialized into Dueling, which adds its own bonus properties on top of the base skill.

    Origin / backstory

    An Origin slot accepts a Background entity. The background's starting proficiencies and feature text appear on the character sheet without duplicating them.

    Slots are typed — a Race slot only accepts entities built from the Race template. This prevents accidentally filling a Class slot with a Location entity and keeps the sheet coherent. If you want a slot that accepts multiple types, create a shared parent template and have Race and Class both extend it.
    Composition slots and property groups work together. The slot brings in the slotted entity’s property groups. The stat-grant system (in relationships) can then add numeric bonuses on top of those groups. The two mechanisms are complementary: slots for structure and narrative attachment, grants for numeric bonuses.

    Setting up a progression track

    A progression track models any advancement through defined milestones — XP leveling, qi core compression stages, faction reputation tiers, weapon awakening ranks. Once created in the Universe, any template can use it. Multiple tracks can run simultaneously on a single character.

    1

    Create the track in the Universe

    Open the Universe (⌘U), select Progression Tracks in the sidebar, and click + New Track. Name it — e.g. Character Leveling or Sword Mastery.
    2

    Define tiers

    Add tiers one by one. Each tier has:
    • Name: Level 1, Level 2 — or Bronze, Silver, Gold for a reputation track
    • Requirements (optional): Notes on what should be true before advancing — for your reference when deciding whether to trigger the tier
    • Rewards (optional): Stat bonuses applied when you advance to this tier (+50 HP, +10 MP, +1 STR)

    For a simple 3-tier setup: Tier 1 is the starting tier. Tier 2 rewards +50 HP, +10 MP (advance when your story puts the character at 1000 XP). Tier 3 rewards +75 HP, +15 MP, +1 STR.

    3

    Attach the track to a template

    Open the Character template → Progression tab → + Add Track → select Character Leveling. Save. Every entity built from this template now has the track on their sheet.
    4

    Advance a character

    When you decide your character has earned the next tier, open their entity sheet and locate the progression track panel. Click Advance to move to the next tier. The rewards you configured — stat bonuses, unlocked abilities — are applied immediately. Record the corresponding narrative event (the combat victory, the training breakthrough) in the ledger separately, as you would any other story event.
    Advancement is entirely author-triggered. The track shows you what requirements you defined and what rewards each tier grants — whether the character has earned it is a narrative decision you make, tracked through the events you record.
    Rewards support prerequisites: Swordsmanship II requires Swordsmanship I to be unlocked first. This makes the rewards list a skill tree, not just a flat bonus list. Chain prerequisites across tiers for a full talent tree.

    Equipment and inventory

    Characters in LitRPG carry gear that changes their stats. AxiomWeaver handles this through two attachment group types: Equipment (a paper doll of structured slots — Main Hand, Off Hand, Armor) and Inventory (a grid of held items). Both are enabled per-template and both use the same stat-grant system.

    1

    Enable equipment slots on the Character template

    Open the Character template in the Universe. Go to the Attachment Groups tab → click + Add Group → select Equipment. Pre-configured slots include Main Hand, Off Hand, Armor, Helm, and Ring ×2. Add, remove, or rename slots to fit your world’s gear system. Save.
    2

    Create an Item entity

    Use the Entity Creation Wizard, choose Item, and name it Ironwood Shield. The wizard creates an Item template with Type, Rarity, and Slot properties.
    3

    Add stat grants to the Item template

    In the Universe, open the Item template and add a property group that holds the stats this item grants — e.g. a Grants group with DEF (Number) set to 15. Any character who equips this item will receive +15 DEF sourced from “Ironwood Shield.”
    4

    Equip the item

    Open your character’s entity sheet. The Equipment panel shows the slots you configured. Click the Armor slot → select Ironwood Shield. The +15 DEF grant appears immediately on the character’s stats, attributed to the shield. Unequip it and the grant disappears.
    5

    Enable inventory for consumables

    Back on the Character template → Attachment Groups → select Inventory. The inventory grid holds items without applying their stat grants automatically — it represents “in your bag,” not “currently equipped.” Move an item from inventory to an equipment slot to activate its grants.
    Stat grants flow through the relationship, not as a copy. Edit the Ironwood Shield’s DEF from 15 to 20 later and every character wearing it sees +20 immediately — no manual updating.
    The Entity Creation Wizard can add Equipment and Inventory to Character and Creature entities in one step — check the boxes in the wizard’s property checklist. For existing entities, add the attachment groups to their template in the Universe.

    Derived stats with Formula properties

    Formula properties compute their value from other properties in the same group. When STR changes, STR Modifier recalculates. When Level changes, HP Max recalculates. You never update derived stats manually — they stay in sync automatically.

    1

    Add a Formula property to a group

    In the Universe, open the property group you want to extend (e.g. Combat Stats). Click + Add Property, name it (e.g. STR Modifier), and set the type to Formula.
    2

    Write the formula

    The formula editor accepts property names from the same group as variables, plus standard operators and a small set of math functions. Use the property name exactly as you defined it. Examples:
    STR Modifierfloor((STR - 10) / 2)
    AC (unarmored)10 + floor((DEX - 10) / 2)
    Spell Save DC8 + PROF + floor((INT - 10) / 2)
    HP MaxCON_base + Level * 8
    Carry WeightSTR * 15
    3

    Read the result on the entity sheet

    Formula properties are read-only on the entity sheet — you never set them directly. The value updates whenever any of its inputs change via an event. Hover the property value to see the formula and each input value that produced it.
    Formula properties can reference other Formula properties — STR_Mod can reference STR, and ATK_Bonus can reference STR_Mod. Circular references are rejected. Keep chains shallow (2–3 levels) so hover cards stay readable.

    Buffs and debuffs

    Temporary modifiers — Haste, Poison, a Blessing of the Goddess — are events with a duration. The modifier stays active and visible on hover cards and the Context Panel until you explicitly clear it with another event.

    1

    Record the buff as a Temporary event

    In the event editor, add an effect on your character. Before entering the value, toggle the modifier type from Permanent to Temporary. Enter the value (+20 Speed) and give it a label — Haste. Save.
    2

    See the active modifier

    Hover the character’s name in prose. The hover card now shows Speed: 60 (+20 from Haste). The Context Panel shows Active: Haste in the character’s modifier list. Multiple active buffs and debuffs appear as separate rows — each one shows its source event.
    3

    Clear the buff when it expires

    When Haste expires in the story, open the event editor and add an effect that removes the Haste modifier on your character. Speed returns to 40. The modifier row disappears from the hover card.
    Multiple temporary modifiers stack unless you remove one explicitly. Poison (−5 HP per round) and Haste (+20 Speed) are independent — both show in the hover card and Context Panel. Clear them separately when each expires in the story.
    Equipment stat grants are not temporary modifiers — they are active as long as the item is equipped, and they disappear when you unequip it. Temporary modifiers are for time-limited narrative effects: spells, poisons, blessings, rage, cursed states.

    Reference

    Glossary

    Entity
    A discrete, named, trackable thing in your story world — a character, location, item, monster, faction, skill. Built from a template, with its own property values and event history. Currently every entity in the Lexicon is a first-class individual.
    Template
    A reusable blueprint that defines the structure an entity takes when created. Specifies property groups, composition slots, and attachment groups. Not an entity itself — has no values.
    Property Group
    A named set of typed properties (Number, String, Formula, Boolean, Entity Link, Value Set). Defined once in the Universe, shared across templates.
    Event
    A recorded state change in the story world. Every event has a description, actor, event type, and one or more effects (property deltas on one or more entities).
    Event Type
    An organizational category for events, with color and icon coding used throughout the Timeline and event editor. Examples: Combat, Magic, Exploration, Social.
    Action
    A named narrative primitive that defines what can happen — the vocabulary of world-state changes. Actions can carry a delta pattern that pre-configures effect fields in the event editor. The LitRPG vocabulary pack seeds 14 actions with empty delta patterns; configure them to match your world’s property setup.
    Event Ledger
    A sequenced set of deltas — discrete records of every state change in the project. Each delta has a position in the timeline and can be edited, reordered, or deleted. Entity state is never stored directly — it is always computed by replaying ledger events in sequence order through the reducer.
    World-Time
    The in-world chronological position of an event (seq_order). Distinct from manuscript position — an event can happen at World-Time 3 but be written in chapter 12 as a flashback.
    Author Lens
    The default view mode. Sorts events by world time, includes all events including hidden backstory. Shows what actually happened in the world, regardless of what the reader knows yet.
    Reader Lens
    Filters events by manuscript position. Only events at or before the cursor position are included. Shows entity state from the reader’s perspective — what they would know at that point in the story.
    Lexicon
    The browsable catalog of all entities in the project. The place where entities live once created.
    Universe
    Where you define the rules of your world — templates, property groups, relationship types, progression tracks, event types, and actions.
    Composition Slot
    A typed position on a template that accepts entities from another template. Filling a slot merges the slotted entity’s property groups onto the source entity’s sheet. The merged data stays live — editing the slotted entity updates every host that has it in a slot.
    Attachment Group
    An Equipment or Inventory block added to a template. Equipment provides a set of named slots (Main Hand, Armor, Ring, etc.) that accept Attachable entities; filling a slot applies that entity’s stat grants to the host. Inventory provides a grid for Carriable items that are held but not equipped.
    Stat Grant
    A numeric bonus that flows from one entity to another through an equipment slot. Defined as a property on the slotted entity (e.g. a sword with +2 ATK). While the slot is filled the grant appears on the host entity’s sheet attributed to its source. Unequipping removes it immediately.
    Capability
    A label assigned to a template that declares what entities of that type can do. Five built-in capabilities: Active (can act on other entities), Attachable (can fill equipment slots), Carriable (can be picked up and carried), Fillable (can contain other entities), Traversable (is a location that can be entered). Each capability auto-provisions relevant properties on the template.
    Delta Pattern
    A pre-configured set of effect fields stored on an action. When you select an action in the event editor, its delta pattern pre-fills the effect type and target property so you only need to enter the value. Configured per-action in the Universe.
    Progression Track
    A sequence of named tiers that models advancement — XP leveling, reputation stages, weapon awakening ranks. Each tier can specify requirements (what should be true before advancing) and rewards (stat bonuses applied when you advance). Tracks are defined in the Universe and attached to templates. Advancement is always author-triggered.
    Temporary Modifier
    A time-limited stat effect applied via an event — a buff, debuff, poison, or blessing. Visible in hover cards and the Context Panel as an active modifier until explicitly cleared by another event. Distinct from permanent effects, which persist indefinitely, and from stat grants, which are tied to equipment slots.
    .weave file
    The single-file local project format. Everything in a project — manuscript, entities, event ledger, Universe — lives in one .weave file. Local-first, no account required.

    Questions not answered here? Join the Discord — Rob is there daily.

    Download for Mac (Apple Silicon)

    Free during alpha · No account required