Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
alwaysintreble 070a92e76c
The Messenger: implement new game (#1494)
* initial commit of messenger integration

* setup no_logic and needed slot_data

* fix some typos and determinism

* make all of it deterministic

* add documentation

* swapped to non local items so change the fed data

* ~~deathlink~~

* satisfy the docs test

* update doc test to show expected name

* split custom classes into a separate file and fix an errant rule

* make access dependency test give more useful errors

* implement tests

* remove some unneccessary back entrances and make names clearer

* fix some big dumbs

* successful unit tests are good also some slight reorganizing

* add astral tea quest line, and potentially power seals as items

* if TYPE_CHECKING... aahhhhhh

* oop forgot to remove legacy code

* having the seed and leaves as actual items doesn't seem to do anything so remove them. locations still work though

* update setup guide with some changes

* Tower HQ was creating duplicate locations

* allow self locking items

* cleanup

* move self_locking_items function to core

* docstring

* implement choice of notes needed for music box

* test the default value

* don't create any starting inventory items

* make item creation faster

* change default accessibility and power seals options

* improve documentation

* precollected_items is a dict of Items...

* implement shop chest goal

* tests

* always assign total and required seals

* add new goals and set music box as requiring shop chest on shop chest goals instead of just setting it as the completion

* fix dumb test quirk

* implement music box skip as an option

* world rewrite/cleanup

* default to apworld and add game to readme

* revert bleeding commits from other PRs

* more bleeds

* fix some errors in options docstrings

* ???

* make my set rules method not have an awful name

* test cleanup

* add a test for item accessibility

* fix issues with tests

* make the self locking item behavior work correctly

* misc cleanup

* more general cleanup to be a good example

* quick rules rewrite

* more general cleanup and typing

* more speed, more clean

* bump data version

* make sure the locked item belongs to current player

* fix bad name and indent. call MessengerItem directly for events

* add poptracker pack to docs

* doc cleanup and "known issues" section that I probably won't be able to fix any time soon.

* missed some spots

* add another bug i forgot about

* be consistently wrong
2023-03-12 15:05:50 +01:00
.github CI: run unittests on macos 2023-03-03 18:22:31 +01:00
WebHostLib WebHost: add game and Factorio to multitracker (#1526) 2023-03-12 12:38:13 +01:00
data TLoZ: Implementing The Legend of Zelda (#1354) 2023-03-05 13:31:31 +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 The Messenger: implement new game (#1494) 2023-03-12 15:05:50 +01:00
.gitignore Minecraft rewrite (#1493) 2023-03-08 20:13:52 -08:00
BaseClasses.py Spoiler: Don't double print if world overrides common options (#1505) 2023-03-08 22:19:38 +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 Pokemon R/B: Bug fixes and add trap weights (#1319) 2022-12-11 13:51:28 -06: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 The Messenger: implement new game (#1494) 2023-03-12 15:05:50 +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.