Bhop script
Key RequiredUniversal

Bhop script

Universal Scriptpnsdgsapnsdgsa 10.3K views 1.4K executesUpdated Nov 4, 2025
Unrated
00
Lua Script•458 lines (15945 chars)
local Player = game:GetService("Players").LocalPlayer
local playerGui = Player:WaitForChild("PlayerGui")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

local isMobileLocal = UIS.TouchEnabled
local deviceType = isMobileLocal and "Mobile" or "PC"
local version = "v2.1"

local function ShowNotification(message)
    local notification = Instance.new("ScreenGui")
    notification.Name = "YomkaBHOPNotification"
    notification.Parent = playerGui
    notification.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(0, 300, 0, 60)
    frame.Position = UDim2.new(0.5, -150, 0.8, -30)
    frame.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
    frame.BorderSizePixel = 0
    frame.ZIndex = 10
    frame.Parent = notification

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

    local stroke = Instance.new("UIStroke")
    stroke.Color = Color3.fromRGB(80, 100, 180)
    stroke.Thickness = 2
    stroke.Parent = frame

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, 0, 1, 0)
    label.BackgroundTransparency = 1
    label.Text = message
    label.TextColor3 = Color3.fromRGB(220, 220, 255)
    label.Font = Enum.Font.GothamMedium
    label.TextSize = 16
    label.ZIndex = 11
    label.Parent = frame

    frame.BackgroundTransparency = 1
    stroke.Transparency = 1
    label.TextTransparency = 1

    TweenService:Create(frame, TweenInfo.new(0.3), {BackgroundTransparency = 0}):Play()
    TweenService:Create(stroke, TweenInfo.new(0.3), {Transparency = 0}):Play()
    TweenService:Create(label, TweenInfo.new(0.3), {TextTransparency = 0}):Play()

    task.wait(3)

    TweenService:Create(frame, TweenInfo.new(0.3), {BackgroundTransparency = 1}):Play()
    TweenService:Create(stroke, TweenInfo.new(0.3), {Transparency = 1}):Play()
    TweenService:Create(label, TweenInfo.new(0.3), {TextTransparency = 1}):Play()

    task.wait(0.3)
    notification:Destroy()
end

ShowNotification("Yomka BHOP "..version.."\nDevice: "..deviceType.." | Mode: "..(isMobileLocal and "Mobile UI" or "Desktop Controls"))

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "YomkaBHOP"
ScreenGui.Parent = playerGui
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false

local Container = Instance.new("Frame")
Container.Name = "Container"
Container.Size = isMobileLocal and UDim2.new(0, 180, 0, 80) or UDim2.new(0, 200, 0, 90)
Container.Position = isMobileLocal and UDim2.new(1, -190, 1, -90) or UDim2.new(1, -210, 1, -100)
Container.BackgroundTransparency = 1
Container.Parent = ScreenGui

local function UpdateContainerPosition()
    local viewportSize = workspace.CurrentCamera.ViewportSize
    if isMobileLocal then
        Container.Position = UDim2.new(1, -190, 1, -90)
    else
        Container.Position = UDim2.new(1, -210, 1, -100)
    end
end

workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(UpdateContainerPosition)
UpdateContainerPosition()

local Shadow = Instance.new("Frame")
Shadow.Name = "Shadow"
Shadow.Size = UDim2.new(1, 6, 1, 6)
Shadow.Position = UDim2.new(0, -3, 0, -3)
Shadow.BackgroundColor3 = Color3.new(0, 0, 0)
Shadow.BackgroundTransparency = 0.8
Shadow.ZIndex = 0
Shadow.Parent = Container

local ShadowCorner = Instance.new("UICorner")
ShadowCorner.CornerRadius = UDim.new(0, 12)
ShadowCorner.Parent = Shadow

-- Основной фрейм
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(1, 0, 1, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
MainFrame.BorderSizePixel = 0
MainFrame.ZIndex = 1
MainFrame.Parent = Container

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 8)
MainCorner.Parent = MainFrame

