Adds support for a manifest file (archipelago.json) inside an .apworld file. It tells AP the game, minimum core version (optional field), maximum core version (optional field), its own version (used to determine which file to prefer to load only currently) The file itself is marked as required starting with core 0.7.0, prior, just a warning is printed, with error trace. Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: qwint <qwint.42@gmail.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
1.9 KiB
apworld Specification
Archipelago depends on worlds to provide game-specific details like items, locations and output generation.
Those are located in the worlds/ folder (source) or <install dir>/lib/worlds/ (when installed).
See world api.md for details.
apworld provides a way to package and ship a world that is not part of the main distribution by placing a *.apworld
file into the worlds folder.
Warning: apworlds have to be all lower case, otherwise they raise a bogus Exception when trying to import in frozen python 3.10+!
File Format
apworld files are zip archives, all lower case, with the file ending .apworld.
The zip has to contain a folder with the same name as the zip, case-sensitive, that contains what would normally be in
the world's folder in worlds/. I.e. worlds/ror2.apworld containing ror2/__init__.py.
Metadata
Metadata about the apworld is defined in an archipelago.json file inside the zip archive.
The current format version has at minimum:
{
"version": 6,
"compatible_version": 5,
"game": "Game Name"
}
with the following optional version fields using the format "1.0.0" to represent major.minor.build:
minimum_ap_versionandmaximum_ap_version- which if present will each be compared against the current Archipelago version respectively to filter those files from being loadedworld_version- an arbitrary version for that world in order to only load the newest valid world. An apworld without a world_version is always treated as older than one with a version
Extra Data
The zip can contain arbitrary files in addition what was specified above.
Caveats
Imports from other files inside the apworld have to use relative imports. e.g. from .options import MyGameOptions
Imports from AP base have to use absolute imports, e.g. from Options import Toggle or
from worlds.AutoWorld import World