Updates to Collision Groups

What specific issue are you having here? You can explicitly choose how you want raycasting to interact with collision groups by setting CollisionGroup on the RaycastParams.

Have you tried wrapping the function in a pcall? That way if it errors out, you will get that indication without it crashing your script.

1 Like

Great update @Roblox !
I hope you can make more good updates like this!

2 Likes

(Also @tnavarts or @APandaPoet)
Is there a reason I can’t click on an item in Studio workspace that is in a Collision Group?

I noticed this a couple weeks ago. All items around that Part will be selected just fine with a mouse click but not an item in a Collision Group.

If there’s a setting I can’t find then that’s fine, but if it’s a bug I can file a bug report.

I tried uninstalling and reinstalling Studio to see if it was only my computer, but it still occurs…

The draggers raycast using the “Default” collision group, if your object does not collide with “Default” then the draggers won’t pick it up.

Seems to be a very strange functionally that you can’t select a Part while building because it’s in a Collision Group.
Is this always going to be a thing?
It makes it extremely difficult to build!

  • you have to manually search through your Explorer to find and select that one part you are trying to Move, Rotate, or Resize.
  • Perform whatever of the above you want to do.
  • Now maybe I have to manouever another Part that is in a collision group, (crud, now I’m back in the dang Explorer window trying to find that 1 Part in a 50 Part Model!)
  • Move that Part.
  • Oh wait. Since I changed the second Part the first Part I moved now doesn’t look right so I have to Rotate it a smidge to get it facing right.
  • Back to step 1.

It’s even more of a royal pain if you try to do it by moving the object back to the default group so you can temporarily interact with it:

  • Select the Part. Again, manually from tens of thousands of Parts deep inside models in your Explorer window.
  • Go into your Collision Group Editor to + it back to the “Default” Collision Group
  • Move it, rotate it, resize it and do whatever tool changes you need to do.
  • Find out that you have to move that second Part to realign it so you + it back into the Default group.
  • Remember to go back to your Collision Group Editor and try to remember which 1 of the 32 possible groups each Part you interacted with used to be in.

Trying to follow these steps every time you want to use a tool on an item can really mess with what should be a 2 second operation. Imagine doing these processes a thousand times in a build session!

Scottifly happily Alt-Clicks an item, moves it, and is done!

I apologize for the rant, but this makes absolutely no sense to me.
Draggers should select whatever you click on unless that item is Locked.

4 Likes

This behavior is used in many plugins to create parts that cannot be selected. Requires alternative support for that before this can be changed likely.

Thanks for reporting! It’s on our radar. In collision group editor, make the un-selectable collision group to collide with “Default” collision group is a workaround. We will address the issue in a more user friendly way.

3 Likes

Out of touch? They’re completely appropriate.

  1. The symbol of a plus sign is self-explanatory across language barriers.
  2. The button color value is higher, making it stand out as an interactable element, but the color value isn’t so much higher as to make it steal attention away from the parent interface it belongs to.
  3. It’s simple design fits the rest of the parent interface and doesn’t stand out more than it should or get lost.

The point of UI isn’t to ‘wow’ people, but to be an intuitive point of interaction for your software.

This is all fundamental UI design. What would you do differently?
(Edit: Typo)

Probably to keep the API from becoming more cluttered and confusing, especially to people new to the Roblox platform.

Can you give some examples of the lag? Thanks!

When using PhysicsService and CollissionGroups, I added all parts of the plane (Fair amount), and the walls to the other. I was looking at server stats, and there was a heavy increase in data send. It was quite a while ago, but I definitely noticed a frames drop, so I decided to avoid using that method.

Mainly the question was why did you implement these changes and what they do practically, but. That was one reason.

3 Likes

I can set the CollisionGroup property but it doesn’t do anything, so I have to stick with PhysicsService for now, I can see the new CollisionGroups UI too but I cant see BasePart.CollisionGroup property on the properties tab, did the update not roll out for everyone?

1 Like

You don’t manually set the CollisionGroupId property to a number, you select all the Parts/items you want to put into the CollisionGroup and then click the + sign to the left of the group you created in the Collision Groups window.
If you do that the CollisionGroupId at the bottom of the ‘Collision’ subset in the Properties window will show the number of the CollisionGroup you added each of the Parts/items to.

1 Like

You can do that fine if you know the index of your collision group, but i am not talking about CollisionGroupId, I am on about CollisionGroup, setting a part’s CollisionGroup to a collision group doesnt work, so if I had that two parts in a collision group called "Test" with collidability disabled on itself, the two parts will still collide with eachother even tho they said they’ll deprecate CollisionGroupId.

Update on Oct 12: We’ve released the collision group name along with the new APIs.

Update: Due to a last minute change to the RegisterCollisionGroup (remove the runtime error in the case the name has been registered), we have to wait for another week to release it. Sorry for the delay!

2 Likes

This is great, made this a lot easier to understand. Wasn’t complicated at all, but it’s easier to wrap your head around even if you’re new to messing with Collision Groups.

if SetPartCollisionGroup : To be deprecated. Replaced by calling BasePart.CollisionGroup

What if you want to change the initial default character’s collision group

1 Like

and default character’s Humnoidrootpart is creat in client,in server must wait for humanoidrootpart

SetPartCollisionGroup(part, name) is the same as part.CollisionGroup = name no matter where SetPartCollisionGroup is called.

2 Likes