Skip to content

System

An installed game system — the ruleset that defines what content looks like.

A System is the top-level container in the app. It does not hold content itself; it describes it. The installed system directory (see dataURL) supplies the entity definitions, forms, views, filters, themes, icons, fonts, localizations and migration scripts that drive the entire UI, so adding a content type is a system change rather than a code change.

Exactly one system is primary at a time; SystemManager loads it at launch and caches every definition it contains. Systems are installed from .system archives or downloaded as a Package.

  • "dnd5e" — D&D 5th Edition

  • "generic" — the system-agnostic default

  • SeeAlso: Module, Campaign, Package

View JSON Schema

Property Type Required Description
id string Yes The unique identifier for this system. Unlike most models this is an author-chosen, stable, lowercase slug rather than a UUID. It serves as the Realm primary key, names the system’s directory on disk, and is the value stored in the system field of every Entity, Module and Campaign.
Examples: "dnd5e"; "pf2e"
name string Yes The display name of the system. The full human-readable title shown in the system browser and settings.
Examples: "Dungeons & Dragons 5th Edition"
version string Yes The system’s own content version. Set by the system author. Entities record the version they were authored against in their systemVersion field, and the JavaScript migrations under migrations/ are run to bring older entities up to this version.
Format: Semantic versioning: "1.2.3" SeeAlso: migrations, migrateData(realm:)
descr string No The full description of the system. Contains the author’s overview of what the system covers. Displayed in detail views.
shortDescr string No A condensed one-line description of the system. A brief summary used where the full descr is too long, such as list rows and cards.
author string No The author or publisher of the system.
Examples: "Encounter+ Dev Team"
shortName string No An abbreviated name for the system. Used where the full name does not fit, such as sidebar labels and compact headers.
Examples: "D&D 5e"; "Generic"
website string No The system’s homepage. An absolute URL string pointing to the product page, author’s site, or documentation.
repository string No The source repository hosting the system. An absolute URL string, typically to a Git repository the system is developed in.
Examples: "https://github.com/example/dnd5e-system"
package string No The package manifest this system was installed from. An absolute URL string pointing to the JSON manifest describing the system and its downloadable versions. Used to check for and install updates. SeeAlso: Package, packageURL
image string No The file path to the system’s cover image. The main visual asset shown for the system in the system browser. Note: Relative file paths are resolved against the system’s dataURL.
Examples: "cover.jpg"
banner string No The file path to the system’s banner image. A wide image used as a header behind the system’s title. Note: Relative file paths are resolved against the system’s dataURL.
Typical Specifications: Wide aspect ratio (roughly 3:1); At least 1200 pixels wide
data Object No Flexible JSON storage for system-specific or arbitrary structured data. Stores author-defined metadata that does not fit the standard schema.
attributes Object Yes Dynamic attribute storage supporting various data types. A flexible key-value store for attributes and properties that need to be queryable or frequently accessed. Supports multiple data types through RealmAny.