Why is there a delay when i push the part?

--//Serivces
local Players = game:GetService("Players")

--//Variables
local LocalPlayer = Players.LocalPlayer
local Balls = workspace:WaitForChild("Balls")
wait(1)
--//Functions
local function OnBoulderAdded(boulder)
	
	print(boulder:GetChildren())
	if boulder.Plr.Value == LocalPlayer.Name then
		return
	end

	boulder.CanCollide = false
end

Balls.ChildAdded:Connect(OnBoulderAdded)

for i, boulder in ipairs(Balls:GetChildren()) do
	task.spawn(OnBoulderAdded, boulder)
end

the when the player pushes a boulder that isn’t theirs he goes through but still pushing the boulder, any idea how i can make the player be unable to touch the boulder entirely?

well, this is a localscript, so the player being unable to collide with the boulder is only local, therefore, they are still pushing the boulder on the server. Make this serversided instead

Use collision groups on the server, that’s the only way.

i am trying to make only the player who owns the ball be able to touch it, wouldn’t making it server sided unable to do that?

how would i do it? woul di have to create a collision group for each player and each ball?

Create a collision group for each ball and player.

1 Like

The physics on the server knows the balls are there so other players can contact them, but they can only be seen by the player who owns them.

thats seems a bit troublesome, any other ideas??

1 Like