Video summary
Hoverboard - Roblox Scripting Tutorial
Main summary
Key takeaways
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
SteerFloatandThrottleFloat. -
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 thrustkeeps 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.
- Set density (example value mentioned:
- 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:
PlayerAddedCharacterAddedSeated
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.Occupantparent chain. - Set ownership:
seat:SetNetworkOwner(player).
Physics + controls (client/local)
- Create a LocalScript in
StarterPlayerScripts(named like hoverboard). - Detect riding:
- Hook humanoid
Seatedevent and toggle the control loop.
- Hook humanoid
While seated:
- Start a
RunService.Heartbeatloop. - Create:
- An
Attachment - A
VectorForce(applies lift/tilt force) AlignOrientation(keeps upright orientation logic)- Raycast parameters that exclude the board and character
- An
- 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(example0.2).
- Shift the ray target by board velocity scaled by
- Turn:
- Use
TurnSpeed(example target: ~5radii/sec) and rotate usingDeltaTime.
- Use
- Drag:
- Convert velocity to object space and apply opposing force using a
dragparameter.
- Convert velocity to object space and apply opposing force using a
- 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
- Example:
- ray velocity scaling (anti-bounce + forward prediction):
- Example:
Ray velocity = 0.2
- Example:
- turn speed:
- Example target:
5radii per second (usingTurnSpeedconcept)
- Example target:
- drag:
- Example small values (e.g.,
0.02) and “stronger” values (e.g.,2) were demonstrated - Suggested blend end state:
drag = 0.008counter = 0.004
- Example small values (e.g.,
- counter variable:
- Example baseline:
0.004, increased to0.02for stronger damping
- Example baseline:
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).