Skip to content

Driving and drifting

Kart drifting and drift boosts

On this page

This page goes over the bare minimum basics that you will probably want to adjust to fit your use cases.

How a drift works

Every drift runs through the same phases. Their settings live in the details panel under Kart Base Settings > Drifting, in the Stage categories named below.

  1. Hop. Press the drift button while steering left or right. If the Kart is faster than Minimum Speed Needed for Drift (1800 cm/s in BP_KartPawn), it hops and rotates into the drift. Otherwise it only jumps. Settings: Stage 0: Pre-Drift and Stage 1: Jump.
  2. Slide into the drift. After the hop, the Kart first slips in the direction it was moving, then blends into the drift direction. Settings: Stage 2: Slip.
  3. Drift. The two drift curves turn your steering into the drift direction and rotation (see Drift handling below). While you hold the throttle, the Kart keeps moving in the drift direction instead of losing speed. Settings: Stage 3: Drift.
  4. Correction after the drift. The drift ends when you let go of the drift button, or when the Kart gets slower than Minimum Speed Needed for Drift. Grip then blends back to normal. While a boost is active, a short post drift correction also nudges and turns the Kart roughly toward the camera direction, so it comes out of the drift smoothly. Settings: Stage 3: Post-Drift.

Drift settings

When using the included BP_KartPawn, the underlying drifting mechanic is used to implement drifting in stages.

When drifting, a drift is charged, starting at stage 0 (just some sparks are visible, when letting go no boost would occur). When holding a bit longer, the drift stage jumps to stage 1: A lot of blue sparks are now flying, and when letting go of the drift button, a boost will be applied.

To manage how long it takes for a specific boost to charge up, you can take a look at the Drift Boost Stages setting below.

Drift stages

To configure different drift stages take a look at the details panel or the class defaults of the BP_KartPawn and find the Drift Boosting category (Kart Base Settings > Drifting > Drift Boosting). Expand all child categories and then find the Drift Boost Stages. There you can:

  • Set how many stages there will be, by pressing the plus button or by removing an entry when clicking on the down chevron.
  • Set how fast the stage can be reached by adjusting the Boost Progress Threshold, basically how much “Charge” is needed to reach this.
  • Set the color of the sparks (Drift Sparks Color).
  • Set the maximum speed increase as well as the acceleration increase. The defaults you can see in the screenshot below are sensible.

The first entry of the list (Index [0]) is stage 1 above, the first stage that gives a boost. BP_KartPawn comes with three stages, reached at a Boost Progress Threshold of 1.5, 3 and 4.5.

Each entry has these fields:

FieldDefault for a new stageWhat it does
Boost Progress Threshold0Charge needed to reach this stage.
Boost Decay Speed2How fast the boost of this stage decays over time.
Boost Speed Increase in Percent0.2Extra top speed during the boost. 0.2 = +20%.
Boost Acceleration Increase in Percent1.0Extra acceleration during the boost. 1.0 = +100%.
Drift Sparks ColorWhiteColor of the drift sparks at this stage.

Drift Boost Collection Speed

When drifting, the longer you hold the drift, the more you charge/collect. If you want to change how fast a boost is charged, you can use the Drift Boost Collection Speed variable.

To edit at what point each specific drift stage is activated, you can go into the drift boost stages and modify the Boost Progress Threshold.

Details panel of the example Kart with Kart Base Settings > Drifting > Drift Boosting expanded: Drift Boost Stages with three entries (blue, orange and red sparks) and Drift Boost Collection Speed

Drift handling

You may want to adjust the feel of drift in the standard BP_KartPawn.

For example, you may want the Kart to be able to make tighter or wider turns when holding the steering stick to the left or right.

To change how exactly this feels, you just need to modify two curves in Kart Base Settings > Drifting:

  • Drift Curve
  • Drift Angular Velocity Curve

BP_KartPawn uses the curve assets FC_DriftVectorScaleByInput (Drift Curve) and FC_DriftAngularVelocityByInput (Drift Angular Velocity Curve) from the plugin’s Blueprints > Curves folder. A curve asset is shared by every Kart that uses it, so duplicate it first if you want to keep the original.

Drift Curve

The Drift Curve dictates where the drifting force will be applied when drifting, relative to the gamepad’s stick position.

If the gamepad is held all the way to the left, we sample the point at -1 on the x-axis in the graph. If we hold the stick to the right, the point at 1.0 on the x-axis will be sampled. At 0.0 we would sample the stick when it is not touched.

The underlying code will reverse this mapping, when the drift direction changes. So for both drift curves, 1.0 means steering into the drift and -1.0 means steering out of it.

Curve editor showing FC_DriftVectorScaleByInput: a value of about 1.1 across the whole input range from -1 to 1

Now regarding this drifting force, when a value of 1.0 is sampled in the graph, the drifting force vector will get calculated as driftingVector = 1.0 * sidewards vector + forward vector. Meaning, we get a roughly 45 degree angle.

If we want to make the Kart move more sideways or make it look like it lays itself more into a drift, we can increase the value to 1.5 or even 2.0.

A value of 1.1 achieves a classic Kart Racing look, which is why I chose it when trying to drift wider.

Drift Angular Velocity Curve

Similarly to the Drift Curve, we have the Drift Angular Velocity Curve, which works in roughly the same way, but this time it’s just about the rotation of the Kart.

Curve editor showing FC_DriftAngularVelocityByInput: rising from about 0.45 at -1 through 0.75 at 0 to about 1.35 at 1

Same thing as before: When holding the stick to steer inward when drifting, we are sampling the point at 1.0, when we hold the stick outward when drifting, we are sampling the point at -1.0.

The y-axis dictates how much forced-rotation should be applied at the specific inputs.

For example, when holding the stick inward, we want to be able to steer around tight corners, so we need to increase the torque. So we add a point at 1.0 on the x-axis with a value of 1.4. Likewise, when wanting to drift wider, we want to reduce the rate of rotation, so we set the value to something lower, like 0.5 at -1.0.

Details panel of the example Kart, Kart Base Settings > Drifting, with Drift Curve set to FC_DriftVectorScaleByInput and Drift Angular Velocity Curve set to FC_DriftAngularVelocityByInput

Next steps

Not using the plugin yet? Get it on Fab.