Open AmasterAmaster opened 3 weeks ago
There are usecases and examples already in Resonite of worlds which will purposefully load and focus a world without direct user input- a good example of this being the tutorial world for Resonite, and the MetaMovie Project.
How other platforms like VRChat operate is inconsequential to what we do here as we have differing needs and capabilities- so a solution to an issue on other platforms might not always be a good fit for Resonite's design.
This issue would be better resolved by the hard permission system #1103. In specific, type filtering.
Type filtering - will limit which datatypes can be introduced into the model for loaded/spawned objects. This will allow filtering out certain components/nodes from avatars, objects, so they can still be brought in, but with restricted functionality. It'll also allow users to spawn certain items, but not others.
I don't know if solving this by setting would necessarily be best, at least not to start with. There are cases where you'd need this to work without being prompted, because it's part of the experience - e.g. experience transitioning you to a new level.
The best way to approach that is have a mechanism which specifies which world links are part of the world and which ones are not. The ones that are part of the world will be just allowed to change you, anything spawned afterwards won't be able to do it without a prompt.
The hard permission system isn't really a solution for this kind of problem - it deals more with changes to the data model. Though there's some related concepts, but type filtering won't really help with this, because that will only let you block users connecting to other worlds completely.
I can see that, like different levels of what you want to experience, almost like allow any World Orbs
, Allow only world orbs already in the world, prompt otherwise
, Always prompt first
, and deny all World Orbs
. That makes sense.
Is your feature request related to a problem? Please describe.
Currently, it is far too easy to accidentally enter a world/session orb without the consent of the user or without knowing that you touched the orb. Prime example of this is when a world/session orb is moving (usually very fast) and any unsuspecting user comes into contact of that orb will begin to initiate a world join from that world/session orb.
This can be seen here:
Not to mention that also the above image can make it WAY WORSE because it can open 10+ worlds that you did not want open... Which then can exacerbate the problem of not wanting to join each one.
Describe the solution you'd like
A simple setting that allows the user to be prompted before actually joining a world. The current context menu does this, but only for clicking on the world/session orb.
Taking inspiration from VRChat's way of handling it (as well as allowing the familiarity for users coming from that platform to Resonite). Here is the setting they use (highlighted in a red box for your convenience):
And here is what they do to let you know that you are near a portal (or entryway to another world) on desktop:
(Apologies as the images I took are not the best, but I hope it gets the idea across of what I am trying to explain).
Describe alternatives you've considered
Making a system manually to detect if you are close to a world/session orb or about to join a world, but that may require a bit of ref hacking, and even then, once the join has started, there is no way to cancel the joining of that world.
Additional Context
This is mostly a quality of life feature, but something that would be welcome for new users coming from VRChat.
Requesters
AmasterAmaster