Hello devs!
I tryed to do for one model cant collide other model but i got error:
Parameter 1 must be BasePart in SetPartCollisionGroup.
Here code:
game:GetService("PhysicsService"):CreateCollisionGroup("a")
game:GetService("PhysicsService"):SetPartCollisionGroup(workspace.Model1,"a")
game:GetService("PhysicsService"):CreateCollisionGroup("b")
game:GetService("PhysicsService"):SetPartCollisionGroup(workspace.Model2,"b")
game:GetService("PhysicsService"):CollisionGroupSetCollidable("a","b",false)
This works for parts but with models it does error
Sorry for me grammar
You should make a variable for PhysicsService.
PS = game:GetService("PhysicsService")
PS:CreateCollisionGroup("a")
PS:SetPartCollisionGroup(workspace.Model1,"a")
PS:CreateCollisionGroup("b")
PS:SetPartCollisionGroup(workspace.Model2,"b")
PS:CollisionGroupSetCollidable("a","b",false)
It’s much easier that way.
Also, the error is saying that the 1st parameter in :SetPartCollisionGroup()
should be a Part, and not a Model.
PS = game:GetService("PhysicsService")
PS:CreateCollisionGroup("a")
PS:SetPartCollisionGroup(workspace.Model1.Part,"a")
PS:CreateCollisionGroup("b")
PS:SetPartCollisionGroup(workspace.Model2.Part,"b")
PS:CollisionGroupSetCollidable("a","b",false)
But how i can to do this with models? I tryed to do grenade which can go trough players, i write physics but i got this annoying bug
Try unions. I believe they should work.
You should loop through all of the parts of that model and set their collision group to whatever you want.
local PhysicsService = game:GetService("PhysicsService")
local function SetModelCollisionGroup(model, groupName)
for _, item in ipairs(model:GetDescendants()) do
if item:IsA("BasePart") then
PhysicsService:SetPartCollisionGroup(groupName)
end
end
end
SetModelCollisionGroup(workspace.Model1, "a")
SetModelCollisionGroup(workspace.Model2, "b")
1 Like
Idk how this works but still thanks this helps a lot!