In the game, attacks are moved by AlignPosition.
Players should avoid it and run to the finish line.
If a player makes a contact with the attack then player speed is slowed for a while.
So touch is a quite important event in the game.
The problem is, as shown in the title, the Touch event is triggered before making actual any contract.
I attach a gif to prove it. Please look at the output console.
The attack in the gif looks like below
Mover
canCollide & canQuery = false
canTouch = false
Anchored = true
Mashless = true
Part(with AlignPosition)
canCollide & canQuery = false
canTouch = true
Anchored = false
Mashless = true
Part
canCollide & canQuery = false
canTouch = true
Anchored = false
Mashless = true
Mover is attracting Part(with AlignPosition) and the Mover is located near the finish line.
Two parts are welded.
I’ve searched about the issue, but I couldn’t find a proper solution.
Any ideas or suggestions on that would be really appreciated.
Thanks!
Network ownerships are a thing that exist in Roblox physics. Since the part is dependent on physics, network ownership would exist on this specific part. How this would work is when the part is far from any players, the physics would be handled by the server until a player gets close to the part, this then causes the player to have full ownership on controlling the physics on that part until the player either disconnected or is far away from the part.
So what’s the solution? I would think is just setting the network ownership of that part to the server using BasePart:SetNetworkOwnership(nil)