UPDATE
Apologies, I thought it still worked but it is in fact patched, so at least the community can read this to understand how it worked and learn from it in the future.
A few days ago, a new exploit has been made to crash player’s clients using Tools. If your game is being affected, this script will prevent any abuse from happening before its too late.
Explanation
The way the exploit works is by setting the tool grip to CFrame.new(0/0, 0/0, 0/0) which actually changes to (0, -20000000 (ish), 0) and when it replicates over the network, roblox servers send it as (0, -1000000, 0). Tool Grip replication is a common exploit due to old pre-FilteringEnabled practices and may eventually be patched in the future.
Its not really known why this crashes, but the fact nobody sets their tool grips to -1000000 normally is a easy way to make a universal patch simply by checking the Y axis of any RightGrip welds (RightGrip is made by ROBLOX whenever a tool is equipped).
Script
This would be an example of what you could’ve done to fix it.
local Players = game:GetService("Players")
local function NewToolCheck(inst)
local Player = inst.Parent.Parent.Name
if inst.Name == "RightGrip" and Players:FindFirstChild(Player) ~= nil then
local GripHeight = inst.C1.p.Y
if GripHeight < -1000 then
Players:FindFirstChild(Player):Kick("Tool Crashing")
end
end
end
game.Workspace.DescendantAdded:Connect(NewToolCheck)
Enjoy!