Advertisement
HowToRoblox

HoverboardClient

Dec 27th, 2021
3,538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.12 KB | None | 0 0
  1. local uis = game:GetService("UserInputService")
  2. local cas = game:GetService("ContextActionService")
  3.  
  4. local re = game.ReplicatedStorage:WaitForChild("HoverboardRE")
  5.  
  6. local currentHoverboard = nil
  7.  
  8.  
  9. local rotation = 0
  10. local movement = 0
  11.  
  12.  
  13. uis.InputBegan:Connect(function(inp, processed)
  14.    
  15.     if inp.KeyCode == Enum.KeyCode.F and not processed then
  16.        
  17.         re:FireServer()
  18.        
  19.         currentHoverboard = nil
  20.        
  21.         rotation = 0
  22.         movement = 0
  23.        
  24.         cas:UnbindAction("LeftHoverboard")
  25.         cas:UnbindAction("RightHoverboard")
  26.         cas:UnbindAction("ForwardHoverboard")
  27.         cas:UnbindAction("BackwardHoverboard")
  28.     end
  29. end)
  30.    
  31.  
  32. re.OnClientEvent:Connect(function(board)
  33.    
  34.     currentHoverboard = board
  35.    
  36.     cas:BindAction("LeftHoverboard", rotate, false, "a")
  37.     cas:BindAction("RightHoverboard", rotate, false, "d")
  38.     cas:BindAction("ForwardHoverboard", move, false, "w")
  39.     cas:BindAction("BackwardHoverboard", move, false, "s")
  40. end)
  41.  
  42.  
  43. function rotate(actionName, actionState)
  44.    
  45.     rotation =
  46.         actionName == "LeftHoverboard" and actionState == Enum.UserInputState.Begin and 20
  47.         or actionName == "RightHoverboard" and actionState == Enum.UserInputState.Begin and -20
  48.         or 0
  49. end
  50.  
  51. function move(actionName, actionState)
  52.    
  53.     movement =
  54.         actionName == "ForwardHoverboard" and actionState == Enum.UserInputState.Begin and -8
  55.         or actionName == "BackwardHoverboard" and actionState == Enum.UserInputState.Begin and 8
  56.         or 0
  57. end
  58.  
  59.  
  60. game:GetService("RunService").Heartbeat:Connect(function()
  61.    
  62.     if currentHoverboard then
  63.        
  64.         local ray = Ray.new(currentHoverboard.Position, -currentHoverboard.CFrame.UpVector * 1000)
  65.         local part = workspace:FindPartOnRayWithIgnoreList(ray, {currentHoverboard})
  66.        
  67.         local groundY = part.Position.Y + (part.Size.Y / 2)
  68.        
  69.         currentHoverboard.BodyPosition.Position = Vector3.new(currentHoverboard.Position.X, groundY + 1.5, currentHoverboard.Position.Z) + (currentHoverboard.CFrame.RightVector * movement)-- + Vector3.new(0, groundY + 2, 0)
  70.         currentHoverboard.BodyGyro.CFrame = currentHoverboard.CFrame * CFrame.Angles(0, rotation, 0)
  71.        
  72.         script.Parent.HumanoidRootPart.Velocity = Vector3.new()
  73.     end
  74. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement