Source Code of the VARIA Randomizer, Solver and Trackers
The source code is available on GitHub.
If you want to contact the developers about any issues or suggestions you may also do so at the GitHub Issues page.
Special thanks to:
- Djlo: awesome VARIA Randomizer logo and animated location icons
- Rand(0): palettes Randomizer
Web hosting was sponsored in 2019 by the Super Metroid Item Randomizer League.
Huge thanks to the people who developped Super Metroid, the previous Super Metroid Randomizers, Super Metroid patches, Metroid Construction, Super Metroid Discords.
You can consult statistics on the Randomizer and Solver activity on the statistics page.
You can consult statistics on the influcence of the progression speed parameter for the Randomizer on the progression speed statistics page.
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/), featuring new areas, an algorithm update, and other cool stuff!New stuff:
- area: in area rando, Croc is now in its own area, and Maridia has been split in two
- rando: new progression speed available, "speedrun" using the random fill algorithm
- rando: other progression speeds have been modified as well for better balance between them
- rando: new "ultra sparse" energy quantity setting. Max 0-1 tank, Mother Brain's rainbow beam damage has been nerfed (20 with Varia, 40 with Gravity/Suitless)
- web: upload your vanilla ROM only once and it'll stay in your session
- web: get a permalink for generated seeds for easier sharing
- solver: separated difficulty info for path and location
- tracker: seedless user interface update. Now you can just click on the inventory instead of collecting locations (very handy for quick logic tests)
- rom: VARIA logo and version on the title screen!
- rom: new comfort patches available, Infinite Space Jump and Refill when saving
- customizer: new custom sprites, Link (by RonnSama) and Sprite (by TarThoron). Also by TarThoron, an awesome Dark Samus recolor, as well as a bunch of meme "Samus is rotated" sprites!
- techniques: added suitess Spring Ball access with Flatley Jump and Insane WRITG Wall Jump
- layout: Kraid save softlock protection
- presets: renamed "noob" to "newbie", "speedrunner" to "expert"
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/), introducting the new and shiny Plandository (http://varia.run/plandorepo) to easily share plandos with the community. So if you have any plandos lying around, upload them there NOW!New stuff:
- rando: new starting locations: Mama Turtle, Aqueduct, Lower Norfair Firefleas. Thanks total for the evil ideas!
- plando: Plandository to store community plandos and VARIA weekly races seeds/plandos
- escape: escape randomization can now be used without Area Randomization
- escape: Animals Challenges in randomized escape. Find the hidden animals, or/and cycle through possible escapes by going to vanilla animals!
- preset: new techniques Crystal Flash Clip (suited and suitless variants), Firefleas Wall Jump, Dodge Lower Norfair Enemies
- patches: background music randomization option, aka Super Metroid Jukebox
- customizer: NES Super Mario Bros custom sprites by TarThoron
- credits: display resets/deaths count, much more accurate RTA timer resistant to resets or power cycles
- area: area transition doors are now blinking to help newer players to see that they are portals
- area: new softlock protection in Wrecked ship
- patches: max ammo display is no longer corrupted when Supers or PowerBombs total is more than 100
- rando: fix checksum of randomized ROMs
- rando: when settings are randomizable, you can now select the possible values to randomize from
- customizer: no comfort patch on race seeds. VARIA base patches available
- stats: Progression Speeds comparison statistics (http://varia.run/progSpeedStats), how they influence progression items placement over the run
- tools: added a command line webservice client to remotely generate seeds
- doc: command line usage of rando and solver is now documented in README.md on GitHub
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/).
Now you can start your seeds from somewhere else than Landing Site (or Ceres). Choose a start location, or randomize it! Click on the attached screenshot to check out the start locations list (note: Red Brinstar Elevator and Golden Four are only available in Area rando).
Thanks to folks in the VARIA Randomizer discord (http://discord.varia.run/) and #data-dev channel in SMZ3 discord for some of the starting locations ideas!Important notes:
In area rando, the Key Hunter Room bottom door (vanilla door to Red Brinstar Elevator) and the vanilla door to G4 are now blue, since Crateria is no longer necessarily the start area.
Early morph setting had to be modified to accomodate this new feature, and this has some significant consequences on standard start seeds with Early morph (like all tournament presets, so read carefully):
- Speed or Screw attack can now be in Blue Brinstar even with Early Morph enabled
- For skill presets who don't know the Blue Brinstar Ceiling D-Boost tech, such as newbie and SMRAT2020, Morph ball will always be vanilla
- new technique to acces Spring Ball with Gravity+Grapple+HiJump: enabled by default in all presets except newbie and SMRAT2020
- new rando preset: 'where_am_i', area rando with random start location
- new rando preset: 'suprise', randomize a few significant settings (like quite_random), also randomizes start location, and whether the seed will be area/boss rando
- various bugfixes on Super Fun seed generation
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/)
- rando: new option (enabled by default) to randomize escape sequence in Area Rando. 5 Tourian exit points possible, the vanilla one and outside map stations in Brinstar/Maridia/Wrecked Ship/Norfair
- plando: customize escape sequence Tourian exit point and timer value in Area Plandos
- rando: added optional Progressive Suits patch from DASH randomizer
- rando: added optional custom Nerfed Charge available from the start
- does 1/3 charged shot damage (31.25% in DASH)
- Pseudo Screws also do 1/3 damage (100% in DASH)
- Special Beam Attacks do normal damage but cost 3 Power Bombs (1 in DASH)
- logic: take into account Nerfed Charge/Progressive suits if they're enabled
- rando preset: new 'haste' preset inspired by the DASH randomizer with Nerfed Charge and Progressive Suits
- rando: allows area/boss to be randomly set for mystery seeds, and removed giveaway letters in seed file name
- solver: update spoiler path with items and bosses icons instead of text
- solver: display location/area/subarea picture when hovering over its name in the spoiler
- tracker/plando: allow removal of a selected transition instead of the last one
- plando: add option to hide placed items
- customizer: added phazon hack and Luigi sprites
- core: python 2.7 to 3.7 migration, 20% speed increase
- rando: reorganise patches display
- preset: display bosses sprites
- tracker: set bosses portals to red
- tracker: display access point name in the GPS tooltip
- plando: recompute sequence break locations after placing an item to display its difficulty if it's now available
- rom: fix rounding error in credits %
- preset: renamed smrat to SMRAT2020
A small release for the Randomizer league season 2 playoffs (http://varia.run/)
- presets: new league playoff presets
- customizer: custom sprites from various hacks
- multiple small bugfixes
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/)
- statistics: display techniques used
- statistics: display difficulty histogram
- boss rando: Ridley additional platform is gone, teleport Samus in front of Ridley instead
- boss rando: add Cacatac Alley as possible logical Draygon door access if she's already dead
- customizer: add Alucard custom sprite
- layout: Spore Spawn save station is now available without morph or bomb
- layout: additional soft lock protection in Early Supers Room if you fall in the 2nd pit
- preset: display Lower Norfair Hellruns Energy/Crystal Flash requirements
- preset: new technique for Bubble Moutain wall jump (enabled by default in all presets except newbie)
- preset: new technique: access Billy Mays Room without Gravity or Space Jump (enabled by default in all presets except newbie)
- rando: fixed some bugs in Chozo 2nd phase fill up
- logic: added missing Energy requirement for Plasma Pirates with Charge and Botwoon to Draygon with ice (Mochtroid damage)
- web: session cookies are now kept between client browser restart
- rando: selecting a settings preset no longer reload the whole web page
- solver: fixed wrong required energy report for Lower Norfair hellruns
A small release for the season 2 of Randomizer league.
- preset: display the Hard rooms and Hellruns energy requirements
- preset: new technique, Spring Ball access with Gravity jump
- preset: new technique, Botwoon to Draygon with Ice
- customizer: new Contra custom sprite by Nintoaster
- settings preset: changed hardway2hell randomizer preset to generate more evil suitless seeds (can be even harder than stupid_hard for those interested in this kind of seed)
- logic: small fixes to suitless logic
- randomizer: fix bug with Super Fun provider and Lower Norfair Hellruns
- customizer: fix palette randomization with custom sprites
We've released a new version of the VARIA Randomizer, Solver, Tracker, Plandomizer and Customizer (http://varia.run/), dubbed "MegaSamus X"!
You can now change Samus sprites in the customizer. All the sprite sheets created so far with SpriteSomething (https://github.com/Artheau/SpriteSomething/releases) have been integrated, for instance Megaman X!
Another cool new feature is the ability to use the Randomizer to complete your plando. This allows for fun stuff like creating your own custom map (you don't like Wrecked Ship? don't include it) for your seeds, or generate a seed after placing Varia at Ridley for example.
Note: to remove the bloat of the randomizer page, color randomization is now only available on the customizer page, don't worry it has not gone away!
Full changelog below.
- plandomizer: you can now use the VARIA Randomizer to complete your plando
- plandomizer: you can load the items and transitions of your base seed
- plandomizer: the item selection popup now display the items with icons
- customizer: you can now replace Samus sprite with custom ones
- randomizer: usefull tips are now displayed during randomization
- randomizer: new link "what's in the logic" next to the preset to display the techniques available for the Randomizer
- stats: the total percentage for each item is now displayed at the end (for Randomizer presets with Super Fun enabled)
- solver: handle utf8 ROM filenames
- randomizer: fixed bug on super fun movement that did not remove space jump when VARIA tweaks were disabled
- randomizer: fix no comeback bug for bosses that created some failed area rando seeds
- logic: fixed ancient endgame condition bugs
We've released a new version of the VARIA Randomizer, Solver and Trackers (http://varia.run/).
- stats: new page with statistics for the standard skill presets and randomizer presets (up to 100000 seeds in the stats for tournament ones)
- preset: added separated technique for XRay Ice Climb w/o Hi-Jump, now disabled in newbie and casual presets
- rando: Phantoon save station is now active before killing Phantoon when using area/boss randomization
- rando: new optional Speedkeep patch to keep momentum after landing
- rando: the number of uncharged shots are now displayed in the credits statistics
- rando: headered ROMs are now detected and an error message displayed
- rando: the heads at Morph Ball location are now activated with every items (like the yellow camera)
- layout: new platform in Acid Statue Room when VARIA tweaks patch is enabled
- solver: the number of ETanks/Reserves used are now displayed
- tracker: in seed-less mode the vanilla area transitions are now added by default
- rando: fixed strict minors option (was not really accurate with low% minors)
- rando: fixed pregression spoiler in the credits where items were out of order sometimes
- plando: the lock button works now
A big VARIA update and a domain name (http://varia.run/) for its first birthday!
Chozo split, G4 randomization and color randomization are now available in the rando. You can also apply color randomization or other patches on existing seeds using the new customizer. If you think slowest progression is not trolly enough, use your imagination in the new plandomizer! Also, the item tracker can now work without a seed.
New stuff :
- randomizer: new majors/minors split: Chozo: Put all the required items to finish the seed in the Chozo statues locations.
- randomizer: G4 boss doors can be randomized.
- randomizer: palette randomizer to change the colors in game.
- randomizer: credits now show the 'intended' progression items.
- tracker: unified areas/items tracker (only the locations in the connected areas are computed).
- tracker: seedless mode to use the tracker from a tablet.
- plandomizer: graphical interactive areas/items plando editor.
- settings: suits restrictions is now 'no suits in crateria/blue brinstar' for both suits (some restictions on gravity were removed)
- customizer: add palette randomization or other patches to an existing ROM.
- preset: new technique: Ice escape.
- preset: new technique: Screw Attack exit without Screw.
- preset: new technique: frog speedway without speed.
- preset: new technique: double spring ball jump.
- patches: updated anti-softlock patches, now you can get out of brinstar map room without bombs.
- web: the VARIA website is now on http://varia.run/
- web: the VARIA beta website is available at http://beta.varia.run/ (updated everynight from GitHub)
- discord: you can join the VARIA discord server on VARIA Randomizer Discord
We've released an intermediate version of the VARIA Randomizer, Solver and Trackers (http://randommetroidsolver.pythonanywhere.com/).
- randomizer: New progression speed: VARIAble; it randomly switches the progression speed after each progression item placed
- randomizer: When randomizing the progression speed you can choose which progression speeds are available for randomization
- preset: New technique: Puyo Clip with X-Ray
- preset: Lower Norfair hellrun is now activated in the speedrunner preset
- randomizer: new preset highway2hell: favors suitless seeds
- randomizer: new preset quite random: randomizes a few significant settings to have various seeds
We've released a new version of the VARIA Randomizer, Solver and Trackers (http://randommetroidsolver.pythonanywhere.com/) dubbed "Teenage Mutant Mama Turtle".
- preset: New technique: Mama Turtle Etank with High Jump (thanks rand(0))
- preset: New technique: 1 Etank/1 Power Bomb pack/Speed Booster access to Gauntlet minors (thanks rand(0))
- preset: New technique: Reverse Crocomire speedway
- preset: Moonwalk can now be stored in the Controller preset
- home: Display a link to the Randomizer League
- logic: Right sand pit Power Bombs in suitless level 3 can now be accessed with a Spring Ball jump (thanks rand(0))
- randomizer: fix case when Late Morph and Suits restrictions are both enabled
- logic: fix Etank requirement to exit Crateria Super Missile
- logic: fix Forgotten Highway Traversal when suitless
- logic: fix Mother Brain Energy requirements when suitless
- logic: various bug fixes affecting low% / super fun seeds
We've released a new version of the VARIA Randomizer, Solver and Trackers (http://randommetroidsolver.pythonanywhere.com/) dubbed "Bite my shiny metal ass".
- randomizer: spread items parameter is gone and has been merged with progression speed
- randomizer: the first available minors are displayed in the credits
- item tracker: available locations sprite is now a shiny GIF for easier spotting
We've released a new version of the VARIA Randomizer, Solver and Trackers (http://randommetroidsolver.pythonanywhere.com/) dubbed "Race to Twitch Mountain".
- randomizer: race mode to obfuscate item data in the seed and prevent the seed from being solved on the VARIA website until a certain customizable delay has passed
- randomizer: Randomizer presets are now available, they contain example Randomizer settings, and the settings for upcoming rando league
- randomizer: reworked Super Fun Times (TM) settings. Now:
- Combat will always remove Plasma and Screw Attack if possible, and randomly others
- Movement will always remove Space Jump, and randomly others
- Suitless will remove at least one suit if the preset allows it
- new techniques: Norfair Reserve DBoost, Crocomire Power Bomb: DBoost or Ice, Wall Jump Cathedral Exit
- item tracker: the collected items are displayed like in the inventory menu
- item tracker: sequence breaking is now supported
We've released a new version of the VARIA Randomizer and Solver (http://randommetroidsolver.pythonanywhere.com/) dubbed "Dude, Where's My Next Location?".
- item tracker: an interactive Item Tracker is now available, it uses the Solver in interactive mode to show the next available locations on the map
- logo: new awesome VARIA Randomizer logo, used on the home page of the web site
- preset: nova boost technique is now available (enabled in speedrunner and master presets), it could be required to solve some Total Hard seeds
We've released an intermediate version of the VARIA Randomizer and Solver (http://randommetroidsolver.pythonanywhere.com/) dubbed "Track Me If You Can".
- tracker: an area tracker is now available, it allows you to graphically link the portals between areas
- cache: new internal caching system, 25% performance gain on Randomizer and Solver
- locs: fix various small bugs thanks to the new cache
We've released an intermediate version of the VARIA Randomizer and Solver (http://randommetroidsolver.pythonanywhere.com/) dubbed "Lord of Stats".
- presets: better separation of standard/community presets
- presets: presets list is now more user-friendly with the addition of a search bar
- presets: added a skill level bar and some stats about the preset
- rando: added time spent in pause menu in the credits stats
- solver: auto detect the preset when solving a VARIA seed
- presets: fixed bug in the new presets preventing suitless Maridia in generated seeds
- rando: fixed the bomb counter in the credits stats (PB no longer count as bomb)
- rando: fixed SBA counter in the credits stats (a bug made it increase wildly in certain conditions) in the credits stats
- locs: fixed some locations access functions
We've released an intermediate version of the VARIA Randomizer and Solver (http://randommetroidsolver.pythonanywhere.com/) dubbed "Easy Ridley".
- rando: Now max difficulty can be upped automatically if only boss fights prevent seed generation.
- stats: new page with statistics on the Randomizer and Solver usage (accessible from the Information & Contact page).
- solver: added an item list before the spoiler, clicking on an item with highlight it in the spoiler.
- solver: simple/advanced tabs with the "items not picked up" in the advanced tab.
We've released an intermediate version of the VARIA Randomizer (http://randommetroidsolver.pythonanywhere.com/) dubbed "Finding Kraid".
- area: Kraid warehouse is now an independant area. That means there are now 4 portals leading to Norfair and...you have to find Kraid!
- presets: added a bunch of techniques to access Spring Ball location.
- rando: new option to match the requested quantities of minors instead of using probabilities.
- rando: new option for Morph placement: late, prevents Morph to be found in early game (Crateria/Blue Brinstar). Mostly relevant for area mode, to find morph in peculiar places.
- rando: new progression speed: basic, mimics Dessyreqt and Total Normal/Casual algorithm, for those who don't like getting trolled too much ;)
- rando: new optional patch: No music, disables background music while playing.
- rando: max ammo display and msu1 patchs are now compatibles and added by default. No worries if you don't have SD2SNES/MSU1 chip it falls back to vanilla music.
- solver: the pickup strategies any/minimal were collecting too many minors
We've released an intermediate version of the VARIA Randomizer (http://randommetroidsolver.pythonanywhere.com/) dubbed "Way of the Snail".
- preset: New technique, Snail Clip, to reach minors in Aqueduct without Speed Booster
- rando: When the Randomizer fails to generate a seed it displays an explicit message with the cause and how to fix it
- rando: Most parameters of the Randomizer can now be individually randomized
- rando: Like in Dessy's randomizer you can now randomly hide half of the items
- rando: The number of available Etank/Reserve is computed with a gaussian instead of a fixed number
- solver: When the Solver can't finish a seed with a given preset it displays which technique(s) to learn to be able to progress in the seed
- solver: Display the remaining/inaccessible major locations in the spoiler
We've released an intermediate version of the VARIA Randomizer (http://randommetroidsolver.pythonanywhere.com/) dubbed "web site redesign in progress".
- web rando: simple/medium/advanced mode for the randomizer
- web preset: new page to manage the presets, the techniques are now grouped in tabs, gamepad mapping in the preset
- new optional (activated by default) VARIA tweaks patch:
- Bomb Torizo fight is triggered when picking up the item he's holding
- Access item at Wrecked Ship Etank location without killing Phantoon (via Forgotten Highway)
- Activate Lower Norfair Chozo (left of entrance) without Space Jump
- rando: the percentage at the end is now based on the available items, not the 100 vanilla ones
- area: magic "ship like" refill when entering Tourian (most of the time the ship is not on the way to Tourian)
- new optional (activated by default in area) area patch for easier navigation: Remove Crab green gate in Marida and blue gate in Green Brinstar, add new platform in Green Hill Zone to access transition door.
- solver: the path of access points between locations is now displayed
Hello @randomizer !
We've relased the new version of the VARIA Randomizer, dubbed "feeling lost in Zebes again".
- Area randomization official release (randomization of the access points between the main Zebes areas)
- Solver: More human-like pathing
- Rando: The maximum difficulty is now set to hardcore by default (no difficulty cap was the previous default)
- Rando: The eye at Morph Ball will now open for any item, not only Morph Ball
- Presets: Updated all built-in presets for better balance between them. Added casual and master presets.
- Presets: Added new, harder settings for X-Ray room
- Presets: Short charge is now for 3 taps or stutter 3 (thanks @ponk !). Enabled by default only in speedrunner and master presets.
- Area Rando: The scrolling sky background bug has been fixed (thanks to Smiley from metconst!)
- Area Rando: The music will correctly change when entering a new area
- Area Rando: Unmorphing while passing a transition door no longer crash the game
- Lot of bugs corrected in the access condition of the items locations
Hello @randomizer, We've released a new version of the VARIA Randomizer dubbed "Randomize the Randomizer":
- New options to randomize the parameters used by the Randomizer
- The parameters used are now displayed in the credits
- As we had for Bosses and Hellruns, we now have difficulties for hard rooms: X-Ray and Gauntlet, so we've removed a few techniques for these rooms
- Now there's techniques for better settings of Gravity-less movement underwater
- New Randomizer's parameter to influence choice of the next location based on its difficulty
Hi @randomizer! We updated the VARIA (http://randommetroidsolver.pythonanywhere.com/) to fix two issues:
- 1) The "too much spospo" bug. Now, the probability you would have to fight it is ~30% in slowest/slow, ~5% in medium, and ~0% in fast/fastest. All in all if you choose a random speed, there is a 1/7 chance to have to do the fight.
- 2) When "start at Ceres" was selected instead of "start at landing site", the stats counters in the credits were wrong and glitched out. It is now fixed, thanks @andrew (original credits/stats patch author), Smiley and PJBoy from metconst for their help, this was a tricky one to fix.
Hello, We've made a new release for the VARIA Randomizer (http://randommetroidsolver.pythonanywhere.com/randomizer):
- the layout patches are now optional (for EasyDanger)
- the save the animals suprise patches are now available (for andrew)
- there's now a tutorial and contextual help to explain the parameters of the Randomizer and Solver in greater details
- the randomized ROMs are now generated a lot faster (between x2 and x3 gain)
Hi @randomizer !
We made an update to the VARIA randomizer and solver ( http://randommetroidsolver.pythonanywhere.com/ ). Not much in terms of new features, but lots of work behind the scenes:
- stabilized and improved randomizer algorithm: now it can be trolly with minor items as well (especially in slow/slowest speeds), be sure to try it! ;)
- fixed logic bugs affecting both rando and solver
- fixed Normal/Hard Total ROM patch set mapping for solver
Hello @randomizer ! We updated the VARIA (http://randommetroidsolver.pythonanywhere.com/randomizer). Among the obligatory bugfixes, the following new features are available:
- Skip intro/start at Ceres option, as suggested by @Di10 and @BlackEliteJohn
- Added optional patch to speed up doors and elevators transitions
- Added a Super Fun Times feature for those who like the feeling of Dessy rando masochist seeds
- Ability to have a random progression speed instead of choosing one
@randomizer Hello, Using the presets (for each technique you can say if you know it and your perceived difficulty for it) from the solver we've made a new randomizer: the VARIA randomizer (Very Adaptive Randomizer of Items for Anyone) It can be found here: http://randommetroidsolver.pythonanywhere.com/randomizer Its features:
- generate a randomized ROM which can be finished using the techniques of the given preset
- can limit the max difficulty for reaching a location
- can choose the probability of each minors and the percentage of minors available
- can choose the quantity of Energy/Reserve Tanks
- can do a full randomization of the majors
- can influence how fast the randomizer places the progression items
- can spread the progression items in all areas with maximum distance between them
- several optional patches are available:
- allow the aim buttons to be assign to any button
- remove fanfare when picking up an item
- allow Samus to start spinning in mid air after jumping or falling
- play the music with MSU1 chip on SD2SNES
Hello, We've added a few things to the randomized roms solver (http://randommetroidsolver.pythonanywhere.com/):
- display the number of techniques used to solve the rom
- in the spoiler display the techniques used for each location
- for each techniques display the rooms where it's used with links to the wiki
- update the CSS of the website
Hello, With a friend we've developed a solver for the randomized Super Metroid roms: http://randommetroidsolver.pythonanywhere.com/ Tell it what you know (and how hard you find particular tricks), and it'll tell you if you can finish your seed, and how hard it will be, without spoiling the seed. It's useful for people who hasn't yet mastered all the Super Metroid tricks required by the randomizers. Features:
- works with randomized roms from Dessyreqt randomizer and (Total, Foosda, Leodox) randomizer
- somewhat realistic navigation algorithm
- pretty much all tricks and difficult rooms/areas have their setting, with video explanation when we found one, so you can actually learn the tricks if you want
- website front end
- save/load your presets on the website without having to create an account
- boss difficulty is estimated as well
- hell runs are taken into account in navigation