[ON HOLD] Improved Sleep System: Enhancing Accuracy, Consistency, and Performance

hi, would you mind telling me what this term “sleep” means?

when BaseParts are sleeping, it means their physics are not simulated by your client or the server

1 Like

Awesome improvement, wondering now if I can bump up the max number of physics objects in my game.

This video shows a smoking gun for a subset of use cases though. Small parts moving slowly (and not even that slowly) will just fall asleep, which makes small or detailed assemblies not reliable. The engine should have a dedicated way to prevent certain parts from falling asleep.

7 Likes

ohh yea yea now i get it. Tnx pal

Why, why, why is it so hard to give a property such as ForbidSleep to parts, unions, and meshes? Having a smaller threshold does not solve the problem that is plaguing bowling games and anything similar.

7 Likes

Honestly just really need a property on BaseParts to prevent sleeping at all times

4 Likes

roblox likes to help out developers but not too much
gotta keep our minds sharp, can’t be getting lazy can we

1 Like

Off-topic, but what constraints is this assembly made of? It looks fun
7ec518af3e079bcbfe7f9c6d5a3327623f8d2cfd

2 Likes

This will help with my sleep deprived parts! Thanks Roblox!

Agree. Just like setting the Part’s network ownership we should be able to set it to never sleep if we want. Thats clearly not an issue for performance since we would only activate it on the Parts we are using at the moment.

4 Likes

This is awesome. Once fully released, many games will see a big performance and stability boost. Not to mention the bugs that were fixed.

However, will we ever get a better way to manage whatever this mess of “behavioral properties” is under workspace? It causes really inconsistent behavior across games. Some properties were already supposed to be removed by now. Even a simple toggle UI with a detailed explanation of each property would help in managing this.

1 Like

This will be an interesting gamble
Either it’s going to break even more things in my game or potentially slightly fix one of the ongoing bugs caused by previous physics changes.

1 Like

To add on, there are many use cases for a property like this. Here is an example of a bunch of loose parcels/packages in the back of a utility truck all sleeping, causing the truck to not move and get stuck a lot of the times.

Much like BasePart:SetNetworkOwner() we should have a BasePart.ForbidSleep property or similar method

6 Likes

Can we still test this in studio while it’s on hold?

This update is very good for games with many moving parts (Natural Disaster Survival, my beloved), but I agree with everyone else that we should have the option to disable sleep for certain parts through a property. I do like the idea of BasePart.ForbidSleep for specific parts that may need to stay active for as long as possible.

A good example is marbles rolling down a contraption to an endpoint. It would be very useful to have the ability to forbid sleep until it finishes the route. Having more control over the sleep system would be a blessing and the ability to toggle the system on and off with scripting will also be very nice. Including it to BasePart and Model would be nice so that you don’t have to loop through large model assemblies to disable it part by part. Perhaps the parent object has priority over descendants in this case, similar to GUIObject.Visible

3 Likes

There should be explicit option to ForbidSleep and Awake sleeping part!

1 Like