- Add an
{apworld}.toml
file in theindex/
directory. The name of the file MUST match the apworld name. So forA link to the Past
which apworld isalttp
, you would create a file namedalttp.toml
. - In the
toml
file, add a name,name = "A Link to the Past
. That name MUST match the world name. If you're unsure what that means, it's the name used in your YAML. - If the
name
field is nondescriptive or "ugly", add adisplay_name
field with a pretty name. This especially useful for manuals where the name isManual_{game}_{author}
. In that case, add adisplay_name
with"Manual: {game}"
. - Add a
home
field if applicable. In order of preference, it should contain a link to the discord thread, the github repo, any other webpage where the apworld might live. If there's none (i.e you made this apworld and it's not publically available anywhere else, omit the field). - Add a
[versions]
section, one version per line. It should look something like this:"{version}" = { src }
. Read the following sections to understand what that means.
Each version MUST be valid semver. It doesn't matter if the apworld doesn't respect semver or doesn't even have a version that would be valid. We use this to make sure versions can be ordered. If necessary, be creative with your version number.
For example, if an apworld has a release for a version 0.8
, you'd specify version 0.8.0
as the version the index.
If an apworld doesn't specify a version, as is usually the case with manuals, invent one. I tend to count the number of releases in the discord channel and name it 0.0.X
.
It's not always feasible though because of discord UX choices regarding search. It's fine to just go with 0.0.1
. When updating those apworlds, just increment the version number.
The index supports two different source types, url
and local
.
When possible, one should prefer url
to avoid bloating the repo with apworlds.
Examples:
-
The apworld is released on github and has a direct download link to the apworld in the release:
"0.1.0" = { url = "https://github.com/foo/bar/releases/0.1.0/download/foo.apworld" }
-
The apworld is only distributed on some discord channel or the release on github doesn't distribute the apworld. You would need to copy the apworld to the
apworlds
folder of the repository as{apworld}-{version}.apworld
"0.1.0" = { local = "../apworlds/foo-0.1.0.apworld" }
When the author uses tags that are semver compatible, it's possible to add a default_url
field instead in the global scope of the toml like this:
default_url = "https://github.com/foo/bar/releases/{{version}}/download/foo.apworld
and to specify versions like this: "0.1.0" = {}
.
This makes it easier to update and can be used to automatically fetch newer versions so it's the prefered way of doing things.
- The apworld must not be banned on the archipelago server for copyright reasons
- The apworld must not contain big unknown binary blobs that we cannot trace back to trusted sources
- The apworld must not contain obvious flaws that will make life difficult for anyone trying to generate large multiworlds. That includes direct usage of the random module, obvious logic flaws, test failures that are deemed problematic...
- The apworld must not make any use of a remote resource during generation.