Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill c6cd4a9681 make drag&drop work for binary patching if the file is outside the base folder 2020-03-06 01:27:02 +01:00
.github Github Sponsors 2020-02-25 13:46:42 +01:00
data --remote_items toggle: items will no longer be stored in the rom, a connection to a multiworld server will be required to receive them 2020-01-18 09:50:12 +01:00
.gitignore prep for 1.4 compiled release 2020-02-11 15:07:21 +01: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 Multiworld: clients will now be automatically be identified from the rom name and have their names and teams set by the host, meaning those need to be configured during seed gen 2020-01-14 10:42:27 +01:00
BaseClasses.py fix clock mode, again 2020-03-04 13:55:03 +01:00
Bosses.py Individual settings: shufflebosses shuffleenemies enemy_health enemy_damage 2019-12-17 15:55:53 +01: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 fix clock mode, again 2020-03-04 13:55:03 +01:00
EntranceShuffle.py remove unused checks (as indicated by new type annotations) 2020-03-03 00:17:36 +01:00
Fill.py Fill: place items for players with no accessibility requirements first 2019-12-18 20:47:35 +01:00
Gui.py fix clock mode, again 2020-03-04 13:55:03 +01:00
GuiUtils.py Fix json decoding 2018-01-01 12:13:39 -05:00
InvertedRegions.py Small shops refactor, cleanup some inverted mess 2020-01-10 11:41:22 +01:00
ItemList.py fix clock mode, again 2020-03-04 13:55:03 +01:00
Items.py some QOL 2020-02-22 18:04:35 +01:00
LICENSE Following this howto in the hopes of doing it right. IANAL. 2020-01-28 22:54:19 +01:00
Main.py fix clock mode, again 2020-03-04 13:55:03 +01:00
ModuleUpdate.py introduce PyYAML and make associated changes 2020-01-19 23:30:22 +01:00
MultiClient.py make drag&drop work for binary patching if the file is outside the base folder 2020-03-06 01:27:02 +01:00
MultiMystery.py implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
MultiServer.py implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
Mystery.py improve some random things 2020-03-05 02:31:26 +01:00
Patch.py rename to bmbp "Berserker Multiworld Binary Patch", which seems to be unique. 2020-03-06 00:54:13 +01:00
Plando.py Multiworld: clients will now be automatically be identified from the rom name and have their names and teams set by the host, meaning those need to be configured during seed gen 2020-01-14 10:42:27 +01:00
Plandomizer_Template.txt rename ocarina to flute. 2020-02-17 10:08:03 +01:00
README.md update docs 2020-02-09 05:39:38 +01:00
Regions.py add location checks to hint command 2020-02-17 08:16:17 +01:00
Rom.py fix clock mode, again 2020-03-04 13:55:03 +01:00
Rules.py rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Text.py improve some random things 2020-03-05 02:31:26 +01:00
Utils.py implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
appveyor.yml Update the appveyor script 2020-03-04 23:41:24 +01:00
easy.yaml improve easy.yaml 2020-03-04 11:59:59 +01:00
host.yaml implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
meta.yaml document the meta.yaml some more and tweak it a bit 2020-02-22 20:03:46 +01:00
requirements.txt implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
setup.py include meta.yaml in compiled client 2020-02-22 20:04:22 +01: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

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
  • /forfeitplayer Playername now works when the player is not currently connected
  • 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)