PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

SetPartCollisionGroup

The SetPartCollisionGroup function sets the collision group of the specified part to the group with the specified name.

This function is equivalent to setting the BasePart/CollisionGroupId, although this function is the recommended method of configuring a part’s collision group.

Note that for a part to respect its collision filter setting it must have its BasePart/CanCollide property set to true.

This function will throw a runtime error in the following circumstances:

  • The part parameter is not a BasePart instance.
  • The specified group does not exist.

Parameters

Name Type Default Description

The part being set.

The name of collision group that the part’s collision group is being set to.

Returns

Return Type Summary

No return.


Code Samples


PhysicsService:GetCollisionGroupId1

local physicsService = game:GetService("PhysicsService")

-- returns a valid group id (int) or nil
function getGroupId(name)
	-- GetCollisionGroupId will throw if it does not exist
	local ok, groupId = pcall(physicsService.GetCollisionGroupId, physicsService, name)
	return ok and groupId or nil
end

-- returns a valid group id (int) or nil
function getOrCreateGroupId(name)
	local ok, groupId = pcall(physicsService.GetCollisionGroupId, physicsService, name)
	if not ok then
		-- Create may fail if we have hit the maximum of 32 different groups
		ok, groupId = pcall(physicsService.CreateCollisionGroup, physicsService, name)
	end
	return ok and groupId or nil
end
	
print(getGroupId("Test")) -- prints nil
print(getOrCreateGroupId("Test")) -- prints 1
print(getGroupId("Test")) -- prints 1