User Tools



To check out the released and pending changes, visit NWH Vehicle Physics 2 Trello board here.

For upgrade notes click here.


  • Restructured the asset to prevent errors when trying to import multiple NWH assets in the same project.
  • Fixed terrain texture issue when the vehicle goes over the edge of a terrain.
  • Improvements to WheelController's damper. Some re-adjustment will be needed on existing vehicles. Damper now has separate bump and rebound curves.
  • Fixed major damper bug that rendered damper ineffective under high spring velocities.
  • Added warning for Powertrain > Wheels ordering.
  • Transmission now calls ReconstructGearList() automatically after the number of forward or reverse gears has changed or a different gearing profile has been assigned.
  • Renamed NWH.VehiclePhysics2.Input.Input to InputHandler to prevent confusion with UnityEngine.Input.
  • Added deadzone setting to InputManager and InputSystem VehicleInputProviders.
  • Fixed 'Brake On Reverse Direction' not working in some cases.
  • Fixed InputHandler.Vertical returning wrong value under braking.
  • Fixed GroundDetection querying terrain texture out of bounds.
  • TrailerHitchModule now searches for trailers across all loaded scenes.
  • Fix input sticking on scene reload when using SteeringWheelInputProvider.


  • NRigidbody is now added to exisiting vehicles automatically if missing.
  • Fixed null event throwing errors in VehicleController.
  • Fixed “No Input Provider” warning even when 'Auto Set Input' is false.
  • Fixed wheels falling through ground when not added as output to powertrain component and the vehicle state is toggled during playtime.
  • Fixed high powered RWD vehicles pulling to one side when going straight.
  • Fixed TrailerHitchModule Attach On Play option not attaching the trailer (again).


  • Implemented physics sub-stepping. Vehicles now run at higher update rate than the rest of physics. Despite this the performance is same to slightly better due to optimizations.
  • Revised friction and friction circle calculations. Eliminated excessive understeer.
  • Many small improvements and bug fixes to both VehicleController and WheelController.
  • Added adaptive smoothing to WheelController visual.
  • Added “Show Advanced Settings” option to WheelController. Only basic options are now displayed by default which reduces clutter.
  • Improved obstacle force calculation.
  • Improvements to WheelController.
  • Add latching handbrake option.
  • Added option to calculate load coefficient from custom curve or automatically (default).
  • Physical properties now can only be changed out of play mode or through scripting before the vehicle is initialized. This is a performance optimization.
  • Reworked and fixed air brake hiss sound.
  • Fixed TrailerHitchModule Attach On Play option not attaching the trailer.
  • Fixed Ackerman steering bug.
  • Fixed OnPointerUp not registering when multiple touches are present resulting in stuck inputs on mobile.


  • Fixed bottoming out force impulse and added damping to prevent vehicles from excessive bouncing after bottoming out hard.
  • Added gizmos to display vehicle dimensions.
  • Added PUN2 demo scene.
  • Added Mirror demo scene.
  • Tuned up inertia calculation.
  • Updated demo vehicles for better handling.
  • Fixed flipped mirror UVs on Lada Niva.
  • Fixed issue with skidmarks sometimes using a wrong material.


  • Implemented proper spring bottom out calculation.
  • Stiffer lateral friction.
  • Lada Niva model is now commercially licensed and no longer CC-BY (as required by Unity).
  • Added mouse input option to both InputSystem and InputManager VehicleInputProviders.
  • Fixed some textures having different native resolution and Max Resolution set in inspector.
  • Fixed error with manual transmission when trying to shift into non-existing gear. Error introduced with rev-matching in v1.3.
  • Fixed error while trying to calculate track of vehicles that have only one wheel per wheel group / axle.
  • Fixed VehicleSetupWizard failing when there are no InputProviders in the scene.
  • Fixed vehicle input not initializing when there are no InputProviders in the scene.
  • Fixed issue with vehicleRigidbody being null during VehicleSetupWizard setup causes errors.


  • Major improvements to tire friction calculation.
  • Improved vehicle inertia tensor calculation, existing results were on the low side.
  • Added new Ackerman steering calculation for 4-wheeled cars. Other vehicles still use the old, linear, calculation.
  • Eliminated WheelController creep in longitudinal direction.
  • Fixed vibration when standing still with vehicles that had large wheel mass.
  • Improved Cruise Control by adding “Deactivate On Brake”.'
  • Fixed a bug with powertrain that resulted in engine being too hard to stall.
  • Fixed FrictionPreset not saving changes once the project is reloaded.
  • Fixed 'flipInput' option in SteeringWheelProvider to flip input from [0,1] to [1,0] instead of [0, -1]
  • Fixed issue with VehicleSetupError where it would throw a cast error if 'Add Cameras' is enabled.
  • Fixed CameraInsideVehicle not registering (bug from 1.2.0).
  • Fixed InputSystem input not resetting after scene reload.


  • Fix input in Monza demo scene.
  • Fix VehicleSetupWizard throwing an error due to a null value of VehicleRigidbody.


  • Added weight sensitive WheelController defaults.
  • Made it possible to create a vehicle from a script at runtime using VehicleSetupWizard.RunSetup().
  • Fixed trailer drives the towing vehicle into the ground when 'Freeze When Asleep' is enabled.
  • Fixed insideVehicle property warning for sound property drawer.
  • Moved VehicleModule Awake() call to after the vehicle is fully initialized.
  • Fixed issue with VehicleComponent.Enable() getting called before VehicleComponent.Initialize().
  • Fixed ShiftInto not getting triggered when using 0-9 keys in the demo.
  • Fixed SteeringWheelInput compile error 'VehicleChanger' does not contain a definition for 'ActiveVehicleController'.
  • Fixed 'Constrain When Asleep' not working.


  • InputProviders have been split to SceneInputProvider and VehicleInputProvider where SceneInputProvider handles scene-related input (camera controls, vehicle switching, character movement, etc.) and VehicleInputProvider handles only vehicle-related input (steering, throttle, brakes, etc.).
  • Some parts of the asset are now shared between DWP2 and NWP2 making the two assets compatible and reducing the code duplication.
  • Fixed issue where blinkers and hazards could be active at the same time.
  • Fixed a bug introduced in 1.1.2 where the multiplayer scripts where not changed to reflect the recent input changed.


  • Input bug fixes related to engineStartStop, boost and light inputs (input not registering or registering multiple times). Introduced in 1.1.2.
  • Added options for non-zero-index rglSliders to SteeringWheelInputProvider.
  • Fixed issue where blinkers and hazards could be active at the same time.


  • Fixed 'autoSetInput' automatically being set to true when vehicle wakes.
  • Fix lights not turning on properly (bug introduced in 1.1)
  • Removed delay between activating a blinker and it turning on.
  • Fixed blinkers sometimes not canceling each other.
  • Rewritten LightManager logic.
  • Minor bug fixes and improvements.


  • Changed how engine losses are calculated to allow the engine to rev more freely. Vehicles will feel slightly more powerful after the update.
  • Fixed unneeded using directives introduced in 1.1 preventing the build from finishing successfully.
  • Added “Hold To Keep In Gear” option to the transmission. This makes the transmission H-shifter friendly. When the option is enabled an input has to be held for the transmission to stay in corresponding gear, otherwise it goes to neutral.
  • Added all available axis options to SteeringWheelInputProvider.
  • Removed shift ban timer (delay between shifts) from manual transmission which would get interpreted as the gearbox not receiving input.
  • Fixed errors caused by the SteeringWheelInputProvider not having been updated to the 1.1 InputProvider overrides.


  • Removed the need for disabling “Queries Hit Triggers” and “Queries Hit Backfaces”.
  • Split “Vertical” axis into “Throttle” and “Brakes” to allow for simultaneous application of both.
  • Added optional bindings: CameraRotation, CameraPanning, CameraRotationModifier, CameraPanningModifier, CameraZoom, FPSMovement and ToggleGUI. This allowed for removal of all the hard-coded inputs in the asset code and all the input now goes through InputProviders.
  • Improved ImputSystem support and made InputSystem default input method.
  • Renamed “NewDesktopInputProvider” to “InputSystemProvider” to prevent confusion.
  • Improved InputSystem with additional, optional bindings: CameraRotation, CameraPanning, CameraRotationModifier, CameraPanningModifier, CameraZoom, FPSMovement and ToggleGUI. This allowed for removal of all the hard-coded inputs in the asset code and all the input now goes through InputProviders.
  • Added gamepad support to the demo scene.
  • Removed shift ban timer from manual transmission.
  • Implemented 'GearShift' class which contains data about the currently occuring gear shift and is used by 'OnShift', 'OnUpshift' and 'OnDownshift' events.
  • Renamed Input.AutoSettable to Input.AutoSetInput since the old name was causing confusion.


  • Improved the way module list is reloaded in editor, removing the delay between clicking on the modules tab and the modules being drawn.
  • Fix modules added after vehicle is initialized, either through scripting or inspector, not registering.
  • Fixed missing trees in the demo scene.
  • Fixed two audio listeners being present in the scene for the first fame when CharacterVehicleChanger is used.
  • Renamed “NewDesktopInputProvider” to “InputSystemProvider” to prevent confusion.
  • Added ground check to the CameraMouseDrag.


  • Major demo improvements: two new vehicles (Lada / Rocket Carrier), mirrors and interiors on all the vehicles, camera improvements, etc. Optimized Ferrari and Monster Truck models.
  • Rewritten exhaust particle code for better visuals, performance and ease of setup.
  • Improved surface particles / dust. Both dust and smoke are now using the same ParticleSystem and particles are emitted on per-wheel basis.
  • Added dirt chunk / pebble particles.
  • Improvements to SurfacePresets with extended and improved settings.
  • Added camera shake on collision.
  • Make 'Validate' option validate model scale and SurfaceMap tags.
  • Added “IsGrounded()” and “IsFullyGrounded()” functions to the VehicleController.
  • Fixed VehicleChanger thowing an error when there are no vehicles present in the scene and 'Character Based' is used.
  • Disable CameraMouseDrag movement while mouse is over UI.
  • VehicleCameras now auto-find target.
  • CameraMouseDrag has been rewritten with a few improvements: smoothing now keeps constant distance from the vehicle, implemented panning, new options to enable/disable dragging/panning, target position offset, initial look angle.
  • Rewritten vehicle enter/exit code.

v0.9.0 - v0.9.5

Versions 0.9.0 to 0.9.5 were considered Beta releases.