Timeline

Retroactive Import

Retroactive Import lets Timeline backfill Chronicle entries from player advancement files in existing worlds.

TLDR
  • Runs once at server startup (when enabled).
  • Scans world/advancements/*.json.
  • Imports completed, visible advancements not already present.
  • Can optionally include recipe advancements.

How It Works

On server start:

  1. Timeline locates player advancement JSON files.
  2. For each player file, it checks completed criteria.
  3. It resolves matching displayable advancements.
  4. It writes imported events into Chronicle SavedData.
  5. It broadcasts updated Chronicle + Hall of Fame if anything was imported.

Duplicate Safety

Import is idempotent per (playerUuid, sourceId):

  • if the pair already exists in Chronicle data, it is skipped
  • repeated startups do not keep duplicating the same historical entries

Day Mapping Modes

retroactiveAdvancementImportMapByRealDays controls date placement:

  • true: maps wall-clock completion age to timeline day offset
  • false: places imported entries on current timeline day

Recipe Handling

retroactiveAdvancementImportIncludeRecipes:

  • false (recommended): ignores namespace:recipes/*
  • true: includes recipe advancements, which can add a lot of noise
DEEP DIVE: completion timestamp fallback

Timeline tries to compute completion time from criteria requirement groups. If a robust timestamp cannot be derived, it falls back to file modified time for safer import continuity.

Run phase

Retroactive import is a startup pipeline. It does not continuously watch advancement files during runtime.

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