
KeylessUniversal

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function giveTool(character)
local humanoid = character:WaitForChild("Humanoid")
local hrp = character:WaitForChild("HumanoidRootPart")
-- Create Tool
local tool = Instance.new("Tool")
tool.Name = "hellfire's fling tool"
tool.RequiresHandle = true
tool.ToolTip = "script by hellfire, can fling unanchored parts and players."
tool.Parent = player:WaitForChild("Backpack")
-- Handle
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(2, 2, 2)
handle.BrickColor = BrickColor.Red()
handle.CanCollide = false
handle.Parent = tool
tool.Equipped:Connect(function()
local mouse = player:GetMouse()
local spinForce
local lockForce
local spinning = false
local savedCFrame
local originalProperties = {}
local function cleanup()
if not spinning then return end
spinning = false
if spinForce then
spinForce:Destroy()
spinForce = nil
end
if lockForce then
lockForce:Destroy()
lockForce = nil
end
-- Restore physics
for part, props in pairs(originalProperties) do
if part and part.Parent then
part.CustomPhysicalProperties = props
end
end
originalProperties = {}
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
if savedCFrame then
hrp.CFrame = savedCFrame
end
humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
mouse.Button1Down:Connect(function()
if spinning then return end
local target = mouse.Target
if not target or not target:IsA("BasePart") or target.Anchored then
return
end
spinning = true
savedCFrame = hrp.CFrame
local hoverHeight = 0.75
-- Increase density massively
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
originalProperties[part] = part.CustomPhysicalProperties
part.CustomPhysicalProperties = PhysicalProperties.new(
999999,
1,
0.5,
1,
1
)
end
end
-- Lock force
lockForce = Instance.new("BodyPosition")
lockForce.MaxForce = Vector3.new(1e9, 1e9, 1e9)
lockForce.P = 1e7
lockForce.D = 5000
lockForce.Parent = hrp
-- Spin force
spinForce = Instance.new("BodyAngularVelocity")
spinForce.AngularVelocity = Vector3.new(0, 900, 0)
spinForce.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
spinForce.P = 1e7
spinForce.Parent = hrp
task.spawn(function()
local maxFlingVelocity = 120
while spinning do
task.wait()
if not target or not target.Parent then
cleanup()
break
end
local targetCharacter = target:FindFirstAncestorOfClass("Model")
local targetHRP = targetCharacter and targetCharacter:FindFirstChild("HumanoidRootPart")
if targetHRP then
-- Movement prediction
local velocity = targetHRP.AssemblyLinearVelocity
local predictionTime = 0.15
local predictedPosition =
targetHRP.Position + (velocity * predictionTime)
lockForce.Position =
predictedPosition + Vector3.new(0, hoverHeight, 0)
-- Detect successful fling
if velocity.Magnitude > maxFlingVelocity then
cleanup()
break
end
else
-- Normal part follow
lockForce.Position =
target.Position + Vector3.new(0, hoverHeight, 0)
local destroyHeight = workspace.FallenPartsDestroyHeight
local minSafeHeight = destroyHeight + 50 -- 5 studs above kill floor
if hrp.Position.Y < minSafeHeight then
hrp.CFrame = CFrame.new(
hrp.Position.X,
minSafeHeight,
hrp.Position.Z
)
end
end
end
end)
-- Safety timeout (never get stuck)
task.delay(2, function()
if spinning then
cleanup()
end
end)
end)
tool.Unequipped:Connect(cleanup)
end)
end
-- First spawn
if player.Character then
giveTool(player.Character)
end
-- Respawns
player.CharacterAdded:Connect(giveTool)



updated now its better