mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
WebHost: Undo all softwrapping changes because people don't like it. Fair enough!
This commit is contained in:
@@ -1,23 +1,38 @@
|
||||
# Advanced YAML Guide
|
||||
This guide covers more the more advanced options available in YAML files. This guide is intended for the user who is intent on editing their YAML file manually. This guide should take about 10 minutes to read.
|
||||
|
||||
If you would like to generate a basic, fully playable, YAML without editing a file then visit the settings page for the game you intend to play.
|
||||
This guide covers more the more advanced options available in YAML files. This guide is intended for the user who is
|
||||
intent on editing their YAML file manually. This guide should take about 10 minutes to read.
|
||||
|
||||
The settings page can be found on the supported games page, just click the "Settings Page" link under the name of the game you would like. Supported games page: [Archipelago Games List](https://archipelago.gg/games)
|
||||
If you would like to generate a basic, fully playable, YAML without editing a file then visit the settings page for the
|
||||
game you intend to play.
|
||||
|
||||
Clicking on the "Export Settings" button at the bottom-left will provide you with a pre-filled YAML with your options. The player settings page also has an option to download a fully filled out yaml containing every option with every available setting for the available options.
|
||||
The settings page can be found on the supported games page, just click the "Settings Page" link under the name of the
|
||||
game you would like. Supported games page: [Archipelago Games List](https://archipelago.gg/games)
|
||||
|
||||
Clicking on the "Export Settings" button at the bottom-left will provide you with a pre-filled YAML with your options.
|
||||
The player settings page also has an option to download a fully filled out yaml containing every option with every
|
||||
available setting for the available options.
|
||||
|
||||
## YAML Overview
|
||||
The Archipelago system generates games using player configuration files as input. These are going to be YAML files and each world will have one of these containing their custom settings for the game that world will play.
|
||||
|
||||
The Archipelago system generates games using player configuration files as input. These are going to be YAML files and
|
||||
each world will have one of these containing their custom settings for the game that world will play.
|
||||
|
||||
## YAML Formatting
|
||||
YAML files are a format of human-readable config files. The basic syntax of a yaml file will have a `root` node and then different levels of `nested` nodes that the generator reads in order to determine your settings.
|
||||
|
||||
To nest text, the correct syntax is to indent **two spaces over** from its root option. A YAML file can be edited with whatever text editor you choose to use though I personally recommend that you use Sublime Text. Sublime text website: [SublimeText Website](https://www.sublimetext.com)
|
||||
YAML files are a format of human-readable config files. The basic syntax of a yaml file will have a `root` node and then
|
||||
different levels of `nested` nodes that the generator reads in order to determine your settings.
|
||||
|
||||
This program out of the box supports the correct formatting for the YAML file, so you will be able to use the tab key and get proper highlighting for any potential errors made while editing the file. If using any other text editor you should ensure your indentation is done correctly with two spaces.
|
||||
To nest text, the correct syntax is to indent **two spaces over** from its root option. A YAML file can be edited with
|
||||
whatever text editor you choose to use though I personally recommend that you use Sublime Text. Sublime text
|
||||
website: [SublimeText Website](https://www.sublimetext.com)
|
||||
|
||||
This program out of the box supports the correct formatting for the YAML file, so you will be able to use the tab key
|
||||
and get proper highlighting for any potential errors made while editing the file. If using any other text editor you
|
||||
should ensure your indentation is done correctly with two spaces.
|
||||
|
||||
A typical YAML file will look like:
|
||||
|
||||
```yaml
|
||||
root_option:
|
||||
nested_option_one:
|
||||
@@ -28,58 +43,93 @@ root_option:
|
||||
option_two_setting_two: 43
|
||||
```
|
||||
|
||||
In Archipelago, YAML options are always written out in full lowercase with underscores separating any words. The numbers following the colons here are weights. The generator will read the weight of every option the roll that option that many times, the next option as many times as its numbered and so forth.
|
||||
In Archipelago, YAML options are always written out in full lowercase with underscores separating any words. The numbers
|
||||
following the colons here are weights. The generator will read the weight of every option the roll that option that many
|
||||
times, the next option as many times as its numbered and so forth.
|
||||
|
||||
For the above example `nested_option_one` will have `option_one_setting_one` 1 time and `option_one_setting_two` 0 times so `option_one_setting_one` is guaranteed to occur.
|
||||
For the above example `nested_option_one` will have `option_one_setting_one` 1 time and `option_one_setting_two` 0 times
|
||||
so `option_one_setting_one` is guaranteed to occur.
|
||||
|
||||
For `nested_option_two`, `option_two_setting_one` will be rolled 14 times and `option_two_setting_two` will be rolled 43 times against each other. This means `option_two_setting_two` will be more likely to occur, but it isn't guaranteed adding more randomness and "mystery" to your settings.
|
||||
For `nested_option_two`, `option_two_setting_one` will be rolled 14 times and `option_two_setting_two` will be rolled 43
|
||||
times against each other. This means `option_two_setting_two` will be more likely to occur, but it isn't guaranteed
|
||||
adding more randomness and "mystery" to your settings.
|
||||
|
||||
Every configurable setting supports weights.
|
||||
|
||||
### Root Options
|
||||
Currently, there are only a few options that are root options. Everything else should be nested within one of these root options or in some cases nested within other nested options. The only options that should exist in root are `description`, `name`, `game`, `requires`, `accessibility`, `progression_balancing`, `triggers`, and the name of the games you want settings for.
|
||||
|
||||
* `description` is ignored by the generator and is simply a good way for you to organize if you have multiple files using this to detail the intention of the file.
|
||||
Currently, there are only a few options that are root options. Everything else should be nested within one of these root
|
||||
options or in some cases nested within other nested options. The only options that should exist in root
|
||||
are `description`, `name`, `game`, `requires`, `accessibility`, `progression_balancing`, `triggers`, and the name of the
|
||||
games you want settings for.
|
||||
|
||||
* `name` is the player name you would like to use and is used for your slot data to connect with most games. This can also be filled with multiple names each having a weight to it.
|
||||
* `description` is ignored by the generator and is simply a good way for you to organize if you have multiple files
|
||||
using this to detail the intention of the file.
|
||||
|
||||
* `game` is where either your chosen game goes or if you would like can be filled with multiple games each with different weights.
|
||||
* `name` is the player name you would like to use and is used for your slot data to connect with most games. This can
|
||||
also be filled with multiple names each having a weight to it.
|
||||
|
||||
* `requires` details different requirements from the generator for the YAML to work as you expect it to. Generally this is good for detailing the version of Archipelago this YAML was prepared for as if it is rolled on an older version may be missing settings and as such will not work as expected. If any plando is used in the file then requiring it here to ensure it will be used is good practice.
|
||||
* `game` is where either your chosen game goes or if you would like can be filled with multiple games each with
|
||||
different weights.
|
||||
|
||||
* `accessibility` determines the level of access to the game the generation will expect you to have in order to reach your completion goal. This supports `items`, `locations`, and `none` and is set to `locations` by default.
|
||||
* `locations` will guarantee all locations are accessible in your world.
|
||||
* `items` will guarantee you can acquire all items in your world but may not be able to access all locations. This mostly comes into play if there is any entrance shuffle in the seed as locations without items in them can be placed in areas that make them unreachable.
|
||||
* `none` will only guarantee that the seed is beatable. You will be guaranteed able to finish the seed logically but may not be able to access all locations or acquire all items. A good example of this is having a big key in the big chest
|
||||
in a dungeon in ALTTP making it impossible to get and finish the dungeon.
|
||||
* `requires` details different requirements from the generator for the YAML to work as you expect it to. Generally this
|
||||
is good for detailing the version of Archipelago this YAML was prepared for as if it is rolled on an older version may
|
||||
be missing settings and as such will not work as expected. If any plando is used in the file then requiring it here to
|
||||
ensure it will be used is good practice.
|
||||
|
||||
* `progression_balancing` is a system the Archipelago generator uses to try and reduce "BK mode" as much as possible. This primarily involves moving necessary progression items into earlier logic spheres to make the games more accessible so that players almost always have something to do. This can be turned `on` or `off` and is `on` by default.
|
||||
* `accessibility` determines the level of access to the game the generation will expect you to have in order to reach
|
||||
your completion goal. This supports `items`, `locations`, and `none` and is set to `locations` by default.
|
||||
* `locations` will guarantee all locations are accessible in your world.
|
||||
* `items` will guarantee you can acquire all items in your world but may not be able to access all locations. This
|
||||
mostly comes into play if there is any entrance shuffle in the seed as locations without items in them can be
|
||||
placed in areas that make them unreachable.
|
||||
* `none` will only guarantee that the seed is beatable. You will be guaranteed able to finish the seed logically but
|
||||
may not be able to access all locations or acquire all items. A good example of this is having a big key in the
|
||||
big chest in a dungeon in ALTTP making it impossible to get and finish the dungeon.
|
||||
|
||||
* `triggers` is one of the more advanced options that allows you to create conditional adjustments. You can read more triggers in the triggers guide. Triggers guide: [Archipelago Triggers Guide](/tutorial/archipelago/triggers/en)
|
||||
* `progression_balancing` is a system the Archipelago generator uses to try and reduce "BK mode" as much as possible.
|
||||
This primarily involves moving necessary progression items into earlier logic spheres to make the games more
|
||||
accessible so that players almost always have something to do. This can be turned `on` or `off` and is `on` by
|
||||
default.
|
||||
|
||||
* `triggers` is one of the more advanced options that allows you to create conditional adjustments. You can read
|
||||
more triggers in the triggers guide. Triggers
|
||||
guide: [Archipelago Triggers Guide](/tutorial/archipelago/triggers/en)
|
||||
|
||||
### Game Options
|
||||
|
||||
One of your root settings will be the name of the game you would like to populate with settings. Since it is possible to give a weight to any option it is possible to have one file that can generate a seed for you where you don't know which game you'll play. For these cases you'll want to fill the game options for every game that can be rolled by these settings. If a game can be rolled it **must** have a settings section even if it is empty.
|
||||
One of your root settings will be the name of the game you would like to populate with settings. Since it is possible to
|
||||
give a weight to any option it is possible to have one file that can generate a seed for you where you don't know which
|
||||
game you'll play. For these cases you'll want to fill the game options for every game that can be rolled by these
|
||||
settings. If a game can be rolled it **must** have a settings section even if it is empty.
|
||||
|
||||
#### Universal Game Options
|
||||
|
||||
Some options in Archipelago can be used by every game but must still be placed within the relevant game's section.
|
||||
|
||||
Currently, these options are `start_inventory`, `start_hints`, `local_items`, `non_local_items`, `start_location_hints`, `exclude_locations`, and various plando options.
|
||||
Currently, these options are `start_inventory`, `start_hints`, `local_items`, `non_local_items`, `start_location_hints`
|
||||
, `exclude_locations`, and various plando options.
|
||||
|
||||
See the plando guide for more info on plando options. Plando guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en)
|
||||
See the plando guide for more info on plando options. Plando
|
||||
guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en)
|
||||
|
||||
* `start_inventory` will give any items defined here to you at the beginning of your game. The format for this must be the name as it appears in the game files and the amount you would like to start with. For example `Rupees(5): 6` which will give you the item `Rupees(5)` six times, totalling 30 rupees.
|
||||
* `start_inventory` will give any items defined here to you at the beginning of your game. The format for this must be
|
||||
the name as it appears in the game files and the amount you would like to start with. For example `Rupees(5): 6` which
|
||||
will give you the item `Rupees(5)` six times, totalling 30 rupees.
|
||||
|
||||
* `start_hints` gives you free server hints for the defined item/s at the beginning of the game allowing you to hint for the location without using any hint points.
|
||||
* `start_hints` gives you free server hints for the defined item/s at the beginning of the game allowing you to hint for
|
||||
the location without using any hint points.
|
||||
|
||||
* `local_items` will force any items you want to be in your world instead of being in another world.
|
||||
|
||||
* `non_local_items` is the inverse of `local_items` forcing any items you want to be in another world and won't be located in your own.
|
||||
* `non_local_items` is the inverse of `local_items` forcing any items you want to be in another world and won't be
|
||||
located in your own.
|
||||
|
||||
* `start_location_hints` allows you to define a location which you can then hint for to find out what item is located in it to see how important the location is.
|
||||
* `start_location_hints` allows you to define a location which you can then hint for to find out what item is located in
|
||||
it to see how important the location is.
|
||||
|
||||
* `exclude_locations` lets you define any locations that you don't want to do and during generation will force a "junk" item which isn't necessary for progression to go in these locations.
|
||||
* `exclude_locations` lets you define any locations that you don't want to do and during generation will force a "junk"
|
||||
item which isn't necessary for progression to go in these locations.
|
||||
|
||||
### Example YAML
|
||||
|
||||
@@ -88,7 +138,7 @@ See the plando guide for more info on plando options. Plando guide: [Archipelago
|
||||
description: An example using various advanced options
|
||||
name: Example Player
|
||||
game: A Link to the Past
|
||||
requires:
|
||||
requires:
|
||||
version: 0.2.0
|
||||
accessibility: none
|
||||
progression_balancing: on
|
||||
@@ -123,6 +173,7 @@ triggers:
|
||||
```
|
||||
|
||||
#### This is a fully functional yaml file that will do all the following things:
|
||||
|
||||
* `description` gives us a general overview so if we pull up this file later we can understand the intent.
|
||||
|
||||
* `name` is `Example Player` and this will be used in the server console when sending and receiving items.
|
||||
@@ -131,26 +182,37 @@ triggers:
|
||||
|
||||
* `requires` is set to require release version 0.2.0 or higher.
|
||||
|
||||
* `accesibility` is set to `none` which will set this seed to beatable only meaning some locations and items may be completely inaccessible but the seed will still be completable.
|
||||
* `accesibility` is set to `none` which will set this seed to beatable only meaning some locations and items may be
|
||||
completely inaccessible but the seed will still be completable.
|
||||
|
||||
* `progression_balancing` is set on meaning we will likely receive important items earlier increasing the chance of having things to do.
|
||||
* `progression_balancing` is set on meaning we will likely receive important items earlier increasing the chance of
|
||||
having things to do.
|
||||
|
||||
* `A Link to the Past` defines a location for us to nest all the game options we would like to use for our game `A Link to the Past`.
|
||||
* `A Link to the Past` defines a location for us to nest all the game options we would like to use for our
|
||||
game `A Link to the Past`.
|
||||
|
||||
* `smallkey_shuffle` is an option for A Link to the Past which determines how dungeon small keys are shuffled. In this example we have a 1/2 chance for them to either be placed in their original dungeon and a 1/2 chance for them to be placed anywhere amongst the multiworld.
|
||||
* `smallkey_shuffle` is an option for A Link to the Past which determines how dungeon small keys are shuffled. In this
|
||||
example we have a 1/2 chance for them to either be placed in their original dungeon and a 1/2 chance for them to be
|
||||
placed anywhere amongst the multiworld.
|
||||
|
||||
* `start_inventory` defines an area for us to determine what items we would like to start the seed with. For this example we have:
|
||||
* `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots
|
||||
* `Bombs (3)` gives us 2 packs of 3 bombs or 6 total bombs
|
||||
* `start_inventory` defines an area for us to determine what items we would like to start the seed with. For this
|
||||
example we have:
|
||||
* `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots
|
||||
* `Bombs (3)` gives us 2 packs of 3 bombs or 6 total bombs
|
||||
|
||||
* `start_hints` gives us a starting hint for the hammer available at the beginning of the multiworld which we can use with no cost.
|
||||
* `start_hints` gives us a starting hint for the hammer available at the beginning of the multiworld which we can use
|
||||
with no cost.
|
||||
|
||||
* `local_items` forces the `Bombos`, `Ether`, and `Quake` medallions to all be placed within our own world, meaning we have to find it ourselves.
|
||||
* `local_items` forces the `Bombos`, `Ether`, and `Quake` medallions to all be placed within our own world, meaning we
|
||||
have to find it ourselves.
|
||||
|
||||
* `non_local_items` forces the `Moon Pearl` to be placed in someone else's world, meaning we won't be able to find it.
|
||||
|
||||
* `start_location_hints` gives us a starting hint for the `Spike Cave` location available at the beginning of the multiworld that can be used for no cost.
|
||||
* `start_location_hints` gives us a starting hint for the `Spike Cave` location available at the beginning of the
|
||||
multiworld that can be used for no cost.
|
||||
|
||||
* `exclude_locations` forces a not important item to be placed on the `Cave 45` location.
|
||||
|
||||
* `triggers` allows us to define a trigger such that if our `smallkey_shuffle` option happens to roll the `any_world` result it will also ensure that `bigkey_shuffle`, `map_shuffle`, and `compass_shuffle` are also forced to the `any_world` result.
|
||||
* `triggers` allows us to define a trigger such that if our `smallkey_shuffle` option happens to roll the `any_world`
|
||||
result it will also ensure that `bigkey_shuffle`, `map_shuffle`, and `compass_shuffle` are also forced to
|
||||
the `any_world` result.
|
@@ -1,10 +1,16 @@
|
||||
### Helpful Commands
|
||||
Commands are split into two types: client commands and server commands. Client commands are commands which are executed by the client and do not affect the Archipelago remote session. Server commands are commands which are executed by the Archipelago server and affect the Archipelago session or otherwise provide feedback from the server.
|
||||
|
||||
In clients which have their own commands the commands are typically prepended by a forward slash:`/`. Remote commands are always submitted to the server prepended with an exclamation point: `!`.
|
||||
Commands are split into two types: client commands and server commands. Client commands are commands which are executed
|
||||
by the client and do not affect the Archipelago remote session. Server commands are commands which are executed by the
|
||||
Archipelago server and affect the Archipelago session or otherwise provide feedback from the server.
|
||||
|
||||
In clients which have their own commands the commands are typically prepended by a forward slash:`/`. Remote commands
|
||||
are always submitted to the server prepended with an exclamation point: `!`.
|
||||
|
||||
#### Local Commands
|
||||
The following list is a list of client commands which may be available to you through your Archipelago client. You execute these commands in your client window.
|
||||
|
||||
The following list is a list of client commands which may be available to you through your Archipelago client. You
|
||||
execute these commands in your client window.
|
||||
|
||||
- `/connect <address:port>` Connect to the multiworld server.
|
||||
- `/disconnect` Disconnects you from your current session.
|
||||
@@ -15,9 +21,14 @@ The following list is a list of client commands which may be available to you th
|
||||
- Just typing anything will broadcast a message to all players
|
||||
|
||||
#### Remote Commands
|
||||
- `!hint <item name>` Tells you at which location in whose game your Item is. Note you need to have checked some locations to earn a hint. You can check how many you have by just running `!hint`
|
||||
- `!forfeit` If you didn't turn on auto-forfeit or if you allowed forfeiting prior to goal completion. Remember that "forfeiting" actually means sending out your remaining items in your world.
|
||||
- `!collect` Grants you all the remaining checks in your world. Can only be used after your goal is complete or when you have forfeited.
|
||||
|
||||
- `!hint <item name>` Tells you at which location in whose game your Item is. Note you need to have checked some
|
||||
locations to earn a hint. You can check how many you have by just running `!hint`
|
||||
- `!forfeit` If you didn't turn on auto-forfeit or if you allowed forfeiting prior to goal completion. Remember that "
|
||||
forfeiting" actually means sending out your remaining items in your world.
|
||||
- `!collect` Grants you all the remaining checks in your world. Can only be used after your goal is complete or when you
|
||||
have forfeited.
|
||||
|
||||
#### Host only (on Archipelago.gg or in your server console)
|
||||
|
||||
- `/forfeit <Player Name>` Forfeits someone regardless of settings and game completion status
|
||||
|
@@ -1,68 +1,109 @@
|
||||
# Archipelago Plando Guide
|
||||
This guide details the use of the plando modules available with Archipelago. This guide is intended for a more advanced user who has more in-depth knowledge of the randomizer they're playing as well as experience editing YAML files. This guide should take about 10 minutes to read.
|
||||
|
||||
This guide details the use of the plando modules available with Archipelago. This guide is intended for a more advanced
|
||||
user who has more in-depth knowledge of the randomizer they're playing as well as experience editing YAML files. This
|
||||
guide should take about 10 minutes to read.
|
||||
|
||||
## What is Plando?
|
||||
The purposes of randomizers is to randomize the items in a game to give a new experience. Plando takes this concept and changes it up by allowing you to plan out certain aspects of the game by placing certain items in certain locations, certain bosses in certain rooms, edit text for certain NPCs/signs, or even force certain region connections. Each of these options are going to be detailed separately as `item plando`, `boss plando`, `text plando`, and `connection plando`. Every game in archipelago supports item plando but the other plando options are only supported by certain games. Currently, Minecraft and LTTP both support connection plando, but only LTTP supports text and boss plando.
|
||||
|
||||
The purposes of randomizers is to randomize the items in a game to give a new experience. Plando takes this concept and
|
||||
changes it up by allowing you to plan out certain aspects of the game by placing certain items in certain locations,
|
||||
certain bosses in certain rooms, edit text for certain NPCs/signs, or even force certain region connections. Each of
|
||||
these options are going to be detailed separately as `item plando`, `boss plando`, `text plando`,
|
||||
and `connection plando`. Every game in archipelago supports item plando but the other plando options are only supported
|
||||
by certain games. Currently, Minecraft and LTTP both support connection plando, but only LTTP supports text and boss
|
||||
plando.
|
||||
|
||||
### Enabling Plando
|
||||
On the website plando will already be enabled. If you will be generating the game locally plando features must be enabled manually (opt-in). To opt-in go to the archipelago installation directory (default: `C:\ProgramData\Archipelago`), open the host.yaml with a text editor and find the `plando_options` key. The available plando modules can be enabled by adding them after this such as `plando_options: bosses, items, texts, connections`.
|
||||
|
||||
On the website plando will already be enabled. If you will be generating the game locally plando features must be
|
||||
enabled manually (opt-in). To opt-in go to the archipelago installation directory (
|
||||
default: `C:\ProgramData\Archipelago`), open the host.yaml with a text editor and find the `plando_options` key. The
|
||||
available plando modules can be enabled by adding them after this such
|
||||
as `plando_options: bosses, items, texts, connections`.
|
||||
|
||||
## Item Plando
|
||||
Item plando allows a player to place an item in a specific location or specific locations, place multiple items into a list of specific locations both in their own game or in another player's game. **Note that there's a very good chance that
|
||||
cross-game plando could very well be broken i.e. placing on of your items in someone else's world playing a different game.**
|
||||
|
||||
* The options for item plando are `from_pool`, `world`, `percentage`, `force`, and either item and location, or items and locations.
|
||||
* `from_pool` determines if the item should be taken *from* the item pool or *added* to it. This can be true or false and defaults to true if omitted.
|
||||
* `world` is the target world to place the item in.
|
||||
* It gets ignored if only one world is generated.
|
||||
* Can be a number, name, true, false, or null. False is the default.
|
||||
* If a number is used it targets that slot or player number in the multiworld.
|
||||
* If a name is used it will target the world with that player name.
|
||||
* If set to true it will be any player's world besides your own.
|
||||
* If set to false it will target your own world.
|
||||
* If set to null it will target a random world in the multiworld.
|
||||
* `force` determines whether the generator will fail if the item can't be placed in the location can be true, false, or silent. Silent is the default.
|
||||
* If set to true the item must be placed and the generator will throw an error if it is unable to do so.
|
||||
* If set to false the generator will log a warning if the placement can't be done but will still generate.
|
||||
* If set to silent and the placement fails it will be ignored entirely.
|
||||
* `percentage` is the percentage chance for the relevant block to trigger. This can be any value from 0 to 100 and if omitted will default to 100.
|
||||
* Single Placement is when you use a plando block to place a single item at a single location.
|
||||
* `item` is the item you would like to place and `location` is the location to place it.
|
||||
* Multi Placement uses a plando block to place multiple items in multiple locations until either list is exhausted.
|
||||
* `items` defines the items to use and a number letting you place multiple of it.
|
||||
* `locations` is a list of possible locations those items can be placed in.
|
||||
* Using the multi placement method, placements are picked randomly.
|
||||
Item plando allows a player to place an item in a specific location or specific locations, place multiple items into a
|
||||
list of specific locations both in their own game or in another player's game. **Note that there's a very good chance
|
||||
that cross-game plando could very well be broken i.e. placing on of your items in someone else's world playing a
|
||||
different game.**
|
||||
|
||||
* The options for item plando are `from_pool`, `world`, `percentage`, `force`, and either item and location, or items
|
||||
and locations.
|
||||
* `from_pool` determines if the item should be taken *from* the item pool or *added* to it. This can be true or
|
||||
false and defaults to true if omitted.
|
||||
* `world` is the target world to place the item in.
|
||||
* It gets ignored if only one world is generated.
|
||||
* Can be a number, name, true, false, or null. False is the default.
|
||||
* If a number is used it targets that slot or player number in the multiworld.
|
||||
* If a name is used it will target the world with that player name.
|
||||
* If set to true it will be any player's world besides your own.
|
||||
* If set to false it will target your own world.
|
||||
* If set to null it will target a random world in the multiworld.
|
||||
* `force` determines whether the generator will fail if the item can't be placed in the location can be true, false,
|
||||
or silent. Silent is the default.
|
||||
* If set to true the item must be placed and the generator will throw an error if it is unable to do so.
|
||||
* If set to false the generator will log a warning if the placement can't be done but will still generate.
|
||||
* If set to silent and the placement fails it will be ignored entirely.
|
||||
* `percentage` is the percentage chance for the relevant block to trigger. This can be any value from 0 to 100 and
|
||||
if omitted will default to 100.
|
||||
* Single Placement is when you use a plando block to place a single item at a single location.
|
||||
* `item` is the item you would like to place and `location` is the location to place it.
|
||||
* Multi Placement uses a plando block to place multiple items in multiple locations until either list is exhausted.
|
||||
* `items` defines the items to use and a number letting you place multiple of it.
|
||||
* `locations` is a list of possible locations those items can be placed in.
|
||||
* Using the multi placement method, placements are picked randomly.
|
||||
|
||||
### Available Items
|
||||
* A Link to the Past: [Link to the Past Item List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Items.py#L52)
|
||||
* Factorio Non-Progressive: [Factorio Technologies Wiki List](https://wiki.factorio.com/Technologies)
|
||||
* Note that these use the *internal names*. For example, `advanced-electronics`
|
||||
* Factorio Progressive: [Factorio Progressive Technologies List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/factorio/Technologies.py#L374)
|
||||
* Minecraft: [Minecraft Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Items.py#L14)
|
||||
* Ocarina of Time: [Ocarina of Time Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/oot/Items.py#L61)
|
||||
* Risk of Rain 2: [Risk of Rain 2 Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/ror2/Items.py#L8)
|
||||
* Slay the Spire: [Slay the Spire Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/spire/Items.py#L13)
|
||||
* Subnautica: [Subnautica Items List JSON File](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/subnautica/items.json)
|
||||
* Timespinner: [Timespinner Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/timespinner/Items.py#L11)
|
||||
|
||||
* A Link to the
|
||||
Past: [Link to the Past Item List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Items.py#L52)
|
||||
* Factorio Non-Progressive: [Factorio Technologies Wiki List](https://wiki.factorio.com/Technologies)
|
||||
* Note that these use the *internal names*. For example, `advanced-electronics`
|
||||
* Factorio
|
||||
Progressive: [Factorio Progressive Technologies List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/factorio/Technologies.py#L374)
|
||||
*
|
||||
Minecraft: [Minecraft Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Items.py#L14)
|
||||
* Ocarina of
|
||||
Time: [Ocarina of Time Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/oot/Items.py#L61)
|
||||
* Risk of Rain
|
||||
2: [Risk of Rain 2 Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/ror2/Items.py#L8)
|
||||
* Slay the
|
||||
Spire: [Slay the Spire Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/spire/Items.py#L13)
|
||||
*
|
||||
Subnautica: [Subnautica Items List JSON File](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/subnautica/items.json)
|
||||
*
|
||||
Timespinner: [Timespinner Items List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/timespinner/Items.py#L11)
|
||||
|
||||
### Available Locations
|
||||
* A Link to the Past: [Link to the Past Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Regions.py#L429)
|
||||
|
||||
* A Link to the
|
||||
Past: [Link to the Past Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Regions.py#L429)
|
||||
* Factorio: [Factorio Technologies List Wiki](https://wiki.factorio.com/Technologies)
|
||||
* In Factorio the location names are the same as the item names.
|
||||
* Minecraft: [Minecraft Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Locations.py#L18)
|
||||
* Ocarina of Time: [Ocarina of Time Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/oot/LocationList.py#L38)
|
||||
* Risk of Rain 2: [Risk of Rain 2 Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/ror2/Locations.py#L17)
|
||||
* This is a special case. The locations are "ItemPickup[number]" up to the maximum set in the yaml.
|
||||
* Slay the Spire: [Slay the Spire Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/spire/Locations.py)
|
||||
* Subnautica: [Subnautica Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/subnautica/locations.json)
|
||||
* Timespinner: [Timespinner Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/timespinner/Locations.py#L13)
|
||||
* In Factorio the location names are the same as the item names.
|
||||
*
|
||||
Minecraft: [Minecraft Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Locations.py#L18)
|
||||
* Ocarina of
|
||||
Time: [Ocarina of Time Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/oot/LocationList.py#L38)
|
||||
* Risk of Rain
|
||||
2: [Risk of Rain 2 Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/ror2/Locations.py#L17)
|
||||
* This is a special case. The locations are "ItemPickup[number]" up to the maximum set in the yaml.
|
||||
* Slay the
|
||||
Spire: [Slay the Spire Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/spire/Locations.py)
|
||||
*
|
||||
Subnautica: [Subnautica Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/subnautica/locations.json)
|
||||
*
|
||||
Timespinner: [Timespinner Locations List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/timespinner/Locations.py#L13)
|
||||
|
||||
A list of all available items and locations can also be found in the server's datapackage. Data package
|
||||
JSON: [DataPackage JSON](/api/datapackage).
|
||||
|
||||
A list of all available items and locations can also be found in the server's datapackage. Data package JSON: [DataPackage JSON](/api/datapackage).
|
||||
### Examples
|
||||
|
||||
```yaml
|
||||
plando_items:
|
||||
# example block 1 - Timespinner
|
||||
# example block 1 - Timespinner
|
||||
- item:
|
||||
Empire Orb: 1
|
||||
Radiant Orb: 1
|
||||
@@ -70,8 +111,8 @@ plando_items:
|
||||
from_pool: true
|
||||
world: true
|
||||
percentage: 50
|
||||
|
||||
# example block 2 - Ocarina of Time
|
||||
|
||||
# example block 2 - Ocarina of Time
|
||||
- items:
|
||||
Kokiri Sword: 1
|
||||
Biggoron Sword: 1
|
||||
@@ -90,8 +131,8 @@ plando_items:
|
||||
- Shadow Temple Hover Boots Chest
|
||||
- Spirit Temple Silver Gauntlets Chest
|
||||
world: false
|
||||
|
||||
# example block 3 - Slay the Spire
|
||||
|
||||
# example block 3 - Slay the Spire
|
||||
- items:
|
||||
Boss Relic: 3
|
||||
locations:
|
||||
@@ -99,7 +140,7 @@ plando_items:
|
||||
Boss Relic 2
|
||||
Boss Relic 3
|
||||
|
||||
# example block 4 - Factorio
|
||||
# example block 4 - Factorio
|
||||
- items:
|
||||
progressive-electric-energy-distribution: 2
|
||||
electric-energy-accumulators: 1
|
||||
@@ -112,32 +153,49 @@ plando_items:
|
||||
percentage: 80
|
||||
force: true
|
||||
```
|
||||
1. This block has a 50% chance to occur, and if it does will place either the Empire Orb or Radiant Orb on another player's Starter Chest 1 and removes the chosen item from the item pool.
|
||||
2. This block will always trigger and will place the player's swords, bow, magic meter, strength upgrades, and hookshots in their own dungeon major item chests.
|
||||
|
||||
1. This block has a 50% chance to occur, and if it does will place either the Empire Orb or Radiant Orb on another
|
||||
player's Starter Chest 1 and removes the chosen item from the item pool.
|
||||
2. This block will always trigger and will place the player's swords, bow, magic meter, strength upgrades, and hookshots
|
||||
in their own dungeon major item chests.
|
||||
3. This block will always trigger and will lock boss relics on the bosses.
|
||||
4. This block has an 80% chance of occuring and when it does will place all but 1 of the items randomly among the four locations chosen here.
|
||||
4. This block has an 80% chance of occuring and when it does will place all but 1 of the items randomly among the four
|
||||
locations chosen here.
|
||||
|
||||
## Boss Plando
|
||||
As this is currently only supported by A Link to the Past instead of explaining here please refer to the Z3 plando guide. Z3 plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
|
||||
|
||||
As this is currently only supported by A Link to the Past instead of explaining here please refer to the Z3 plando
|
||||
guide. Z3 plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
|
||||
|
||||
## Text Plando
|
||||
As this is currently only supported by A Link to the Past instead of explaining here please refer to the Z3 plando guide. Z3 plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
|
||||
|
||||
As this is currently only supported by A Link to the Past instead of explaining here please refer to the Z3 plando
|
||||
guide. Z3 plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
|
||||
|
||||
## Connections Plando
|
||||
This is currently only supported by Minecraft and A Link to the Past. As the way that these games interact with their connections is different I will only explain the basics here while more specifics for Link to the Past connection plando can be found in its plando guide.
|
||||
* The options for connections are `percentage`, `entrance`, `exit`, and `direction`. Each of these options support subweights.
|
||||
|
||||
This is currently only supported by Minecraft and A Link to the Past. As the way that these games interact with their
|
||||
connections is different I will only explain the basics here while more specifics for Link to the Past connection plando
|
||||
can be found in its plando guide.
|
||||
|
||||
* The options for connections are `percentage`, `entrance`, `exit`, and `direction`. Each of these options support
|
||||
subweights.
|
||||
* `percentage` is the percentage chance for this connection from 0 to 100 and defaults to 100.
|
||||
* Every connection has an `entrance` and an `exit`. These can be unlinked like in A Link to the Past insanity entrance shuffle.
|
||||
* Every connection has an `entrance` and an `exit`. These can be unlinked like in A Link to the Past insanity entrance
|
||||
shuffle.
|
||||
* `direction` can be `both`, `entrance`, or `exit` and determines in which direction this connection will operate.
|
||||
|
||||
Link to the Past connections: [Link to the Past Connections List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/EntranceShuffle.py#L3852)
|
||||
Link to the Past
|
||||
connections: [Link to the Past Connections List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/EntranceShuffle.py#L3852)
|
||||
|
||||
Minecraft connections: [Minecraft Connections List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Regions.py#L62)
|
||||
Minecraft
|
||||
connections: [Minecraft Connections List in the Code](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Regions.py#L62)
|
||||
|
||||
### Examples
|
||||
|
||||
```yaml
|
||||
plando_connections:
|
||||
# example block 1 - Link to the Past
|
||||
# example block 1 - Link to the Past
|
||||
- entrance: Cave Shop (Lake Hylia)
|
||||
exit: Cave 45
|
||||
direction: entrance
|
||||
@@ -147,8 +205,8 @@ plando_connections:
|
||||
- entrance: Agahnims Tower
|
||||
exit: Old Man Cave Exit (West)
|
||||
direction: exit
|
||||
|
||||
# example block 2 - Minecraft
|
||||
|
||||
# example block 2 - Minecraft
|
||||
- entrance: Overworld Structure 1
|
||||
exit: Nether Fortress
|
||||
direction: both
|
||||
@@ -157,5 +215,9 @@ plando_connections:
|
||||
direction: both
|
||||
```
|
||||
|
||||
1. These connections are decoupled so going into the lake hylia cave shop will take you to the inside of cave 45 and when you leave the interior you will exit to the cave 45 ledge. Going into the cave 45 entrance will then take you to the lake hylia cave shop. Walking into the entrance for the old man cave and Agahnim's Tower entrance will both take you to their locations as normal but leaving old man cave will exit at Agahnim's Tower.
|
||||
2. This will force a nether fortress and a village to be the overworld structures for your game. Note that for the Minecraft connection plando to work structure shuffle must be enabled.
|
||||
1. These connections are decoupled so going into the lake hylia cave shop will take you to the inside of cave 45 and
|
||||
when you leave the interior you will exit to the cave 45 ledge. Going into the cave 45 entrance will then take you to
|
||||
the lake hylia cave shop. Walking into the entrance for the old man cave and Agahnim's Tower entrance will both take
|
||||
you to their locations as normal but leaving old man cave will exit at Agahnim's Tower.
|
||||
2. This will force a nether fortress and a village to be the overworld structures for your game. Note that for the
|
||||
Minecraft connection plando to work structure shuffle must be enabled.
|
@@ -1,49 +1,85 @@
|
||||
# Archipelago Setup Guide
|
||||
This guide is intended to provide an overview of how to install, set up, and run the Archipelago multiworld software. This guide should take about 5 minutes to read.
|
||||
|
||||
This guide is intended to provide an overview of how to install, set up, and run the Archipelago multiworld software.
|
||||
This guide should take about 5 minutes to read.
|
||||
|
||||
## Installing the Archipelago software
|
||||
The most recent public release of Archipelago can be found on the GitHub Releases page. 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 prompted on which components you would like to install.
|
||||
The most recent public release of Archipelago can be found on the GitHub Releases page. GitHub Releases
|
||||
page: [Archipelago Releases Page](https://github.com/ArchipelagoMW/Archipelago/releases).
|
||||
|
||||
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.
|
||||
Run the exe file, and after accepting the license agreement you will be prompted on which components you would like to
|
||||
install.
|
||||
|
||||
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 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.
|
||||
|
||||
The `Clients` are what are used to connect your game to the multiworld. If the
|
||||
game/games you plan to play are available here go ahead and install these 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.
|
||||
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/games you plan to play are available
|
||||
here go ahead and install these 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. Check page: [YAML Validation Page](/mysterycheck)
|
||||
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. Check
|
||||
page: [YAML Validation Page](/mysterycheck)
|
||||
|
||||
### Creating a YAML
|
||||
YAML files may be generated on the Archipelago website by visiting the games page and clicking the "Settings Page" link under any game. Clicking "Export Settings" in a game's settings page will download the YAML to your system. Games page: [Archipelago Games List](/games)
|
||||
|
||||
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.
|
||||
YAML files may be generated on the Archipelago website by visiting the games page and clicking the "Settings Page" link
|
||||
under any game. Clicking "Export Settings" in a game's settings page will download the YAML to your system. Games
|
||||
page: [Archipelago Games List](/games)
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
### 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.
|
||||
|
||||
Typically, a single participant of the multiworld will gather the YAML files from all other players. After getting the YAML files of each participant for your multiworld game they can be compressed into a ZIP folder to then be uploaded to the multiworld generator page. Multiworld generator page: [Archipelago Seed Generator Page](https://archipelago.gg/generate)
|
||||
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.
|
||||
|
||||
Typically, a single participant of the multiworld will gather the YAML files from all other players. After getting the
|
||||
YAML files of each participant for your multiworld game they can be compressed into a ZIP folder to then be uploaded to
|
||||
the multiworld generator page. Multiworld generator
|
||||
page: [Archipelago Seed Generator Page](https://archipelago.gg/generate)
|
||||
|
||||
#### Rolling a YAML Locally
|
||||
|
||||
It is possible to roll the multiworld locally, using a local Archipelago installation. This is done by entering the installation directory of the Archipelago installation and placing each YAML file in the `Players` folder. If the folder does not exist then it can be created manually.
|
||||
It is possible to roll the multiworld locally, using a local Archipelago installation. This is done by entering the
|
||||
installation directory of the Archipelago installation and placing each YAML file in the `Players` folder. If the folder
|
||||
does not exist then it can be created manually.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
#### 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-forfeit, plando support, or setting a password.
|
||||
|
||||
All of these settings plus other options are able to 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 rolling locally ensure this file is edited to your liking *before* rolling the seed.
|
||||
Sometimes there are various settings that you may want to change before rolling a seed such as enabling race mode,
|
||||
auto-forfeit, plando support, or setting a password.
|
||||
|
||||
All of these settings plus other options are able to 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 rolling locally ensure this file is edited to your liking *before* rolling the seed.
|
||||
|
||||
## Hosting an Archipelago Server
|
||||
The output of rolling a YAML will be a `.archipelago` file which can be subsequently uploaded to the Archipelago host game page. Archipelago host game page: [Archipelago Seed Upload Page](https://archipelago.gg/uploads)
|
||||
|
||||
The `.archipelago` file may be run locally in order to host the multiworld on the local machine. This is done by running `ArchipelagoServer.exe` and pointing the resulting file selection prompt to the `.archipelago` file that was generated.
|
||||
The output of rolling a YAML will be a `.archipelago` file which can be subsequently uploaded to the Archipelago host
|
||||
game page. Archipelago host game page: [Archipelago Seed Upload Page](https://archipelago.gg/uploads)
|
||||
|
||||
The `.archipelago` file may be run locally in order to host the multiworld on the local machine. This is done by
|
||||
running `ArchipelagoServer.exe` and pointing the resulting file selection prompt to the `.archipelago` file that was
|
||||
generated.
|
@@ -1,38 +1,53 @@
|
||||
# Archipelago Triggers Guide
|
||||
This guide details the use of the Archipelago YAML trigger system. This guide is intended for a more advanced user with more in-depth knowledge of Archipelago YAML options as well as experience editing YAML files. This guide should take about 5 minutes to read.
|
||||
|
||||
This guide details the use of the Archipelago YAML trigger system. This guide is intended for a more advanced user with
|
||||
more in-depth knowledge of Archipelago YAML options as well as experience editing YAML files. This guide should take
|
||||
about 5 minutes to read.
|
||||
|
||||
## What are triggers?
|
||||
Triggers allow you to customize your game settings by allowing you to define one or many options which only occur under specific conditions. These are essentially "if, then" statements for options in your game. A good example of what you can do with triggers is the custom mercenary mode YAML that was created using entirely triggers and plando.
|
||||
|
||||
Mercenary mode YAML: [Mercenary Mode YAML on GitHub](https://github.com/alwaysintreble/Archipelago-yaml-dump/blob/main/Snippets/Mercenary%20Mode%20Snippet.yaml)
|
||||
Triggers allow you to customize your game settings by allowing you to define one or many options which only occur under
|
||||
specific conditions. These are essentially "if, then" statements for options in your game. A good example of what you
|
||||
can do with triggers is the custom mercenary mode YAML that was created using entirely triggers and plando.
|
||||
|
||||
For more information on plando you can reference the general plando guide or the Link to the Past plando guide.
|
||||
Mercenary mode
|
||||
YAML: [Mercenary Mode YAML on GitHub](https://github.com/alwaysintreble/Archipelago-yaml-dump/blob/main/Snippets/Mercenary%20Mode%20Snippet.yaml)
|
||||
|
||||
For more information on plando you can reference the general plando guide or the Link to the Past plando guide.
|
||||
|
||||
General plando guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en)
|
||||
|
||||
Link to the Past plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
|
||||
|
||||
## Trigger use
|
||||
Triggers have to be defined in the root of the yaml file meaning it must be outside a game section.
|
||||
The best place to do this is the bottom of the yaml.
|
||||
- Triggers comprise the trigger section and then each trigger must have an `option_category`, `option_name`, and `option_result` from which it will react to and then an `options` section where the definition of what will happen.
|
||||
|
||||
Triggers have to be defined in the root of the yaml file meaning it must be outside a game section. The best place to do
|
||||
this is the bottom of the yaml.
|
||||
|
||||
- Triggers comprise the trigger section and then each trigger must have an `option_category`, `option_name`,
|
||||
and `option_result` from which it will react to and then an `options` section where the definition of what will
|
||||
happen.
|
||||
- `option_category` is the defining section from which the option is defined in.
|
||||
- Example: `A Link to the Past`
|
||||
- This is the root category the option is located in. If the option you're triggering off of is in root then you
|
||||
would use `null`, otherwise this is the game for which you want this option trigger to activate.
|
||||
- This is the root category the option is located in. If the option you're triggering off of is in root then you
|
||||
would use `null`, otherwise this is the game for which you want this option trigger to activate.
|
||||
- `option_name` is the option setting from which the triggered choice is going to react to.
|
||||
- Example: `shop_item_slots`
|
||||
- This can be any option from any category defined in the yaml file in either root or a game section except for `game`.
|
||||
- Example: `shop_item_slots`
|
||||
- This can be any option from any category defined in the yaml file in either root or a game section except
|
||||
for `game`.
|
||||
- `option_result` is the result of this option setting from which you would like to react.
|
||||
- Example: `15`
|
||||
- Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple results you would need multiple triggers for this.
|
||||
- `options` is where you define what will happen when this is detected. This can be something as simple as ensuring another option also gets selected or placing an item in a certain location.
|
||||
- Example:
|
||||
- Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple
|
||||
results you would need multiple triggers for this.
|
||||
- `options` is where you define what will happen when this is detected. This can be something as simple as ensuring
|
||||
another option also gets selected or placing an item in a certain location.
|
||||
- Example:
|
||||
```yaml
|
||||
A Link to the Past:
|
||||
start_inventory:
|
||||
Rupees (300): 2
|
||||
```
|
||||
|
||||
This format must be:
|
||||
|
||||
```yaml
|
||||
@@ -42,7 +57,9 @@ This format must be:
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
The above examples all together will end up looking like this:
|
||||
|
||||
```yaml
|
||||
triggers:
|
||||
- option_category: A Link to the Past
|
||||
@@ -54,9 +71,11 @@ The above examples all together will end up looking like this:
|
||||
Rupees(300): 2
|
||||
```
|
||||
|
||||
For this example if the generator happens to roll 15 shuffled in shop item slots for your game you'll be granted 600 rupees at the beginning. These can also be used to change other options.
|
||||
For this example if the generator happens to roll 15 shuffled in shop item slots for your game you'll be granted 600
|
||||
rupees at the beginning. These can also be used to change other options.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
triggers:
|
||||
- option_category: Timespinner
|
||||
@@ -66,4 +85,5 @@ For example:
|
||||
Timespinner:
|
||||
Inverted: true
|
||||
```
|
||||
|
||||
In this example if your world happens to roll `SpecificKeycards` then your game will also start in inverted.
|
@@ -1,16 +1,33 @@
|
||||
# Using the Archipelago Website
|
||||
This guide encompasses the use cases for rolling and hosting multiworld games on the Archipelago website. This guide should only take a couple of minutes to read.
|
||||
|
||||
This guide encompasses the use cases for rolling and hosting multiworld games on the Archipelago website. This guide
|
||||
should only take a couple of minutes to read.
|
||||
|
||||
## Rolling the Seed On the Website
|
||||
1. After gathering the YAML files together in one location, select all the files and compress them into a `.ZIP` file.
|
||||
2. Next go to the "Generate Game" page. Generate game page: [Archipelago Seed Generation Page](https://archipelago.gg/generate). Here, you can adjust some server settings such as forfeit rules and the cost for a player to use a hint before generation.
|
||||
3. After adjusting the host settings to your liking click on the Upload File button and using the explorer window that opens, navigate to the location where you zipped the player files and upload this zip. The page will generate your game and refresh multiple times to check on completion status.
|
||||
4. After the generation completes you will be on a Seed Info page that provides the seed, the date/time of creation, a link to the spoiler log, if available, and links to any rooms created from this seed.
|
||||
5. To begin playing, click on "Create New Room", which will take you to the room page. From here you can navigate back to the Seed Info page or to the Tracker page. Sharing the link to the room page with your friends will provide them with the necessary info and files for them to connect to the multiworld.
|
||||
|
||||
1. After gathering the YAML files together in one location, select all the files and compress them into a `.ZIP` file.
|
||||
2. Next go to the "Generate Game" page. Generate game
|
||||
page: [Archipelago Seed Generation Page](https://archipelago.gg/generate). Here, you can adjust some server settings
|
||||
such as forfeit rules and the cost for a player to use a hint before generation.
|
||||
3. After adjusting the host settings to your liking click on the Upload File button and using the explorer window that
|
||||
opens, navigate to the location where you zipped the player files and upload this zip. The page will generate your
|
||||
game and refresh multiple times to check on completion status.
|
||||
4. After the generation completes you will be on a Seed Info page that provides the seed, the date/time of creation, a
|
||||
link to the spoiler log, if available, and links to any rooms created from this seed.
|
||||
5. To begin playing, click on "Create New Room", which will take you to the room page. From here you can navigate back
|
||||
to the Seed Info page or to the Tracker page. Sharing the link to the room page with your friends will provide them
|
||||
with the necessary info and files for them to connect to the multiworld.
|
||||
|
||||
## Hosting a Pre-Generated Multiworld on the Website
|
||||
The easiest and most recommended method is to generate the game on the website which will allow you to create a private room with all the necessary files you can share, as well as hosting the game and supporting item trackers for various games.
|
||||
|
||||
If for some reason the seed was rolled on a machine, then either the resulting zip file or the resulting `AP_XXXXX.archipelago` inside the zip file can be uploaded to the host game page. Host game page: [Archipelago Seed Upload Page](https://archipelago.gg/uploads)
|
||||
The easiest and most recommended method is to generate the game on the website which will allow you to create a private
|
||||
room with all the necessary files you can share, as well as hosting the game and supporting item trackers for various
|
||||
games.
|
||||
|
||||
This will give a page with the seed info and a link to the spoiler log, if it exists. Click on "Create New Room" and then share the link to the resulting page the other players so that they can download their patches or mods. The room will also have a link to a Multiworld Tracker and tell you what the players need to connect to from their clients.
|
||||
If for some reason the seed was rolled on a machine, then either the resulting zip file or the
|
||||
resulting `AP_XXXXX.archipelago` inside the zip file can be uploaded to the host game page. Host game
|
||||
page: [Archipelago Seed Upload Page](https://archipelago.gg/uploads)
|
||||
|
||||
This will give a page with the seed info and a link to the spoiler log, if it exists. Click on "Create New Room" and
|
||||
then share the link to the resulting page the other players so that they can download their patches or mods. The room
|
||||
will also have a link to a Multiworld Tracker and tell you what the players need to connect to from their clients.
|
Reference in New Issue
Block a user