Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
CaitSith2 d75281c37a Base rom now has default link sprite in the 32 randomspriteonevent slots. 2020-10-05 10:55:56 -07:00
.github use pytest for github unittests 2020-04-29 18:44:03 +02:00
WebHostLib Updated spanish tutorial (#143) 2020-10-03 19:17:34 +02:00
data Base rom now has default link sprite in the 32 randomspriteonevent slots. 2020-10-05 10:55:56 -07:00
test make all output paths host.yaml settable 2020-08-20 15:43:22 +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 Put bombos into logic for swordless players 2020-09-27 10:17:35 -07:00
Bosses.py Kholdstare can now be a full singularity boss, even on swordless. 2020-09-16 22:01:03 -07:00
Dungeons.py make "universal" small key shuffle a thing and split it out of retro 2020-08-20 20:13:00 +02:00
ER_hint_reference.txt Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
EntranceRandomizer.py Make "Prize" shuffling an option 2020-09-20 04:35:45 +02:00
EntranceShuffle.py Change "not found" style errors from RuntimeError (misc error) to KeyError (value not found for a given search key) 2020-09-13 17:07:46 +02:00
Fill.py No need to set locality rules in single player and no need to reverse a list that was just shuffled 2020-08-25 18:05:16 +02:00
Gui.py Random sprite on hit now part of basepatch. Other events possible too. 2020-10-04 10:57:30 -07:00
GuiUtils.py Use proper OS-specific path uris in many more places 2020-08-25 13:22:47 +02: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
ItemPool.py Do not remove Archery Game for a Take any in retro inverted to keep the early money source 2020-09-26 05:09:15 +02:00
Items.py Re-rename Progressive Mail 2020-09-06 17:27:50 +02:00
LICENSE Add MIT License to in-game text of bullied kid on Death Mountain 2020-08-03 00:51:24 -04:00
Main.py Random sprite on hit now part of basepatch. Other events possible too. 2020-10-04 10:57:30 -07:00
ModuleUpdate.py integrate maseya-z3pr palette shuffle 2020-08-23 12:06:00 +02:00
MultiClient.py Delay consecutive reconnects 2020-09-01 21:45:01 +02:00
MultiMystery.py Quote mystery files to prevent cmd arg mashing 2020-08-30 03:18:10 +02:00
MultiServer.py Allow client side login and remote issuing of server side commands. 2020-09-21 22:11:43 -07:00
Mystery.py Extra Triforce pieces modes (#141) 2020-09-23 19:43:18 +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 rename easy.yaml -> playerSettings.yaml in README.md 2020-08-23 11:38:13 +02:00
Regions.py Refactor some shop code 2020-08-25 14:31:20 +02:00
Rom.py Base rom now has default link sprite in the 32 randomspriteonevent slots. 2020-10-05 10:55:56 -07:00
Rules.py typo fix 2020-09-20 00:03:41 +02:00
Text.py More blind puns 2020-10-01 06:59:31 -07:00
Utils.py 3.1.1 2020-09-20 00:34:35 +02:00
WebHost.py WebHost: Move module into WebHostLib to prevent shadowing WebHost.py 2020-07-11 16:59:37 +02:00
WebUI.py Fix misleading data in WebUI. Server Version is now called ClientVersion 2020-09-13 00:39:52 -04:00
_config.yml Set theme jekyll-theme-slate 2020-06-19 03:22:27 +02:00
dumpSprites.py Add a script to dump sprite data and gifs 2020-08-31 23:17:33 -04:00
host.yaml Allow client side login and remote issuing of server side commands. 2020-09-21 22:11:43 -07: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 Remove retro from meta.yaml (Was in the wrong place and also probably doesn't need meta-ing by default 2020-09-03 13:15:52 +02:00
playerSettings.yaml Random sprite on hit now part of basepatch. Other events possible too. 2020-10-04 10:57:30 -07:00
pytest.ini use pytest for github unittests 2020-04-29 18:44:03 +02:00
requirements.txt add palette shuffler to requirements.txt 2020-09-19 16:40:37 +02:00
setup.py 3.1.1 2020-09-20 00:34:35 +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 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 missing
    • forfeit 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 and dungeonsfull 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