local Players = game:GetService("Players") local RunService = game:GetService("RunService") local localPlayer = Players.LocalPlayer local trackedPlayers = {} local function disableCanCollide(part) if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end local function trackCharacter(character) -- Track all current parts for immediate effect for _, part in pairs(character:GetChildren()) do disableCanCollide(part) end -- Also track new parts added later character.ChildAdded:Connect(function(child) disableCanCollide(child) end) end local function trackPlayer(player) if player == localPlayer then return end if player.Character then trackCharacter(player.Character) end player.CharacterAdded:Connect(trackCharacter) trackedPlayers[player] = true end -- Initial setup for existing players for _, player in pairs(Players:GetPlayers()) do trackPlayer(player) end -- Listen for new players Players.PlayerAdded:Connect(trackPlayer) -- Continuously force disabling CanCollide on all tracked players' characters every frame RunService.RenderStepped:Connect(function() for player, _ in pairs(trackedPlayers) do local character = player.Character if character then for _, part in pairs(character:GetChildren()) do disableCanCollide(part) end end end end)