Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
LeonarthCG c9625e1b35
Saving Princess: implement new game (#3238)
* Saving Princess: initial commit

* settings -> options

Co-authored-by: Scipio Wright <scipiowright@gmail.com>

* settings -> options

Co-authored-by: Scipio Wright <scipiowright@gmail.com>

* replace RegionData class with List[str]

RegionData was only wrapping a List[str], so we can directly use List[str]

* world: MultiWorld -> multiworld: MultiWorld

* use world's random instead of multiworld's

* use state's has_any and has_all where applicable

* remove unused StartInventory import

* reorder PerGameCommonOptions

* fix relative AutoWorld import

Co-authored-by: Scipio Wright <scipiowright@gmail.com>

* clean up double spaces

* local commands -> Local Commands

Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>

* remove redundant which items section

Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>

* game info rework

* clean up item count redundancy

* add game to readme and codeowners

* fix get_region_entrance return type

* world.multiworld.get -> world.get

* add more events

added events for the boss kills that open the gate, as well as for system power being restored

these only apply if expanded pool is not selected

* add client/autoupdater to launcher

* reorder commands in game info

* update docs with automated installation info

* add quick links to doc

* Update setup_en.md

* remove standalone saving princess client

* doc fixes

* code improvements and redundant default removal

as suggested by @Exempt-Medic
this includes the removal of events from the item/location name to id, as well as checking for the player name being ASCII

* add option to change launch coammnd

the LaunchCommand option is filled to either the executable or wine with the necessary arguments based on Utils.is_windows

* simplify valid install check

* mod installer improvements

now deletes possible existing files before installing the mod

* add option groups and presets

* add required client version

* update docs about cheat items pop-ups

items sent directly by the server (such as with starting inventory) now have pop-ups just like any other item

* add Steam Input issue to faq

* Saving Princess: BRAINOS requires all weapons

* Saving Princess: Download dll and patch together

Previously, gm-apclientpp.dll was downloaded from its own repo
With this update, the dll is instead extracted from the same zip as the game's patch

* Saving Princess: Add URI launch support

* Saving Princess: goal also requires all weapons

given it's past brainos

* Saving Princess: update docs

automatic connection support was added, docs now reflect this

* Saving Princess: extend([item]) -> append(item)

* Saving Princess: automatic connection validation

also parses the slot, password and host:port into parameters for the game

* Saving Princess: change subprocess .run to .Popen

This keeps the game from freezing the launcher while it is running

---------

Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-12-07 11:29:27 +01:00
.github Core: rework python version check (#4294) 2024-11-30 17:23:28 +01:00
.run PyCharm: ship a working unittest run config (#2694) 2024-01-12 00:49:14 +01:00
WebHostLib Core: warn if a yaml is empty (#4117) 2024-12-01 05:18:00 +01:00
data Core: Introduce 'Hint Priority' concept (#3506) 2024-11-29 02:10:31 +01:00
docs Saving Princess: implement new game (#3238) 2024-12-07 11:29:27 +01:00
test Tests: Add test that local/non local items aren't modified late #3976 2024-11-29 22:57:35 +01:00
typings Core: hot reload components from installed apworld (#3480) 2024-06-06 20:36:14 +02:00
worlds Saving Princess: implement new game (#3238) 2024-12-07 11:29:27 +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 Yacht Dice: Mark YachtWeights.py as "linguist-generated" (#3898) 2024-11-29 20:45:10 +01: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: cull events from multidata spheres (#3623) 2024-11-30 04:11:03 +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 Core: Introduce 'Hint Priority' concept (#3506) 2024-11-29 02:10:31 +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" Priority Fill (#3592) 2024-11-30 03:37:08 +01:00
Generate.py Core: warn if a yaml is empty (#4117) 2024-12-01 05:18:00 +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: launch without delay on URI without choice (#4279) 2024-12-01 08:33:43 +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: Hint Priority fixes (#4315) 2024-12-01 15:16:36 +01:00
MinecraftClient.py Core: Add settings API ("auto settings") for host.yaml (#1871) 2023-07-05 22:39:35 +02:00
ModuleUpdate.py Core: rework python version check (#4294) 2024-11-30 17:23:28 +01:00
MultiServer.py Core: Hint Priority fixes (#4315) 2024-12-01 15:16:36 +01:00
NetUtils.py Core: Introduce 'Hint Priority' concept (#3506) 2024-11-29 02:10:31 +01: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: Add new error message for item count when defined as a set instead of a dict (#4100) 2024-12-01 04:51:26 +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 Saving Princess: implement new game (#3238) 2024-12-07 11:29:27 +01: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: log process ID (#4290) 2024-12-03 03:00:56 +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 Launcher: support Component icons inside apworlds (#3629) 2024-11-30 03:58:52 +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 Multiserver: Add argument for timestamping STDOUT (#4266) 2024-12-01 04:33:36 +01:00
setup.py Core: fix deprecation warning for utcnow() in setup.py (#4170) 2024-11-29 01:57:18 +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
  • Faxanadu
  • Saving Princess

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.