I am currently working on an SVX active all-wheel steer system and I am trying to create my own all-wheel steer script. This is being used with a modified ETK multi-link rear suspension. With little knowledge of the actual mathematics behind all-wheel steer and plain guessing, is this effective at all? The desired effect is that the aws system recognizes if the car is making a hard turn or over/understeering, so air speed is averaged with wheel speed and yaw, pitch, and roll are recorded. Code: -- This Source Code Form is subject to the terms of the bCDDL, v. 1.1. -- If a copy of the bCDDL was not distributed with this -- file, You can obtain one at http://beamng.com/bCDDL-1.1.txt local M = {} local function onInit() electrics.values['4ws'] = 0 end local function updateGFX(dt) if not electrics.values['steering_input'] then return end local speed = electrics.values["wheelspeed"] local dirVector = obj:getDirectionVector() local dirVectorUp = obj:getDirectionVectorUp() local airSpeed = electrics.values["airspeed"] / 2 local steer = -electrics.values['steering_input'] local roll = math.abs(dirVectorUp.x * -dirVector.y + dirVectorUp.y * dirVector.x) / 2 local pitch = math.abs(dirVector.z) local absSteer = math.abs(steer) local rws = 0 if airSpeed <= 24 then speed = speed + (speed * 0.75) end if math.abs(roll) > pitch then rws = (((speed + airSpeed) / 2 - 12) / 10) * absSteer else rws = (math.sin(absSteer * 1) * math.cos((absSteer * 3.3))) * 1.21 end rws = rws * fsign(steer) --Use the sign of the steering input to know the sign of rws output electrics.values['4ws'] = rws end -- public interface M.onInit = onInit M.onReset = onInit M.updateGFX = updateGFX return M