[URGENT] methods to override automatic distribution of physics

As you can see in this thread, Roblox’s automatic distributor sucks at automatically distributing physics to the right person (aka the driver of the vehicle.)
This is really annoying for several reasons:
[ol]
[li]propagation delay sucks in a major way, hence[/li]
[li]Driving games aren’t fun when your car is on someone else’s CPU[/li]
[li]train games aren’t fun when your train is on someone else’s CPU[/li]
[li]plane games aren’t fun when your train is on someone else’s CPU[/li]
[li]roller coaster places (like RobloxPoint, a staff favorite) get treated to the slowest roller coaster in the universe when the slowest computer in the universe gets the roller coaster distributed to it[/li]
[li]deathruns with vehicles in them don’t teleport randomly and kill everyone because the minecarts switch clients every 2 seconds (I know you like Surface Escape, I made it on the ballot)[/li]
[/ol]

The freezing in the video is from propagation delay, not video lag. If I had the vehicle distributed to me, then the car physics would have been silky smooth even if the others are jumping around. This is the higher-level issue: lack of control.

I propose these solutions:

::ForceClient(BasePart,Player)

forces the vehicle which contains the BasePart to be controlled by the specified client and that client only. The vehicle cannot be distributed to any other clients nor the server. If the player leaves, then the locked vehicle falls under the current automatic distribution system.

::ForceServer(BasePart)

forces the vehicle which the specified BasePart is a part of to be controlled only on the server. It cannot be distributed to clients.

::Unlock(BasePart)

Enables the current automatic distribution on the vehicle which contains the BasePart

I don’t really care which service this goes in or if it is a method of a BasePart, I just want those three methods accessible to scripts, and I want it now. As in, the #0 update priority for me is this right here. Without this, car games suck, train games suck, and the engine will just limp along because it cannot predict the best person to give the physics to (which usually is not the driver)

I do not want you to mis-interpret my request, as it is very dear to my heart, many developers on this forum, and thousands more who use vehicles and play games affected by the automatic distributor

1 Like

The automatic distribution system has to be the worst hurdle to pass when creating anything involving physics. I’ve been using relative CFraming for about everything in Deathrun and the race car AI I’m currently working on doesn’t work at all due to the physics host changing all the time.

Even though the CSG Modeler is amazing, this has to receive top priority :emo-angst: [sub]please?[/sub]

This is what we exactly need before every thing. With this, we also need to be able to see what user has as a CPU. I know that UserSettings service has the access, making them readable won’t hurt anyone? Am I not right?

Roblox, this is much more important than every other update…

[quote] This is what we exactly need before every thing. With this, we also need to be able to see what user has as a CPU. I know that UserSettings service has the access, making them readable won’t hurt anyone? Am I not right?

Roblox, this is much more important than every other update… [/quote]

for the roller coasters, ideally you would check framerate of people or delta position vs. velocity and determine that way who has the crappy CPU and who has the powerful CPU, and then create some better, custom logic for switching that way. (admins do not spend time implementing this logic on your end, we do want to do this on our end)

EDIT: kinda rude

Remember that A) yesterday was a holiday, so no one was in the office; B) several people are now on vacation and out of the office; C) this is an internal decision and a rather large one at that - nothing’s going to happen within a day of you posting a thread.

And yes, the “who’s online” at the bottom of the index is a bit for show. Most people just leave the forums open in a tab while they’re doing other things (like their jobs), so showing up as online does not mean someone is actually looking at the forums right now.

Thank you for the clarification of the situation, M.C.Ritelli. As you probably noticed, this is an issue close to my heart, and I hope to make the delivery of the feature as expedient as possible.

I 100% support this.

I’ve been making vehicles since 2009 and this system is horrid.

Plane groups need to let the pilot sit down first (while everybody stands VERY far back) so that the pilot is the one controlling the plane. I also think there should be a way to dedicate physics to the server (such as large-group vehicles without drivers, like a rollercoaster)

Definitely a needed update.

1 Like

I also have faced this problem when doing taks that require careful and precise applying of forces using BodyForce and such to simulate physical things like:
-Aerodynamics (To make ‘realisticish’ wings and such)
-Constraints like ropes or springs
-Bouyancy (Terrain rarely fits the situation so I need my own…)

In those cases the forces need to affect the part instantly from the moment the script applies them. If the part is simulated on a different machine than the script, there is lag in applying forces, which leads to springs exploding, ships sinking and wings accelerating vertically at 20 g.

1 Like

I’m making a nuclear missile silo: It would be helpful if I could assign the missile to the server so it can be smooth without having to spend ages making client only copies to sync with the server.

Does anyone happen to know the algorithm roblox uses to decide what machine to run physics on?

I could use one to trade quality for stability when there is a chance that the physics get switched to a different machine than the client.

[quote] Does anyone happen to know the algorithm roblox uses to decide what machine to run physics on?

I could use one to trade quality for stability when there is a chance that the physics get switched to a different machine than the client. [/quote]

I’m not sure about the algorithm, but I remember there being a blog post about it a while back.
This Blog Post