local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(80, 100, 180)
MainStroke.Thickness = 2
MainStroke.Parent = MainFrame

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "Title"
TitleLabel.Size = UDim2.new(1, -10, 0, 24)
TitleLabel.Position = UDim2.new(0, 5, 0, 5)
TitleLabel.BackgroundColor3 = Color3.fromRGB(50, 55, 80)
TitleLabel.BorderSizePixel = 0
TitleLabel.Text = "Yomka BHOP "..version
TitleLabel.TextColor3 = Color3.fromRGB(220, 220, 255)
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = isMobileLocal and 14 or 16
TitleLabel.ZIndex = 2
TitleLabel.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 6)
TitleCorner.Parent = TitleLabel

local StatusLabel = Instance.new("TextLabel")
StatusLabel.Name = "Status"
StatusLabel.Size = UDim2.new(1, -10, 0, 24)
StatusLabel.Position = UDim2.new(0, 5, 0, isMobileLocal and 34 or 40)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "STATUS: OFF"
StatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
StatusLabel.Font = Enum.Font.GothamMedium
StatusLabel.TextSize = isMobileLocal and 14 or 15
StatusLabel.ZIndex = 2
StatusLabel.Parent = MainFrame

local Indicator = Instance.new("Frame")
Indicator.Name = "Indicator"
Indicator.Size = UDim2.new(0, 10, 0, 10)
Indicator.Position = UDim2.new(1, -20, 0.5, -5)
Indicator.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
Indicator.BorderSizePixel = 0
Indicator.ZIndex = 2
Indicator.Parent = StatusLabel

local IndicatorCorner = Instance.new("UICorner")
IndicatorCorner.CornerRadius = UDim.new(1, 0)
IndicatorCorner.Parent = Indicator

local ToggleButton, MinimizeButton

if isMobileLocal then
    ToggleButton = Instance.new("TextButton")
    ToggleButton.Name = "ToggleButton"
    ToggleButton.Size = UDim2.new(0.45, 0, 0, 30)
    ToggleButton.Position = UDim2.new(0.05, 0, 0, 63)
    ToggleButton.BackgroundColor3 = Color3.fromRGB(60, 65, 100)
    ToggleButton.BorderSizePixel = 0
    ToggleButton.Text = "TOGGLE BHOP"
    ToggleButton.TextColor3 = Color3.fromRGB(220, 220, 255)
    ToggleButton.Font = Enum.Font.GothamMedium
    ToggleButton.TextSize = 14
    ToggleButton.ZIndex = 2
    ToggleButton.Parent = MainFrame

    local ToggleCorner = Instance.new("UICorner")
    ToggleCorner.CornerRadius = UDim.new(0, 6)
    ToggleCorner.Parent = ToggleButton

    MinimizeButton = Instance.new("TextButton")
    MinimizeButton.Name = "MinimizeButton"
    MinimizeButton.Size = UDim2.new(0.45, 0, 0, 30)
    MinimizeButton.Position = UDim2.new(0.5, 0, 0, 63)
    MinimizeButton.BackgroundColor3 = Color3.fromRGB(60, 65, 100)
    MinimizeButton.BorderSizePixel = 0
    MinimizeButton.Text = "MINIMIZE"
    MinimizeButton.TextColor3 = Color3.fromRGB(220, 220, 255)
    MinimizeButton.Font = Enum.Font.GothamMedium
    MinimizeButton.TextSize = 14
    MinimizeButton.ZIndex = 2
    MinimizeButton.Parent = MainFrame

    local MinimizeCorner = Instance.new("UICorner")
    MinimizeCorner.CornerRadius = UDim.new(0, 6)
    MinimizeCorner.Parent = MinimizeButton
