Release Notes for 389

Hey everyone,

Sorry for the delay in the most recent release notes being announced here on the DevForums - we were upgrading some of the systems behind developer.roblox.com and we should now be returning back to our regular cadence!

Notes for Release 389

22 Likes

Client Difference Log

API Changes

Added Class NoCollisionConstraint : Instance
	Added Property bool NoCollisionConstraint.Enabled
	Added Property Class<BasePart> NoCollisionConstraint.Part0
	Added Property Class<BasePart> NoCollisionConstraint.Part1

Added Property bool Lighting.LegacyOutlines  [NotScriptable]

Added Function bool DataModel:DefineFastFlag(string name, bool defaultValue) {RobloxScriptSecurity}
Added Function int DataModel:DefineFastInt(string name, int defaultValue) {RobloxScriptSecurity}
Added Function string DataModel:DefineFastString(string name, string defaultValue) {RobloxScriptSecurity}
Added Function bool DataModel:GetFastFlag(string name) {RobloxScriptSecurity}
Added Function int DataModel:GetFastInt(string name) {RobloxScriptSecurity}
Added Function string DataModel:GetFastString(string name) {RobloxScriptSecurity}

Added EnumItem MembershipType.Premium : 4

Added Tag [NotReplicated] to Property Sound.PlaybackSpeed

(Click here for a syntax highlighted version!)

3 Likes

Has there been any documentation on the new MembershipType? I’m actually quite excited to see what that’s about.

6 Likes

The change doesn’t appear to have been published onto the DevHub yet, which may have been a deliberate action taken by someone on IX.

If there’s any doubt of its existence though, you can view it for yourself through Roblox Studio’s auto-complete:

image

6 Likes

Since Keyboard and Mouse support is coming to Xbox does this mean we might finally get the Chat UI support?

3 Likes

Appreciate the update on the Developer Hub. Not being able to access some of the pages was a real pain, especially since I was pulling some crunch time and needed documentation references.

Added Class NoCollisionConstraint : Instance

I noticed this some days ago. I’m curious to know if it’ll have any usefulness. There’s already the CanCollide property of BaseParts and collision groups, but I’m wondering what these would be used for. I can see that they establish no collisions between a set of parts, though.

It’s so two cancollide parts cannot collide with each other on a part-by-part basis instead of creating an entire collision group for potentially a single interaction. I think this property is really useful for free models because it allows things like vehicles to have features that (previously) required collision groups but no longer have to use collision groups, making them easier to maintain and distribute.

10 Likes

I was pretty confused on why it was necessary but this seems to help it make a lot more sense.
I just hope it doesn’t introduce any discrepancies in the existing API for collision checking.
(i.e. BasePart:CanCollideWith should still be working with this ideally)

2 Likes

I tested two parts connected with the NoCollisionConstraint with the method and it returned true.

1 Like

Can confirm this is the case. I tested it with the feature enabled.

@NWSpacek reasoning is spot on. Collision groups aren’t local to the model. The new API allows you to customize collision behavior to work around some tricky physics situations with complex meshes more easily as well, for example “wheels shouldn’t collide with the body of the car that they are attached to, but they should collide with body of other cars so that you can drive over them”.

11 Likes

It would be neat if this supported containers and worked on a recursive level. That would allow for fewer instances when dealing with more complex assemblies.

2 Likes

We considered this but the implementation complexity and performance implications ended up pushing us to implement a simpler API for now.

5 Likes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.