Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
compiling b0035d9a08 Update TR key logic to handle the big key being placed in the back, which can only be accessed by travelling backwards from the middle to a connecting overworld location. 2020-08-01 08:48:29 +10:00
.github use pytest for github unittests 2020-04-29 18:44:03 +02:00
WebHostLib WebHost: Fix internal server error if hint field is empty 2020-07-30 01:00:55 +02:00
data Fix sprite glitch while receiving items during Ganon fight. 2020-07-29 22:05:37 -07: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 adjuster no longer force injects basepatch, so documentation should reflect that it can patch various alttp roms 2020-07-24 13:45:28 +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 Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +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 Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +02:00
EntranceShuffle.py Connect hyrule_castle_exits to light world exits in standard dungeonsfull shuffle when there are no mandatory exits. 2020-07-29 18:05:47 +10:00
Fill.py Should probably not spoil which players have progression balancing in a logging.info level, for mystery rolling 2020-07-30 20:17:04 +02:00
Gui.py Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +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 WebHost: Automatic !hint tracking 2020-07-27 19:30:31 +02:00
Mystery.py Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +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 WebHost: Add youtube livestreaming and autogenerated multistream link 2020-07-25 22:40:24 +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 Set Enemizer output to logging.debug 2020-07-30 20:17:52 +02:00
Rules.py Update TR key logic to handle the big key being placed in the back, which can only be accessed by travelling backwards from the middle to a connecting overworld location. 2020-08-01 08:48:29 +10:00
Text.py fix a junk hint 2020-07-12 16:41:46 +02:00
Utils.py WebHost: List Rooms in a sortable table 2020-07-21 23:15:19 +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
easy.yaml Add Singularity and Duality Boss Shuffles to easy.yaml linked_options 2020-07-31 01:44:25 +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 default meta.yaml with new goals 2020-07-21 06:36:51 +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