96 lines
4.2 KiB
Markdown
96 lines
4.2 KiB
Markdown
# SessionZero Design Doc
|
|
***© Bellsworne LLC 2025***
|
|
|
|
***Last modified by Christopher Bell on July 14th 2025***
|
|
|
|
## About SessionZero
|
|
|
|
SessionZero is a free and open-source TTRPG "companion" application for managing characters, templates, data, and game sessions. It allows you to utilize any TTRPG system by being **completely data-driven** with user-generated content.
|
|
|
|
## Features
|
|
|
|
SessionZero at its core is all about managing and creating data. Everything from sets of items or NPCs to characters themselves are all user-generated pieces of content that can be used throughout the application.
|
|
|
|
### Data Types
|
|
|
|
The client allows you to Create, View, Manage, Import & Export, and even Download various data types:
|
|
|
|
#### Datasets
|
|
Datasets are flexible collections of user-defined data, such as items, NPCs, or monsters.
|
|
- The type and content are completely arbitrary and user-defined.
|
|
- Datasets contain "entries" with custom fields and values.
|
|
- Entries can be linked throughout SessionZero, including in Character Templates.
|
|
|
|
#### Characters
|
|
Characters are made up of two parts: The **Template** and the **Character instance**.
|
|
|
|
##### Template
|
|
The template is the blueprint for a character sheet and is completely user-defined. It allows you to:
|
|
- Create sections with custom fields (e.g., text, numbers, booleans).
|
|
- Set default values for fields.
|
|
- Define calculated values using formulas.
|
|
- Reference entries from one or more Datasets.
|
|
- Create special list-based sections for things like inventories or spellbooks.
|
|
|
|
##### Character (Instance)
|
|
This is an instance of a character created from a template. You choose a template, fill in the values, and all calculated fields populate automatically.
|
|
|
|
### Game Sessions
|
|
|
|
SessionZero offers a simple yet robust system for managing game sessions. You can manage player characters, handle resources via datasets, use a turn tracker, and more.
|
|
|
|
The application supports several modes:
|
|
|
|
#### Default (Offline) Mode
|
|
By default, SessionZero works completely offline.
|
|
- You have total ownership over your locally stored session data.
|
|
- Manually manage characters for your players or use it for your own session notes.
|
|
|
|
#### Online Player
|
|
Connect to a SessionZero server to join sessions hosted by others.
|
|
- Access your character sheet, in-game chat, and session notes.
|
|
- All data updates in real-time.
|
|
- Keep private notes in your personal journal for each session.
|
|
|
|
#### Online Game Master
|
|
Host an online session and invite others to join.
|
|
- Set a character template for the session.
|
|
- Manage all session data (NPCs, items, etc.).
|
|
- Make real-time updates to character sheets.
|
|
- Use tools like in-game chat, commands, and a turn tracker.
|
|
|
|
### SessionZeroDB
|
|
|
|
SessionZeroDB is an online repository of user-created SZF data. When enabled, the application can automatically find and download required datasets and templates.
|
|
|
|
### SZF (SessionZero Format)
|
|
|
|
SessionZero uses a custom, human-readable data format called SZF for all data types. For more details, read the [SZF Docs](https://sessionzero.app/szf-docs.html).
|
|
|
|
## Philosophy
|
|
|
|
### Free
|
|
SessionZero is **FREE**. No account or subscription fees are required for the core application.
|
|
|
|
### Open Source
|
|
SessionZero is first and foremost **open-source software**. We believe in the right to see what's going on behind the scenes.
|
|
|
|
### Offline-First
|
|
By default, SessionZero works **completely offline**. Your data is stored locally on your machine. No account required. No phoning home.
|
|
|
|
### No BS
|
|
No AI chatbots, no ads, no bloat. We promise.
|
|
|
|
## Online Accounts & Server Connections
|
|
|
|
All SessionZero accounts are created and managed on the official SessionZero servers, which is always free.
|
|
|
|
For hosting and playing in online game sessions, the application lets you choose which server to connect to. This is where the self-host option comes in:
|
|
|
|
* **Self-Hosted Server (Free):** Host our open-source server backend yourself. This allows you to create and join online sessions without a subscription.
|
|
* **Official Session Servers (Subscription):** For convenience, connect to the official SessionZero servers. Access for hosting and joining sessions requires a monthly subscription.
|
|
|
|
## Technical Details
|
|
- **Client:** Avalonia C#
|
|
- **Server:** ASP.NET, PostgreSQL
|