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.
Project
- Available in precompiled form and guided setup for Windows 64Bit on the 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 to prevent crashes and other possible 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
- New Goal: local triforce hunt - Keeps triforce pieces local to your world
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 playerSettings.yaml in this project folder to get started
- Additional instructions are at the start of the file. Open with a text editor
- Configuration options can be found 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
- Added commands
/hint
and!hint
. See host.yaml for more information - Updates have been made to the following commands:
!players
now displays the number of connected players, expected total player count, and which players are missingforfeit
now works when a player is no longer connected/send
,/hint
, and various other commands now use "fuzzy text matching". It is no longer required 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 playerSettings.yaml for more information)
- Option for "timer", allows you to configure a timer to display in game and/or options for timed one hit knock out
- 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
anddungeonsfull
entrance randomizer modes - Option for local items, allowing certain items to appear in your world only and not in other players' worlds
- 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 in host.yaml
- Automatically starts QUsb2Snes, if it isn't running
- Better reconnect to both snes and server