WiraPro Zero Fall Damage
Key RequiredUniversal

WiraPro Zero Fall Damage

Universal ScriptWiraProWiraPro 879 views 38 executesUpdated Nov 8, 2025
5.0/ 5(3 votes)
30100% Positive
Lua Script•370 lines (11565 chars)
-- WiraPro Zero Fall Damage
-- Made by Wira

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")


local screenGui = Instance.new("ScreenGui")
screenGui.Name = "WiraProZeroFallDamage"
screenGui.Parent = game:GetService("CoreGui")

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 300, 0, 180)
mainFrame.Position = UDim2.new(0.5, -150, 0.5, -90)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BorderSizePixel = 0
mainFrame.ClipsDescendants = true
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = mainFrame

local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(0, 170, 255)
stroke.Thickness = 2
stroke.Parent = mainFrame


local header = Instance.new("Frame")
header.Name = "Header"
header.Size = UDim2.new(1, 0, 0, 40)
header.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
header.BorderSizePixel = 0
header.Parent = mainFrame

local headerCorner = Instance.new("UICorner")
headerCorner.CornerRadius = UDim.new(0, 8)
headerCorner.Parent = header

local title = Instance.new("TextLabel")
title.Name = "Title"
title.Size = UDim2.new(0, 200, 1, 0)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Text = "WiraPro Zero Fall Damage"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = header


local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Name = "MinimizeBtn"
minimizeBtn.Size = UDim2.new(0, 20, 0, 20)
minimizeBtn.Position = UDim2.new(1, -50, 0.5, -10)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Text = "_"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.TextSize = 14
minimizeBtn.Parent = header

local closeBtn = Instance.new("TextButton")
closeBtn.Name = "CloseBtn"
closeBtn.Size = UDim2.new(0, 20, 0, 20)
closeBtn.Position = UDim2.new(1, -25, 0.5, -10)
closeBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
closeBtn.BorderSizePixel = 0
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 12
closeBtn.Parent = header


local content = Instance.new("Frame")
content.Name = "Content"
content.Size = UDim2.new(1, -20, 1, -60)
content.Position = UDim2.new(0, 10, 0, 50)
content.BackgroundTransparency = 1
content.Parent = mainFrame


local statusFrame = Instance.new("Frame")
statusFrame.Name = "StatusFrame"
statusFrame.Size = UDim2.new(1, 0, 0, 40)
statusFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
statusFrame.BorderSizePixel = 0
statusFrame.Parent = content

local statusCorner = Instance.new("UICorner")
statusCorner.CornerRadius = UDim.new(0, 6)
statusCorner.Parent = statusFrame

local statusLabel = Instance.new("TextLabel")
statusLabel.Name = "StatusLabel"
statusLabel.Size = UDim2.new(0, 80, 1, 0)
statusLabel.Position = UDim2.new(0, 10, 0, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Status:"
statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 12
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = statusFrame

local statusValue = Instance.new("TextLabel")
statusValue.Name = "StatusValue"
statusValue.Size = UDim2.new(0, 80, 1, 0)
statusValue.Position = UDim2.new(1, -90, 0, 0)
statusValue.BackgroundTransparency = 1
statusValue.Text = "OFF"
statusValue.TextColor3 = Color3.fromRGB(255, 50, 50)
statusValue.Font = Enum.Font.GothamBold
statusValue.TextSize = 12
statusValue.Parent = statusFrame


local toggleBtn = Instance.new("TextButton")
toggleBtn.Name = "ToggleBtn"
toggleBtn.Size = UDim2.new(1, 0, 0, 40)
toggleBtn.Position = UDim2.new(0, 0, 0, 50)
toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = "ACTIVATE"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 14
toggleBtn.Parent = content

local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 6)
toggleCorner.Parent = toggleBtn


local minimizedFrame = Instance.new("Frame")
minimizedFrame.Name = "MinimizedFrame"
minimizedFrame.Size = UDim2.new(0, 200, 0, 40)
minimizedFrame.Position = UDim2.new(0.5, -100, 0, 10)
minimizedFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
minimizedFrame.BorderSizePixel = 0
minimizedFrame.Visible = false
minimizedFrame.Parent = screenGui

local minimizedCorner = Instance.new("UICorner")
minimizedCorner.CornerRadius = UDim.new(0, 8)
minimizedCorner.Parent = minimizedFrame

local minimizedStroke = Instance.new("UIStroke")
minimizedStroke.Color = Color3.fromRGB(0, 170, 255)
minimizedStroke.Thickness = 2
minimizedStroke.Parent = minimizedFrame

local minimizedTitle = Instance.new("TextLabel")
minimizedTitle.Name = "MinimizedTitle"
minimizedTitle.Size = UDim2.new(0, 120, 1, 0)
minimizedTitle.Position = UDim2.new(0, 10, 0, 0)
minimizedTitle.BackgroundTransparency = 1
minimizedTitle.Text = "WiraPro ZFD"
minimizedTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizedTitle.Font = Enum.Font.GothamBold
minimizedTitle.TextSize = 12
minimizedTitle.TextXAlignment = Enum.TextXAlignment.Left
minimizedTitle.Parent = minimizedFrame

