Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
alwaysintreble 573a1a8402
Core: Add a function to allow worlds to easily allow self-locking items (#1383)
* implement function to allow self locking items for items accessibility

* swap some lttp locations to use new functionality

* lambda capture `item_name` and `location`

* don't lambda capture location

* Revert weird visual indent

* make location.always_allow additive

* fix always_allow rule for multiple items

* don't need to lambda capture item_names

* oop

* move player assignment to the beginning

* always_allow should only be for that player so prevent non_local_items

* messenger got merged so have it use this

* Core: fix doc string indentation for allow_self_locking_items

* Core: fix doc string indentation for allow_self_locking_items, number two

---------

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
2023-03-14 00:55:34 +01:00
.github CI: run unittests on macos 2023-03-03 18:22:31 +01:00
WebHostLib WebHost: update modules 2023-03-13 21:34:24 +01:00
data Pokémon R/B: Version 3 (#1520) 2023-03-13 23:40:55 +01:00
docs Docs: Add an option api doc (#1181) 2023-03-11 01:14:44 +01:00
test Tests: test that the game is beatable for WorldTestBases (#1495) 2023-03-03 00:30:40 +01:00
typings/kivy Zillion: map tracker in client (#1136) 2022-10-27 02:30:22 -07:00
worlds Core: Add a function to allow worlds to easily allow self-locking items (#1383) 2023-03-14 00:55:34 +01:00
.gitignore Minecraft rewrite (#1493) 2023-03-08 20:13:52 -08:00
BaseClasses.py Core: Add a function to allow worlds to easily allow self-locking items (#1383) 2023-03-14 00:55:34 +01:00
ChecksFinderClient.py ChecksFinder: Linux support via wine (#795) 2022-07-19 07:44:04 +02:00
CommonClient.py Misc collected fixes (#1497) 2023-03-04 16:34:10 +01:00
FF1Client.py MultiServer and clients: async coroutine starter in Utils.py (#1143) 2022-11-02 15:51:35 +01:00
FactorioClient.py Protocol: Improve machine-readability of prints (#1388) 2023-02-13 03:17:25 +01:00
Fill.py Item Plando: make world selection deterministic 2023-03-05 02:16:55 +01:00
Generate.py Misc collected fixes (#1497) 2023-03-04 16:34:10 +01:00
LICENSE update Copyright 2022-02-17 19:03:11 -08:00
Launcher.py TLoZ: Implementing The Legend of Zelda (#1354) 2023-03-05 13:31:31 +01:00
LttPAdjuster.py Core: replace global random state with descriptive error (#1424) 2023-02-02 01:14:23 +01:00
Main.py Core: implement location_name_groups (#1502) 2023-03-08 22:15:28 +01:00
MinecraftClient.py MinecraftClient: Linux fixes (#668) 2022-06-19 04:54:10 -07:00
ModuleUpdate.py ModuleUpdater: allow new syntax, nicer output 2023-02-18 15:18:51 +01:00
MultiServer.py Core: implement location_name_groups (#1502) 2023-03-08 22:15:28 +01:00
NetUtils.py Server: fix release_mode (#1407) 2023-01-24 03:36:27 +01:00
OoTAdjuster.py Core: replace global random state with descriptive error (#1424) 2023-02-02 01:14:23 +01:00
OoTClient.py Ocarina of Time 7.0 (#1277) 2022-12-11 04:11:40 +01:00
Options.py Core: implement location_name_groups (#1502) 2023-03-08 22:15:28 +01:00
Patch.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
PokemonClient.py Pokémon R/B: Version 3 (#1520) 2023-03-13 23:40:55 +01:00
README.md The Messenger: implement new game (#1494) 2023-03-12 15:05:50 +01:00
SNIClient.py SNIclient: connect fixes (#1436) 2023-02-07 10:16:39 +01:00
Starcraft2Client.py SC2: Greater variety on short generations (#1367) 2023-03-07 14:14:49 +01:00
Utils.py WebHost: automatically fill PATCH_TARGET -> HOST_ADDRESS and re-use it for rooms (#1518) 2023-03-09 21:31:00 +01:00
WargrooveClient.py Wargroove: Fixed Wargroove Client not removing communication files (#1492) 2023-03-03 18:24:09 +01:00
WebHost.py WebHost: automatically fill PATCH_TARGET -> HOST_ADDRESS and re-use it for rooms (#1518) 2023-03-09 21:31:00 +01:00
Zelda1Client.py TLoZ: Implementing The Legend of Zelda (#1354) 2023-03-05 13:31:31 +01:00
ZillionClient.py ZillionClient: fix manual disconnect (#1266) 2023-01-07 10:27:43 +01:00
host.yaml TLoZ: Implementing The Legend of Zelda (#1354) 2023-03-05 13:31:31 +01:00
inno_setup.iss Windows: allow arm64 setup (#1496) 2023-03-03 09:51:36 +01:00
kvui.py kvui: limit UI side logs to by default 1000 messages 2023-02-13 09:02:19 +01:00
meta.yaml meta.yaml: update progression balancing (#1283) 2022-12-05 22:26:44 +01:00
playerSettings.yaml update LTTP player template to add all universal AP options (#1372) 2023-01-07 10:09:33 +01:00
pytest.ini use pytest for github unittests 2020-04-29 18:44:03 +02:00
requirements.txt Core: update modules 2022-09-03 09:55:47 +02:00
setup.py Setup: update cx-Freeze 2023-03-13 21:34:07 +01:00

README.md

Archipelago Discord Shield | Install

Archipelago provides a generic framework for developing multiworld capability for game randomizers. In all cases, presently, Archipelago is also the randomizer itself.

Currently, the following games are supported:

  • The Legend of Zelda: A Link to the Past
  • Factorio
  • Minecraft
  • Subnautica
  • Slay the Spire
  • Risk of Rain 2
  • The Legend of Zelda: Ocarina of Time
  • Timespinner
  • Super Metroid
  • Secret of Evermore
  • Final Fantasy
  • Rogue Legacy
  • VVVVVV
  • Raft
  • Super Mario 64
  • Meritous
  • Super Metroid/Link to the Past combo randomizer (SMZ3)
  • ChecksFinder
  • ArchipIDLE
  • Hollow Knight
  • The Witness
  • Sonic Adventure 2: Battle
  • Starcraft 2: Wings of Liberty
  • Donkey Kong Country 3
  • Dark Souls 3
  • Super Mario World
  • Pokémon Red and Blue
  • Hylics 2
  • Overcooked! 2
  • Zillion
  • Lufia II Ancient Cave
  • Blasphemous
  • Wargroove
  • Stardew Valley
  • The Legend of Zelda
  • The Messenger

For setup and instructions check out our tutorials page. Downloads can be found at Releases, including compiled windows binaries.

History

Archipelago is built upon a strong legacy of brilliant hobbyists. We want to honor that legacy by showing it here. The repositories which Archipelago is built upon, inspired by, or otherwise owes its gratitude to are:

We recognize that there is a strong community of incredibly smart people that have come before us and helped pave the path. Just because one person's name may be in a repository title does not mean that only one person made that project happen. We can't hope to perfectly cover every single contribution that lead up to Archipelago but we hope to honor them fairly.

Path to the Archipelago

Archipelago was directly forked from bonta0's multiworld_31 branch of ALttPEntranceRandomizer (this project has a long legacy of its own, please check it out linked above) on January 12, 2020. The repository was then named to MultiWorld-Utilities to better encompass its intended function. As Archipelago matured, then known as "Berserker's MultiWorld" by some, we found it necessary to transform our repository into a root level repository (as opposed to a 'forked repo') and change the name (which came later) to better reflect our project.

Running Archipelago

For most people all you need to do is head over to the releases page then download and run the appropriate installer. The installers function on Windows only.

If you are running Archipelago from a non-Windows system then the likely scenario is that you are comfortable running source code directly. Please see our doc on running Archipelago from source.

This project makes use of multiple other projects. We wouldn't be here without these other repositories and the contributions of their developers, past and present.

Contributing

For contribution guidelines, please see our Contributing doc.

FAQ

For Frequently asked questions, please see the website's FAQ Page.

Code of Conduct

Please refer to our code of conduct.