Video summary

Hoverboard - Roblox Scripting Tutorial

Main summary

Key takeaways

Gaming

Storyline / Context

  • The video isn’t a traditional “story” game narrative. It’s a Roblox scripting tutorial that walks through building a hoverboard system (physics + control) so players can ride it and steer it with smooth hovering behavior.

Gameplay / System Overview (What the “game” mechanics are)

A hoverboard is created as a model with:

  • A VehicleSeat for player mounting.
  • A welded physical part that defines mass/density for better physics behavior.

When a character sits on the seat:

  • The player is granted network ownership of the hoverboard assembly (so movement/physics feel responsive).
  • A client-side local script starts a Heartbeat loop that continuously:
    • Applies upward force to maintain hover height using raycasting.
    • Tilts the hoverboard based on WASD input (steer + throttle floats from the seat).
    • Adds stabilization (anti-bounce) and better prediction by offsetting the raycast using the board’s velocity.
    • Applies turning, drag, and counter-tilt to control drift and speed.

Key Gameplay Highlights (How it “feels”)

  • Hovering is physics-driven A downward raycast measures ground distance; force scales with that distance so the board floats.

  • Steering by tilt Force direction is affected by tilting the orientation CFrame using SteerFloat and ThrottleFloat.

  • Anti-bounce “damping” The raycast target is shifted by the board’s linear velocity so falling vs. rising changes the force magnitude (reducing oscillation).

  • Air control and smoother handling A minimum thrust keeps some lift even when the ray misses, preventing “dead” control midair.

  • Speed control Uses drag (velocity-dependent opposing force) plus counter tilt (tilts opposite to velocity) to slow down and prevent excessive drifting.

Step-by-Step Build + Scripting Flow (as described)

Project setup

  • Create a base plate project and publish/place to Roblox.
  • Set gravity to 9.8 in World Settings.

Hoverboard model + physics

In Workspace:

  • Create a model.
  • Add a VehicleSeat and an additional Part.
  • Weld the part to the seat.
  • Resize the part and increase mass via custom physical properties:
    • Set density (example value mentioned: 10) to raise mass.
  • Resize/move the seat above the part.
  • Make the seat invisible and disable collision/query (keep touch enabled).

Network ownership (server)

  • Create a server script in ServerScriptService (named like Network owner).
  • Include functions/events such as:
    • PlayerAdded
    • CharacterAdded
    • Seated

In Seated:

  • Exit early if seat is not actively occupied.
  • Restrict logic to hoverboards only (seat name check like "hoverboard").
  • Determine the player via seat.Occupant parent chain.
  • Set ownership: seat:SetNetworkOwner(player).

Physics + controls (client/local)

  • Create a LocalScript in StarterPlayerScripts (named like hoverboard).
  • Detect riding:
    • Hook humanoid Seated event and toggle the control loop.

While seated:

  • Start a RunService.Heartbeat loop.
  • Create:
    • An Attachment
    • A VectorForce (applies lift/tilt force)
    • AlignOrientation (keeps upright orientation logic)
    • Raycast parameters that exclude the board and character
  • Add an animation when seated (steals “Dance/animation” asset for the example).
  • Each heartbeat:
    • Compute an upright orientation CFrame using look vector + cross with Y axis.
    • Apply tilt orientation based on:
      • ThrottleFloat (forward/back tilt)
      • SteerFloat (left/right tilt)
    • Raycast downward (about 8 studs offset mentioned) to find ground distance.
    • Compute lift:
      • magnitude = distance(from target to ray hit)
      • VectorForce.Force = Vector3.new(magnitude * thrust, ...) (lift is scaled by magnitude)
    • Anti-bounce improvement:
      • Shift the ray target by board velocity scaled by Ray velocity (example 0.2).
    • Turn:
      • Use TurnSpeed (example target: ~5 radii/sec) and rotate using DeltaTime.
    • Drag:
      • Convert velocity to object space and apply opposing force using a drag parameter.
    • Counter-tilt:
      • Compute counter tilt from velocity and clamp using torque values.
      • Counter tilts when moving forward/back or left/right to damp drift and reduce runaway speed.

Finalize

  • Remove debugging parts used for ray visualization.
  • Keep the completed hoverboard scripts and objects.

Key Parameters / Tuning Tips Mentioned

  • gravity: 9.8
  • mass/density: increase density so hover physics respond well
  • thrust: example value mentioned: 2000
  • minimum thrust (for midair control):
    • Example: 600 (more floaty, some control)
    • Larger value (example 3000) gives more floaty feel but more control while airborne
  • ray velocity scaling (anti-bounce + forward prediction):
    • Example: Ray velocity = 0.2
  • turn speed:
    • Example target: 5 radii per second (using TurnSpeed concept)
  • drag:
    • Example small values (e.g., 0.02) and “stronger” values (e.g., 2) were demonstrated
    • Suggested blend end state:
      • drag = 0.008
      • counter = 0.004
  • counter variable:
    • Example baseline: 0.004, increased to 0.02 for stronger damping

Gamers / Sources Featured (mentioned at the end)

  • No individual gamers are named as contributors.
  • The video credits only: “thank you for watching my video” (no specific external source list provided).

Original video