Changelog
For upgrade notes click Upgrade Notes.
14.3.1 (21/09/2026)
- Kinematic rigidbodies: wheels on a kinematic Rigidbody now follow the externally driven pose (suspension, steering and spin update) instead of being skipped as asleep or writing velocity back to the body.
- Samples: demo materials converted to URP Lit and baked lighting is included. Spring stiffness buttons no longer clamp to 14-45 kN.
- Documentation: PDFs moved from the hidden
Documentation~folder toDocumentation, visible in the Project window.
14.3.0 (09/09/2026)
- Upgrade compatibility: automatic mass/load-rating calculation now defaults off. Restored the v13 assembly GUID and public
Validate(); renamedMathUtilitytoWheelMathUtility. Update code and assembly references as needed; see Upgrade Notes. - Friction presets: fixed lookup bounds, invalid curve values and partly filled lateral curves. Grip capacity now uses the curve's actual peak.
- Friction data: corrected Ice and Arcade curves and regenerated previews.
- Force feedback: fixed aligning-moment discontinuities during wheel lock, TCS and static friction.
- Mechanical trail default increased from 0.04 to 0.08 of wheel radius. Existing components keep their value.
- Static friction: removed serialized runtime state and made re-entry cooldown independent of substep rate.
- Brake lock: fixed reverse spin after hard stops while preserving ABS release.
- Stability: added zero-mass, zero-load and uninitialized-preset guards.
- Tyre wear: uses average grounded load over the slip window.
- Wheel state: reduced Rigidbody reads and cleared bump-stop telemetry when airborne.
- Wheel mesh collider: fixed cylinder topology and normals; contact behavior is unchanged.
- Inspector: exposed gizmo settings, corrected RPM telemetry and clarified unused TCS settings.
- Base Sample: input disables with the vehicle; exposed Is Player Controllable.
- API: legacy
Step(float, Matrix4x4)remains an obsolete no-op.FrictionBase.staticReEntryCooldownnow stores seconds as a float;SetRuntimeDefaultsIfNeeded()drops its unused second parameter. UseFindOrSpawnVisualContainers()for containers. - Packaging: disabled automatic Input Actions wrapper regeneration and removed unused Burst dependencies.
- Documentation: corrected manager stepping guidance and support links.
14.2 (23/06/2026)
- Static friction now catches and holds on a slope instead of slowly creeping. A fresh static entry no longer counts the transient suspension damper toward its break threshold, so the wheel locks instead of sliding at the dynamic terminal speed.
- Suspension force is applied at the tyre contact patch instead of the wheel centre, matching tyre friction. Removes the moment arm that could launch or flip a vehicle bottoming out at speed. Behaviour change on uneven ground / under pitch. Revert per wheel with Apply Force At Contact Point off.
- Brake torque can no longer spin a wheel up at very low speed when the chassis rolls against the wheel's rotation.
- Input actions wrapper moved to the
NWH.WheelController3Dnamespace - NaN / divide-by-zero guards across the friction and suspension paths
14.1 (07/06/2026)
- Lateral friction curves and a friction ellipticity parameter for the friction circle
- Friction solver stability fixes: Jacobian handling, relaxation length, pneumatic trail
- Static friction synchronized anchor entry - fixes low-speed standstill slide and creep on heavy / high-CoM vehicles
- Anti-Roll Bar sign and load-transfer fixes; substep-correct implicit suspension damping
- Ground detection ignores the vehicle's own colliders
14.0 (07/12/2025)
Breaking API and serialization changes. See Upgrade Notes for migration steps.
- Wheel API: removed the legacy wheel compatibility layer. WheelController now derives from MonoBehaviour; Unity WheelCollider support is removed. ABS and TCS now use WheelController and StandardFriction.
- Serialized settings: removed legacy friction, suspension and wheel settings without automatic migration. Reconfigure affected values after importing.
- Assembly references: changed the WheelController assembly GUID; restored to the v13 GUID in 14.3.0.
- Validation and friction API: removed public
Validate()and moved friction updates toFrictionBase.UpdateFriction(WheelController, float). PublicValidate()is restored in 14.3.0. - Math utilities: added
NWH.WheelController3D.MathUtility, which conflicts with Common's MathUtility when both namespaces are imported. Renamed toWheelMathUtilityin 14.3.0. - Camber: removed CamberController. Use
camberCurvewithuseCamberCurveenabled. - Connected bodies: removed
wakeWheelsOnConnectedBodies; connected trailers no longer wake automatically through their joints. - Wheel defaults: added StandardFriction to wheels without it and changed ground detection to Multicast. Wheel inertia now uses
0.65 * mass * radius^2. - Automatic wheel values: mass and load-rating calculation defaulted on through 14.2 and replaced authored values. Both default off from 14.3.0.
Features in this release:
- Unity 6000 required, URP default render pipeline
- Package Manager format with DocFX documentation
- WheelControllerManager for global wheel management with adaptive substepping
- Static friction system for improved low-speed stability
- Anti-Roll Bar (ARB) support added
- Friction refactored to separate
StandardFrictioncomponent - Auto Load Smoothing Factor for automatic high-CoM vehicle stability tuning
- Improved multicast ground detection
For detailed changes, see Upgrade Notes.
Older Versions
Previous versions had changelog that was combined with NWH Vehicle Physics 2, available in the NWH Vehicle Physics changelog
- The in-editor Discord button uses the same invitation as the readme and the documentation,
discord.gg/ubFBbM8. The two had drifted apart.