Package: randovania
RandovaniaWelcome to Randovania, a randomizer platform for a multitude of games.New here or looking to install? Checkour website.Supported GamesAnother Metroid 2 RemakeCave StoryMetroid DreadMetroid PrimeMetroid Prime 2: EchoesExperimental GamesMetroid Prime 3: CorruptionMetroid: Samus ReturnsSuper MetroidHere you will be able to randomize many aspects of either game, while still being ensured it's possible to
finish without any trick or glitch! What can be randomized?Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts.Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of
everyone involved, no matter what game they're playing!Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case,
there's advanced options for how they're shuffled.The location you start the game in as well as the items you start with. If you're feeling brave,
you can even shuffle items you normally start with, like the Power Beam and Scan Visor.So have fun and start randomizing.InstallationWindowsIn thereleases page, we have zip files
with everything ready to use. Just extract and run!LinuxRunning (in-source)Clone this repository (downloading the source zip is not supported and will not work)Open a terminal in the repository rootFetch the tags from the repo:$ git fetch --tagsCheckout the latest tag (replace v4.0.1 with the latest release version):$ git checkout v4.0.1Prepare the virtual environment and install dependencies:$ tools/prepare_virtual_env.shRun the program from source:$ tools/start_client.shRunning Natively and MultiworldActivate the virtual environment and generate the necessary configuration.json, as well as build a native application:$.venv/bin/activate(venv)$exportPRODUCTION=true(venv)$pythontools/create_release.pyNavigate into the build/randovania directoryInstall the generated randovania.pkg or run the generated executableCommunityJoin the Randovania Discord:https://discord.gg/M23gCxj6fwInvite links for specific games' servers can be found in the#game-communitieschannel in our server.CreditsGUI and logic written byHenrique Gemignani, with contributions
bySpaghettiToastBook,gollopandmany others.BashPrime,Pwootage, andApril Wademadehttps://randomizer.metroidprime.run/, from which the GUI was based.Website created byHugoshido.Installer is powered byAdvanced Installer, which has graciously provided us with an open source license.Linux Flatpak build contributed byEthan Lee.GamesMetroid Prime 1Game patching viarandomprime. Originally authored byApril Wade, it is now maintained and developed bytoasterpartywith contributions fromothersRoom data collected by UltiNaruto,EthanArmbrustandSolventMercury.Converting Metroid Prime 2 models byMigs.Metroid Prime 2: EchoesGame patching written byClaris.Room data initially collected by Claris, revamped byDyceron.Menu Modcreated by Claris. For more information, see theMenu Mod README.Converting Metroid Prime models byMigs.Metroid Prime 3: CorruptionGame patching written bygollop.Room data collected byDyceronandKirbymastaH.Super MetroidGame Patching and Logic Database bySolventMercury.Custom Item PLMs patch byKazuto.Skip Intro Saves patch byPHOSPHOTiDYL.Other individual patches byTotal, Foosda, Leodox, and others.Cave StoryPatcher and logic written byduncathan_salt.Based on theoriginal randomizerby shru.Features contributions frommany others.Metroid DreadGame Patching by:Henrique "Darkszero" Gemignaniduncathan_saltScorelessPineArcanoxMigshyperbola0ThanatosLogic Database by:KirbymastaHDyceronXenoWarsMayberryHugoshidoTyranisaurAssets by:Morph Ball and Speed Booster pickup textures created byBigSharkZ.Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ.New map icons bySkyTheLucario.Another Metroid 2 RemakeGame Patching by:MiepeeJesRightLogic Database by:MiepeeDruidVorseJeffGainsNGamesAssets by:Morph Ball, and the Missile Launcher sprites were made by ShirtyScarab554 licensed underCC BY-SA 4.0.Power Grip and the Shiny Nothing Orb were made by ShirtyScarab554, used underCC BY-SA 4.0, modified byAbyssalCreatureand licensed underCC BY-SA 4.0.New door sprites and other AM2R item sprites were made byAbyssalCreaturelicensed underCC BY-SA 4.0.Auto TrackerGame theme assets were provided byMaskedTAS.Pixel theme assets were provided byUncle Reggie.AM2R 1.5.5 item sprites were made byEskimode7licensed underCC BY-SA 4.0.The AM2R DNA sprite was made byAbyssalCreaturelicensed underCC BY-SA 4.0.The AM2R Morph Ball and Power Grip sprites were made by ShirtyScarab554 licensed underCC BY-SA 4.0.MultiworldServer and logic written by Henrique, including Dolphin and Nintendont integrations. These were based onDolphin Memory Engineand Pwootage's Nintendont fork, respectively. In-game message alert initially written byencounter.Developer HelpDependenciesPython 3.11 64-bitGitSetupGetting started:Clone this repository (downloading the zip isnotsupported and will not work)Open a terminal in the repository rootRun the following file:Windows:tools/prepare_virtual_env.batLinux/macOS:tools/prepare_virtual_env.shYou should see "Setup finished successfully." visible when the command finishes.In order to start Randovania, open:Windows:tools/start_client.batLinux/macOS:tools/start_client.shIn order to update your repository:Update the git repository. (Withgit pullor anything else)Make sure that Randovania is closed.Re-run the steps from "Getting Started", starting at step 2.In case of unexpected errors, delete thevenvin the root of the repository and start again.Open Randovania normally.In order to run the tests:Run both "Getting started" and "Start Randovania" steps.Activate the virtual env. Check start_client.bat/sh for details.Runpython -m pip install -r requirements.txt.Runpython -m pytest test.In order to run the server:Run both "Getting started" and "Start Randovania" steps.Activate the virtual env. Check start_client.bat/sh for details.Runpython -m pip install -r requirements.txt.Runpython tools/prepare_dev_server_config.pyonce.If you wish to use any Discord functionality, you'll need to create an app in Discord
and fill both ids intools/dev-server-configuration.json.Run the server and client. You can this onWindows withtools/start_dev_server.batfor the server andtools/start_debug_client.batfor the clientLinux/macOS withtools/start_dev_server.shfor the server andtools_start_debug_client.shfor clientThis repository usespre-commit. The hook is automatically configured with
theprepare_virtual_envscripts.Suggested IDE:PyCharm Community*If using Visual Studio Code, make sure to set"qtForPython.uic.liveExecution.enabled": falsewhen using the QT extension.DocumentationUnfamiliar with a term? Check theglossary.Adding a new game? Check thededicated guide.Changing a data format? Check themigrations documentation.Working with the logic database?Read how the database is organized.Read theunfinished script for a videoon how to use the data editor.