NWH Vehicle Physics 2
Search Results for

    Show / Hide Table of Contents

    Struct VehicleInputStates

    Container structure for all vehicle input values and button states, normalized to standard ranges.

    Namespace: NWH.VehiclePhysics2.Input
    Assembly: NWH.VehiclePhysics2.dll
    Syntax
    [Serializable]
    public struct VehicleInputStates
    Remarks

    VehicleInputStates stores the current state of all vehicle inputs after processing by the VehicleInputHandler. All analog inputs (throttle, brakes, steering, clutch, handbrake) are normalized to 0-1 or -1 to 1 ranges, while digital inputs (lights, horn, shift commands) are represented as boolean flags.

    This structure serves multiple purposes: - Provides a snapshot of all input values at any given frame - Enables input copying between vehicles (e.g., synchronizing trailer inputs with truck) - Supports AI controllers and replay systems by allowing direct input state manipulation - Maintains both raw and processed input values for debugging and analysis

    Input swapping feature: When swapInputInReverse is enabled in VehicleInputHandler, the inputSwappedThrottle and inputSwappedBrakes fields contain throttle/brake values adjusted for reverse gear, making reverse driving more intuitive by swapping the throttle and brake axes.

    Fields

    boost

    Boost activation state. True while the boost button is held down. Only functional when NOSModule or similar boost module is present and enabled.

    Declaration
    [NonSerialized]
    [Tooltip("Boost flag. Only active if there is a boost module present.")]
    public bool boost
    Field Value
    Type Description
    bool

    brakes

    Brake input normalized to [0, 1] range, where 0 is no braking and 1 is full braking force. This value may be modified by input smoothing or modification callbacks.

    Declaration
    [Range(0, 1)]
    [NonSerialized]
    [ShowInTelemetry(0, 1, "0.00", null, 1)]
    [Tooltip("Brake input. The range is 0 to 1.")]
    public float brakes
    Field Value
    Type Description
    float

    brakesRaw

    Raw brake input directly from the input provider without any modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as brakes but without any modifications. Raw user input.")]
    public float brakesRaw
    Field Value
    Type Description
    float

    clutch

    Clutch input normalized to [0, 1] range, where 0 is clutch fully engaged and 1 is clutch fully disengaged. Used with manual transmission for gear changes and preventing engine stalls.

    Declaration
    [Range(0, 1)]
    [NonSerialized]
    [ShowInTelemetry(0, 1, "0.00", null, 1)]
    [Tooltip("Clutch input. The range is 0 to 1.")]
    public float clutch
    Field Value
    Type Description
    float

    clutchRaw

    Raw clutch input directly from the input provider without any modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as clutch but without any modifications. Raw user input.")]
    public float clutchRaw
    Field Value
    Type Description
    float

    cruiseControl

    Toggle flag for cruise control. True when the button is pressed this frame. Only functional when CruiseControlModule is present and enabled.

    Declaration
    [NonSerialized]
    [Tooltip("Cruise control flag. Only active if there is a cruise control module present.")]
    public bool cruiseControl
    Field Value
    Type Description
    bool

    engineStartStop

    Toggle flag for starting or stopping the engine. True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Engine start/stop flag.")]
    public bool engineStartStop
    Field Value
    Type Description
    bool

    extraLights

    Toggle flag for extra lights (fog lights, work lights, etc.). True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Extra lights flag.")]
    public bool extraLights
    Field Value
    Type Description
    bool

    flipOver

    Flip-over request flag. True when the button is pressed this frame. Only functional when FlipOverModule is present and enabled, used to right overturned vehicles.

    Declaration
    [NonSerialized]
    [Tooltip("Flip-over flag. Only active if there is a flip over module present.")]
    public bool flipOver
    Field Value
    Type Description
    bool

    handbrake

    Handbrake input normalized to [0, 1] range, where 0 is released and 1 is fully engaged. Typically locks rear wheels for drifting or parking on slopes.

    Declaration
    [Range(0, 1)]
    [NonSerialized]
    [ShowInTelemetry(0, 1, "0.00", null, 1)]
    [Tooltip("Handbrake input. Range is 0 to 1.")]
    public float handbrake
    Field Value
    Type Description
    float

    handbrakeRaw

    Raw handbrake input directly from the input provider without any modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as handbrake but without any modifications. Raw user input.")]
    public float handbrakeRaw
    Field Value
    Type Description
    float

    hazardLights

    Toggle flag for hazard lights (all turn signals flashing). True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Hazards flag.")]
    public bool hazardLights
    Field Value
    Type Description
    bool

    highBeamLights

    Toggle flag for high beam headlights. True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("High beams flag.")]
    public bool highBeamLights
    Field Value
    Type Description
    bool

    horn

    Horn button state. True while the horn button is held down, false when released.

    Declaration
    [NonSerialized]
    [Tooltip("Horn flag.")]
    public bool horn
    Field Value
    Type Description
    bool

    inputSwappedBrakes

    Brake value adjusted for reverse gear when swapInputInReverse is enabled. In reverse gear, this contains the throttle input value to make reversing more intuitive. In forward gears, this equals the brake input.

    Declaration
    [HideInInspector]
    [Tooltip("Can represent throttle or brake input, depending on the travel direction of the vehicle.")]
    public float inputSwappedBrakes
    Field Value
    Type Description
    float

    inputSwappedBrakesRaw

    Raw version of inputSwappedBrakes without modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as inputSwappedBrakes but without any modifications. Raw user input.")]
    public float inputSwappedBrakesRaw
    Field Value
    Type Description
    float

    inputSwappedThrottle

    Throttle value adjusted for reverse gear when swapInputInReverse is enabled. In reverse gear, this contains the brake input value to make reversing more intuitive. In forward gears, this equals the throttle input.

    Declaration
    [HideInInspector]
    [Tooltip("Can represent throttle or brake input, depending on the travel direction of the vehicle.")]
    public float inputSwappedThrottle
    Field Value
    Type Description
    float

    inputSwappedThrottleRaw

    Raw version of inputSwappedThrottle without modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as inputSwappedThrottle but without any modifications. Raw user input.")]
    public float inputSwappedThrottleRaw
    Field Value
    Type Description
    float

    leftBlinker

    Toggle flag for left turn signal. True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Left blinker flag.")]
    public bool leftBlinker
    Field Value
    Type Description
    bool

    lowBeamLights

    Toggle flag for low beam headlights. True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Low-beam light flag.")]
    public bool lowBeamLights
    Field Value
    Type Description
    bool

    rightBlinker

    Toggle flag for right turn signal. True when the button is pressed this frame.

    Declaration
    [NonSerialized]
    [Tooltip("Right blinker flag.")]
    public bool rightBlinker
    Field Value
    Type Description
    bool

    shiftDown

    Sequential gear shift down flag. True when the shift down button is pressed this frame. Shifts to the next lower gear in sequential transmissions.

    Declaration
    [NonSerialized]
    [Tooltip("Shift-down flag.")]
    public bool shiftDown
    Field Value
    Type Description
    bool

    shiftInto

    Direct gear selection for H-pattern shifters. -999 indicates no gear selected. Values range from -1 (reverse) through 0 (neutral) to positive integers for forward gears.

    Declaration
    [NonSerialized]
    [Tooltip("Shift into gear. -999 means no shift.")]
    public int shiftInto
    Field Value
    Type Description
    int

    shiftUp

    Sequential gear shift up flag. True when the shift up button is pressed this frame. Shifts to the next higher gear in sequential transmissions.

    Declaration
    [NonSerialized]
    [Tooltip("Shift up flag.")]
    public bool shiftUp
    Field Value
    Type Description
    bool

    steering

    Steering input normalized to [-1, 1] range, where -1 is full left and 1 is full right. This value may be modified by input smoothing or modification callbacks.

    Declaration
    [Range(-1, 1)]
    [NonSerialized]
    [ShowInTelemetry(-1, 1, "0.00", null, 1)]
    [Tooltip("Steering input. Range is -1 to 1.")]
    public float steering
    Field Value
    Type Description
    float

    steeringRaw

    Raw steering input directly from the input provider without any modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as steering but without any modifications. Raw user input.")]
    public float steeringRaw
    Field Value
    Type Description
    float

    throttle

    Throttle input normalized to [0, 1] range, where 0 is no throttle and 1 is full throttle. This value may be modified by input smoothing or modification callbacks.

    Declaration
    [Range(0, 1)]
    [NonSerialized]
    [ShowInTelemetry(0, 1, "0.00", null, 1)]
    [Tooltip("Throttle input. The range is 0 to 1.")]
    public float throttle
    Field Value
    Type Description
    float

    throttleRaw

    Raw throttle input directly from the input provider without any modifications or smoothing.

    Declaration
    [HideInInspector]
    [Tooltip("Same as throttle but without any modifications. Raw user input.")]
    public float throttleRaw
    Field Value
    Type Description
    float

    trailerAttachDetach

    Toggle flag for attaching or detaching trailers. True when the button is pressed this frame. Only functional when TrailerHitchModule is present and enabled.

    Declaration
    [NonSerialized]
    [Tooltip("Trailer attach/detach flag. Only active if there is a trailer module present.")]
    public bool trailerAttachDetach
    Field Value
    Type Description
    bool

    Methods

    Reset()

    Resets all input states to their default neutral values. Called during initialization and when disabling the vehicle to ensure clean state.

    Declaration
    public void Reset()
    In this article
    Back to top Copyright © NWH - Vehicle Physics, Aerodynamics, Dynamic Water Physics