Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
139 stars 2 forks source link

Don't close local version of a remotely hosted world automatically in case of a disconnect #2780

Open JackTheFoxOtter opened 2 months ago

JackTheFoxOtter commented 2 months ago

Is your feature request related to a problem? Please describe.

When you get disconnected from a remotely hosted world, for example because your internet drops out or the host of the world crashes, the world will first appear to be frozen / unresponsive for a couple of seconds, before eventually closing after a timeout.

The problem arises when this happens to a world you are actively working in. It has happened multiple times to me in the past that the host crashes while I have unsaved progress on whatever I'm working on. If I notice fast enough, I can quickly grab the object I'm working on and save it to inventory before my local version of the world closes. This is very hectic and often I miss this short timeframe, resulting in avoidable loss of progress.

Describe the solution you'd like

I would like for the local version of a remote world you're in to not automatically close when you get disconnected. Instead, the game should notify me that I have been disconnected, and give me the option to close the world manually, instead of closing it automatically after a short timeout. This would give me the opportunity to save whatever I was working on to my inventory before closing the disconnected world and connecting to a different one. A mechanism like this would have prevented loss of progress many times in the past.

Describe alternatives you've considered

N/A

Additional Context

I understand this might not be desirable for all players, and potentially confusing for new users not familiar with this system. If this is a concern, this could be configurable through a setting.

Requesters

No response

Banane9 commented 2 months ago

838 is related I suppose, minus others staying connected. Also #623

JackTheFoxOtter commented 2 months ago

No, this is unrelated to mesh networking or host transferring. When you join a remotely hosted world, Resonite still creates a local world on your end - your client just isn't the authority. But everything is there, datamodel, assets, etc.

You wouldn't implicitly become the host by doing this, or take authority - the only thing changing is that your client doesn't kill that local version of the world that's still running on your end. You would still have to close it, as stuff like inspectors which are generated by the host won't work, but you would have some time to "pack up your things" before doing so.

Banane9 commented 2 months ago

You wouldn't implicitly become the host by doing this, or take authority - the only thing changing is that your client doesn't kill that local version of the world that's still running on your end.

Ahh, important clarification 😅

Nytra commented 2 months ago

Inspectors wouldn't work in the local version of the session anyway, so you would only be able to save stuff by grabbing it

Frooxius commented 2 months ago

That's pretty much the goal here (I've asked Jack to make this issue before).

It's a "Host has crashed, grab your things and get out" kind of thing.

TisFoolish commented 2 months ago

Inspectors wouldn't work in the local version of the session anyway, so you would only be able to save stuff by grabbing it

Is that because inspectors run off the host? Would the mod that makes your own inspectors local make them work in this instance?

Frooxius commented 2 months ago

Yes inspectors run on host, as does a lot of other stuff. Being able to continue to use the session as normal is not the intention here though, so that's not a concern.

Let's keep this on topic please.