Skip to content

Prioritize songs on Song from Impa when Skip Child Zelda internal setting is enabled#2499

Open
mracsys wants to merge 6 commits intoOoTRandomizer:Devfrom
mracsys:starting_random_songs_scz
Open

Prioritize songs on Song from Impa when Skip Child Zelda internal setting is enabled#2499
mracsys wants to merge 6 commits intoOoTRandomizer:Devfrom
mracsys:starting_random_songs_scz

Conversation

@mracsys
Copy link

@mracsys mracsys commented Dec 15, 2025

If songs are shuffled on songs, skip child zelda is enabled, and there is at least one starting song from another source, it is possible for the Song from Impa location to have a non-song item shuffled on it. This has the consequence with major random starting items of sometimes placing junk items on Song from Impa and reducing the total expected starting major items based on settings.

This PR adds an extra step to shuffle the Song from Impa location first during the song shuffle stage for this particular settings combination. If there are no songs remaining in the pool, Song from Impa will receive a fallback item as before.

Testing

Tested with the following settings combos:

  • No skip child zelda + 11 starting songs + songs shuffled on songs
    • Song from Impa receives either a song or alternate item as expected
  • Skip child zelda + 11 starting songs + songs shuffled on songs
    • Song from Impa consistently gets the last song
  • Skip child zelda + 10 starting songs + songs shuffled on songs
    • Song from Impa consistently gets a random choice of remaining songs
  • Skip child zelda + 12 starting songs + songs shuffled on songs
    • Song from Impa always has a non-song item
  • Skip child zelda + 12 starting songs + songs shuffled on songs + plentiful item pool
    • Plentiful pool does not add additional songs to the pool with songs on songs. Song from Impa has a non-song item as expected.
  • S9 tournament preset
    • Seeds generate. I did not bulk generate to empirically check if Song from Impa could still get a non-song item.

@fenhl fenhl added Type: Enhancement New feature or request Component: Algorithm Search, Fill, Playthrough, etc Status: Needs Review Someone should be looking at it Status: Under Consideration Developers are considering whether to accept or decline the feature described Racing Impact Changes a mechanic in a way that impacts the balance of competitive racing. labels Dec 15, 2025
@fenhl fenhl removed the Status: Needs Review Someone should be looking at it label Dec 15, 2025
@mracsys
Copy link
Author

mracsys commented Dec 15, 2025

The last commit fixes the multiworld preset test failure. While it passes all the other unit tests, and I think it was incorrect before (would only have affected partial plando of song locations in MW or an item pool with multiple copies of the same song), comparing item objects instead of names might have unintended effects I can't think of.

@r0bd0g
Copy link

r0bd0g commented Dec 15, 2025

This was working as intended before. I don't like this change.

But Impa is also a song check in songs on dungeon rewards. You have to include the songs on dungeons setting as part of this change if you're going to make it.

@r0bd0g
Copy link

r0bd0g commented Dec 16, 2025

Just to be clear I guess, I definitely don't want this behaviour to always start you with a song even if songs are anywhere.

I got to wondering about the reward from Rauru. That's also a randomized check that you might start with. Can you even add an extra medallion as a starting item if the rewards are only shuffled between themselves? I'm curious if that has a similar behaviour to the impa's song.

@flagrama
Copy link

I definitely don't want this behaviour to always start you with a song even if songs are anywhere.

That isn't what the code does.

@r0bd0g
Copy link

r0bd0g commented Dec 16, 2025

Looking into it doesn't seem possible to add a stone or medallion as a starting item (feels like a missing feature), but if it ever becomes possible, then I guess this change would have to be kept in mind.

@fenhl
Copy link
Collaborator

fenhl commented Feb 26, 2026

imo this should be a setting and not the default. This would also allow it to apply to songs anywhere, making it a sort of equivalent to #2459, and we could adjust the dungeon reward option to include this behavior as well when we add rewards as explicit starting items.

@mracsys
Copy link
Author

mracsys commented Feb 28, 2026

Would that be removing the "Forced" option from the Rauru setting and moving it to some new setting covering forced placement of special locations? Make it a checkbox? Multiselect for all special locations?

Also, would this new setting be decoupled from Skip Child Zelda? I can't see how it could remain coupled with how the disable system works for multiselects (child trade shuffle).

@fenhl
Copy link
Collaborator

fenhl commented Mar 1, 2026

I'd envisioned it as a new setting that specifically controls the Skip Child Zelda behavior, but your idea sounds better.

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 Racing Impact Changes a mechanic in a way that impacts the balance of competitive racing. Status: Under Consideration Developers are considering whether to accept or decline the feature described Type: Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants