Timeline

Data Storage

Timeline persists Chronicle state using world SavedData and synchronizes runtime views via network payloads.

TLDR
  • SavedData id: rpgtimeline_chronicle
  • Stores Chronicle events + per-goal progress map
  • Client receives timeline/Hall snapshots through payload sync

Persistent Server Data

Chronicle SavedData stores:

  • Events list
  • GoalProgress map

Each event record includes:

  • Id
  • Type (ADVANCEMENT, WORLD_FIRST, ADMIN_NOTE output types in views)
  • Scope (SERVER / PERSONAL)
  • DayIndex
  • Title
  • Details
  • ActorName
  • ActorUuid
  • SourceId
  • IconItemId

Conceptual event shape:

JSON
{
  "Id": "uuid-string",
  "Type": "ADVANCEMENT",
  "Scope": "PERSONAL",
  "DayIndex": 742,
  "Title": "...",
  "Details": "...",
  "ActorName": "PlayerName",
  "ActorUuid": "player-uuid",
  "SourceId": "minecraft:end/kill_dragon",
  "IconItemId": "minecraft:dragon_egg"
}

Network Sync Model

Primary payload groups:

  • calendar/settings sync
  • chronicle timeline sync (server + personal + timeframes)
  • Hall of Fame sync and per-player detail sync

Client caches these payloads and renders without re-querying every frame.

Debug Command Note

A synthetic event injector command exists in source (/rpgtimeline_debug ...) but is disabled by default (ENABLED = false).

DEEP DIVE: storage path

The SavedData object is attached to overworld data storage under rpgtimeline_chronicle (serialized in world data files). Treat this as world state, not per-player client config.

Support This Project

Like this wiki and these mods?

Every bit of support helps me keep building features, writing docs, and shipping updates.

Back to top