Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
CaitSith2 412e30fabc
Pr 56 (#56)
* Ignore *.bmbp files

Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
2020-04-02 14:47:46 +02: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 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 Fix Adjuster 2020-03-17 19:43:06 +01:00
BaseClasses.py write spoiler in unicode 2020-03-10 00:36:26 +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 Allow diff files to be created from the command line 2020-03-08 15:34:35 +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 improve gui checking 2020-03-30 07:46:40 +02: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 performance improvements and small adjustments 2020-03-10 00:38:29 +01:00
LICENSE Following this howto in the hopes of doing it right. IANAL. 2020-01-28 22:54:19 +01:00
Main.py Allow diff files to be created from the command line 2020-03-08 15:34:35 +01: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 Add a way to show found items on client/server (#52) 2020-03-23 10:47:07 +01:00
MultiMystery.py Pr 56 (#56) 2020-04-02 14:47:46 +02:00
MultiServer.py encode port into patch, also reverse defaulting order for server; 2020-04-02 11:21:33 +02:00
Mystery.py add remote_items to Mystery.py 2020-03-30 08:47:53 +02:00
Options.py Skeleton of new Options module 2020-03-18 16:15:32 +01:00
Patch.py some gui checking 2020-03-28 21:55:41 +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 improve README.md some more 2020-03-16 02:12:40 +01:00
Regions.py move to promp_toolkit 2020-03-13 03:53:20 +01:00
Rom.py some general improvements. Mostly performance improvements of patching roms in multiworld with enemizer 2020-03-06 23:08:46 +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 update prompt_toolkit 2020-03-26 22:31:54 +01:00
appveyor.yml performance improvements and small adjustments 2020-03-10 00:38:29 +01:00
easy.yaml improve easy.yaml documentation 2020-04-02 11:30:47 +02:00
host.yaml encode port into patch, also reverse defaulting order for server; 2020-04-02 11:21:33 +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 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
  • 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