else
    local ControlsLabel = Instance.new("TextLabel")
    ControlsLabel.Name = "Controls"
    ControlsLabel.Size = UDim2.new(1, -10, 0, 20)
    ControlsLabel.Position = UDim2.new(0, 5, 0, 65)
    ControlsLabel.BackgroundTransparency = 1
    ControlsLabel.Text = "X: Toggle BHOP | Z: Hide GUI"
    ControlsLabel.TextColor3 = Color3.fromRGB(180, 180, 220)
    ControlsLabel.Font = Enum.Font.Gotham
    ControlsLabel.TextSize = 12
    ControlsLabel.ZIndex = 2
    ControlsLabel.Parent = MainFrame
end

local BHOPEnabled = false
local Character = nil
local Humanoid = nil
local HumanoidRootPart = nil
local LastJump = 0

local JUMP_COOLDOWN = 0.15
local GROUND_CHECK_DISTANCE = 3.5
local MAX_SLOPE_ANGLE = 45

local function IsOnGround()
    if not Character or not HumanoidRootPart or not Humanoid then return false end

    local state = Humanoid:GetState()
    if state == Enum.HumanoidStateType.Jumping or 
       state == Enum.HumanoidStateType.Freefall or
       state == Enum.HumanoidStateType.Swimming then
        return false
    end

    local raycastParams = RaycastParams.new()
    raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
    raycastParams.FilterDescendantsInstances = {Character}
    raycastParams.IgnoreWater = true

    local rayOrigin = HumanoidRootPart.Position
    local rayDirection = Vector3.new(0, -GROUND_CHECK_DISTANCE, 0)
    local raycastResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)

    if not raycastResult then return false end

    local surfaceNormal = raycastResult.Normal
    local angle = math.deg(math.acos(surfaceNormal:Dot(Vector3.new(0, 1, 0))))

    return angle <= MAX_SLOPE_ANGLE
end

local Minimized = false
local RestoreButton = nil

local function ToggleGUI()
    if isMobileLocal then
        Minimized = not Minimized

        if Minimized then
            -- Свернуть
            MainFrame.Visible = false

            if not RestoreButton then
                RestoreButton = Instance.new("TextButton")
                RestoreButton.Name = "RestoreButton"
                RestoreButton.Size = UDim2.new(0, 50, 0, 50)
                RestoreButton.Position = UDim2.new(1, -60, 1, -60)
                RestoreButton.BackgroundColor3 = Color3.fromRGB(60, 65, 100)
                RestoreButton.BorderSizePixel = 0
                RestoreButton.Text = ">"
                RestoreButton.TextColor3 = Color3.fromRGB(220, 220, 255)
                RestoreButton.Font = Enum.Font.GothamBold
                RestoreButton.TextSize = 20
                RestoreButton.ZIndex = 2
                RestoreButton.Parent = Container

                local RestoreCorner = Instance.new("UICorner")
                RestoreCorner.CornerRadius = UDim.new(1, 0)
                RestoreCorner.Parent = RestoreButton

                RestoreButton.MouseButton1Click:Connect(function()
                    ToggleGUI()
                end)

                local function MakeDraggable(frame, target)
                    local dragging = false
                    local dragInput, dragStart, startPos
                    local function update(input)
                        local delta = input.Position - dragStart
                        local newPos = UDim2.new(
                            startPos.X.Scale, 
                            startPos.X.Offset + delta.X, 
                            startPos.Y.Scale, 
                            startPos.Y.Offset + delta.Y
                        )
                        target.Position = newPos
                    end
                    frame.InputBegan:Connect(function(input)
                        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
                            dragging = true
                            dragStart = input.Position
                            startPos = target.Position
                            input.Changed:Connect(function()
                                if input.UserInputState == Enum.UserInputState.End then
                                    dragging = false
                                end
                            end)
                        end
                    end)
                    frame.InputChanged:Connect(function(input)
                        if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
                            dragInput = input
                        end
                    end)
                    UIS.InputChanged:Connect(function(input)
                        if dragging and (input == dragInput) then
                            update(input)
                        end
                    end)
                end
                MakeDraggable(RestoreButton, Container)
            else
                RestoreButton.Visible = true
            end
        else
            MainFrame.Visible = true
            if RestoreButton then
                RestoreButton.Visible = false
            end
        end
    else
        Container.Visible = not Container.Visible
    end