local minimizedStatus = Instance.new("TextLabel")
minimizedStatus.Name = "MinimizedStatus"
minimizedStatus.Size = UDim2.new(0, 30, 1, 0)
minimizedStatus.Position = UDim2.new(1, -40, 0, 0)
minimizedStatus.BackgroundTransparency = 1
minimizedStatus.Text = "OFF"
minimizedStatus.TextColor3 = Color3.fromRGB(255, 50, 50)
minimizedStatus.Font = Enum.Font.GothamBold
minimizedStatus.TextSize = 12
minimizedStatus.Parent = minimizedFrame

local restoreBtn = Instance.new("TextButton")
restoreBtn.Name = "RestoreBtn"
restoreBtn.Size = UDim2.new(0, 20, 0, 20)
restoreBtn.Position = UDim2.new(1, -70, 0.5, -10)
restoreBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
restoreBtn.BorderSizePixel = 0
restoreBtn.Text = "^"
restoreBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
restoreBtn.Font = Enum.Font.GothamBold
restoreBtn.TextSize = 12
restoreBtn.Parent = minimizedFrame


local isEnabled = false
local isMinimized = false
local connection
local originalGravity


local dragging
local dragInput
local dragStart
local startPos

local function update(input)
    local delta = input.Position - dragStart
    if isMinimized then
        minimizedFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    else
        mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end

header.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

minimizedFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = minimizedFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

header.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

minimizedFrame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        update(input)
    end
end)


local function enableZeroFallDamage()
    if connection then
        connection:Disconnect()
    end
    
    connection = RunService.Heartbeat:Connect(function()
        if character and humanoid then
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            if rootPart then
                local velocity = rootPart.Velocity.Y
                
                -- Jika jatuh dengan kecepatan tinggi (fall damage scenario)
                if velocity < -50 then
                    -- Method 1: Reset fall distance
                    humanoid:ChangeState(Enum.HumanoidStateType.Landed)
                    
                    -- Method 2: Reduce fall velocity
                    rootPart.Velocity = Vector3.new(rootPart.Velocity.X, -10, rootPart.Velocity.Z)
                    
                    -- Method 3: Prevent fall damage through health manipulation
                    if humanoid.Health < humanoid.MaxHealth then
                        humanoid.Health = humanoid.MaxHealth
                    end
                end
            end
        else
            -- Update character reference jika respawn
            character = player.Character
            if character then
                humanoid = character:WaitForChild("Humanoid")
            end
        end
    end)
end

local function disableZeroFallDamage()
    if connection then
        connection:Disconnect()
        connection = nil
    end
end

-- Toggle Function
local function toggleZeroFallDamage()
    isEnabled = not isEnabled
    
    if isEnabled then
        enableZeroFallDamage()
        statusValue.Text = "ON"
        statusValue.TextColor3 = Color3.fromRGB(50, 255, 50)
        toggleBtn.Text = "DEACTIVATE"
        toggleBtn.BackgroundColor3 = Color3.fromRGB(215, 50, 50)
        minimizedStatus.Text = "ON"
        minimizedStatus.TextColor3 = Color3.fromRGB(50, 255, 50)
    else
        disableZeroFallDamage()
        statusValue.Text = "OFF"
        statusValue.TextColor3 = Color3.fromRGB(255, 50, 50)
        toggleBtn.Text = "ACTIVATE"
        toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
        minimizedStatus.Text = "OFF"
        minimizedStatus.TextColor3 = Color3.fromRGB(255, 50, 50)
    end
end

-- UI Controls
toggleBtn.MouseButton1Click:Connect(toggleZeroFallDamage)

minimizeBtn.MouseButton1Click:Connect(function()
    isMinimized = true
    mainFrame.Visible = false
    minimizedFrame.Visible = true
end)

restoreBtn.MouseButton1Click:Connect(function()
    isMinimized = false
    minimizedFrame.Visible = false
    mainFrame.Visible = true
end)

closeBtn.MouseButton1Click:Connect(function()
    disableZeroFallDamage()
    screenGui:Destroy()
end)

-- Auto-update character reference
player.CharacterAdded:Connect(function(newChar)
    character = newChar
    humanoid = newChar:WaitForChild("Humanoid")
    
    if isEnabled then
        disableZeroFallDamage()
        enableZeroFallDamage()
    end
end)

-- Initial setup
warn("WiraPro Zero Fall Damage Loaded!")
warn("Features:")
warn("- Zero Fall Damage Protection")
warn("- Toggle ON/OFF")
warn("- Minimizable UI")
warn("- Stylish Design")
warn("Made by Wira")

Features & Information

ZERO FALL DAMAGE (ALL MAP WORK)
#UNIVERSALSCRIPT

Community Comments (4)

HttbxHttbxNov 8, 2025

Wow

DefyzDefyzNov 8, 2025

Works But You Should Make it Support Fly Anti Fall Damage in Natural Disasters

Replying to @Defyz
WiraProWiraProNov 8, 2025

@Defyz_Hub This script is used in conjunction with the infinite yield command "flyjump"

Replying to @WiraPro
DefyzDefyzNov 8, 2025

@WiraPro Okay

More Scripts for Universal Scripts