VR Expansion Plugin

Hi Mordentral,
I’ve been noticing some problems with using a remote grip by way of the custom pivot components in multiplayer. I set it up as you did in your video using the built in laser to set the location of the grip component. I also added thumb stick control so it can push or pull the actor away from you. My problem is that the client’s offset grips never seem to update on the server.

Example: I grab object on client 20 feet away using laser beam. Client is fine, but on the server it teleports to the hand. Also the thumbstick setting the grip component location just doesn’t work on client, I can see the grip sphere move, but the actor won’t. I know you said the grip components are not replicated and I’ve tried to set it up but nothing seems to work and my blueprints are turning into spaghetti. I have a hackish way to force set the location if a client is using it, but it ruins grip functionally and seems messy.

I know this problem is probably too specific, so I totally understand if I don’t hear back. I just feel like there is a simple way to update the location of the clients grip components that I’m totally missing.

Has anyone run into this horrid stuttering issue in the hmd? it seems to happen if the world scale is anything but 100.0.
Cant find whats doing it, all the transforms of the pawn and components are not actually changing from the stutter
video link:

You need to set the pivots on all clients / the server, you also need to replicate that you are moving the custom pivots. The pivot can be ANYTHING so I can’t really replicate that for you, and replication in engine is one way, server-down.

You need to tell the server that the client moved the pivot (or move it on the server and let it movement replicate down to the clients). Right now you are just moving it on the owning client only and it is staying in the same spot on everyone else.

Is that in multiplayer and did you not change world scale on the server as well? Because the CMC would report incorrect locations then.

no it wasnt multiplayer, it seems to be related to nav mesh, if i delete the nav volume and restart the editor it gets rid of it

Thats strange, so it was performance hitching?

ROJO mentioned on the discord that play in editor is currently bugged with non 100 world scales… If you close all of the tabs, including output, find in editor…etc all of them… It should work in PIE. Are you getting that outside of PIE as well? This had worked for me when i tested it… Not sure where the bug is from but that workaround worked for me.

Thanks again, and sorry for being so daft! I thought I just needed to check the component replicates box on the component I was using as the custom pivot, but it looks like I had to get “custom pivot component” from the motion controller and set it to replicate using the “set is replicated” node in the BP. Even after that I was was getting strange behavior (held objects flashing between two points) which caused me to think it wasn’t replicating properly. When I moved the custom pivot objects to be descendants of the controllers instead of the skeletal mesh it solved the problems. My guess is it has something to do with socket locations not replicating exactly on the skeletal mesh, as I was also having problems drawing the laser beam from the hand socket location instead of the motion controller. But that is not a problem with the plugin. Thanks again and I’ll leave this here in case anyone has this problem later on and searches for it. Cheers

Tried this and it resolves the issue, thanks
havent tried it in a packaged build yet, trying to get the knuckles mappings to work in a build first

How can I get the 4.22 beta?

the master /default branches are the current live engine versions, “beta” branches are shut down on release of the version they were beta for.

Ah ok, is there any date on when the 4.22 branch will be released?

I think you misunderstood me, master IS the 4.22 branch. The day that 4.22 came out it was moved over.

ohhh yikes thank you for clarifying

Pushed a new commit to both repositories

Removed Physx and Apex dependencies, massive overhaul to the new physics interface added to the engine, prep work for Chaos physics

Path notes here:


For any reason, I can’t compile the demo to learn how to use this plugin… is there any basic blueprint to start with the movement? I have the VRcharacter inside the level and I have moved it… but I don’t know if I’m doing it the way it is supposed to do. (VRMovementReference → PerformSetRotation)

So just that little question: a best easy way to do the very basic free locomotion (left-hand X / Y (strafe), and Right-hand free turn?)

Thanks again and sorry for such an elemental question. And congrats. Seems to be something that unreal had to implement natively.

hello thanks for topic need to attach it to the vehicle with the constraint, or have it constrained to a non simulating component…

Correct me if I’m wrong, but if you download the example project from <here> there’s no need to compile anything, you can just use the demo directly.

I’m puzzled with the slot gripping…

How do we decide to slot to the “Closest Grip Slot In Range”?

  • In the demo, the HeroSword and the Slicer both have a slot (‘VRGripP1’)
  • The HeroSword slots, while the Slicer doesn’t…
  • I don’t see any function in either BP that takes care of this

Only difference is that HeroSword has a skeletal mesh while slicer has a regular one…

Whats going wrong with compiling the example template? You likely missed a step when installing visual studio.

Also for movement, in general it is just AddMovementInput like with a normal character, the examples use a leveled controller forward vector for the direction with the default mode, rotating for snap turn or free turn is done with PerformMoveAction_SnapTurn. SetRotation works but its a hard set so its harder to work with when you just want a delta value.

No it has to be compiled as well, I don’t want to compile out pre-built examples for every engine version and every binary change, it gets very large very quickly in history, its also not just a blueprint project as I use it for compilation testing.