So I'm currently in the process of making a game like "Design It", and in this game everyone teleports to a changing area.
I don't want to create a room for each player so I thought about just making the characters invisible and use collision groups to make them cancollided.
I just can't figure out how to do this properly, basically MOST people will be in the changing area, but I don't understand how to make it so those who AREN"T in the changing room DO have player collisions still.
An example: 7 players are in a room, I want their collisions off. 3 players outside of the room, still should have their collisions
I got no clue how to do this, any help would be appreciated :)
Here is the code I've been using from the wiki:
local PhysicsService = game:GetService("PhysicsService")
local Players = game:GetService("Players")
local playerCollisionGroupName = "Players"
PhysicsService:CreateCollisionGroup(playerCollisionGroupName)
PhysicsService:CollisionGroupSetCollidable(playerCollisionGroupName, playerCollisionGroupName, false)
local previousCollisionGroups = {}
local function setCollisionGroup(object)
if object:IsA("BasePart") then
previousCollisionGroups[object] = object.CollisionGroupId
PhysicsService:SetPartCollisionGroup(object, playerCollisionGroupName)
end
end
local function setCollisionGroupRecursive(object)
setCollisionGroup(object)
for _, child in ipairs(object:GetChildren()) do
setCollisionGroupRecursive(child)
end
end
local function resetCollisionGroup(object)
local previousCollisionGroupId = previousCollisionGroups[object]
if not previousCollisionGroupId then return end
local previousCollisionGroupName = PhysicsService:GetCollisionGroupName(previousCollisionGroupId)
if not previousCollisionGroupName then return end
PhysicsService:SetPartCollisionGroup(object, previousCollisionGroupName)
previousCollisionGroups[object] = nil
end
