Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill a77424d66a missed a rename 2020-06-11 22:19:46 +02:00
.github use pytest for github unittests 2020-04-29 18:44:03 +02:00
data Updated baserom patch 2020-06-08 11:55:40 -07:00
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 store last used adjuster settings and use them for patching 2020-04-26 15:14:30 +02:00
AdjusterMain.py store last used adjuster settings and use them for patching 2020-04-26 15:14:30 +02:00
BaseClasses.py fix that in a copied world progressive equipment would always say "on", including spoiler log 2020-06-09 18:44:02 +02:00
Bosses.py rename has_blunt_weapon to has_melee_weapon 2020-04-20 19:17:10 +02:00
Dungeons.py Place skull woods or universal key into generated item pools as appropriate. (and pop skull woods small key if explicitly placed in pinball chest). (5 rupees instead of universal key on hard/expert pool) 2020-06-10 13:41:28 -07:00
ER_hint_reference.txt Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
EntranceRandomizer.py Merge branch 'master' into msu_v32 2020-06-08 02:04:41 -07:00
EntranceShuffle.py Remove crossworld connections from dungeonsfull (#97) 2020-05-25 16:01:43 +02:00
Fill.py fix crash when quick filling locally locked trash items 2020-06-04 03:30:59 +02:00
Gui.py improve gui 2020-06-10 19:57:01 +02:00
GuiUtils.py Fix json decoding 2018-01-01 12:13:39 -05:00
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 Place skull woods or universal key into generated item pools as appropriate. (and pop skull woods small key if explicitly placed in pinball chest). (5 rupees instead of universal key on hard/expert pool) 2020-06-10 13:41:28 -07:00
Items.py fix crash when quick filling locally locked trash items 2020-06-04 03:30:59 +02:00
LICENSE Following this howto in the hopes of doing it right. IANAL. 2020-01-28 22:54:19 +01:00
Main.py Adjust output to "BM" (Berserker's Multiworld) to differentiate spoiler logs, roms and server data at a glance 2020-06-10 21:25:14 +02:00
ModuleUpdate.py Run update/install once, as it installs/updates everything in one go 2020-03-22 02:34:24 +01:00
MultiClient.py improve gui 2020-06-10 19:57:01 +02:00
MultiMystery.py missed a rename 2020-06-11 22:19:46 +02:00
MultiServer.py Adjust output to "BM" (Berserker's Multiworld) to differentiate spoiler logs, roms and server data at a glance 2020-06-10 21:25:14 +02:00
Mystery.py add minor_glitches to mystery 2020-06-10 19:02:11 +02:00
NetUtils.py WebUI (#100) 2020-06-03 21:29:43 +02:00
Options.py Skeleton of new Options module 2020-03-18 16:15:32 +01:00
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 changes 2020-06-07 12:04:33 -07:00
README.md Update README.md 2020-04-21 21:14:07 +02:00
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 differentiate goal text for local triforce hunt 2020-06-10 03:34:07 +02:00
Rules.py actually make minorglitches usable 2020-06-10 03:24:19 +02:00
Text.py Keep goose/honk to just ganon/triforce 2020-04-29 22:39:22 -07:00
Utils.py fix crash if there are no cached adjuster settings 2020-06-09 18:02:15 +02:00
WebUI.py remove HTTP logging as it confuses users 2020-06-10 19:10:11 +02:00
appveyor.yml Drop Python 3.7 auto builds 2020-05-30 02:07:29 +02:00
easy.yaml add minor_glitches to mystery 2020-06-10 19:02:11 +02:00
host.yaml implement skip_playthrough in mystery 2020-05-31 00:28:03 +02:00
icon.ico the setup experience 2020-04-07 04:18:26 +02:00
inno_setup.iss Adjust output to "BM" (Berserker's Multiworld) to differentiate spoiler logs, roms and server data at a glance 2020-06-10 21:25:14 +02:00
meta.yaml update meta.yaml with new progression balancing 2020-05-19 02:57:34 +02:00
pytest.ini use pytest for github unittests 2020-04-29 18:44:03 +02:00
requirements.txt rip out port forwarding. Broken and as a result mostly unused. 2020-05-30 03:47:40 +02:00
setup.py WebUI (#100) 2020-06-03 21:29:43 +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