OoT-Randomizer icon indicating copy to clipboard operation
OoT-Randomizer copied to clipboard

Saving in Link's House as Adult doesn't respawn you in Link's House, on random spawns

Open r0bd0g opened this issue 5 years ago • 8 comments

Dotzo encountered this in Freaky Friday today. https://www.twitch.tv/videos/834402648 (I'm assuming it's rando spawns that is the culprit.)

r0bd0g avatar Dec 12 '20 04:12 r0bd0g

It's conceivable that if you had some settings where link's house connects directly into a dungeon, that you could end up stuck in that loop, if the savewarp worked correctly. I'm not sure even on Roman's such a scenario is allowed to occur? I haven't played any full mixed pools or decoupled enough to know.

If this is a problem I think it'd be preferred if the exit to Link's House was guaranteed not to be a dungeon? Or, maybe more complicated, confirm a no item (or is starting items safe?) path from Link's House to a non-dungeon area as adult.

r0bd0g avatar Dec 12 '20 04:12 r0bd0g

I'm not sure I'm understanding the desired behavior here, even given that saves in Link's House are loaded in Link's House. Do you want saving in Link's House as adult to result in loading in Link's House as adult, instead of savewarping to adult spawn? (What about similar for child?) Why?

The logic doesn't really account for the exact nature of savewarping always returning you to the start of your current dungeon or your overworld spawn point, it just assumes that your access everywhere is always repeatable. If there were a closed loop of dungeons exiting into each other then it's non-repeatable root access and the seed would be broken without a warp song out. (I guess Link's House is a dungeon in vanilla?)

EntranceShuffle does attempt to guarantee a path from non-starting age spawn to ToT, and from any age spawn to a time-passing region, both without collecting items. But that uses the logical spawns, we'd have to modify the Root logic to start in Link's House to ensure this, if we wanted to do something similar without putting restrictions on where the Link's House exit goes.

Zannick avatar Dec 22 '20 01:12 Zannick

In vanilla, saving in Link's House as adult spawns you in Link's House on savewarp, yeah. It's not exactly well known behaviour, but people expecting it to work normally will be surprised to learn that it does not. I don't know if it would happen as child in vanilla since the spawn normally goes to Link's House... Honestly it definitely was intentional that this savewarp to Link's House was removed in random spawns. Maybe the "solution" is just to document this behaviour change in the random spawns tooltip.

r0bd0g avatar Dec 23 '20 20:12 r0bd0g

The change is made here: https://github.com/TestRunnerSRL/OoT-Randomizer/blob/84696bf88642e02418704f7b9535a483a8e2edae/Patches.py#L881-L883

It seems a bit arbitrary that this patch is made when spawns are shuffled, but not in overworld ER or full indoors. I can't think of any softlocks this prevents in any case.

fenhl avatar Dec 17 '21 14:12 fenhl

I think this has to do with the guarantees we get about Link's House as child when spawn_positions is off, I think that includes access to ToT in some form. Is there a way that ER without spawn_positions can produce a seed where only child can go from Link's House -> ToT? Eg. if we put the ToT Entrance from one of the child-only Zora's Domain <-> Lake Hylia shortcut and enclose the other exits.

I can't think of a logical benefit from savewarping in Link's House to Link's House, but I guess it can provide some gameplay benefits like health and drop resets.

Either we need to confirm what settings require us to have adult savewarping out of Link's House, or we need to adjust the entrance shuffle to require an adult path from KF Links House to ToT with no items.

Zannick avatar Dec 17 '21 18:12 Zannick

I've tried it before, b/c I wanted to scum something and return to link's house. If link's house were to connect only to other places you can't savewarp to spawn, then it'd be a problem that saving there brings you to there. I don't know if decoupled is even capable of this. (I'm also not 100% convinced that only checking for shuffled spawns is enough to prevent this from being a problem, if it is possible.) It's an annoying thing to have to think about. Regardless, decoupled isn't on main branch...

(You would only need a path from Link's House to a place where saving would bring you to spawn, with no items, if you really want to add that check.)

r0bd0g avatar Dec 18 '21 02:12 r0bd0g

Is there a way that ER without spawn_positions can produce a seed where only child can go from Link's House -> ToT?

I don't think this is possible even with spawn_positions, since you can always just leave Link's house and savewarp from there.

fenhl avatar Dec 18 '21 09:12 fenhl

It looks like this behavior was introduced in #1124. @Roman971 do you remember what the rationale for introducing this change was?

fenhl avatar Feb 16 '24 18:02 fenhl