
Key Required

getgenv().BhopMode=getgenv().BhopMode or "RampBoost"
getgenv().accel=getgenv().accel or 0.02
getgenv().decay=getgenv().decay or 0.01
getgenv().maxaccel=getgenv().maxaccel or 0.1
getgenv().rampboostmin=getgenv().rampboostmin or 0.16
getgenv().rampboostmax=getgenv().rampboostmax or 0.20
local Players=game:GetService("Players")
local UserInputService=game:GetService("UserInputService")
local RunService=game:GetService("RunService")
local player=Players.LocalPlayer
local Character=nil
local Humanoid=nil
local Root=nil
local movementModule=nil
local originalApplyFriction=nil
local holding=false
local acceleration=0
local accelRate=getgenv().accel
local decayRate=getgenv().decay
local maxAcceleration=getgenv().maxaccel
local rampBoostMin=getgenv().rampboostmin
local rampBoostMax=getgenv().rampboostmax
local rayParams=RaycastParams.new()
local function getSpeed()
if Root then
return (Root.Velocity*Vector3.new(1,0,1)).Magnitude
end
return 0
end
local function getRampFactor()
if not Root then return 0 end
rayParams.FilterType=Enum.RaycastFilterType.Exclude
rayParams.FilterDescendantsInstances={Character}
local ray=workspace:Raycast(Root.Position,Vector3.new(0,-4,0),rayParams)
if ray then
local angle=math.deg(math.acos(ray.Normal:Dot(Vector3.new(0,1,0))))
if angle>5 and angle<60 then
return math.clamp(angle/60,0,1)
end
end
return 0
end
local function applyModule()
if not movementModule then return end
if not originalApplyFriction then
originalApplyFriction=movementModule.ApplyFriction
end
movementModule.ApplyFriction=function(self,friction)
if holding and self.a==true then
if getgenv().BhopMode=="None" then
return originalApplyFriction(self,friction)
end
local boost=accelRate
if getgenv().BhopMode=="RampBoost" then
local rampFactor=getRampFactor()
local rampBoost=rampBoostMin+(rampBoostMax-rampBoostMin)*rampFactor
boost=boost+rampBoost
end
if getgenv().BhopMode=="Acceleration" then
boost=accelRate
end
acceleration=math.clamp(acceleration+boost,0,maxAcceleration)
local speed=getSpeed()
local smooth=acceleration*(speed/55)
friction=friction-smooth
else
acceleration=math.clamp(acceleration-decayRate,0,maxAcceleration)
end
return originalApplyFriction(self,friction)
end
end
local function watchModule(char)
local movement=char:WaitForChild("Movement")
local success,module=pcall(require,movement)
if success and module then
movementModule=module
applyModule()
end
end
local function canJump()
if not Humanoid then return false end
return Humanoid.FloorMaterial~=Enum.Material.Air
and Humanoid:GetState()~=Enum.HumanoidStateType.Dead
end
RunService.Heartbeat:Connect(function()
if holding and canJump() then
Humanoid.Jump=true
end
end)
UserInputService.JumpRequest:Connect(function()
holding=true
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType==Enum.UserInputType.Touch
or input.KeyCode==Enum.KeyCode.Space then
holding=false
end
end)
local function setupCharacter(char)
Character=char
Humanoid=char:WaitForChild("Humanoid")
Root=char:WaitForChild("HumanoidRootPart")
Humanoid.UseJumpPower=true
Humanoid.JumpPower=16
watchModule(char)
end
if player.Character then
setupCharacter(player.Character)
end
player.CharacterAdded:Connect(setupCharacter)



dont work
@slowV Read description
i read and dindnt work