No countersteering

by AmeliePick.


This mod tries to minimize/turn off the vanilla countersteering while a vehicle is drifting.

Problem: When a car is drifting the game applies auto-countersteering, and at the end of the drift when the car is centering, it snaps the car in the opposite angle.

Problem 2: The first problem also creates another one and it makes it hard to enter a drift sometimes, because the game tries to prevent it by auto-countersteering.

So, the mod tries to fix these two problems


Who needs this mod

This mod needs to be configured and tested individually, so it's not for a regular player but for those who make their own custom vehicle handling or want to improve their drift experience and are having a hard time with described problems.


How the mod works

This mod needs to be configured and tested individually, so it's not for a regular player but for those who make their own custom vehicle handling or want to improve their drift experience and are having a hard time with described problems.

Steering correction

The mod corrects steering only:
1. When the script detects that a car is drifting and the player is not controlling a steering(is not touching, irl the steering wheel would be at a fixed position or just returning), then correction turns the wheels into the corner by the angleOffset value.
2. When the script detects that a car is drifting and the player countersteers, then correction sets(usually decreases, but if you set a big value it can also increase) the wheels turning angle to the angleOffset_manualCS value that provides softer and predictable exit from drift and the car doesn't go into the opposite direction compared to vanilla steering.

angleOffset and angleOffset_manualCS parameters have a value range from 0 to 1, where 0 - the wheels are centered, 1 - max wheels turning angle from vehicles handling file. However due to technical things of the game, when values are set to zero, the game will take over control. Because of it, you should set non-zero values for these parameters. By default they are set to 0.1. Increasing the angleOffset value also increases oversteer while entering a drift. Increasing angleOffset_manualCS increases oversteer when exiting the drift.

If a vehicle isn't drifting or the player turns the wheels into the corner - the script stops the steering correction.

Drift detection

For drift detection the script uses two parameters: minSlipAngle и maxSlipAngle. When the drifting angle is between these two values and the car's speed is more than 20 km/h, the mod considers the situation as drifting. The parameters by default have the following values: minSlipAngle - 10 degrees, maxSlipAngle - 75 degrees. It means that the drifting is such a situation when an angle between the car's velocity vector and the car's direction vector is more than 10 and less than 75 degrees.

Pic 1. Zero degree on the image is the car's velocity vector.

minSlipAngle also affects the exit from drifting because it's a minimal angle between the vectors when the mod starts correcting the steering. These parameters can also be considered as a boundary value when the mod stops correcting the steering. It's important because a big value allows the game to take over control early, turn the wheels and sharply push the car in the opposite direction that leads to steering loss and this is what the mod tries to fix.

maxSlipAngle - determines the max angle of drift at which the car can be still controllable and needs steering correction. When the drift angle is more than this parameter value - the script stops steering correction and the game tries to get the car out of a skid. With the value at 75 degrees it's still possible. With bigger values it's an uncontrolled skid, but it depends on handling parameters of your vehicle

Correction timings

When the mod detects a situation when steering correction is needed, it waits for pause game frames. After the pause, if all conditions for the correction are still valid, then the mod applies steering correction for correctWheels game frames. When correctWheels elapse, the script gives the game the steering control to center the wheels(but as we know - for countersteering, but in this situation it really occurs that the wheels are almost centering) for one game frame. Then mods correction stage repeats for correctWheels frames. The pause before the steering correction is needed to configure/prevent oversteer on drift enter, because, as it was described above, the mod turns the wheels into the corner. That's why with a low value for pause parameter the car will start to skid much faster. And with a big value for correctWheels the car will be pulled into a skid for longer.

So, it turns out, minSlipAngle determines how soon to start/stop the steering correction at drift entry/exit, correctWheels determines how long to apply the steering correction, and angleOffset/angleOffset_manualCS determine how much to turn the wheel. maxSlipAngle determines when the car enters into an uncontrolled skid and steering correction isn't needed anymore.

All these parameters are configurable from a config file. You don't need to restart the game scripts because the mod automatically detects changes in the config file and applies them.


I tried to record a video showing the difference in vehicle control between vanilla and modded versions. I've tested it only on Supra GA70 by Navefa that I drive and with Manual Transmission mod. The Supra has my own custom handling where I've changed some parameters for the suspension and steering, disabled ABS to make it more similar to some kind of drift-car lol, and it still needs a lot of changes in the handling.


Requirements

Installation

  1. Install all libraries which are necessary.
  2. Unzip mod's archive to /GTArootFolder/scripts/. If you don't have that folder, just create it.