So, you wanna play Archipelago but you’re confused by all the words like “YAML” and “async”
and the thought of asking another person to guide you through it leaves you with a crippling
anxiety at the sheer concept of being a burden on someone else so you just quietly watch from
the side of the room until you can manage to pick it up out of osmosis?
Well, this is the video for you!
First off, this is going to assume you have a notion of what Archipelago even is. If you don’t
check this video in the corner to view a brief explanation. But basically, you take a bunch of
video games, put all their items in a blender, and then everyone takes a swig.
A single “game” of Archipelago is often called a “seed”, named after the random seed that is
used with each player’s options to generate that particular combination of things. A seed has
some number of “slots”, referring to a particular run of a particular game. You can think of these
slots as “players” although nothing is stopping someone from piloting multiple slots in the same
seed. You can even play every single game in Archipelago all alone if you want! (Hahaha who
would ever do such a thing please click subscribe I swear I’ll have the videos edited at some
point–). There’s no realistic limit on the number of slots in a seed, and any game can be in the
seed as many times as you want. If you have fourteen friends and you all want to play Zork
Grand Inquisitor then go on, live your best life.
Archipelago is a website, and also a program you can install. Some of the things can be done
on the website, but it can all be done with the program if you want to, so if anything ever
happens to the website you’re never left unable to play. Running things on your own computer is
what’s called “local”, while the website is referred to as “remote”. There are three main parts of
running an Archipelago game: Generation, Hosting, and Playing. Generation can be done
locally, or on the website, but only for supported games. Supported games are games that are
vetted by the community and have some mild guarantee of continued support through future
Archipelago updates, but there are tons of unsupported games that are still completely playable.
We’ll get to those in a minute. Hosting a game can be done locally, or on the website, even if it
contains unsupported games. Playing a game is something you’d do locally because seriously
what would be the point of having the website play your game for you that’s why you’re here
isn’t it?
We’ll be going through these three parts in order, but if you’re just interested in one of them, feel
free to check out the timecodes in the description or on screen and skip ahead.
Archipelago Installation
The Archipelago website doesn’t have a direct download page. This is intentional, both to save
on server bandwidth and to direct people towards the github where they can be provided with a
bunch of resources all at once. You can get there from the website by scrolling down and
clicking the “Source Code” link. This will take you to the github page, where you can find the
latest stable release on the right side, under “Releases”. If you haven’t been directly told to
install a specific version by whoever is administrating your Archipelago Seed, you will most likely
want to grab the latest release. Scroll down to the bottom of the changelog, and click the version
for your operating system. In this case, a Windows user would click on the Windows executable.
I only have access to a Windows machine for the sake of recording this tutorial, but if you’re on
Linux, chances are you don’t need a tutorial in the first place, and if you’re on Mac, then your
soul is already tainted and you will never reach the kingdom of heaven.
Simply run the installer from your downloads, accept the license agreement blindly without
reading it, and decide whether or not you want to include the currently last remaining install-time
optional module for some additional Link to the Past sprites, then click next. Be careful checking
“Create a desktop shortcut” because there’s like fifty applications in this and that’s a lot of
shortcuts.
This is going to install to C:\ProgramData\Archipelago, which you might not be able to see on
Windows depending on your settings. If you don’t see the ProgramData folder, Go in to View ->
Hidden Items, and check the box. This is going to be referred to as the “Archipelago Directory”
in the future. You can also open it by searching for “Archipelago Launcher” in your start menu
and selecting “Browse Files” from the left side panel.
APWorld Installation
If you intend to play solely with supported games, for an easier setup time, feel free to skip
ahead, but installing an unsupported world, known as an “AP World” is actually incredibly simple
and you shouldn’t be intimidated by it. The only major downsides is that it forces you to
generate the game locally and doesn’t have a fancy web page for determining options, but
those’ll be covered in the next section anyway so it won’t be so bad. The first step in installing
an unsupported game is to find the apworld download. This will be in a single file with the
extension .apworld, which might be provided to you by whoever is running your Archipelago
Seed, or you could find one on the Archipelago discord in that game’s development thread.
There’s a handy website - multiworld.news that has a list of every playable apworld and links to
download.
Once you have your apworld file, you can install it through the launcher by clicking “Install
APWorld” and navigating to your downloaded file, or manually by adding it to your Archipelago
install directory under the custom_worlds folder. Once it’s installed, restart the launcher, and
you’ll be able to generate games with it, open its client (if it has one), and generate template
options for it.
Generation
In order to join an Archipelago Seed, it first must exist. This is where generation comes in. The
very first thing you’ll need to do is decide who is playing and what games they will be playing.
Gather up any number of friends (Note: Obtaining friends is out of scope of this tutorial.) and
have everyone pick the games they want. Once everyone knows what game (or games!) they’re
playing, you will need to generate an options file for each. These files have the extension .yaml,
and are thus sometimes called “Settings YAMLs” or just “YAMLs”. If the game you want to play
is supported, you can go to the web page, go to “Supported Games”, find your game, and click
“Options Page”. These are different for each game, but most games have reasonable defaults
so if you don’t know what an option does, leaving it unchanged is usually your best bet. From
there, just hit “Export Options” to download the YAML file.
If the game is unsupported, or you want more control over the settings, you can edit the yaml
file manually. This allows for some pretty fancy mechanics like randomizing the options
themselves! For the sake of being an intro video, advanced yaml settings are not going to be
discussed here, but a link will be provided in the description with more information if you’re
interested (oh and hey look you’ll be passing right by the subscribe button while you’re going
down there just saying)
In the Archipelago Launcher, click on “Generate Template YAMLs” and you’ll be brought to a
folder that contains a default options file for every game you currently have installed, even
unsupported ones. Open this file in a text editor and you’ll see the same options the web page
gives you access to, complete with comments explaining each option. Make sure to change
your name at the top to whatever you want.
When it comes to defining a choice for the option, these are in the format of “Option, colon,
weighted chance”, so in the case of numerical options, the number on the left is the one you
want to actually pick, and on the right is the weighted chance. For example, here, if you wanted
to change the “Advancements Goal” value from 40 to 20, you’d change it from “40: 50” to “20:
50”.
Note that, unless you actually have values after the colon for multiple options, every number
that isn’t 0 is basically the same thing. Imagine this is how many bingo balls with this option
value written on it and you put them all in that big mesh rolly thingy and then draw one out at
random.
Once each player has an Options YAML, you’ll want to give all the files to the Seed Roller so
they have them all in one place. If you’re watching this section, that’s probably you. If every
game involved is supported, you can generate on the website by clicking “Start Playing”,
“Generate a Randomized Game”, enter the options as you’d like, hit upload, and select all of the
YAMLs and upload them. If everyone set up their YAMLs properly, you should be taken to a
screen showing a successful generation! We’ll pick up with the next step in the next section,
“Hosting”. For now, let’s talk about local generation.
The generation settings from the website screen can be found in another YAML file, this time
called host.yaml in your Archipelago Installation directory. You can also click “Open host.yaml”
from the launcher to open it directly. Once you’ve got your settings tweaked to your liking, move
all of your player option files into the “Players” directory of your Archipelago installation, then
open the Archipelago Launcher and hit “Generate”. If everyone’s set up their Options YAMLs
properly, you should see a command window pop up briefly and then close itself. Check inside
the “output” directory of your Archipelago Installation and if you see a zip file, the generation
was a success.
Hosting
The Zip file generated by a local generation will contain the Archipelago Server file, a spoiler log
if it was enabled that lists where every item is, and any slot-specific downloads such as ROM
patches or mods. If you generated locally, you’ll need to send these files to the players for those
slots, since the website will not be able to give you a download link like you would for games
generated on the website.
To host locally, you can either open the Archipelago Launcher, click “Host”, then navigate to the
zip file from your generation, or the .archipelago file extracted from it. This will host the game on
your machine using the port specified in your host.yaml file. If you are intending for other people
to join this game, you’ll need to forward that port to prevent traffic on it being blocked, which is
out of scope for this tutorial. If you don’t already know how to port forward, chances are you’re
going to want the website to host it instead, so let’s spend time working on that.
Go to the Archipelago website, click on “Start Playing”, then “host a pre-generated game”.
Upload either your Zip file or the .archipelago file from within it.
It is here that we rejoin with the website generators from the last section. Hello! Now, you’ll be
seeing a screen showing your seed’s status, a download link for the spoiler log if there is one,
and a button to “Create a new room”. This will host your seed and allow people to connect to it!
Note, you can create multiple rooms from the same seed, which could be used for races, to
have multiple groups of players playing the exact same random seed.
The next page is your seed’s Room. This is where you’ll find the connection information, which
will contain the port number needed to connect, and some other useful amenities like a console
and a tracker link. Keep this URL around! Anyone can access this page, but only you can use
the server console, so send the URL to all your players. If the room goes long enough without
anyone sending an item, it’ll go to sleep, and someone will need to open that URL to wake it
back up. If this happens, there’s a chance your old port was in use and it’ll have to be changed
so double check the port!
If you generated the game on the website, you might see download links for some games. This
will give you a ROM patch or mod file you’ll need to play the game.
Playing
Okay, this is probably what you’re here for, and I’ve cleverly hidden it at the end of the video in
order to increase viewer retention and you’ve fallen for it! Unless you just clicked ahead in which
case, well played.
The good news - this is the last step before you get to run around and collect your pokeymans
or shoot your meetroids or whatever. Bad news - it’s also the one that’s got the most different
ways to do it. Every game has different steps for installing the mods and connecting, but we’re
gonna first go through how to find out how to do this part, and go over some of the most
common cases.
If the game is on the website, then there’s going to be a guide walking you through getting set
up. Go into “Supported Games”, find your game in the list, then click on “Setup Guides”. This
will take you to a page where you can find guides for your game, possibly even in multiple
languages but if english isn’t your first language I don’t think you’ll have made it this far because
I talk really fast and that’s not very helpf–
This guide will often include links to any required mods or mod loaders, as well as installation
instructions. We do a good job here of making sure these are readable, so it should be fairly
simple. If you could follow this mess of a video these documents should be no trouble at all.
Still, if you want to see the setup process, there are a few similarities between games. The
following section is just gonna have a big ol’ “In General” asterisk over the whole thing, please
consult your individual game’s guide before trying to connect.
If your game is a ROM, the usual process is to take the patch file that’s generated with the seed
(either downloaded from the room or provided by your seed roller) and double-clicking it. It
should then launch Archipelago, ask you for the location of the original unmodified ROM if you
haven’t ever run this type of patch before, then generate the patched ROM and load up the
game’s client. If you’ve got an emulator installed that’s associated with that console’s file type, it
might even open that as well. If it’s a really fancy patch, it might even open up the lua console
and execute the connector script, but if it doesn’t we’ll get to that in a minute.
This window here is the generic Archipelago Client, and most games that have an external client
will look pretty much like this. URL at the top, command line in the bottom, whole buncha info in
the middle. You can either enter in the URL at the top and hit connect, or copy the /connect
command from the Room page into the command line and submit it. You can also do
commands like !hint and !ready.
For more modern games with modding support, the client is usually “built in” to the game
through the installation of a mod. This combines that Archipelago Client into the game’s mod
itself, and you would usually connect and interface with it through the in-game chat client or
through a developer console. Connecting through one of these is the most unique per-game,
you’ll have to check your game’s setup guides to see specifically how. There might be a UI
window, or somewhere in the options, or a command string you need to type in somewhere.
Useful Commands and Terminology
When connected, through your client, you’ll be able to send commands to view or modify things
in your Multiworld. When it comes to running commands, things with a slash are things that only
affect you, things with an exclamation point are things that affect multiple people. We’ve already
covered /connect which lets you connect to a Server, and there’s a corresponding /disconnect.
/items and /locations show a list of the current items and locations for your game. This can be
useful if you want to hint for something but can’t quite remember the exact name of it. There
might also be some client-specific commands that you can find by using /help.
The most common server commands you are going to use are hints. You can use !hint followed
by an item name to learn where that item is in the Multiworld. This can help you get un-stuck if
you’re waiting for a specific item to progress. Likewise, you can do !hint_location with a location
name to find out what item is at that location, in case there is a very out of the way check you
only want to bother with if it contains something vital.
Both of these use “Hint Points”, which you will accumulate over the course of the run. The
default settings allow for one hint point per collected check, with one hint costing ten percent of
your game’s total available points. This means you can have at most ten hints in a run, although
one of those hints will require you to have collected literally every check in the game, so
realistically, you will have nine.
There are also two commands that might be configured to run automatically on completion, or
even disabled entirely: !release and !collect. !release will mark every location in your game as
“checked” and send out all items still remaining. !collect will mark any locations in everyone
else’s game that has one of your items as collected, so you’ll get every remaining item for your
game. Note, this can sometimes be a bit undesired, games like Minecraft might use the amount
of checks collected as a way of gating progress, and collection might give players access to
their goal significantly earlier than expected. Make sure to ask your play group before doing a
collect to see if anyone would prefer you didn’t.
Conclusion
That should be everything you need to know to get started. If you’re planning on playing
Archipelago, I highly recommend joining the Discord server linked in the description, you can
find updates on new games, join groups to find players, and get game-specific technical help if
the setup guides aren’t enough. If you want to see what it looks like to play Archipelago, check
out my current run of every supported Archipelago game at the time here, but otherwise I will
see you in the discord, but before I go I will leave you all with this life advice: Play vanilla, then
play solo, then play multiworld. Don’t make me tap the sign.
Good night everybody!