I have a custom character that is literally just a ball (sphere part, no joints or root), and the goal is to be able to ‘hit’ the ball around like a golf ball. I’m handling the physics on the server (for security reasons), and I’ve run in to an issue that since the player always has NetworkOwnership over their own character, I am unable to set the AssemblyLinearVelocity of the ball to make it move. How should I go about applying physics to the character from the server? I’ve tried using constraints like LinearForce, but I want to be able to just change the velocity on demand since LinearForce either doesn’t instantly update the velocity how I’d like it to or does in a very jittery, uncontrollable way.
TL;DR: How can I change the velocity of a client-owned part from the server, instantly?
There is a reason why NetworkOwnership behaves this way. If you want the client to be controlled on the server, set it to the server. They can still exploit on the client if they have ownership anyways.
This is what I am trying to do but every time I set the network owner to nil, after a few seconds the client becomes the network owner again. After that, trying to set the network owner back to the server only works for a brief moment before switching back to the client.
I don’t want to handle any physics on the client, since that can be easily exploited even if the server is communicating via remotes. The server should have the final say in what the character’s physics are.
if you have a humanoid instance in your character, you can set the property PLatformStand to true. This will disable the control of the player over it’s character, rendering it unable to move through the default scripts that roblox provides. However, you can make your custom movement scripts, thus making it able to control the character even during platformStanding state
My character is just a ball and doesn’t have a HumanoidRootPart so it’s already unable to move or be controlled. The issue I’m facing is that the client seems to always keep network ownership over their own character so I can’t control the character’s physics from the server. This is both an inconvenience and a problem in terms of security since exploiters can easily manipulate any parts they have network ownership over. I thank you for the suggestion, though.
I would use remotes if I didn’t care about exploiters, and if I can’t find a solution to change the physics of the character from the server then I probably will end up using them combined with a server-side anti-cheat.