201 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Archipelago Setup Guide
 | 
						|
 | 
						|
This guide is intended to provide an overview of how to:
 | 
						|
- Install, set up, and run the Archipelago multiworld software
 | 
						|
- Generate and host multiworlds
 | 
						|
- Connect to the multiworld after hosting has begun
 | 
						|
 | 
						|
This is a general overview. For more specific steps, reference the relevant game's [setup guide](/tutorial).
 | 
						|
 | 
						|
Some steps also assume use of Windows, so may vary with your OS.
 | 
						|
 | 
						|
## Installing the Archipelago software
 | 
						|
 | 
						|
The most recent public release of Archipelago can be found on the GitHub Releases page:
 | 
						|
[Archipelago Releases Page](https://github.com/ArchipelagoMW/Archipelago/releases).
 | 
						|
 | 
						|
Run the exe file, and after accepting the license agreement you will be asked which components you would like to
 | 
						|
install.
 | 
						|
 | 
						|
The generator allows you to generate multiworld games on your computer. The ROM setups are required if anyone in the
 | 
						|
game that you generate wants to play any of those games as they are needed to generate the relevant patch files. If you
 | 
						|
do not own the game, uncheck the relevant box. If you gain the game later, the installer can be run again to install and
 | 
						|
set up new components.
 | 
						|
 | 
						|
The server will allow you to host the multiworld on your machine. Hosting on your machine requires forwarding the port
 | 
						|
you are hosting on. The default port for Archipelago is `38281`. If you are unsure how to do this there are plenty of
 | 
						|
other guides on the internet that will be more suited to your hardware.
 | 
						|
 | 
						|
The `Clients` are what are used to connect your game to the multiworld. If the game you plan to play is available
 | 
						|
here, go ahead and install its client as well. If the game you choose to play is supported by Archipelago but not listed
 | 
						|
in the installation, check the setup guide for that game. Installing a client for a ROM based game requires you to have
 | 
						|
a legally obtained ROM for that game as well.
 | 
						|
 | 
						|
## Generating a game
 | 
						|
 | 
						|
### What is a YAML?
 | 
						|
 | 
						|
YAML is the file format which Archipelago uses in order to configure a player's world. It allows you to dictate which
 | 
						|
game you will be playing as well as the settings you would like for that game.
 | 
						|
 | 
						|
YAML is a format very similar to JSON however it is made to be more human-readable. If you are ever unsure of the
 | 
						|
validity of your YAML file you may check the file by uploading it to the check page on the Archipelago website:
 | 
						|
[YAML Validation Page](/check)
 | 
						|
 | 
						|
### Creating a YAML
 | 
						|
 | 
						|
YAML files may be generated on the Archipelago website by visiting the [games page](/games) and clicking the
 | 
						|
"Settings Page" link under the relevant game. Clicking "Export Settings" in a game's settings page will download the
 | 
						|
YAML to your system.
 | 
						|
 | 
						|
Alternatively, you can run `ArchipelagoLauncher.exe` and click on `Generate Template Settings` to create a set of template 
 | 
						|
YAMLs for each game in your Archipelago install (including for APWorlds). These will be placed in your `Players/Templates` folder.
 | 
						|
 | 
						|
In a multiworld there must be one YAML per world. Any number of players can play on each world using either the game's
 | 
						|
native coop system or using Archipelago's coop support. Each world will hold one slot in the multiworld and will have a
 | 
						|
slot name and, if the relevant game requires it, files to associate it with that multiworld.
 | 
						|
 | 
						|
If multiple people plan to play in one world cooperatively then they will only need one YAML for their coop world. If
 | 
						|
each player is planning on playing their own game then they will each need a YAML.
 | 
						|
 | 
						|
### Generating a single player game
 | 
						|
 | 
						|
#### On the website
 | 
						|
 | 
						|
The easiest way to get started playing an Archipelago generated game, after following the base setup from the game's
 | 
						|
setup guide, is to find the game on the [Archipelago Games List](/games), click on `Settings Page`, set the settings for
 | 
						|
how you want to play, and click `Generate Game` at the bottom of the page. This will create a page for the seed, from
 | 
						|
which you can create a room, and then [connect](#connecting-to-an-archipelago-server).
 | 
						|
 | 
						|
If you have downloaded the settings, or have created a settings file manually, this file can be uploaded on the
 | 
						|
[Generation Page](/generate) where you can also set any specific hosting settings.
 | 
						|
 | 
						|
#### On your local installation
 | 
						|
 | 
						|
To generate a game on your local machine, make sure to install the Archipelago software, and ensure to select the
 | 
						|
`Generator` component, as well as the `ROM setup` for any games you will want to play. Navigate to your Archipelago
 | 
						|
installation (usually C:\ProgramData\Archipelago), and place the settings file you have either created or downloaded
 | 
						|
from the website in the `Players` folder.
 | 
						|
 | 
						|
Run `ArchipelagoGenerate.exe`, and it will inform you whether the generation was successful or not. If successful, there
 | 
						|
will be an output zip in the `output` folder (usually named something like `AP_XXXXX.zip`). This will contain all
 | 
						|
relevant information to the session, including the spoiler log, if one was generated.
 | 
						|
 | 
						|
### Generating a multiplayer game
 | 
						|
 | 
						|
Archipelago is a multi-game multiworld architecture, so any number of players and any number of games may be used to
 | 
						|
generate. Of note, the website currently has a maximum generated player count of 30. If you would like to generate a game
 | 
						|
larger than that, it must be done on a local installation. Generally, it is better to generate locally to free server
 | 
						|
resources, and host the resulting multiworld on the website.
 | 
						|
 | 
						|
#### Gather All Player YAMLs
 | 
						|
 | 
						|
All players that wish to play in the generated multiworld must have a YAML file which contains the settings that they
 | 
						|
wish to play with. One person should gather all files from all participants in the generated multiworld. It is possible
 | 
						|
for a single player to have multiple games, or even multiple slots of a single game, but each YAML must have a unique
 | 
						|
player name.
 | 
						|
 | 
						|
#### On the website
 | 
						|
 | 
						|
Gather all player YAML files into a single place, and compress them into a zip file. This can be done by pressing
 | 
						|
ctrl/cmd + clicking on each file until all are selected, right-clicking one of the files, and clicking
 | 
						|
`compress to ZIP file` or `send to > compressed folder`.
 | 
						|
 | 
						|
Navigate to the [Generate Page](/generate), select the host settings you would like, click on `Upload File`, and
 | 
						|
select the newly created zip from the opened window.
 | 
						|
 | 
						|
After some time, you will be redirected to a seed info page that will display the generated seed, the time it was
 | 
						|
created, the number of players, the spoiler (if one was created) and all rooms created from this seed.
 | 
						|
 | 
						|
 | 
						|
#### On your local installation
 | 
						|
 | 
						|
It is possible to generate the multiworld locally, using a local Archipelago installation. This is done by entering the
 | 
						|
Archipelago installation folder (usually C:\ProgramData\Archipelago) and placing each YAML file in the `Players` folder.
 | 
						|
If the folder does not exist then it must be created manually. The files here should not be compressed.
 | 
						|
 | 
						|
After filling the `Players` folder, the `ArchipelagoGenerate.exe` program should be run in order to generate a
 | 
						|
multiworld. The output of this process is placed in the `output` folder (usually named something like `AP_XXXXX.zip`).
 | 
						|
 | 
						|
##### Changing local host settings for generation
 | 
						|
 | 
						|
Sometimes there are various settings that you may want to change before rolling a seed such as enabling race mode,
 | 
						|
auto-release, plando support, or setting a password.
 | 
						|
 | 
						|
All of these settings, plus other options, may be changed by modifying the `host.yaml` file in the Archipelago
 | 
						|
installation folder. The settings chosen here are baked into the `.archipelago` file that gets output with the other
 | 
						|
files after generation, so if you are rolling locally, ensure this file is edited to your liking **before** rolling the
 | 
						|
seed. This file is overwritten when running the Archipelago Installation software. If you have changed settings in this
 | 
						|
file, and would like to retain them, you may rename the file to `options.yaml`.
 | 
						|
 | 
						|
## Hosting an Archipelago Server
 | 
						|
 | 
						|
When a multiworld seed is generated, the multidata will be output as a `.archipelago`. If the game was generated locally,
 | 
						|
a compressed folder will be in `/output` and will contain the `.archipelago`, the spoiler log, and any relevant files
 | 
						|
for the generated games.
 | 
						|
 | 
						|
### Hosting on the website
 | 
						|
 | 
						|
After a seed page has been created on the website, clicking on `Create Room` will create a new server instance, and a
 | 
						|
page that can be linked to the other players, so they can all see the connection info, obtain their data files, and
 | 
						|
connect to the multiworld. Simply click on the url in the title bar, copy the link, and send it to your friends. Room
 | 
						|
servers will shut down after 2 hours of inactivity, saving the multiworld progress. By returning to the room page, the
 | 
						|
room server can be started back up, and the multiworld can continue to be played. If the link to the room is lost, the
 | 
						|
creator of the room can find it on their [User Content Page](/user-content). The person who created the room becomes the
 | 
						|
"owner" of the room, and as such has access to the server console. Clearing cookies will remove access to this console,
 | 
						|
and there is no way to regain it. If a server password was set when generating the multiworld game, server admin
 | 
						|
privileges may be gained by entering `!admin <password>` from the `ArchipelagoTextClient.exe`.
 | 
						|
 | 
						|
#### The room page
 | 
						|
 | 
						|

 | 
						|
1. Server/Host Name
 | 
						|
2. Port
 | 
						|
3. Slot Name
 | 
						|
4. Download link for data files
 | 
						|
5. Link to tracker page for this player
 | 
						|
 | 
						|
#### From a website generated game
 | 
						|
 | 
						|
After generating a game on the website, you will be redirected to the seed page. To begin playing click on `Create Room`
 | 
						|
to create a new room page and server for your game.
 | 
						|
 | 
						|
#### From a locally generated game
 | 
						|
 | 
						|
After generating a game, a compressed folder will be output to the `/output` folder. Go to the
 | 
						|
[Archipelago Host Game Page](/uploads), click on `Upload File`, navigate to your Archipelago installation, and select
 | 
						|
the generated folder. This will create a new seed page using the information from this folder.
 | 
						|
 | 
						|
### Hosting on a local machine
 | 
						|
 | 
						|
The `.archipelago` file may be extracted from the compressed file. Double-clicking the file will then open
 | 
						|
`ArchipelagoServer.exe` in order to host the multiworld on the local machine. Alternatively, running
 | 
						|
`ArchipelagoServer.exe` and pointing the resulting file selection prompt to the `.archipelago` file or the generated
 | 
						|
compressed folder will begin hosting.
 | 
						|
 | 
						|
## Connecting to an Archipelago Server
 | 
						|
 | 
						|
The actual method of connection will vary depending on the game, so follow that game's setup guide, but all games will
 | 
						|
use the same general connection info noted here.
 | 
						|
 | 
						|
### Connection Info
 | 
						|
 | 
						|
For connecting from the game to the server, the connection info is needed for any of the game clients. Games that use
 | 
						|
data files will usually contain the connection info within these files, when hosted on the Archipelago website. If the
 | 
						|
information needs to be entered manually, it is usually comprised of four different sections.
 | 
						|
 | 
						|
* `Server`, `Server Name` or `Host Name` are all used interchangeably as the domain or IP address of the server. If the
 | 
						|
game is being hosted on the main Archipelago website this will be `archipelago.gg`. If the game is being hosted on your
 | 
						|
own local machine `localhost` will work. If the game is being hosted on another person's computer then you enter that
 | 
						|
person's public IP address.
 | 
						|
* `Port` is which port on the domain or IP address the game is being hosted on. On the website room pages, this is
 | 
						|
displayed as `archipelago.gg:<port>`. Most clients will accept that information being entered directly as is. If the
 | 
						|
information needs to be entered separately, then the port is the sequence of numbers after the `:`, and the `:` does
 | 
						|
not need to be entered. If a game is being hosted from the `ArchipelagoServer.exe`, this will default to `38281` but may
 | 
						|
be changed in the `host.yaml`.
 | 
						|
* `Slot Name` is the name of your player slot that you are connecting to. This is the same as the name that was set
 | 
						|
when creating your [YAML file](#creating-a-yaml). If the game is hosted on the website, this is also displayed on the
 | 
						|
room page. The name is case-sensitive.
 | 
						|
* `Password` is the password set by the host in order to join the multiworld. By default, this will be empty and is almost
 | 
						|
never required, but one can be set when generating the game. Generally, leave this field blank when it exists,
 | 
						|
unless you know that a password was set, and what that password is. |