Skip to content

Special-case reward placement when DoT requires stones#2567

Open
fenhl wants to merge 1 commit into
OoTRandomizer:Devfrom
fenhl:oot-stones
Open

Special-case reward placement when DoT requires stones#2567
fenhl wants to merge 1 commit into
OoTRandomizer:Devfrom
fenhl:oot-stones

Conversation

@fenhl

@fenhl fenhl commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator

If the effective starting age is child, dungeon rewards are on reward locations, and the “Door of Time” setting is set to an option that requires the Spiritual Stones, the naive placement of dungeon rewards causes frequent generator failures. This PR forces the stones to be placed on the stone dungeons in these settings to get a better success rate. If #2181 is accepted, this optimization should be revisited once that lands.

Testing

Tested using ootrstats:

  • ootrstats --json-settings='{"open_door_of_time": "stones"}' failures counted 14591 failures out of 16384 seeds
  • ootrstats -ufenhl -boot-stones --json-settings='{"open_door_of_time": "stones"}' failures counted 0 failures out of 16384 seeds

@fenhl fenhl added Type: Bug Something isn't working Component: Algorithm Search, Fill, Playthrough, etc Status: Needs Review Someone should be looking at it labels Apr 29, 2026

@flagrama flagrama left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume Random and Randomize Main Settings will already be resolved by this point?

@fenhl

fenhl commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator Author

Yes, that's handled in resolve_settings (Main.py line 40), while reward placement happens in generate (Main.py line 46).

@fenhl fenhl added Status: Waiting for Release This PR is ready for merge, but we're holding off on it until after the next release and removed Status: Needs Review Someone should be looking at it labels Apr 29, 2026
@r0bd0g

r0bd0g commented Apr 29, 2026

Copy link
Copy Markdown

I think it's still possible to start with the Rauru reward, right? If you do, then Rauru should be included as a possible reward location for a stone. But if it's full boss ER, additional bosses are possible as child, PG and Bongo, and there's trick that can be turned on for Morpha. And if it's dungeon ER and the forest shortcut is on, it's possible child could reach PG even with boss ER off (or even on age-restricted boss ER if PG happens to go in Forest, but that case you might have to somehow force the forest boss door to vanilla if PG is selected). I'm not familiar enough with glitched logic to fully understand how that setting might come into play. If you're playing on those kinds of settings you would definitely want the possibility of having to fight those additional bosses before being able to go adult. I understand that it's giving a lot of failures the way it is now, but I think you should just be guiding the rando about what to do and not actually restricting the possibilities. It's worth a few failures to keep these options open.

@flagrama

flagrama commented Apr 29, 2026

Copy link
Copy Markdown

In the sense that probably creates an error state, that should be fixed, otherwise no, people put these options together all the time and it pretty much only errors. Having one more open slot doesn't change that, even if you start with a stone the other two must go into a child dungeon and will not do so randomly the majority of the time. (this should be provable with ootrstats, if it is over 50% of seeds are failures it should not be left to randomness currently)

@fenhl

fenhl commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator Author

Right, I forgot to test with Free Reward from Rauru. The handling definitely needs to be adjusted for that:

  • ootrstats --json-settings='{"open_door_of_time": "stones", "skip_reward_from_rauru": true}' failures: 10192/16384 failures
  • ootrstats -ufenhl -boot-stones --json-settings='{"open_door_of_time": "stones", "skip_reward_from_rauru": true}' failures: 11513/16384 failures

@fenhl fenhl added Status: Waiting for Author Changes or response requested and removed Status: Waiting for Release This PR is ready for merge, but we're holding off on it until after the next release labels Apr 29, 2026
@r0bd0g

r0bd0g commented May 1, 2026

Copy link
Copy Markdown

Is there some reason you can't add the other child-possible bosses as valid locations for stones if the right settings are enabled? (I can't see why doing so would have too significant of an impact on the success rate since wherever the stones go you're still at the mercy of ER whether it can place those areas in potentially child-accessible areas.) I don't think it's okay that these settings with full boss ER would force only the child bosses to have stones. (For example, it would just about defeat the purpose of not selecting the age-restricted boss ER option.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Algorithm Search, Fill, Playthrough, etc Status: Waiting for Author Changes or response requested Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants