Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Mysteryem 3cb5219e09
Core: Fix playthrough only checking half of the sphere 0 items (#4268)
* Core: Fix playthrough only checking half of the sphere 0 items

The lists of precollected items were being mutated while iterating those
same lists, causing playthrough to skip checking half of the sphere 0
advancement items.

This patch ensures the lists are copied before they are iterated.

* Replace chain.from_iterable with two for loops for better clarity

Added a comment to `multiworld.push_precollected(item)` to explain that
it is also modifying `precollected_items`.
2024-11-29 01:38:17 +01:00
.github Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +01:00
.run PyCharm: ship a working unittest run config (#2694) 2024-01-12 00:49:14 +01:00
WebHostLib WebHost: Fix crash on advanced options when a Range option used "random" as its default (#4263) 2024-11-27 14:19:52 +01:00
data Core: Fix Template Yamls for games with colon in name (#4106) 2024-11-14 23:43:42 +01:00
docs Docs: Mention explicit_indirect_conditions & "Menu" -> origin_region_name (#3887) 2024-11-29 01:37:33 +01:00
test Tests: have option preset validation test do full validation (#4208) 2024-11-18 18:09:27 +01:00
typings Core: hot reload components from installed apworld (#3480) 2024-06-06 20:36:14 +02:00
worlds The Witness: Rename some *horrendously* named variables (#4258) 2024-11-29 01:37:19 +01:00
worlds_disabled Docs: Added Disabled World information to README.md (#2705) 2024-01-13 21:10:16 +01:00
.coveragerc Tests: create sane cov defaults (#2728) 2024-01-16 17:10:19 +01:00
.gitattributes Blasphemous: Total overhaul (#3355) 2024-08-21 01:18:28 +02:00
.gitignore Project: Add .code-workspace wildcard to gitignore 2024-07-24 14:08:16 +02:00
AHITClient.py A Hat in Time: Implement New Game (#2640) 2024-05-20 09:04:06 +02:00
AdventureClient.py CommonClient: Use lookup_in_game instead of lookup_in_slot in case of own-game name lookup when disconnected from server. (#3514) 2024-06-16 05:37:05 -05:00
BaseClasses.py Core: Fix playthrough only checking half of the sphere 0 items (#4268) 2024-11-29 01:38:17 +01:00
BizHawkClient.py BizHawkClient: Avoid error launching BizHawkClient via Launcher CLI (#3554) 2024-09-18 20:42:22 +02:00
ChecksFinderClient.py ChecksFinder: Linux support via wine (#795) 2022-07-19 07:44:04 +02:00
CommonClient.py Clients: fix high CPU usage when launched via MultiProcessing (#4209) 2024-11-18 15:59:17 +01:00
FF1Client.py Docs: Revise all docs mentioning Lua in EmuHawk (which are in English), and other misc. corrections (#1782) 2023-06-26 08:53:44 +02:00
FactorioClient.py Factorio: Client in folder, TextClient: always available (#1829) 2023-06-25 02:31:25 +02:00
Fill.py Core: fix single player item links (#3721) 2024-09-17 14:36:05 +02:00
Generate.py Core: improve error message for missing "game" entry in yaml (#4185) 2024-11-20 09:45:41 +01:00
KH1Client.py Kingdom Hearts: Implement New Game (#3201) 2024-08-19 00:39:37 +02:00
KH2Client.py KH2: Version 2 (#2009) 2023-11-25 08:46:00 -06:00
LICENSE update Copyright 2022-02-17 19:03:11 -08:00
Launcher.py Launcher: ports the _stop fix in the Launcher kivy App to handle_url Popup App (#4213) 2024-11-21 17:43:01 +01:00
LinksAwakeningClient.py LADX: Adding Slot Data For Magpie Tracker (#3582) 2024-09-17 23:56:40 +02:00
LttPAdjuster.py ALTTP: Minor Tweaks to the Adjuster UI (#2533) 2024-08-22 19:59:11 +02:00
MMBN3Client.py MMBN3: Small Bug Fixes (#2282) 2023-11-24 11:14:05 -06:00
Main.py Core: add race mode to multidata and datastore (#4017) 2024-10-01 21:08:13 +02:00
MinecraftClient.py Core: Add settings API ("auto settings") for host.yaml (#1871) 2023-07-05 22:39:35 +02:00
ModuleUpdate.py Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +01:00
MultiServer.py MultiServer: persist hints even if previously found (#4214) 2024-11-19 21:16:10 +01:00
NetUtils.py Core: Add color conversions for colorama/terminal output #3940 2024-09-17 14:44:32 +02:00
OoTAdjuster.py Core: Purge the evil (`world: MultiWorld`) (#2749) 2024-02-05 00:38:00 +01:00
OoTClient.py Core: Add settings API ("auto settings") for host.yaml (#1871) 2023-07-05 22:39:35 +02:00
Options.py Core: Fix Template Yamls for games with colon in name (#4106) 2024-11-14 23:43:42 +01:00
Patch.py Core: add layer for patches that don't use `Patch.py` (#2889) 2024-03-14 22:29:29 +01:00
README.md YachtDice: implement new game (#3482) 2024-08-21 19:59:21 +02:00
SNIClient.py SNIClient: log exceptions and keep task alive (#3911) 2024-10-31 00:16:02 +01:00
Starcraft2Client.py SC2: Multi-campaign (#2954) 2024-03-15 17:33:03 +01:00
UndertaleClient.py Undertale: Fixed output location of the patched game in UndertaleClient.py (#3418) 2024-07-14 14:11:52 +02:00
Utils.py Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +01:00
WargrooveClient.py kvui: abstract away client tab additions #3950 2024-09-22 16:24:14 +02:00
WebHost.py Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +01:00
Zelda1Client.py CommonClient: Use lookup_in_game instead of lookup_in_slot in case of own-game name lookup when disconnected from server. (#3514) 2024-06-16 05:37:05 -05:00
ZillionClient.py Zillion: move client to worlds/zillion (#2649) 2024-01-01 13:42:41 -06:00
_speedups.pyx Fix !remaining for cross-world items (#3732) 2024-08-16 22:20:02 +02:00
_speedups.pyxbld Speedups: remove dependency on c++ (#2796) 2024-06-12 18:54:59 +02:00
inno_setup.iss Core: have webhost slot name links go through the launcher (#2779) 2024-09-08 00:03:04 +02:00
intset.h Speedups: remove dependency on c++ (#2796) 2024-06-12 18:54:59 +02:00
kvui.py Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +01:00
meta.yaml meta.yaml: update progression balancing (#1283) 2022-12-05 22:26:44 +01:00
pytest.ini pytest: run tests on non-windows with new names (#2349) 2023-10-24 10:59:15 +02:00
requirements.txt Core: downgrade websockets and minor fixes (#4166) 2024-11-10 01:23:29 +01:00
settings.py settings: safer writing (#3644) 2024-07-25 09:10:36 +02:00
setup.py Core: purge py3.8 and py3.9 (#3973) 2024-11-27 03:28:00 +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
  • 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
  • Kingdom Hearts 2
  • The Legend of Zelda: Link's Awakening DX
  • Clique
  • Adventure
  • DLC Quest
  • Noita
  • Undertale
  • Bumper Stickers
  • Mega Man Battle Network 3: Blue Version
  • Muse Dash
  • DOOM 1993
  • Terraria
  • Lingo
  • Pokémon Emerald
  • DOOM II
  • Shivers
  • Heretic
  • Landstalker: The Treasures of King Nole
  • Final Fantasy Mystic Quest
  • TUNIC
  • Kirby's Dream Land 3
  • Celeste 64
  • Zork Grand Inquisitor
  • Castlevania 64
  • A Short Hike
  • Yoshi's Island
  • Mario & Luigi: Superstar Saga
  • Bomb Rush Cyberfunk
  • Aquaria
  • Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
  • A Hat in Time
  • Old School Runescape
  • Kingdom Hearts 1
  • Mega Man 2
  • Yacht Dice

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, or AppImage for Linux-based systems.

If you are a developer or are running on a platform with no compiled releases available, 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

To contribute to Archipelago, including the WebHost, core program, or by adding a new game, see our Contributing guidelines.

FAQ

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

Code of Conduct

Please refer to our code of conduct.