Skip to content

Syntax

DataSheetLang specs are written in YAML. A spec file contains:

  • A required spec header
  • Optional presets
  • One or more entity sections (items, equipment, itemStrings)

If you want “what fields exist”, see Entities.

Minimal spec:

spec:
version: "1.0"

Typical spec:

spec:
version: "1.0"
presets:
items: { }
equipment: { }
itemStrings: { }
items:
create: [ ]
update: [ ]
delete: [ ]
  • spec.version — currently "1.0"
  • presets
  • items, equipment, itemStrings
items:
create:
- id: 99001
name: "training_sword"
level: 1
items:
update:
- id: 99001
preset: some_preset # optional
changes:
level: 10
buyPrice: 250
items:
delete:
- 99001
- 99002

Presets are defined under presets.<entity> and referenced with preset:.

  • Presets can extends: another preset (single inheritance)
  • Presets merge via null-coalescing (child ?? parent)
  • Lists replace by default

Full details: Presets

Items can include an equipment: block which expands into related equipment changes.

Common pattern:

items:
create:
- id: 99001
name: "iron_sword"
level: 60
equipment:
computed: true
compute:
formula: "standard"

Full details: Equipment computation

Items can include a strings: block to define display name / tooltip.

items:
create:
- id: 99001
name: "iron_sword"
strings:
name: "Iron Sword"
toolTip: "A basic training weapon."
  • YAML supports inline lists ([a, b]) and multi-line lists
  • Strings can be quoted or unquoted (quotes recommended for safety)
  • Numbers should be written as numbers (no quotes) unless explicitly required

Specs are validated before applying:

  • required fields present
  • supported entity sections and operations
  • preset resolution succeeds (no cycles, depth limits)
  • values fit expected types / ranges

When validation fails, you’ll get an error code.