This repository has been archived on 2026-01-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
SessionZero-Client/SessionZero/data.md

2.9 KiB

SessionZero Data

Datapack

Datapacks contain multiple Datasets as well as their DatasetObject Template files and other resource files

Datapack Archive File Structure

datapack_name/
├─ resources/
│  ├─ images/
│  ├─ audio/
├─ datasets/
│  ├─ dataset_name/
│  │  ├─ objects/
│  │  │  ├─ object_name.szo
│  │  ├─ dataset.meta
├─ templates/
│  ├─ template_name.sztl
├─ datapack.meta
├─ README.md
├─ icon.png

datapack.meta file

{
    "name": "SessionZero Core",
    "id": "sz_core",
    "uuid": "95c6d3c9-3213-4256-b3db-b004d0fb95b7",
    "version": "1.0.0",
    "compatible_systems": "sz_core, d20",
    "description": "SessionZero Core Datapack"
}

Dataset Metadata (dataset.meta) File Definition

  • The id field MUST be unique from other datasets listed withing the containing datapack
  • dataset_type is an arbitrary string that is used to identify what the general "type" of data the dataset contains
  • object_template is the template definition used for creating dataset objects. It must be present in the parent datapack's templates/ directory
{
    "name": "SessionZero Core Items",
    "id": "core_items",
    "icon": "icons/items_icon",
    "description": "A set of simple items",
    "dataset_type": "item",
    "object_template": "core_item"
}

DatasetObject Template File

  • Metadata fields required for data object templates:

    • template_type: must be data.
    • id: denotes the template's id; must be unique within the datapack.
    • uuid: can be left at 0, a uuid will be assigned when uploading to the SessionZeroDB.
    • version: must follow semantic versioning.
    • data_type: is an arbitrary value used to denote what kind of dataset type the template is for.
    • compatible_systems: is arbitrary and only reflects if the template can be used in a datapack according to its own compatible_systems value.
    • description
  • Supported Field Types for data template types:

    • text
    • textblock
    • bool
    • number
[metadata]
template_type = "data"
id = "core_item"
uuid = 0
version = "1.0.0"
data_type = "item"
compatible_systems = ["sz_core", "d20"]
description = """
Core SessionZero item template
"""

[name]
type = "text"

[description]
type = "textblock"

[consumable]
type = "bool"
default_value = false

# -- Stats group --
[stats.value]
type = "number"

[stats.weight]
type = "number"

[stats.modifiers.base]
type = "number"
default_value = 1

DatasetObject object (.szo file)

An instanced DatasetObject should only contain simple fields and values, no object references or formulas

{
  "Id": "",
  "Uuid": "0",
  "template_id": "core_item",
  "fields": {
    "name": "Excalibur",
    "description": null,
    "consumable": true,
    "stats": {
      "value": 10,
      "weight": 2,
      "modifiers": {
        "base": 5
      }
    }
  }
}