end

local function ToggleBHOP()
    BHOPEnabled = not BHOPEnabled

    local statusText = "STATUS: " .. (BHOPEnabled and "ON" or "OFF")
    local statusColor = BHOPEnabled and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
    local indicatorColor = BHOPEnabled and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)

    StatusLabel.Text = statusText
    StatusLabel.TextColor3 = statusColor
    Indicator.BackgroundColor3 = indicatorColor

    if BHOPEnabled then
        TweenService:Create(Indicator, TweenInfo.new(0.1), {Size = UDim2.new(0, 12, 0, 12)}):Play()
        task.wait(0.1)
        TweenService:Create(Indicator, TweenInfo.new(0.1), {Size = UDim2.new(0, 10, 0, 10)}):Play()
    end
end

local function MakeDraggable(frame, target)
    local dragging = false
    local dragInput, dragStart, startPos

    local function update(input)
        local delta = input.Position - dragStart
        local newPos = UDim2.new(
            startPos.X.Scale, 
            startPos.X.Offset + delta.X, 
            startPos.Y.Scale, 
            startPos.Y.Offset + delta.Y
        )
        target.Position = newPos
    end

    frame.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = target.Position

            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

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

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

MakeDraggable(TitleLabel, Container)
if isMobileLocal and ToggleButton then
    MakeDraggable(ToggleButton, Container)
end
if isMobileLocal and MinimizeButton then
    MakeDraggable(MinimizeButton, Container)
end

-- Обработка ввода
UIS.InputBegan:Connect(function(input, processed)
    if processed then return end

    if input.KeyCode == Enum.KeyCode.X then
        ToggleBHOP()
    elseif input.KeyCode == Enum.KeyCode.Z then
        ToggleGUI()
    end
end)


if isMobileLocal and ToggleButton then
    ToggleButton.MouseButton1Click:Connect(ToggleBHOP)
end

if isMobileLocal and MinimizeButton then
    MinimizeButton.MouseButton1Click:Connect(ToggleGUI)
end


local function HandleJump()
    if not BHOPEnabled then return end
    if not Humanoid or Humanoid.Health <= 0 then return end

    local now = tick()
    if IsOnGround() and (now - LastJump) > JUMP_COOLDOWN then
        Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        LastJump = now

        -- Визуальная обратная связь
        TweenService:Create(Indicator, TweenInfo.new(0.1), {Size = UDim2.new(0, 12, 0, 12)}):Play()
        task.wait(0.05)
        TweenService:Create(Indicator, TweenInfo.new(0.1), {Size = UDim2.new(0, 10, 0, 10)}):Play()
    end
end


RunService.Heartbeat:Connect(function()
    -- Обновляем ссылки на персонажа
    if not Character or not Character:IsDescendantOf(workspace) then
        Character = Player.Character or Player.CharacterAdded:Wait()
        if Character then
            Humanoid = Character:FindFirstChildOfClass("Humanoid")
            HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
        else
            Humanoid = nil
            HumanoidRootPart = nil
        end
    end

    if Humanoid and Humanoid.Health > 0 and HumanoidRootPart then
        HandleJump()
    end
end)


ToggleBHOP()

Features & Information

This script is made by Yomkaa I don't make it It's also work on evade feel free to use

Community Comments (2)

viralhack123viralhack123Nov 4, 2025

What is the script for?

Replying to @viralhack123
pnsdgsapnsdgsaNov 10, 2025

@viralhack123 it's for Auto jump

More Scripts for Universal Scripts