-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- Serviços do Roblox local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") -- Configurações do Sistema local LocalPlayer = Players.LocalPlayer local Sistema_Ativo = false -- Variáveis do Dano de Queda Realista local Altura_Maxima_Ponto = 0 local No_Ar = false local Queda_Media = 15 -- Altura em studs para começar a levar dano parcial local Queda_Fatal = 45 -- Altura em studs para morrer direto -- Conexões de Eventos local Conexao_Estado = nil -- Interface Principal local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FallDamage_System" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = PlayerGui ---------------------------------------------------------------- -- 1. DESIGN DO BOTÃO FLUTUANTE (MK) ---------------------------------------------------------------- local BotaoMK = Instance.new("TextButton") BotaoMK.Name = "BotaoMK" BotaoMK.Parent = ScreenGui BotaoMK.Size = UDim2.new(0, 60, 0, 60) BotaoMK.Position = UDim2.new(0.05, 0, 0.4, 0) BotaoMK.BackgroundColor3 = Color3.fromRGB(46, 204, 113) -- Verde Lindo BotaoMK.Text = "MK" BotaoMK.TextColor3 = Color3.fromRGB(255, 255, 255) BotaoMK.Font = Enum.Font.GothamBold BotaoMK.TextSize = 22 BotaoMK.BorderSizePixel = 0 BotaoMK.ZIndex = 10 BotaoMK.Active = true local CornerBotao = Instance.new("UICorner") CornerBotao.CornerRadius = UDim.new(1, 0) CornerBotao.Parent = BotaoMK local StrokeBotao = Instance.new("UIStroke") StrokeBotao.Color = Color3.fromRGB(39, 174, 96) StrokeBotao.Thickness = 3 StrokeBotao.Parent = BotaoMK ---------------------------------------------------------------- -- 2. DESIGN DO MENU PRINCIPAL (FALL DAMAGE) ---------------------------------------------------------------- local MenuPrincipal = Instance.new("Frame") MenuPrincipal.Name = "MenuPrincipal" MenuPrincipal.Parent = ScreenGui MenuPrincipal.Size = UDim2.new(0, 300, 0, 180) MenuPrincipal.Position = UDim2.new(0.5, -150, 0.5, -90) MenuPrincipal.BackgroundColor3 = Color3.fromRGB(20, 20, 20) -- Dark Mode MenuPrincipal.Visible = false MenuPrincipal.BorderSizePixel = 0 MenuPrincipal.ZIndex = 5 local CornerMenu = Instance.new("UICorner") CornerMenu.CornerRadius = UDim.new(0, 12) CornerMenu.Parent = MenuPrincipal -- Título Atualizado local Titulo = Instance.new("TextLabel") Titulo.Parent = MenuPrincipal Titulo.Size = UDim2.new(1, 0, 0, 45) Titulo.BackgroundTransparency = 1 Titulo.Text = "FALL DAMAGE by MKgabriel" Titulo.TextColor3 = Color3.fromRGB(46, 204, 113) Titulo.Font = Enum.Font.GothamBold Titulo.TextSize = 16 Titulo.ZIndex = 6 -- Botão Start/Stop local BotaoStart = Instance.new("TextButton") BotaoStart.Parent = MenuPrincipal BotaoStart.Size = UDim2.new(0, 200, 0, 45) BotaoStart.Position = UDim2.new(0.5, -100, 0.6, -10) BotaoStart.BackgroundColor3 = Color3.fromRGB(46, 204, 113) BotaoStart.Text = "START" BotaoStart.TextColor3 = Color3.fromRGB(255, 255, 255) BotaoStart.Font = Enum.Font.GothamBold BotaoStart.TextSize = 16 BotaoStart.BorderSizePixel = 0 BotaoStart.ZIndex = 6 local CornerStart = Instance.new("UICorner") CornerStart.CornerRadius = UDim.new(0, 8) CornerStart.Parent = BotaoStart ---------------------------------------------------------------- -- 3. SISTEMA DE ARRASTE SEM CONFLITO DE CLIQUE ---------------------------------------------------------------- local arrastando = false local abrindoMenu = true local posClique, posicaoInicialBotao BotaoMK.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then arrastando = true abrindoMenu = true posClique = input.Position posicaoInicialBotao = BotaoMK.Position end end) UserInputService.InputChanged:Connect(function(input) if arrastando and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - posClique if delta.Magnitude > 8 then abrindoMenu = false BotaoMK.Position = UDim2.new(posicaoInicialBotao.X.Scale, posicaoInicialBotao.X.Offset + delta.X, posicaoInicialBotao.Y.Scale, posicaoInicialBotao.Y.Offset + delta.Y) end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if arrastando then arrastando = false if abrindoMenu then MenuPrincipal.Visible = not MenuPrincipal.Visible end end end end) ---------------------------------------------------------------- -- 4. NOVO MOTOR DE DANO DE QUEDA PROGRESSIVO ---------------------------------------------------------------- local function iniciarMonitoramentoQueda() local character = LocalPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") local rootPart = character and character:FindFirstChild("HumanoidRootPart") if humanoid and rootPart then if Conexao_Estado then Conexao_Estado:Disconnect() end Conexao_Estado = humanoid.StateChanged:Connect(function(antigo, novo) if not Sistema_Ativo then return end -- Jogador começou a pular ou cair if novo == Enum.HumanoidStateType.Freefall then if not No_Ar then No_Ar = true Altura_Maxima_Ponto = rootPart.Position.Y end -- Atualiza o ponto mais alto caso continue subindo no ar elseif No_Ar and rootPart.Position.Y > Altura_Maxima_Ponto and humanoid:GetState() == Enum.HumanoidStateType.Freefall then Altura_Maxima_Ponto = rootPart.Position.Y -- Jogador tocou o solo firme elseif novo == Enum.HumanoidStateType.Landed then if No_Ar then No_Ar = false local alturaQuedaFinal = Altura_Maxima_Ponto - rootPart.Position.Y -- 1. Cenário de Altura Extrema: Morte Instantânea if alturaQuedaFinal >= Queda_Fatal then humanoid.Health = 0 -- 2. Cenário de Altura Média: Dano Parcial Calculado elseif alturaQuedaFinal >= Queda_Media then -- Multiplicador matemático: quanto maior a queda, mais dano ele toma de forma exponencial local multiplicadorDano = (alturaQuedaFinal - Queda_Media) * 2.5 local danoFinal = math.clamp(multiplicadorDano, 10, 95) -- Garante um dano equilibrado entre 10 e 95 de HP humanoid:TakeDamage(danoFinal) end end end end) end end ---------------------------------------------------------------- -- 5. GATILHOS DO BOTÃO START / STOP ---------------------------------------------------------------- local function ativarSistema() Sistema_Ativo = true No_Ar = false iniciarMonitoramentoQueda() end local function desativarSistema() Sistema_Ativo = false No_Ar = false if Conexao_Estado then Conexao_Estado:Disconnect() Conexao_Estado = nil end end BotaoStart.MouseButton1Click:Connect(function() if not Sistema_Ativo then BotaoStart.Text = "STOP" BotaoStart.BackgroundColor3 = Color3.fromRGB(231, 76, 60) ativarSistema() else BotaoStart.Text = "START" BotaoStart.BackgroundColor3 = Color3.fromRGB(46, 204, 113) desativarSistema() end end) LocalPlayer.CharacterAdded:Connect(function() task.wait(0.5) if Sistema_Ativo then iniciarMonitoramentoQueda() end end)