Seeds are zip containers. Individual files may be compressed using zstd.
Files in [brackets] are optional
├── format_version.txt
├── preload.json
├── assembly.json
├── [seedgen_info.json]
├── [seedgen_log.txt]
└── [assets/*]
Consumer: All
Contains the semantic version for the seed format in plaintext. Versions are considered compatible if their left-most non-zero component is the same. Contains 0.0.0
until the seed format is developed.
Consumer: Client
Contains necessary information while preloading in the main menu.
{
tags: string[], // May be displayed as brief summary of the settings
spawn: { // For preloading before starting the savefile
x: number, // f32
y: number, // f32
},
slug: string, // Identical for seeds with the same universe settings (including seed)
}
Consumer: Client
Contains the compiled seedgen output that makes up the seed. Currently in JSON, although it's somewhat annoying to store assembly instructions in JSON. A binary format might be more pleasant to work with, maybe msgpack or a custom spec.
See Assembly
in wotw_seedgen_seed for the format
Consumer: Seedgen
Contains necessary information to perform a reach check.
{
universe_settings: {}, // May change at will
world_index: number, // u32
spawn_identifier: string, // areas.wotw identifier for spawn
}
Consumer: Developer
Contains the detailed log of the seed generation process for debugging purposes.
Consumer: Client
The assembly may reference assets by path. These assets are contained at assets/<path>