Is it possible to stop players from dragging each other when moving at high speeds?

Not sure if any of you guys have experienced this, but if you move at a speed above 30 WalkSpeed, you can accidentally drag other players along with you (they entirely inherit your momentum when you run into them) due to latency. Is there a way to prevent this without disabling collisions entirely?

1 Like

You can look on YouTube ways so that a player can not collide with another player. Other than that I have no idea but I will try to find one.

Yes, here is my video on it

Part of the criteria of the solution was that I still need players to collide with one another, but I need to prevent them from dragging each other.

I don’t know but I think it is the hockey stick not the player or the hockey stick Is helping the player drag the other player.

I believe this problem occurs in other games as well; I just took this GIF in a sports game because it’s significantly easier to see the player-on-player collision issues. It’s possible that the hockey stick could be part of the problem, though. It’s also worth mentioning that the game I recorded that video in is not mine, I just saw it as the most common area for the whole dragging issue.

You probably need to create a Collision Group between the Players and the hockey sticks

Turn of player-to-player collisions.

They said they still want player to player collision.

local PhysicsService = game:GetService("PhysicsService")

local HockeyStick = 'HockeyStick'

local CharacterGroup = 'CharacterGroup'

PhysicsService:SetPartCollisionGroup(Your hockeyPath here, HockeyStick )

PhysicsService:CollisionGroupSetCollidable(HockeyStick , CharacterGroup, false) 

    for _,v in next, c:GetChildren() do
        if v:IsA("BasePart") or v:IsA("MeshPart") then
            print('set group',v)
            PhysicsService:SetPartCollisionGroup(v, CharacterGroup)

This might fix your problem!
You can read more about the topic here!
Collision Filtering

That may be poor game design, as that can create some rare situations where users can intentionally block others.

If the game is only for pc, yo could check if the player is pressing w to move and if not, anchor their humanoid root part

Edit: I think you could check if the player is walking with humanoid:GetState() and if its not walking anchor the humanoid root part in all the other clients of the players who are close to the player who doesn’t want to be pushed.