Could you show an example of the contact flinging the player, there shouldn’t be anything wrong with the script itself, as a note however, you should use task.wait() rather than wait() because its now a deprecated method. BodyVelocity is also deprecated, that could be an issue, try switching to VectorForce, it’s somewhat the same thing. If you’re unable to change to linear velocity then you could always raycast in the LookVector direction of the root part and if an instance is signaled then destroy the force(or incrementally greatly reduce it) and cleanup the raycast connections etc…