Im using alignpositions and alignorientations to move my vr hands around. It tracks fine, but when I push stuff the object I’m pushing is all rigid and not life like. Punching stuff doesn’t make it go very far, either.
Is there a property I need to check or something? I’m using a custom body (not the default character) and am setting network ownership in a custom manner. I’ll try to send a video if I requested.
I believe this is an issue with Roblox’s network ownership. It’s buggy and making a workaround for this would be difficult, but consider looking into network ownership on Roblox.
Got any ideas on what to do? I’ve got it looking pretty good after some debugging.
The problem was quite silly: Only after a few hours of testing did I realise that my arms did not actually have collisions. I didn’t notice this not only because of it’s subtlety, but also because the parts were still kinda moving around even with no arm collisions (???). Not sure what happened there.
It’s been a while since I’ve messed around with NetworkOwnership in Roblox. It’s gotten messy thanks to exploiters abusing it, however. One idea that I might have is to recreate every physics/intentionallyinteractable instance on the client (so that its separate on the server) and then use UnreliableRemoteEvents to replicate it onto the server with (lerped?) bodymovers.
Did making then collidable yield any different results?
Yeah. Making arms collidable gave me physics you might expect from vr hands or whatever. Way better compared to the buggy ghost-collisions where parts would have their velocites reset instantly a few seconds after touching my hands, among other things.
I want to go deeper and have even more realistic collisions / interactions in my game, even if it means modifying the whole game’s backend structure.
Good to hear it was working better, but I must warn you that when it comes to multiplayer, using raw network ownership will screw everything up.
You don’t have to do that much to have properly replicated physics.
Simply use unreliableremoteevents. I would opt to make my own networkownership “service” from the ground up if need be. Also, use collection service and tags on objects that arent meant to be interactable. Best of luck. LMK if you need any help.
Well, saying Unreliable Remote Event would make it sound like a sentence. The instance name is UnreliableRemoteEvent, similar to RemoteEvent. UnreliableRemoteEvents are good for reusability and constant firing, whereas missing one remote event is harmless. Replicating visual effects would be one good example. They skip the extra step of making sure the remote event got to the server, and also completely disregard what order the events were fired in. This is more performant and allows more important remote events to be prioritized. This would be perfect for your case, combined with bodymovers.
Didn’t know this existed. I suppose these are to be used for unimportant & invaluable things like a small sound playing or any other minor details. Thank you, will keep in mind for later.