Character Sheets
Character sheets are one of the most time-consuming things to build for any fiction project that cares about structured character data. TTRPG authors need printable sheets. Novel authors often want character cards for their own reference. Setting book authors need standardized sheets for every NPC. The default workflow is to design the sheet in an external tool (Photoshop, InDesign, Google Sheets, a purpose-built tool like Roll20), then copy character data into it by hand, then hope you never need to change the design. Ishvana’s Character Sheet Designer is an agent-driven alternative. You describe the sheet you want in natural language, the designer generates a CSS Grid layout with appropriately-typed components, you refine it with feedback, and the resulting sheet is linked to your Legendry entries so character data auto-populates. Build the layout once, use it for every character in your project, keep the design editable if your system evolves.
The Designer lives inside the Visual Studio module as a dedicated workspace. It’s a different feature from the Visual Gallery — both are in Visual Studio but they’re independent. The Gallery stores images. The Designer builds character sheet forms.
The three phases
Section titled “The three phases”Character Sheet Designer workflows run through three distinct phases: Describe, Preview, and Use. You move through them in order for each new sheet you’re building.
Describe
Section titled “Describe”You describe the sheet you want in natural language. Either type a prompt from scratch or pick from the built-in system presets (D&D 5e, Pathfinder 2e, Cyberpunk RED, Call of Cthulhu 7e, Vampire: The Masquerade 5e).
Example prompts that work:
- “A D&D 5e character sheet with the six ability scores, skills, saving throws, and inventory.”
- “A cyberpunk-style sheet with stats, cyberware load, humanity, and a portrait.”
- “A narrative-focused character sheet for a romance novel — mostly biographical fields with a small stats section.”
- “A character sheet for Welcome to Tikor using the Swordsfall d10 system.”
The presets are shortcuts. Picking D&D 5e is equivalent to typing a detailed D&D prompt, just faster. You can also use the preset’s prompt as a starting point and edit it before generating.
Click Generate and Hawken (the agent behind the designer) reads your prompt plus any context from your active ruleset (if you have one in the Magic System) and produces a complete sheet layout as a structured JSON schema. The generation takes a few seconds.
Preview
Section titled “Preview”The generated layout appears in the Preview phase as a read-only rendering of what the sheet will look like when filled in. Component types include:
- Stat block components — vertical or horizontal stat displays with automatic modifier calculation.
- Labeled lists — dynamic add-remove lists for skills, inventory, spells.
- Large textareas — multiline fields for backstory, notes, appearance.
- Image slots — portrait or asset upload areas.
- Table grids — structured tables with headers and rows.
- Two-column and three-column layout containers — grouping related fields.
- Header groups — top-of-sheet fields like name, class, level.
The layout uses CSS Grid, so components are positioned in named grid areas and the whole thing is responsive. Looks good on screen and prints cleanly too.
If the preview looks right, move to the Use phase. If it doesn’t, request refinements.
Refinement loop
Section titled “Refinement loop”From Preview, you can request changes in natural language. “Add a spell list section to the right side.” “Make the stat blocks horizontal instead of vertical.” “Remove the portrait slot.” “Add a ten-field skills grid.”
Each refinement sends the current layout JSON plus your feedback to Hawken, who produces a refined version. The refinement replaces the previous layout. The Designer tracks every refinement as design history so you can see the sequence of changes and, if needed, revert to an earlier version of the layout.
Refine as many times as it takes to get the sheet right. There’s no cost to iteration beyond LLM tokens — each refinement is a generation request, so it takes a few seconds and uses some tokens, but the math is tiny compared to what you’d spend designing a sheet by hand.
Once the layout is right, click Use This Layout and the sheet enters the Use phase. All inputs become editable. You can fill in actual character data — name, stats, skills, notes, portrait, everything.
Filling in data is just typing (and clicking and dragging for some fields). The sheet saves as a character sheet instance when you click Save — this creates a persistent JSON file in data/character_sheets/ that stores the filled data alongside the layout schema.
Once saved, the sheet is in your project. You can reopen, edit, export, or print it. The layout can also be reused for other characters — save it as a template and you can generate new sheets from the same template with different data.
Linking to lore entries
Section titled “Linking to lore entries”The most valuable feature of character sheets in Ishvana is the link back to your Legendry. When you launch a new sheet from a character’s Legendry entry, or link an existing sheet to an entry after the fact, the sheet becomes bidirectionally tied to the entry:
- Pre-fill from the entry. On load, the sheet reads the entry’s stat block (if one exists) and pre-populates any matching fields. Character name, aliases, tags, summary, and every stat value come from the entry automatically. You don’t retype anything.
- Sync back to the stat block. When you edit stat values on the sheet and save, the changes write back to the entry’s stat block. So if you’re using the sheet as your primary character data interface — at a gaming table, during a writing session, while iterating on a character — every change you make syncs to the canonical lore entry.
This sync is what makes Ishvana’s character sheets competitive with dedicated TTRPG tools. You’re not maintaining two copies of character data (one in your lore database, one in your character sheet). You’re maintaining one copy that has two views.
The nine component types
Section titled “The nine component types”For reference, the full component library the Designer can use:
| Component | What it is | Typical use |
|---|---|---|
| header_group | Row of labeled text inputs | Name, class, level, race |
| stat_block_vertical | Vertical stat boxes with modifiers | D&D-style ability scores |
| stat_block_horizontal | Compact horizontal stat row | Compact stat displays |
| labeled_list | Dynamic add/remove list items | Skills, inventory, spells |
| large_textarea | Multiline text area | Backstory, notes, appearance |
| image_slot | Portrait/asset upload | Character portrait |
| table_grid | Table with headers and rows | Spell tables, weapon tables |
| two_column | Two-column layout container | Grouping paired fields |
| three_column | Three-column layout container | Grouping triple fields |
Stat block components support four modifier formulas that auto-calculate derived values:
- dnd —
(value - 10) / 2for D&D-style ability modifiers. - half —
value / 2for Call of Cthulhu half-values. - fifth —
value / 5for Call of Cthulhu fifth-values. - none — no modifier calculation.
Modifiers compute live as the user types into the stat value fields.
Templates and reuse
Section titled “Templates and reuse”A sheet layout can be saved as a template from the Preview or Use phases. Templates are reusable — you use them as a starting point for new characters in the same system. Templates are distinct from filled sheets:
- A template is a layout only. No character data. Save one per system (e.g., “D&D 5e Template,” “Swordsfall d10 Template”).
- A sheet is a template + character data. Save one per character.
When you create a new sheet, you can either generate a new layout from scratch (Describe phase) or pick a template and go straight to the Use phase. Starting from a template is faster if you’ve already built a layout for your system.
Per-sheet instances
Section titled “Per-sheet instances”Every character in your project can have their own sheet instance. The sheets are stored as flat JSON files in data/character_sheets/ (keyed by sheet ID) — not in SQLite — for simplicity and portability.
Multiple sheets per character are allowed. A character might have a “Default” sheet showing their main state and a “Combat Variant” sheet showing their transformed or combat-mode state. You can switch between them or maintain both.
Printing and export
Section titled “Printing and export”Sheets can be printed directly from the Designer. The print view strips the UI chrome and renders the sheet layout clean — no toolbar, no sidebar, just the character sheet as a printable document. The print CSS is tuned for letter and A4 paper sizes and handles multi-page sheets if the content overflows.
Sheets can also be exported to PDF via the print dialog’s “Save as PDF” option, or to PNG via a screenshot action in the toolbar.
What the Designer isn’t
Section titled “What the Designer isn’t”- Not a page layout tool. It’s specifically for character sheets. Other kinds of printable content (maps, timelines, genealogies) would need a different tool.
- Not a spreadsheet. You can have stat blocks and derived values, but complex formulas with multiple dependencies are better handled by the Magic System’s ruleset engine, which the sheet just displays.
- Not a replacement for professional layout. If you’re publishing a setting book with professional typography, Ishvana’s character sheets are good enough for draft work but the final book would still go through InDesign or similar.
- Not cloud-collaborative. Sheets are local. Two users can’t edit the same sheet simultaneously.