Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill 5a204a75f5 default to a zipping algorithm that actually finds similarities in roms (~90% file size reduction) 2020-02-21 10:57:57 +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 rename ocarina to flute. 2020-02-17 10:08: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 Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
EntranceShuffle.py Inverted: connect lake hylia island to lw 2020-01-01 18:12:23 +01:00
Fill.py Fill: place items for players with no accessibility requirements first 2019-12-18 20:47:35 +01:00
Gui.py move gui module install to before project submodules 2020-02-02 22:09:10 +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 rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Items.py rename ocarina to flute. 2020-02-17 10:08:03 +01:00
LICENSE Following this howto in the hopes of doing it right. IANAL. 2020-01-28 22:54:19 +01:00
Main.py Get timer and progressive settings from dict for file name (#29) 2020-02-07 23:16:24 +01:00
ModuleUpdate.py introduce PyYAML and make associated changes 2020-01-19 23:30:22 +01:00
MultiClient.py add location checks to hint command 2020-02-17 08:16:17 +01:00
MultiMystery.py default to a zipping algorithm that actually finds similarities in roms (~90% file size reduction) 2020-02-21 10:57:57 +01:00
MultiServer.py Meta-Mystery 2020-02-18 09:14:31 +01:00
Mystery.py fix an exception text 2020-02-18 09:50:50 +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 rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Rules.py rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Text.py rename ocarina to flute. 2020-02-17 10:08:03 +01:00
Utils.py implement server-client handshake and move hint system to optional colorama support 2020-02-16 15:32:40 +01:00
appveyor.yml Add versioning to MSI installer. 2017-12-02 16:38:35 -05:00
easy.yaml Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
host.yaml default to a zipping algorithm that actually finds similarities in roms (~90% file size reduction) 2020-02-21 10:57:57 +01:00
meta.yaml Meta-Mystery 2020-02-18 09:14:31 +01:00
requirements.txt implement fuzzy text matching 2020-02-17 13:57:48 +01:00
setup.py prep for 1.4 compiled release 2020-02-11 15:07:21 +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)