Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill e1add44d83
Merge pull request #93 from compiling/owg_multi
Optimise world exploration
2020-05-10 16:56:38 +02:00
.github use pytest for github unittests 2020-04-29 18:44:03 +02:00
data
test Update dungeon tests to work with the new exploration algorithm 2020-05-10 19:54:40 +10:00
.gitignore ignore mystery_result_*.yaml 2020-04-29 23:56:51 -07:00
Adjuster.py
AdjusterMain.py
BaseClasses.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Bosses.py
Dungeons.py
ER_hint_reference.txt
EntranceRandomizer.py
EntranceShuffle.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Fill.py
Gui.py store last used adjuster settings and use them for patching 2020-04-26 15:14:30 +02:00
GuiUtils.py
InvertedRegions.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
ItemList.py remove old debug stuff 2020-04-28 17:42:25 +02:00
Items.py
LICENSE
Main.py Merge pull request #92 from compiling/owg_multi 2020-05-10 08:33:23 +02:00
ModuleUpdate.py
MultiClient.py Changes 2020-04-30 18:02:25 -07:00
MultiMystery.py
MultiServer.py stronger compression and compatibility on multidata 2020-05-08 23:09:56 +02:00
Mystery.py don't crash on empty meta-ignore dicts 2020-05-07 08:26:50 +02:00
Options.py
OverworldGlitchRules.py Make Pyramid Fairy offset mirror require access to Hyrule Castle Courtyard through the secret passage entrance (the normal route is not possible if you killed Agahnim). 2020-05-08 19:32:04 +10:00
Patch.py Patch.py multithreaded sfc->bmbp 2020-05-02 13:02:34 +02:00
Plando.py
Plandomizer_Template.txt
README.md
Regions.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Rom.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Rules.py Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
Text.py Keep goose/honk to just ganon/triforce 2020-04-29 22:39:22 -07:00
Utils.py Fix issue when a zero byte _persistent_storage.yaml exists. 2020-04-29 22:42:26 -07:00
appveyor.yml
easy.yaml
host.yaml addresses #86 2020-05-04 02:47:22 +02:00
icon.ico
inno_setup.iss make qualified OS name match acronym for BMBP 2020-05-10 13:49:34 +02:00
meta.yaml
pytest.ini use pytest for github unittests 2020-04-29 18:44:03 +02:00
requirements.txt
setup.py implement windows cert 2020-05-01 18:51:08 +02:00

README.md

Berserker's Multiworld

This is a complete fork of Bonta's Multiworld V31. It is a drop-in replacement with everything from Bonta's Multiworld included. You can find a guide here: https://docs.google.com/document/d/1r7qs1-MK7YbFf2d-mEUeTy2wHykIf1ALG9pLtVvUbSw/edit# Or use the Wiki button at the top

Additions/Changes

Project

  • Available in precompiled form and guided setup for Windows 64Bit on Releases page.
  • Compatible with Python 3.7 and 3.8. Potentially future versions as well.
  • Update modules if they are too old, preventing a crash when trying to connect among potential other issues
  • Autoinstall missing modules
  • Allow newer versions of modules than specified, as they will usually not break compatibility
  • Support for V31 extendedmsu
  • Has support for binary patching to allow legal distribution of multiworld rom files
  • Various performance improvements (over 100% faster in most cases)
  • Various fixes
  • Overworld Glitches Logic
  • Newer Entrance Randomizer Logic, allowing more potential item and boss locations
  • completely redesigned command interface, with !help and /help

MultiMystery.py

  • Allows you to generate a Multiworld with individual player mystery weights. Since weights can also be set to 100%, this also allows for individual settings for each player in a regular multiworld. Basis is a .yaml file that sets these weights. You can find an easy.yaml in this project folder to get started.
  • Additional instructions are at the start of the file. Open with a text editor.
  • Configuration options in the host.yaml file.

MultiServer.py

  • Supports automatic port-forwarding, can be enabled in host.yaml
  • improved !players command, mentioning how many players are currently connected of how many expected and who's missing
  • /forfeit Playername now works when the player is not currently connected
  • Added /hint and !hint, configuration in host.yaml and description in help
  • various commands, like /send and /hint use "fuzzy text matching", no longer requiring you to enter a location, player name or item name perfectly

Mystery.py

  • Defaults to generating a non-race ROM (Bonta's only makes race ROMs at this time) If a race ROM is desired, pass --create-race as argument to it
  • When an error is generated due to a broken .yaml file, it now mentions in the error trace which file, line and character is the culprit
  • Option for progressive items, allowing you to turn them off (see easy.yaml for more info)
  • Rom-Option for extendedmsu (see easy.yaml for more info)
  • Option for "timer"
  • Option for "dungeon_counters", allowing you to configure the dungeon item counter
  • Option for "glitch_boots", allowing to run glitched modes without automatic boots
  • Supports new Meta-Mystery mode. Read meta.yaml for details.
  • Added dungeonssimple and dungeonsfull ER modes

MultiClient.py

  • Awaits a QUsb2Snes connection when started, latching on when available
  • completely redesigned command interface, with !help and /help
  • Running it with a patch file will patch out the multiworld rom and then automatically connect to the host that created the multiworld
  • Cheating is now controlled by the server and can be disabled through host.yaml
  • Automatically starts QUsb2Snes, if it isn't running
  • Better reconnect to both snes and server