This is a randomizer for The Legend of Zelda: Ocarina of Time for the Nintendo 64.
WARNING: This branch is a modified version of the randomizer. It is not officially supported and may be very unstable. Please refrain from asking questions and from reporting issues in the main Randomizer Discord when using this branch. Instead, you can open an issue on this fork here or contact me directly on discord (RealRob) for any help, report or request.
This branch is based of of Roman971's fork of the randomizer and usually kept up to date with the latest changes in the main Dev fork, with the addition of the following developmental features:
Enemy Drop Shuffle - All (almost) of the enemies in the game will give a shuffled item when killed. Wonderitem Shuffle - Shuffles wonderitems - which include invisible rupees and invisible hit markers. Gossip Stone Shuffle - Play Song of Time to a gossip stone to receive a shuffled item. Enemy Soul Shuffle - Shuffles enemy "souls" into the item pool. Enemies will not spawn into the world until their souls have been collected. Grass Shuffle - Shuffles grass Fishing Game Shuffle - Shuffle the fish from the fishing game. The fish in the pond become items that you will collect upon catching. The fish themselves are shuffled as items that must be collected throughout the world. . Finding a 10 lb (child) 16 lb (adult) and a hylian loach may be turned in to the pond owner for a reward. The fishing rod becomes an item shuffled into the world which must be found before you can fish in the pond.
- Fix DMT Cow Grotto Song of Storms Fairy and LW Scrubs Grotto Suns Song Fairy incorrect location type
- Fix HF Deku Scrub Grotto Song of Storms Fairy incorrect location type
- Add Fairy Shuffle to Advanced logic
- Add grass to advanced logic files
- Disable unsupported settings in advanced logic
- Increase override table size
- Fix "Random" custom voice selection crashing generation
- Fix graveyard night time bean plant fairies not shuffled.
- Fix BOTW MQ Suns Song spots not shuffled.
- Fix default value for shuffle_fairies
- Make different fairy types individually shufflable
- Add bean plant fairies to fairy shuffle
- Fix fairies giving duplicate items
- Fix crash when collecting fairy on the same frame that they are spawned
- Hopefully fix text IDs for fairies
- Fix fairy progressive models
- Fix Grotto ER + Fairies
- Add MQ Suns/Storms spot fairies
- Fix mixed pools + dungeons ER + new maps/compass setting
- Update to main dev 9.0.2
- Add custom voice pack support
- New setting - Fairy Shuffle. Replaces Gossip Stone Shuffle
- Ok you can nut again
- Fix boulder shuffle plando hopefully
- Update to latest main Dev
- Fix a crash when opening an ice trap chest in a room that has ice traps in vanilla and quickly exiting the room.
- Merge main dev
- Fix Deku Tree MQ Upper Deku Baba logic
- Update to latest main dev
- Reset supplementary version to 1 every time we merge main dev from now on.
- Add Deku Tree Compass Room Withered Deku Baba
- Add missing deku baba enemy drops in BOTW, Deku MQ, DC MQ
- Fix BGS/Giants Knife/DD advancement
- Fix DMT Summit boulder logic
- Fix missing Jabu Jabus Belly MQ Cow
- Fix Forest Temple MQ Stalfos enemy drops
- Fix Ganons Castle MQ Logic Error causing occassional generation error
- Resolve compiler warnings.
- Fix GC Maze Gossip Stone in wrong region... again
- Fix generation error w/ no adult trade items shuffled
- Fix generation w/ MQ
- Add golden boulder option to boulder shuffle
- Fix anubis not displaying on minimap tracker
- Add Child KF Deku Babas and Deku Tree/MQ Deku Tree deku babas
- Fix logic issue in MQ Deku Tree
- Increase size of markers on enemy minimap tracker
- Rename Like-like to Like Like across the code
- Enemy drops souls logic review fixes
- Rebuilt entire branch
- Fix BOTW silver rupee softlock
- Fix boomerang/bombchu trail corruption
- Fix duplicate items on GUI
- See you next year No Deku Nut November
- Add key ring colors
- Fix Shadow Temple MQ Spike Wall Skulltula logic
- Fix GTG/MQ ceiling silver rupee wallmaster logic
- Fix fix broken drops crash when changing rooms with deku shield in child spirit.
- Stop breaking dark link
- Add missing Jabu Jabu's Belly MQ Falling Like Like Room wonderitems
- Fix Water Temple MQ After Dark Link Hookshot Wonderitem logic
- Fire Temple MQ Hammer Steps Stalfos logic
- Scrubs misc hint setting broken when disabled
- Fix Custom Song Name display breaking when using the enemy drop minimap tracker
- Update to main Dev 8.1.81
- Various logic fixes
- Fix Jabu Jabus Belly Invisible Enemies Room logic.
- Fix MQ Spirit Child keese logic with fix_broken_actors
- Fix MQ Spirit Big Mirror enemy logic.
- Fix MQ Shadow Invisible Blades SoT blocks trick logic
- Fix DC Upper Lizalfos Region soul logic
- Fix ZF hidden cave logic
- Merge main Dev
- Fix duplicate region "Deku Tree Basement Rotating Spike Room"
- Fix missing fish again
- Merge the rest of Potsanity 3.0. Probably just breaking things
- Fix GC Gossip Stone logic for boulder shuffle
- Fix Deku Baba Sticks/Nut soul shuffle logic
- (Hopefully) Fix generating boss soul shuffle with random settings
- Ganons Castle/MQ enemy logic fixes
- Water Temple enemy logic fixes
- Reverting Dev merge
- Fix crash in MQ DC hallway before lower lizalfos with boulder shuffle
- Temp removing adult bunny hood and dampe all night
- Fix crash when pressing dpad down on equipment screen
- Fix KZ crash - wasn't my fault this time :)
- Add dampe all night setting
- Fix masks rendering when in first person view
- Bunny hood dpad fixes
- Update to main Dev 8.1.13
- Add Adult Bunny Hood setting
- Fix King Dobonko
- Hopefully fix website custom music patching
- Fix broken MQ Deku logic files
- Boulder Shuffle and Soul Shuffle fixes
- Fix a typo
- Various Boulder Shuffle logic fixes
- Fix disabled enemy drop locations giving shuffled items and appearing on minimap tracker
- Fix King Zora boulder flag in boulder shuffle
- Fix dark link in soul shuffle... again
- Fix MQ DC failing to generate
- Fix soul shuffle logic for Spirit Temple MQ Central Chamber Wallmaster
- New Enemy Soul Shuffle option: Regional
- Add MQ support for Boulder Shuffle
- Fix Boulder Shuffle not obeying "All Locations Reacable"
- Fix Fishing Shuffle progressive items drawing incorrect model after caught
- Fishing LH Adult Fish 1 missing
- Unfix the KZ unfreeze glitch
- Fix boulder resizing hacks
- Properly resize Water Trial red ice boulders
- Some boulder shuffle logic fixes
- Spirit Temple MQ Soul Shuffle Logic fixes
- Fix Hylian loach fishing shuffle logic
- Fix MQ DC Soul Shuffle Logic
- Add King Zora red ice to boulder shuffle
- Don't break the red ice walls...
- Properly resize boulders that replace red ice walls
- Fix sandstorm transitions occassionally crashing
- Don't delete all of the boulders
- Fix burning kak crash in boulder shuffle
- Enemy drops/souls logic fixes:
- MQ Forest Falling Room
- Forest Temple Block Push Room Upper Bubbles
- Forest Temple First Twisted Hallway Wallmaster
- Spirit Temple MQ Child Stalfos Fight Pot
- Spirit Temple MQ Central Chamber Flying Pots
- MQ Water Dragon Statue Wonderitems
- Add missing Deku Tree MQ Basement Larva Room Deku Scrub drop
- Fix accidentally removed MQ Water wonderitems
- Boulder shuffle logic fixes
- Fix broken Great Fairy Fountains
- New setting: Shuffle Boulders
- New setting: Fix Broken Actors (replaces Fix Broken Drops)
- Add Bunny Hood preset
- Hopefully actually fix small key text boxes in fishing shuffle
- Smaller fish in fishing game shuffle are no longer considered major items
- Fix certain textboxes not displaying correctly when catching fish in fishing shuffle
- Fix unshuffled Spirit Temple MQ Wonderitems
- Fix fishing shuffle owner rewards not being given if you mash the text boxes
- Update to latest upstream 8.0.10
- New setting: Shuffle Fishing Game Fish
- Fix missing Wallmaster drop in MQ Light Trial
- Fix MQ Spirit Child room not clearing in enemy soul shuffle
- Fix Small Crates in MQ Fire Temple not shuffled
- Fix missing Deku Tree Rotating Spike Skulltula
- Fix missing grass in Lake Hylia
- Fix incorrect overrides spawning in soul shuffle
- Fix anubis spawns in enemy drop shuffle
- Update multiworld coop context version #
- Add souls to plentiful and ludicrous item pools
- Fix enemy minimap markers not displaying properly on some platforms.
- Testing something that will hopeful improve seed generation
- Add grass shuffle texture match contents
- Add MQ dungeons to grass shuffle
- Soul Logic fixes
- DMC Bubble Below Bridge To Fire Temple
- Deku Tree Basement Back Room Near GS Skulltula
- Fix Spirit Temple MQ Child Stalfos Fight Pot 4 not shuffled
- New setting - Grass Shuffle ;P
- Add support for MMR custom music
- Fix Temple of Time Gossip Stone Drops
- Fix Forest Temple Upper Stalfos Drops
- Fix Dark Link drop
- Fix Skull Kids drops
- Fix Spirit Temple Child Bridge Bubble logic
- Fix Forest Trial enemy logic
- Potsanity Changes:
- Add new settings to shuffle empty pots/crates
- All fairy pots are now shuffled
- Update the animation when collecting a major item to spin above the player's head
- Lots of stuff under the hood
- Enemy drop shuffle tracker
- Adds a setting to enable a minimap tracker that displays the enemies that haven't been checked. Enemies display as red dots on the map.
- Soul Shuffle Logic improvements
- Various soul shuffle logic fixes
- Fix Shadow Temple GS Invisible Blades Room soul logic
- Fix Spirit Temple Child Bridge Bubble soul logic
- Fix HF Cow Grotto Skulltula soul logic
- Fix Forest Temple Right Courtyard Balcony Skullwalltula
- Add flame effect to stick/nut upgrade so they are distinguishable
- Enemy soul shuffle logic fixes:
- Forest Temple Map Chest
- GTG Beamos Chest
- GTG Stalfos Chest
- Add MQ enemy soul shuffle logic
- Fix souls and silver rupee save data not initializing properly on some platforms
- Fix enemy souls not defaulting to enabled with only Bosses soul shuffle or starting with souls
- Fix soul menu not displaying correctly on Parallel emu core.
- Add enemy soul shuffle menu
- Fix dark link room not clearing in soul shuffle
- Enemy Soul Shuffle Fixes:
- Fix logic for BOTW Dead Hand Chest
- Fix text for Dark Link soul incorrectly saying Ganondorf Soul
- Forest temple soul logic fixes
- Fix ganondorf not spawning in enemy soul shuffle
- Fix missing souls from enemy drop logic in Ganons Castle
- Add Dark Link to enemy soul shuffle
- Add "Bosses" option to enemy soul shuffle
- Fix broken flags in enemy soul shuffle
- Add new setting 'Enemy Soul Shuffle'
- Enemy Drop logic improvements
- Improve Fire Bubble logic in Enemy Drop Shuffle
- Rebased onto main Dev version 7.1.139
- Enemy Drop Shuffle Fixes:
- Fix logic for Ganons Castle MQ Water Trial Keese
- Rebased onto main Dev version 7.1.118
- Enemy Drop Shuffle Fixes:
- Fix broken logic in Jabu
- Fix "Prevent Guays From Respawning" hack having weird invisible guay hitboxes on the ground.
- New Cosmetic Option - Rainbow Tunic. Might also fix the weirdshot crash
- New Setting - Individual Ocarina Note Shuffle
- Enemy Drop Shuffle Fixes:
- Fix broken Lost Woods Skullkid drop
- New Ice Trap Settings:
- Custom Ice Trap Count
- Allows specifiying a number of junk items to be replaced w/ Ice Traps
- Custom Ice Trap Percent
- Allows specifying a percentage of junk items to be replaced w/ Ice Traps
- Custom Ice Trap Count
- Gossip Stone Shuffle Fixes:
- Add MQ Dodongo's Cavern Gossip Stone
- Enemy Drop Shuffle Fixes:
- Fix MQ GTG Heavy Block Room enemy logic
- New Setting - Key Appearance Matches Dungeon
- When enabled, small keys, key rings, and boss keys will be colored to match their respective dungeons.
- Silver Rupee Shuffle Fixes:
- Prevent items shuffled in silver rupee locations from being collected with boomerang
- Fix "TEXT ID ERROR" message when collecting the final silver rupee from a chest or shop
- New Setting: Gossip Stone Shuffle
- Enemy Drop Shuffle Changes:
- Add skull kid drops
- Add Fast Armos Pushing
- Silver Rupee Shuffle:
- Added Silver Rupee Pouches
- When silver rupees are collected, the text box will indicate how many rupees of that puzzle have been collected
- Enemy Drop Shuffle:
- Added setting under Misc. to prevent guays from respawning
- Bug Fixes:
- Fix bug where freestanding items would duplicate when reloading a room
It is strongly suggested users use the web generator from here:
If you wish to run the script raw, clone this repository and either run Gui.py for a
graphical interface or OoTRandomizer.py for the command line version. They both require Python 3.9+.
To use the GUI, NodeJS (v20 LTS, with npm) will additionally need to be installed. NodeJS v14.14.0 and earlier are no longer supported.
The first time Gui.py is run it will need to install necessary components, which could take a few minutes. Subsequent instances will run much quicker.
Supported output formats are .z64 (N64/Emulator), .wad (Wii VC, channel IDs NICE/NRKE recommended), Uncompressed ROM (for developmental purposes, offline build only)
and .zpf/.zpfz (patch files, for sharing seeds with others).
This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US. This randomizer includes an in-built decompressor, but if
the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users
playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are
impossible to inject for the Virtual Console and have random crashing problems on all emulators.
For general use, there are four recommended emulators: Project64 (v3.0+), Bizhawk, RetroArch and Dolphin (latest beta). All are race-legal when configured appropriately. In a nutshell the differences are:
- Project64 is the lightest emulator and the easiest to setup, however, you will need the 3.0.0 version or later to run OoTR well (and earlier versions are not permitted for use in OoTR races).
- Bizhawk is the most resource-intensive, but easier to set up than RetroArch and the only race-legal emulator to support Multiworld.
- RetroArch is less resource-intensive than Bizhawk and the only of the three N64 emulators to work on platforms other than Windows, but it can be frustrating to set up.
- Dolphin lets you emulate Wii VC, giving you access to faster pauses. It's also lightweight, available on other platforms than Windows, easy to setup (on Windows at least) and offers good native support with most Gamecube Controller Adapters. It does come with more lag, although that can be mitigated through overclocking (this is not permitted for racing).
Please follow the guides on our wiki carefully to ensure a stable game experience and that the settings requirements for races are met. OoTR can also be run on an N64 using an EverDrive, or on Wii Virtual Console. For questions and tech support we kindly refer you to our Discord.
This program takes The Legend of Zelda: Ocarina of Time and randomizes the locations of the items for a new, more dynamic play experience. Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks with any possible usage of keys in dungeons.
The randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent the use of glitches for those players who enjoy that sort of thing, though we offer no guarantees that all glitches will have identical behavior to the original game. Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or other items that may not have been as important in the original game.
Each major dungeon will earn you a random Spiritual Stone or Medallion once completed. The particular dungeons where these can be found, as well as other relevant dungeon information can be viewed in the pause menu by holding the D-Pad buttons on the C-Item Menu. Note, however, that the unlock conditions for dungeon information are settings-dependent.
As a service to the player in this very long game, many cutscenes have been greatly shortened or removed, and text is as often as possible either omitted or sped up. It is likely that someone somewhere will miss the owl's interjections; to that person, I'm sorry I guess?
With a game the size of Ocarina of Time, it's quite easy for new Randomizer players to get stuck in certain situations with no apparent path to progressing. Before reporting an issue, please make sure to check out our Logic wiki page. We also have many community members who can help out in our Discord.
The OoT Randomizer offers many different settings to customize your play experience. A comprehensive list can be found here.
"Plan"-domizer is a feature that gives some additional control over the seed generation using a separate distribution file. In such a file you can:
- Place items at specific locations or restrict items from being placed at specific locations.
- Add or remove items from the item pool.
- Select items to start with.
- Set specific dungeons to be vanilla vs Master Quest.
- Set which trials are required.
- Set any regular settings.
Caveat: Plandomizer settings will override most settings in the main OoTR generator settings, particularly list-based settings like enabled tricks or starting inventory. For example, if the Plandomizer distribution file contains an empty list of starting items, and the generator settings include additional starting equipment, the player will start with none of them instead. You will have to edit the Plandomizer file to change such settings, or delete completely the line in the Plandomizer file with the given setting to allow the main generator to alter the setting.
See the Plandomizer wiki page for full details.
Save the .ZOBJ file of the desired model in data/Models/Adult or data/Models/Child. The file must be in .ZOBJ format (the compressed .PAK files are not compatible), but most Modloader64 models will work. Exceptions are models which are larger than the base Link models (the randomizer will give an error message) and those created on the new pipeline (technically load but the textures get wonky). Please see notes regarding known model files that are floating around in this spreadsheet before asking why a model doesn't work.
Once the models are saved, the program may be opened and the model(s) selected under the Cosmetics tab.
If the model's skeleton is similar enough to Link, the randomizer will use Link's skeleton. If it is substantially different, then a note will be placed on the pause screen to make it clear that the skeleton was changed.
Unfortunately, a few known issues exist. These will hopefully be addressed in future versions.
- The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and Hard Reset (NOT savestate) and return to fix the issue. You should always Hard Reset to avoid this issue entirely.
- Versions older than 3.0 of Project64 have known compatablity issues with OoTR. To avoid this either update to v3.0 and follow the rest of our Project64 guide or change to one of our other two supported emulators.
- Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences.
- This randomizer is based on the 1.0 version of Ocarina of Time, so some of its specific bugs remain.
The changelog has moved to CHANGELOG.md.
For an overview of settings additions by release, see the wiki.