VehicleWheel

Inherits: Spatial < Node < Object

Category: Core

Brief Description

Physics object that simulates the behavior of a wheel.

Properties

floatdamping_compression
floatdamping_relaxation
floatsuspension_max_force
floatsuspension_stiffness
floatsuspension_travel
booluse_as_steering
booluse_as_traction
floatwheel_friction_slip
floatwheel_radius
floatwheel_rest_length
floatwheel_roll_influence

Methods

floatget_skidinfo ( ) const
boolis_in_contact ( ) const

Description

This node needs to be used as a child node of VehicleBody and simulates the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface.

Property Descriptions

  • float damping_compression
Setterset_damping_compression(value)
Getterget_damping_compression()

The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.


  • float damping_relaxation
Setterset_damping_relaxation(value)
Getterget_damping_relaxation()

The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the damping_compression property. For a damping_compression value of 0.3, try a relaxation value of 0.5


  • float suspension_max_force
Setterset_suspension_max_force(value)
Getterget_suspension_max_force()

The maximum force the spring can resist. This value should be higher than a quarter of the RigidBody.mass of the VehicleBody or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3x to 4x this number.


  • float suspension_stiffness
Setterset_suspension_stiffness(value)
Getterget_suspension_stiffness()

This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.


Setterset_suspension_travel(value)
Getterget_suspension_travel()

This is the distance the suspension can travel. As Godot measures are in meters keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car .


  • bool use_as_steering
Setterset_use_as_steering(value)
Getteris_used_as_steering()

If true this wheel will be turned when the car steers.


  • bool use_as_traction
Setterset_use_as_traction(value)
Getteris_used_as_traction()

If true this wheel transfers engine force to the ground to propel the vehicle forward.


  • float wheel_friction_slip
Setterset_friction_slip(value)
Getterget_friction_slip()

This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.

It’s best to set this to 1.0 when starting out.


Setterset_radius(value)
Getterget_radius()

The radius of the wheel in meters.


Setterset_suspension_rest_length(value)
Getterget_suspension_rest_length()

This is the distance in meters the wheel is lowered from its origin point. Don’t set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.


  • float wheel_roll_influence
Setterset_roll_influence(value)
Getterget_roll_influence()

This value effects the roll of your vehicle. If set to 0.0 for all wheels your vehicle will be prone to rolling over while a value of 1.0 will resist body roll.

Method Descriptions

  • float get_skidinfo ( ) const

Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road).


  • bool is_in_contact ( ) const

Returns true if this wheel is in contact with a surface.