Published using Google Docs
Changelog 29th Jan 2023
Updated automatically every 5 minutes

29th January 2023 - TMCR v0.7.0_alpha_rev2 (Test Build)

Changes since Rev1 Test Build:

Previous Changelog

Logic File Restructure

Decouple Items from Locations:

New Item/Location Types:

Location Types:

Item Types:

Location Dungeons:

‘No Spoiler’ Tag

Logical ‘Not’ Statement

Import Statement

Shuffle Options:

Main Settings:

World Settings:

Logic Settings:

Other Settings:

Gameplay Changes:

In Game Changes:

Logic Changes:

UI Improvements:

New Features:

Minified Settings Strings:

Cached Configuration:

Settings and Cosmetics Presets:

Returning Features

Export Default Logic:

Experimental Features

Sphere Based Shuffler (Hendrus Shuffler™)

Miscellaneous:

Spoiler Log Changes:

Bug Fixes to the Previous Build:

Plans moving Forward:

Updates Planned for Next Build:

Tentative Changes:

Known Issues:

Logic File Restructure

The Logic file structure has been unchanged since the very first release of the randomizer in 2019 and we believe it is for the best to revamp it with some more functionality.

Decouple Items from Locations:

Previously: All the Locations were read and they all offered an item, these items were taken and then added to the item pool, this pool could then only be modified by replacing items that already existed in that pool.


Now we define the Item Pool separate to the Locations. Can specify the amount of this item that should be added to the pool, the Location Type it should be placed into and also given a Dungeon ID so that they are only placed into locations that match that ID.

Items that wish to be unshuffled (or forced to a specific location) can still be offered by a location in exactly the same manner as previously.

New Item/Location Types:

New Item/Location types have been added to provide layers to the randomization stages, this helps make sure seeds are beatable the vast majority of the time by placing important items before less important items.

Location Types:

Item Types:

Location Dungeons:

Locations now can have any number of Dungeon IDs. This allows for things such as small keys being placed inside their own dungeon but big keys to be placed in their own region, since these two items will have different Dungeon IDs they shuffle to.

‘No Spoiler’ Tag

A special dungeon ID has been added called NoSpoiler, this prevents this location and its contents from being added to the spoiler log. Useful for unshuffled locations like rupee spots that would clog up the spoiler log while keeping that location defined. Unnecessary when the location type is Inaccessible.

Logical ‘Not’ Statement

~Items.SmithSword prevents this item from being placed at this location but only if that logic dependency is what is required to place this location in logic. This statement can NEVER be used for Helpers.

Eg: (|Items.A,(&Items.B,~Items.C)) means that this location is in logic if Item B is obtained but Item C cannot be located here in that case, however if Item A is obtained then Item C can be placed here.

Import Statement

You can now import functions into the logic file! These functions are written in C# in the LogicImports file in the Randomizer Core. Imports are meant to simplify implementation of certain features that would be extremely cumbersome or even impossible in the logic file. You can import a function by putting !import - function_name in the logic file. The following function names can currently be imported:

NON_ELEMENT_DUNGEONS_BARREN - Asserts that if a dungeon is one of the main 6 dungeons and does not have an element, then no major items can be placed in it.

NON_ELEMENT_DUNGEONS_NOT_REQUIRED - Asserts that if a dungeon is one of the main 6 dungeons and does not have an element, then no major items can be placed in it until Vaati is beatable.

VERIFY_LOCATION_IS_ACCESSIBLE - Asserts that a location is accessible before placing a major or dungeon major item on it. This should always be imported unless you want no logic, in which case not importing this function will give you no logic.

Shuffle Options:

Due to the improvements made to the Logic File structure, this update is mainly a refinement of existing settings to resolve bugs and to make use of this improved functionality. Some new settings were added however, and we hope to not have many major bugs with these additions.

Main Settings:

World Settings:

Logic Settings:

Other Settings:

This section is a bit of a mix of options that don’t obviously combine well with other settings or don’t have enough settings to be worth placing on their own page. Any feedback on where to move these settings is appreciated.

Gameplay Changes:

In Game Changes:

Logic Changes:

UI Improvements:

New Features:

Minified Settings Strings:

We now have a working implementation of settings strings! The current implementation is the “minified” implementation. If any of the settings in a logic file have changed, these strings will not be usable in that new version. However, this doesn’t prevent something like translations, since it only checks that the name of the define matches what was intended and not the name that appears on the UI. As such, settings strings generated on the English Default Logic file will also be usable on the French Default Logic file. More info on translations can be found in the future plans section.

To use a settings string, paste it into the settings string window and click “Load Settings”.

To get a settings string to share with other people, click “Generate String” and copy your string. Additionally, when you randomize a seed there is a button on the seed output page to copy the generated settings string. The seed generated on that page is the same one that would be generated if you click the “Generate Settings” button.

To reset your settings to the logic file defaults, click “Reset Defaults”.

These same steps apply for cosmetics strings as well, which can be found just below settings strings on the UI.

Cached Configuration:

The randomizer now caches your configuration when you close the program. This means that when you re-open the randomizer, some settings will be automatically selected for you! As of right now the following settings are cached:

Settings and Cosmetics Presets:

In addition to settings strings, we now also have settings presets! Presets allow you to quickly save and load certain settings and cosmetics with just a few button clicks, so you don’t have to manually go through and select every setting you want to play with. To save a setting, you simply click the Save Current as Preset button and put in the name you want to save it as in the dialog that pops up. You can then load it at any time. The following settings presets are shipping with this release:

Returning Features

Export Default Logic:

Export default logic makes its triumphant return! You can export the logic by clicking “Logic -> Export Default Logic”.

Experimental Features

Sphere Based Shuffler (Hendrus Shuffler™)

An experimental shuffler that places items starting at sphere 0 and going until it can beat Vaati. If it becomes impossible to progress, it steps backwards and retries earlier spheres to make it possible. This shuffler can take a very long time to generate seeds and also generates very linear and plando-esque seeds. Use at your own risk (and if you want to inflict pain on others!)

Miscellaneous:

Spoiler Log Changes:

Bug Fixes to the Previous Build:

Plans moving Forward:

Updates Planned for Next Build:

Tentative Changes:

These changes may be in the next build, or if we cannot get them done on time they will be in the build after that.

Known Issues: