---------------------- To create a holdable menu that only the player who opened it can see in a VR environment using NormalVR, you would need to leverage the concept of ownership in NormalVR.
In NormalVR, models can have other models as children, and the ownership settings of a parent are enforced on all children. If a model is owned by one client, all other clients are blocked from making changes to the model or any of its child models. This behavior is seen with RealtimeViews and RealtimeComponents as they both use models. The RealtimeView's model contains the models for all child RealtimeViews and all RealtimeComponents, so any ownership settings on the RealtimeView apply to child views and to components as well.
The most common RealtimeView prefab is a player prefab. A player prefab is also a prime example of when to use ownership. Generally, we want to ensure that each player prefab can only be modified by the player that owns it. Rather than setting ownership of every component on the player, we can set ownership of the root RealtimeView, and the server will block all other clients from making modifications to any RealtimeView or RealtimeComponent model.
In the context of your question, you can create a menu as a child model of the player model. When a player opens the menu, you can set the ownership of the menu to that player. This way, only the player who opened the menu would be able to see and interact with it.
I'd just create it locally without any Realtime scripts and Realtime Prefab instantiation. If you're using a player prefab that's spawned for every player make sure it's that holdable menu is not included in that prefab.
What you are asking has nothing to do with Normcore. So just show the menu as your normally would and only you can see it. Only when objects has a RealtimeView/Transform on it other players can see it