Important Update: Minimum Part Density Change for Enhanced Air Buoyancy

[Update] February 27, 2024


Hey Creators,

As part of our ongoing efforts to improve and enhance the development experience on Roblox, I want to bring your attention to an upcoming change that might impact your experiences.

What We’re Doing:

We are adjusting the allowable minimum part density from the current value of 0.01 to a new value of 0.0001, which may impact user experience.

Why We’re Making This Change:

Our goal is to empower you to fully leverage the new air buoyancy feature. This adjustment will make it possible to create exciting experiences involving lighter-than-air parts, such as balloons, for aerodynamics-enabled gameplay. Currently, the default air density is set to 0.00129, making it impossible to create fully air buoyant parts with a minimum part density of 0.01. With this change, we aim to reduce the minimum part density to work with the current default air density value.

Who This Impacts:

This change will affect those who set any part density to a value less than 0.01 within a script. Currently, values below 0.01 are clamped to 0.01, but with the proposed adjustment, these values will be set between 0.01 and 0.0001 depending on the value used within your script(s).

For example, if you currently have a part’s density set to 0 within a script, then this change will make it so that the density of that part changes from 0.01 to 0.0001, the new minimum part density. However, if you currently have a part’s density set to 0.001 within a script, then this change will make it so that the density of that part changes from 0.01 to 0.001.

Why Should You Care?

If your experience is setting the density of any part to a value lower than 0.01, then this change will cause a change in user experience. For example, if you currently have the density of any part set to 0, then this change will make that part start floating since its density will change from 0.01 to 0.0001, where 0.0001 is lighter than the density of air (0.00129).

When Will This Change be Made:

This change will go live on February 26. Please ensure that you’ve checked your experiences and made any changes needed by then.

Best Practices for a Seamless Transition:

To ensure a smooth transition, we recommend you update your scripts to specify explicit density values within the current allowable bounds. This proactive approach will prevent inadvertent clamping of values during runtime.

It’s a good practice to future-proof your game’s behavior, considering that both minimum and maximum bounds for different physical properties may evolve over time as the fidelity and realism of our physics engine advances. For most creators, setting the density of any clamped parts to 0.01 is the correct fix, aligning with the current minimum density.

Known issues:

If your experience utilizes any Chassis from the toolbox (particularly any A-Chassis) and hasn’t undergone this fix in the associated scripts, you might encounter issues. We encourage you to address this to ensure the continued smooth operation of your experiences.

In the case of the A-Chassis models, we’ve found that most of these models set the Density to 0 via CustomPhysicalProperties under an “Initialize” script found under the ModuleScript “A-Chassis Tune”.

Please note that some A-Chassis models set the density to a value lower than 0.01 in multiple locations and scripts.

We recommend you comb through all your scripts using the Find All function (Command + Shift + F / CTRL + Shift + F) and look for “PhysicalProperties.new” to ensure that all new PhysicalProperties instances set valid density values (first value should be ≥ 0.01).

This “Find All + PhysicalProperties.new” technique should work for all models.

Resources

For more information, please check out the following documentation:


We appreciate your understanding and cooperation as we work together to enhance the Roblox development platform. Feel free to share your thoughts, questions, or suggestions in this thread. Your feedback is invaluable to us!

Happy coding!
M0bsterLobster :lobster:

198 Likes

This topic was automatically opened after 11 minutes.

You know, my first instinct was to make light of this being labeled Important Update but then I went and checked our code.

We have a couple instances in Adopt Me where we’re setting Density to 0, so this could actually impact us. If it can happen to a big game it can happen to you too, my fellow devs.

Thanks for the heads up!

63 Likes

Hoping to see a few people do this in the gamejam tomorrow :pray:

9 Likes

For sure, can’t wait to see what people come up with!

14 Likes

Gonna be interesting to see the AC6 known issue when this goes live. I’ll do everyone a solid and update the toolbox models to have the 0.01 fix, thanks for the heads up!

Notes for edits: I was wrong in my edits so take this as the be all end all :xdd:

10 Likes

Sadly it won’t be live until this date.

9 Likes

Woah. Simply reading this, and I’m already happy:

7 Likes

Is minimal as this change sounded, apparently over half of my physics related scripts would set density to 0. Thanks for the heads up. Though the thought of objects flying off in some games intrigues me a bit.

6 Likes

I always like updates that reduce limitations! Thanks for this.

10 Likes

I can already imagine creative uses for this

2 Likes

With how many people are reporting they would have been affected, were there any discussions about showing a warning if you create a CustomPhysicalProperties with density as exactly zero?

11 Likes

Oh nooo! So unfortunate to see.

3 Likes

Yes! We are planning on adding a warning message whenever there is clamping for either the minimum and maximum values of any of these physical properties. We will update this post when that’s implemented :slight_smile:

14 Likes

Just don’t use hydrogen. Balloons are gonna be much easier depending how it will float.

5 Likes

Do you have any plans to update Physical Properties further?

I suggest adjusting the Maximum Part Density.
As illustrated in the following image from rojo.space,


PhysicalProperties currently only uses float32s, ranging from -3.4 * 10^38 to 3.4 * 10^38.
However, I’m unable to set the density above 100 at the moment (0.0001 ~ 100).

I need the ability to set the density higher than 100 to implement the “Physical Time Scale” feature in our studio’s game.

When the TimeScale is less than 1, it becomes necessary to increase the density, as shown in the images below.

image
image

When dealing with a part that has a density of 7.85 (Metal Density):

  • If the time scale is 1, the part’s density should remain at 7.85.
  • If the time scale is 0.1, the part’s density should increase to 78.5.
  • However, if the time scale is 0.05, the part’s density doesn’t increase to 157 but is limited to 100 due to the current maximum density constraint.

Additionally, I would like the ability to occasionally set Friction above 2, as well as increase FrictionWeight and ElasticityWeight beyond 100.

I hope Roblox will consider expanding the range of physical properties’ clamps, not just for the minimum density values.

10 Likes

this actually is a valid reason to make an important post, as games that will use these soon-to-be-unreliable values will experience unwanted changes with their part systems.

on another note, i’m happy those values are being implemented. floaty parts are gonna be useful for making planes in the future, and don’t even let me speak on about how nice obbies will be with these mechanics in place. i am an enthusiastic scripter and making custom objects with variety is always fun, but when something new steps into place i always have ideas about it!

great to see something new once in a while, but make sure to address some old bugs in the process

6 Likes

Would it be possible to let us opt-in for this updates in live servers first, like a boolean property in the workspace? We got multiple games with lots of A-Chassis, this would allow us to assess the impact of this update on our games.

4 Likes

As a developer who really likes messing around with beta features, I’d really love an early opt-in for this!

4 Likes

this would make for a funny troll command

2 Likes