
Key RequiredUniversal

-- AntiFling + RemoveFall (respawn-safe) --
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
if getgenv().AntiFlingRunning then
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Anti-Fling",
Text = "Script is already running",
Duration = 3
})
end)
print("[AntiFling] already running, aborting.")
return
end
getgenv().AntiFlingRunning = true
print("[AntiFling] executed")
local player = Players.LocalPlayer
if not player then
warn("[AntiFling] LocalPlayer not found.")
return
end
-- weak-key table so parts can GC
local lastPositions = setmetatable({}, {__mode = "k"})
local range = 20
-- reusable OverlapParams (we'll update FilterDescendantsInstances when character changes)
local overlapParams = OverlapParams.new()
overlapParams.FilterType = Enum.RaycastFilterType.Exclude
local currentCharacter = player.Character
local humanoid
local function setupCharacter(char)
if not char then return end
currentCharacter = char
humanoid = char:FindFirstChildOfClass("Humanoid") or char:WaitForChild("Humanoid", 5)
overlapParams.FilterDescendantsInstances = {char}
-- clear old last positions to avoid stale state from previous character
lastPositions = setmetatable({}, {__mode = "k"})
if humanoid then
pcall(function()
humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
end)
end
print("[AntiFling] character set ->", tostring(char.Name))
end
-- initial setup (wait if necessary)
if not currentCharacter or not currentCharacter.Parent then
currentCharacter = player.Character or player.CharacterAdded:Wait()
end
setupCharacter(currentCharacter)
player.CharacterAdded:Connect(function(char) setupCharacter(char) end)
-- Anti-Fling loop (Heartbeat)
RunService.Heartbeat:Connect(function()
local char = player.Character
if not char or not char.Parent then return end
-- keep overlap filter up to date
overlapParams.FilterDescendantsInstances = {char}
local cf, size = char:GetBoundingBox()
local regionSize = size + Vector3.new(range, range, range)
local ok, parts = pcall(function()
return workspace:GetPartBoundsInBox(cf, regionSize, overlapParams)
end)
if not ok or not parts then return end
for _, part in ipairs(parts) do
if part and part:IsA("BasePart") then
-- try modern Assembly velocity resets; fallback to Velocity where needed
pcall(function() part.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end)
pcall(function() part.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end)
-- fallback if executor doesn't support Assembly*:
pcall(function() part.Velocity = Vector3.new(0, 0, 0) end)
pcall(function() part.RotVelocity = Vector3.new(0, 0, 0) end)
local lastPos = lastPositions[part]
if lastPos and (part.Position - lastPos).Magnitude > 1 then
pcall(function() part.CanCollide = false end)
end
lastPositions[part] = part.Position
end
end
end)
-- Notify once
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Anti-Fling",
Text = "Protection Enabled",
Duration = 3
})
end)
-- ===================== Remove Fall UI =====================
local playerGui = player:WaitForChild("PlayerGui")
local gui = Instance.new("ScreenGui")
gui.Name = "RemoveFallGui"
gui.ResetOnSpawn = false -- keep GUI after respawn
gui.Parent = playerGui
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 170, 0, 48)
button.Position = UDim2.new(0.4, 0, 0.2, 0)
button.Text = "Remove Fall Damage: OFF"
button.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.Active = true
button.Draggable = true
button.Parent = gui
local RemoveFall = false
local loopRunning = false
local function getRoot(char)
return char and char:FindFirstChild("HumanoidRootPart")
end
local function startRemoveFall()
if loopRunning then return end
loopRunning = true
print("[RemoveFall] started")
task.spawn(function()
while RemoveFall do
RunService.Heartbeat:Wait()
local char = player.Character
local root = getRoot(char)
local vel, movel = nil, 0.1
if char and char.Parent and root and root.Parent then
vel = root.Velocity
pcall(function() root.Velocity = Vector3.new(0, 0, 0) end)
RunService.RenderStepped:Wait()
if player.Character and root and root.Parent then
pcall(function() root.Velocity = vel end)
end
RunService.Stepped:Wait()
if player.Character and root and root.Parent then
pcall(function() root.Velocity = vel + Vector3.new(0, movel, 0) end)
movel = -movel
end
end
end
loopRunning = false
print("[RemoveFall] stopped")
end)
end
button.MouseButton1Click:Connect(function()
RemoveFall = not RemoveFall
button.Text = "Remove Fall Damage: " .. (RemoveFall and "ON" or "OFF")
print("[RemoveFall] Toggle ->", RemoveFall and "ON" or "OFF")
if RemoveFall then startRemoveFall() end
end)



Hey Gaze, i donated! Really love your animation script. Also i was also wondering if you had a discord server i can perhaps join if you have one? Also if you don't, you should make one. Thanks
@Jeandiel thanks. i think? Server? No
@Gaze Ah, no server then. Got it, anyways keep up the good work! I'll be looking forward to more scripts you end up coding. 👽