-- skidded from vibe cafe local v_u_1 = {} local v_u_2 = nil local v_u_3 = nil local v_u_4 = nil local v_u_5 = nil local v_u_6 = nil local v_u_7 = nil local v_u_8 = nil local v_u_9 = nil local v_u_10 = nil local v_u_11 = nil local v_u_12 = nil local v_u_13 = nil local v_u_14 = nil local v_u_15 = nil local v_u_16 = nil local v_u_17 = nil local v_u_18 = nil local v_u_19 = nil local v_u_20 = nil local v_u_21 = nil local v_u_22 = nil local v_u_23 = nil local v_u_24 = nil local v_u_25 = nil local v_u_26 = 0.016666666666666666 local v_u_27 = nil local v_u_28 = nil local v_u_29 = nil local v_u_30 = nil local v_u_31 = nil local v_u_32 = nil local v_u_33 = nil local v_u_34 = nil -- Sound effects for jumping for _, v35 in ipairs({ "rbxassetid://7338942417", "rbxassetid://7338942345", "rbxassetid://7338942259", "rbxassetid://7338942180", "rbxassetid://7338942417" }) do local v36 = Instance.new("Sound") v36.SoundId = v35 v36.Volume = 2 v36.Parent = game.Workspace table.insert(v_u_1, v36) end function init(p37, p38, p39) v_u_4 = p37 v_u_31 = v_u_4.Character v_u_5 = v_u_31.HumanoidRootPart v_u_16 = p38 v_u_21 = p39 v_u_17 = 0 v_u_6 = false v_u_32 = { ["forward"] = 0, ["side"] = 0 } v_u_19 = 10000 v_u_20 = 3 v_u_14 = 250 v_u_3 = 20 v_u_15 = 10 v_u_30 = 3 v_u_22 = 0.5 v_u_33 = 53.5 v_u_11 = 400000 v_u_23 = 300000 v_u_24 = 0.6 v_u_25 = v_u_30 + v_u_22 v_u_7 = 125 v_u_27 = 14000 v_u_12 = 1500 v_u_13 = 0.4 externalVelocityImpulse = Vector3.new(0, 0, 0) end function initBodyMovers() v_u_8 = Instance.new("BodyPosition", v_u_5) v_u_8.Name = "movementPosition" v_u_8.D = v_u_7 v_u_8.P = v_u_27 v_u_8.maxForce = Vector3.new() v_u_8.position = Vector3.new() v_u_28 = Instance.new("BodyVelocity", v_u_5) v_u_28.Name = "movementVelocity" v_u_28.P = v_u_12 v_u_28.maxForce = Vector3.new() v_u_28.velocity = Vector3.new() v_u_29 = Instance.new("BodyForce", v_u_5) v_u_29.Name = "gravityForce" local v40 = v_u_29 local v41 = (1 - v_u_13) * 196.2 v40.force = Vector3.new(0, v41, 0) * getCharacterMass() end function update(p42) v_u_26 = p42 updateMoveInputSum() v_u_18 = getYaw() v_u_9 = v_u_18.lookVector if v_u_9 ~= nil then local v43, v44, v45, v46, v47 = findCollisionRay() v_u_34 = v46 v_u_10 = v47 v_u_6 = v43 ~= nil local v48 = v_u_5.Velocity local v49 = v_u_5.Velocity.y v_u_17 = v48 - Vector3.new(0, v49, 0) if v_u_6 and (v_u_21.Space or v_u_2) then v_u_2 = true else v_u_2 = false end setCharacterRotation() if v_u_2 then jump() elseif v_u_6 then run(v44, v45) else air() end applyVelocityCap() end end function updateMoveInputSum() v_u_32.forward = v_u_21.W == true and 1 or 0 v_u_32.forward = v_u_21.S == true and v_u_32.forward - 1 or v_u_32.forward v_u_32.side = v_u_21.A == true and 1 or 0 v_u_32.side = v_u_21.D == true and v_u_32.side - 1 or v_u_32.side end local v_u_50 = 100 -- Velocity cap (hardcoded) function applyVelocityCap() if v_u_6 then if v_u_28 and v_u_28.velocity then local v51 = v_u_28.velocity local v52 = v51.X local v53 = v51.Z local v54 = Vector3.new(v52, 0, v53) local v55 = v54.Magnitude if v_u_50 < v55 then local v56 = v_u_50 local v57 = v55 - 25 local v58 = math.max(v57, v56) v54 = v54.Unit * v58 end local v59 = v_u_28 local v60 = v54.X local v61 = v51.Y local v62 = v54.Z v59.velocity = Vector3.new(v60, v61, v62) end end end local v_u_63 = {} local v_u_64 = 0 function updateIgnoreList() table.clear(v_u_63) local v65 = v_u_63 local v66 = v_u_31 table.insert(v65, v66) local v67 = v_u_63 local v68 = v_u_16 table.insert(v67, v68) end local v_u_69 = nil function findCollisionRay() v_u_64 = v_u_64 + v_u_26 if v_u_64 >= 1 or #v_u_63 == 0 then updateIgnoreList() v_u_64 = 0 end if not v_u_69 then v_u_69 = RaycastParams.new() v_u_69.RespectCanCollide = true v_u_69.FilterType = Enum.RaycastFilterType.Exclude end v_u_69.FilterDescendantsInstances = v_u_63 local v70 = v_u_31.HumanoidRootPart.CFrame local v71 = { v_u_31.HumanoidRootPart.Position, (v70 * CFrame.new(-0.8, 0, 0)).p, (v70 * CFrame.new(0.8, 0, 0)).p, (v70 * CFrame.new(0, 0, 0.8)).p, (v70 * CFrame.new(0, 0, -0.8)).p } local v72 = -v_u_25 local v73 = Vector3.new(0, v72, 0) local v74 = {} for _, v75 in ipairs(v71) do local v76 = game.Workspace:Raycast(v75, v73, v_u_69) if v76 then local v77 = { v76.Instance, v76.Position, v76.Normal } table.insert(v74, v77) end end if #v74 > 0 then return v74[1][1], v74[1][2], v74[1][3], 0, 0 else return nil, nil, nil, 0, 0 end end function setCharacterRotation() local v78 = v_u_5.Position + v_u_16.CoordinateFrame.lookVector local v79 = v_u_5 local v80 = CFrame.new local v81 = v_u_5.Position local v82 = v78.x local v83 = v_u_5.Position.y local v84 = v78.z v79.CFrame = v80(v81, (Vector3.new(v82, v83, v84))) v_u_5.RotVelocity = Vector3.new() end function jump() v_u_1[math.random(1, #v_u_1)]:Play() local v85 = v_u_5 local v86 = v_u_5.Velocity.x local v87 = v_u_33 local v88 = v_u_5.Velocity.z v85.Velocity = Vector3.new(v86, v87, v88) air() end function air() v_u_8.maxForce = Vector3.new() v_u_28.velocity = getMovementVelocity(v_u_5.Velocity, v_u_19, v_u_20) v_u_28.velocity = v_u_28.velocity + externalVelocityImpulse externalVelocityImpulse = Vector3.new(0, 0, 0) v_u_28.maxForce = getMovementVelocityAirForce() end function run(p89, _) if p89 then local v90 = v_u_5.Velocity.magnitude local v91 = v_u_5.Velocity if v90 ~= 0 then local v92 = v90 - v90 * v_u_15 * v_u_26 v91 = v91 * math.max(v92, 0) / v90 end local v93 = v_u_30 v_u_8.position = p89 + Vector3.new(0, v93, 0) local v94 = v_u_11 v_u_8.maxForce = Vector3.new(0, v94, 0) v_u_28.velocity = getMovementVelocity(v91, v_u_14, v_u_3) v_u_28.velocity = v_u_28.velocity + externalVelocityImpulse externalVelocityImpulse = Vector3.new(0, 0, 0) v_u_28.maxForce = getMovementVelocityForce() v_u_28.P = v_u_12 end end function getMovementVelocity(p95, p96, p97) local v98 = (v_u_9 * v_u_32.forward + (v_u_18 * CFrame.Angles(0, 1.5707963267948966, 0)).lookVector * v_u_32.side).unit local v99 = v_u_32.forward == 0 and v_u_32.side == 0 and Vector3.new(0, 0, 0) or v98 local v100 = p95:Dot(v99) local v101 = p96 * v_u_26 if p97 < v100 + v101 then local v102 = p97 - v100 v101 = math.max(v102, 0) end return p95 + v99 * v101 end function getMovementVelocityForce() local v103 = v_u_23 local v104 = v_u_23 return Vector3.new(v103, 0, v104) end function getMovementVelocityAirForce() local v105 = (v_u_9 * v_u_32.forward + (v_u_18 * CFrame.Angles(0, 1.5707963267948966, 0)).lookVector * v_u_32.side).unit local v106 = v_u_32.forward == 0 and v_u_32.side == 0 and Vector3.new(0, 0, 0) or v105 local v107 = v106.x local v108 = math.abs(v107) local v109 = v106.z local v110 = math.abs(v109) local v111 = v_u_23 * v108 local v112 = v_u_23 * v110 return Vector3.new(v111, 0, v112) end function getPartYRatio(p113) local v114 = -p113.x local v115 = -p113.z local v116 = Vector3.new(v114, 0, v115) if v116.magnitude == 0 then return 0, 0 end local v117 = v116.magnitude local v118 = p113.y local v119 = math.atan2(v117, v118) / 1.5707963267948966 local v120 = v_u_9.x local v121 = v_u_9.z local v122 = Vector3.new(v120, 0, v121) * v119 return v122:Dot(v116), -v116:Cross(v122).y end function getYaw() return v_u_16.CoordinateFrame * CFrame.Angles(-getPitch(), 0, 0) end function getPitch() local v123 = v_u_16.CoordinateFrame.lookVector:Dot(Vector3.new(0, 1, 0)) return 1.5707963267948966 - math.acos(v123) end function getCharacterMass() return v_u_31.HumanoidRootPart:GetMass() + v_u_31.Head:GetMass() end function magnitude2D(p124, p125) local v126 = p124 * p124 + p125 * p125 return math.sqrt(v126) end local v_u_127 = { ["W"] = false, ["S"] = false, ["A"] = false, ["D"] = false, ["Space"] = false } local v_u_128 = false local v_u_129 = nil local v_u_130 = nil local v_u_131 = game:GetService("Players").LocalPlayer local v_u_132 = workspace.CurrentCamera local v_u_133 = game:GetService("UserInputService") -- Set camera FOV to 70 (hardcoded) v_u_132.FieldOfView = 70 function onInput(p134, _) local v135 if p134.UserInputState == Enum.UserInputState.Begin then v135 = true else if p134.UserInputState ~= Enum.UserInputState.End then return end v135 = false end if p134.UserInputType == Enum.UserInputType.Keyboard then local v136 = p134.KeyCode.Name if v_u_127[v136] ~= nil then v_u_127[v136] = v135 end end end -- Key toggle system (no GUI) local toggleKey = Enum.KeyCode.F -- You can change this key _G.bhopEnabled = false function setupKeyToggle() v_u_133.InputBegan:Connect(function(input) if input.KeyCode == toggleKey then toggleBhop() end end) -- Also listen for regular movement keys v_u_133.InputBegan:connect(onInput) v_u_133.InputEnded:connect(onInput) end function toggleBhop() if v_u_131.Character and v_u_131.Character:FindFirstChild("HumanoidRootPart") then v_u_128 = not v_u_128 _G.bhopEnabled = v_u_128 if v_u_128 then print("BHOP Enabled (Toggle with F)") local humanoid = v_u_131.Character:FindFirstChildOfClass("Humanoid") or v_u_131.Character:WaitForChild("Humanoid") humanoid.PlatformStand = true init(v_u_131, v_u_132, v_u_127) initBodyMovers() updateIgnoreList() v_u_64 = 0 -- Seat prevention if v_u_130 then v_u_130:Disconnect() end v_u_130 = game.Workspace.DescendantAdded:Connect(function(p147) if v_u_128 and (p147:IsA("Seat") or p147:IsA("VehicleSeat")) then p147.Disabled = true end end) for _, v148 in pairs(game.Workspace:GetDescendants()) do if v148:IsA("Seat") or v148:IsA("VehicleSeat") then v148.Disabled = true end end print("Seat prevention enabled - all seats disabled") game:GetService("RunService"):BindToRenderStep("updateLoop", 1, updateLoop) else print("BHOP Disabled (Toggle with F)") local humanoid = v_u_131.Character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.PlatformStand = false end if v_u_130 then v_u_130:Disconnect() v_u_130 = nil end for _, v152 in pairs(game.Workspace:GetDescendants()) do if v152:IsA("Seat") or v152:IsA("VehicleSeat") then v152.Disabled = false end end print("Seat prevention disabled - all seats re-enabled") game:GetService("RunService"):UnbindFromRenderStep("updateLoop") if v_u_8 then v_u_8:Destroy() end if v_u_28 then v_u_28:Destroy() end if v_u_29 then v_u_29:Destroy() end end else warn("Cannot toggle BHOP - character not ready") end end function main() setupKeyToggle() v_u_131.CharacterAdded:Connect(function(_) print("Character respawned - re-initializing BHOP") v_u_128 = false task.wait(0.5) end) print("BHOP Script Loaded") print("Toggle with: F key") print("Velocity Cap: 100") print("FOV: 70") print("Crosshair: Disabled") end local v_u_162 = nil local v_u_163 = 0.016666666666666666 function setDeltaTime() local v164 = tick() if v_u_162 == nil then v_u_163 = 0.016666666666666666 else v_u_163 = v164 - v_u_162 end v_u_162 = v164 end function updateLoop() setDeltaTime() update(v_u_163) end -- Start the script main()