Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Fabian Dill 788f0e9af9 Add Tags to multidata 2020-07-19 20:16:45 +02:00
.github use pytest for github unittests 2020-04-29 18:44:03 +02:00
WebHostLib Remove debug logs 2020-07-18 23:02:41 -04:00
data Update npm dependencies to pull in security updates 2020-07-18 16:40:04 -04:00
test Rename Escape Dungeon to Hyrule Castle by vote on discord 2020-06-24 16:22:49 +02:00
.gitignore webhost update 2020-07-10 17:42:22 +02:00
Adjuster.py store last used adjuster settings and use them for patching 2020-04-26 15:14:30 +02:00
AdjusterMain.py Adjuster can modify from patch files 2020-07-10 14:39:32 -05:00
BaseClasses.py Change item placement rules to not be part of logic - they are used for local items and to prevent placing items in ways that would make seed generation impossible. 2020-07-16 18:59:23 +10:00
Bosses.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Dungeons.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
ER_hint_reference.txt Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
EntranceRandomizer.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
EntranceShuffle.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fill.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Gui.py Gui: update title bar 2020-07-14 16:53:57 +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 implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Items.py fix Red Boomerang hint text 2020-07-12 22:36:29 +02:00
LICENSE Add ganon triforce hunt (#117) 2020-06-26 16:18:53 +02:00
Main.py Add Tags to multidata 2020-07-19 20:16:45 +02:00
ModuleUpdate.py Fix ModuleUpdater fallback patch 2020-07-11 16:54:38 +02:00
MultiClient.py Multiclient: use new romname for persistent storage 2020-07-17 15:50:00 +02:00
MultiMystery.py expand rom auto_start to be customizable 2020-07-15 17:19:16 +02:00
MultiServer.py add compatibility server setting 2020-07-16 16:57:38 +02:00
Mystery.py implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +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 Fix bunny glitch rules for Tower of Hera (requires a sword to hit the switch) and Mini Moldorm Cave (pits prevent clearing in superbunny state) 2020-07-12 20:05:18 +10:00
Patch.py fix multithreaded import racing condition when frozen 2020-07-10 22:43:54 +02:00
README.md Update readme 2020-06-19 03:35:21 +02:00
Regions.py do not include entrance hint data if entrance is vanilla 2020-06-20 12:22:50 +02:00
Rom.py Update Enemizer 2020-07-17 00:07:08 +02:00
Rules.py update logic not found error message 2020-07-17 20:50:41 +02:00
Text.py fix a junk hint 2020-07-12 16:41:46 +02:00
Utils.py update rom name handling 2020-07-14 04:48:56 +02:00
WebHost.py WebHost: Move module into WebHostLib to prevent shadowing WebHost.py 2020-07-11 16:59:37 +02:00
WebUI.py add available hint points to UI 2020-06-15 06:30:51 +02:00
_config.yml Set theme jekyll-theme-slate 2020-06-19 03:22:27 +02:00
appveyor.yml Drop Python 3.7 auto builds 2020-05-30 02:07:29 +02:00
easy.yaml update easy.yaml to reflect new minor_glitches 2020-07-18 02:42:48 +02:00
host.yaml add compatibility server setting 2020-07-16 16:57:38 +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 Improved styling for WebHost 2020-07-18 16:25:07 -04:00
setup.py remove special rules for pinball room 2020-07-09 16:16:31 +02:00

README.md

Berserker's Multiworld

A Multiworld implementation for the Legend of Zelda: A Link to the Past Randomizer
For setup and instructions there's a Wiki
Downloads can be found at Releases, including compiled windows binaries.

Additions/Changes compared to Bonta's V31

Project

  • Available in precompiled form and guided setup for Windows 64Bit on Releases page.
  • Compatible with Python 3.7 and 3.8. Forward Checks for Python 4.0 are done.
  • 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
  • Uses "V32" MSU
  • 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
  • New Goal: local triforce hunt - limits triforce pieces to your own world so it is your own goal to accomplish

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.
  • Allows a new Mode called "Meta-Mystery", allowing certain mystery settings to apply to all players.
    • For example, everyone gets the same but random goal.

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
  • Some item groups also exist, so /hint Bottles lists all bottle varieties

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
  • Option for local items
  • Option for linked options
  • Added 'l' to dungeon_items to have a local-world keysanity

MultiClient.py

  • Has a Webbrowser based UI now
  • 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