Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill 31d3b7ce84 implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
.github Github Sponsors 2020-02-25 13:46:42 +01:00
data revert asm changes 2020-04-04 08:54:57 +02:00
test Fix inverted TR tests - ER requires access to Witches Hut for potions. 2020-04-05 21:12:25 +10:00
.gitignore Pr 56 (#56) 2020-04-02 14:47:46 +02:00
Adjuster.py Sprites are now player specific, can be chosen from their sprite name rather than file path, support "random" choice and support "randomonhit" enemizer-only option 2020-01-09 02:30:00 +01:00
AdjusterMain.py Merge branch 'master' into pull/58 2020-04-04 09:16:39 +02:00
BaseClasses.py implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
Bosses.py Merge branch 'master' into pull/58 2020-04-04 09:16:39 +02:00
Dungeons.py Individual settings: retro 2019-12-17 00:16:02 +01:00
ER_hint_reference.txt Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
EntranceRandomizer.py implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
EntranceShuffle.py Merge branch 'pull/23' 2020-04-08 15:07:19 +02:00
Fill.py some optimization 2020-04-14 18:59:00 +02:00
Gui.py log gui exceptions 2020-04-14 18:57:39 +02:00
GuiUtils.py Fix json decoding 2018-01-01 12:13:39 -05:00
InvertedRegions.py Merge branch 'pull/23' 2020-04-08 15:07:19 +02:00
ItemList.py implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
Items.py pendants are the wrong way in ER. Yay. 2020-04-15 09:12:58 +02:00
LICENSE Following this howto in the hopes of doing it right. IANAL. 2020-01-28 22:54:19 +01:00
Main.py implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +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 Merge branch 'master' into owg_test 2020-04-15 21:27:41 +02:00
MultiMystery.py introduce multithreading to MultiMystery patch creation 2020-04-10 14:27:54 +02:00
MultiServer.py re-allow spaces in passwords 2020-04-15 10:31:58 +02:00
Mystery.py implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +02:00
OWGSets.py add a todo to OWGSets.py 2020-04-10 21:18:36 +02:00
Options.py Skeleton of new Options module 2020-03-18 16:15:32 +01:00
Patch.py some cleaning in Patch.py 2020-04-15 10:11:47 +02:00
Plando.py Merge branch 'master' into pull/58 2020-04-04 09:16:39 +02:00
Plandomizer_Template.txt rename ocarina to flute. 2020-02-17 10:08:03 +01:00
README.md improve README.md some more 2020-03-16 02:12:40 +01:00
Regions.py Merge branch 'pull/23' 2020-04-08 15:07:19 +02:00
Rom.py Merge branch 'owg_test' 2020-04-16 10:44:59 +02:00
Rules.py Merge branch 'pull/66' into owg_test 2020-04-15 16:59:47 +02:00
Text.py improve some random things 2020-03-05 02:31:26 +01:00
Utils.py mvoe client stuff to new command processor 2020-04-14 20:22:42 +02:00
appveyor.yml performance improvements and small adjustments 2020-03-10 00:38:29 +01:00
easy.yaml Merge branch 'master' into owg_test 2020-04-15 21:27:41 +02:00
host.yaml some zip format hints 2020-04-10 14:29:42 +02:00
icon.ico the setup experience 2020-04-07 04:18:26 +02:00
inno_setup.iss do not ask for ROM file on update 2020-04-11 16:10:15 +02:00
meta.yaml document the meta.yaml some more and tweak it a bit 2020-02-22 20:03:46 +01:00
requirements.txt update prompt_toolkit 2020-03-26 22:31:54 +01:00
setup.py remove qusb2snes log if it exists on compile 2020-04-11 16:36:13 +02:00

README.md

Berserker's Multiworld Utilities for Bonta's Multiworld

This is a complete fork of Bonta's Multiworld V31, which assumes you already know how to setup and use that project. Instructions here are only for the additions. This 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#

Additions/Changes

Project

  • Available in precompiled form 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
  • Various crash fixes

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

  • Added a try/except to prevent malformed console commands from crashing the entire server
  • 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
  • /forfeitplayer Playername now works when the player is not currently connected
  • various commands, like /senditem and /hint use "fuzzy text matching", no longer requiring you to enter a location, player name or item name perfectly
  • Added /hint command on the server (use just /hint for help on command)
    can be used as /hint Playername Itemname
    All Itemnames can be found in Items.py starting at line 25
    example:
    /hint Berserker Progressive Sword
    Notice (Team #1): [Hint]: Berserker's Progressive Sword can be found in Hype Cave - Top in ahhdurr's World
    Notice (Team #1): [Hint]: Berserker's Progressive Sword can be found in Blind's Hideout - Far Right in Schulzer's World
    Notice (Team #1): [Hint]: Berserker's Progressive Sword can be found in Palace of Darkness - Map Chest in Thorus's World
    Notice (Team #1): [Hint]: Berserker's Progressive Sword can be found in Ganons Tower - Map Chest in Will's World
  • A player-side hint command "!hint" also exists. It needs to be turned on in the host.yaml and is based on points.

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"
  • 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
  • Terminal improvements
  • 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