Drift Heaven v2

Arcade drift car physics for Unreal Engine 5.7 and 5.8. Easy, assisted drifting, burnouts, drift points with combos and multipliers, a player level / XP system, air ride, stance, headlights and underglow, runtime paint, multiplayer with chat, touch controls and steering wheel support, engine and tyre sounds, a main menu with settings, a chase camera with free look and a live debug menu to tune everything while you drive.

Everything is written in C++ and every class can be extended in Blueprint. You make a Blueprint child of the car, give it your own meshes and numbers, and react to events like On Drift Started in the Event Graph. You never have to touch the C++.

DriftCarPawnThe car: physics, meshes, wheels, stance, air ride, lights, paint, events.
DriftScorerComponent on the car: drift points, combo chain, multiplier.
DriftXPComponentComponent on the car: the EXP / level system, best drift score, saving.
DriftPlayerControllerKeyboard / gamepad input, the debug menu, HUD messages.
DriftCameraManagerChase camera, views, free look, crash shake.
DriftCarAudioComponent on the car: engine, gears, tyres, blow-off, air ride sounds.
DriftHUDSpeed, gear, rev bar, points, level / XP bar, messages.
DriftGameMode / DriftGameInstancePuts it all together and makes maps use it.

Quick start

Requirements: Unreal Engine 5.7 or 5.8, Windows (Win64). Works in Blueprint-only and C++ projects.

  1. Install: from Fab, add DriftHeaven to your engine (or project). To install by hand, copy the DriftHeaven folder into your project's Plugins folder (create it if it doesn't exist).
  2. Enable: Edit › Plugins, search DriftHeaven, tick it and restart the editor. In the Content Browser, turn on Settings › Show Plugin Content to see the plugin's folder.
  3. Play the demo: open DriftHeaven Content › Maps › DriftHeaven_Demo and press Play.
  4. Press X to open the debug menu and change the car live while you drive.

What's in the plugin

FolderWhat it is
Content/Blueprints/BP_DriftCarThe demo car (meshes assigned). Duplicate it or make your own child of DriftCarPawn.
Content/Blueprints/BP_DriftGameModeGame mode that spawns BP_DriftCar with the drift controller, HUD and camera.
Content/Blueprints/BP_DriftPlayerController, BP_DriftHUD, BP_DriftPlayerStateThe rest of the game setup, ready to extend.
Content/Maps/DriftHeaven_DemoDemo map (TRAINING).
Content/Maps/DriftHeaven_MenuMain menu map.
Content/AudioThe 13 car sounds (Sound Wave assets): engine loops, tyres, gears, blow-off, air ride. Free to use in your games.
Content/DemoThe demo sports car: meshes, materials, textures.
Source/DriftHeavenThe C++ code (15 classes).
To use DriftHeaven in your own maps, see Use your car in the game.

Controls

ActionKeyboard / mouseGamepad
ThrottleW / UpRight trigger
Brake / reverseS / DownLeft trigger
SteerA / D or Left / RightLeft stick
HandbrakeSpaceA or Right bumper
BurnoutHold throttle + brake while stoppedHold both triggers while stopped
Reset carRY
Manual / automatic gearboxMRight stick click
Shift up / down (manual)Q / ED-pad up / down
Air rideLD-pad left
HeadlightsHD-pad right
UnderglowU-
Change camera viewCB
Look aroundHold right mouse button + move; wheel zoomsRight stick
Debug menuXView / Back
ChatT or Enter (Enter sends, Esc cancels)-
Back to main menuBackspaceStart / Menu
Settings: switch tab / backQ / E, Esc or BackspaceBumpers, B

All keys except the driving keys can be changed: on the player controller (Controller reference) and the camera manager (Camera reference).

Create a new car in Blueprint

  1. In the Content Browser, right-click › Blueprint Class. Open All Classes, search DriftCarPawn, select it and click Select.
  2. Name it, for example BP_MyCar, and open it.
  3. Set the meshes: see Change the body mesh and Change the wheels.
  4. Click Class Defaults (toolbar) and set:
    • Drift | Tuning › Car Name: leave it empty and the car's setup is saved under the Blueprint's name (each car gets its own automatically), or type a name to share one setup between cars.
    • Drift | Tuning › Start Style: the driving mode (see Driving modes).
    • Drift | Tuning › Tuning: any handling values you want to change (see the Tuning reference).
  5. Compile and Save, then make the game spawn it: Use your car in the game.
Tip: the fastest way to get the handling right is to play, press X, move the sliders until it feels good, press SAVE SETUP, then copy the numbers into your Blueprint's Tuning (or just keep the saved setup: each car loads its own automatically).

Change the body mesh

The car is built from these components (see the Components panel in your Blueprint):

ComponentWhat it is
CollisionThe box the physics uses. Sized by Box Size (Class Defaults).
VisualRoot › BodyPivot › BodyThe body mesh. BodyPivot leans the body in turns and drops it for air ride.
Body › GlassWindows (optional, can be left empty).
VisualRoot › WheelPivot_FL / FR / RL / RR › Wheel_FL / FR / RL / RRThe four wheels. The pivots steer and camber, the wheel meshes spin.
HeadlightL / HeadlightR / UnderglowLights, attached to the body.
Scorer, XP, AudioDrift points, the EXP / level system and sounds. Select one to edit its values.
  1. Your mesh should face +X (forward), with Z up, in centimetres. The pivot can be anywhere; you line it up in step 4.
  2. Select the Body component and set Static Mesh to your car body. Do the same for Glass if your windows are a separate mesh (or clear it).
  3. In Class Defaults › Drift | Body:
    • Box Size: length, width and height of your car in cm. Its bottom is the ground.
    • Box Forward Offset: move the box forward if the car is longer in front of its centre.
    • Body Offset: move the body until the wheels sit on the ground (raise Z if it sinks in).
    • Body Rotation: only if your mesh doesn't face +X (a mesh facing +Y needs Yaw -90).
  4. Paint: set up which parts players can recolour in Drift | Paint › Paint Channels. See Paint & colours.
  5. Move the headlights into your lamps with Drift | Lights › Headlight Offset. Size the underglow with Underglow Size (keep it smaller than the car for a soft glow).
Turn on Show Collision in the viewport (or select the Collision component) to see the box against your body while you set it up.

Change the wheels

  1. Your wheel mesh should have its pivot in the centre of the wheel, with the axle along Y.
  2. Select Wheel_FL, Wheel_FR, Wheel_RL and Wheel_RR (Ctrl-click all four) and set Static Mesh to your wheel. You can use different meshes front and rear.
  3. In Class Defaults › Drift | Wheels:
    • Wheel Positions: the centre of each wheel in cm, in this order: front left, front right, rear left, rear right. X = forward from the car's centre, Y = right (left wheels are negative), Z = up from the ground.
    • Wheel Radius Cm: your wheel's radius (so it spins at the right speed and stays on the road when cambered).
    • Left Wheel Yaw / Right Wheel Yaw: if the rims face into the car, swap 0 and 180.
    • Max Visual Steer Deg: how far the front wheels turn.
  4. For the look, open the debug menu (X) › STANCE in game: car height, camber and wheel offset. Copy the values you like into Tuning › Stance.
The wheels are visual only. The physics doesn't use wheel colliders, so changing wheels never changes the handling.

Wheel motion blur: Unreal blurs a mesh by how far it moved since the last frame, so a wheel spinning at full speed smears into a messy disc. By default DriftHeaven caps the wheels' visible spin (Drift | Wheels › Max Wheel Spin Deg Per Sec, 540) so they stay crisp. Tick Wheel Motion Blur for the true spin speed.

Paint & colours

Players can change the car's colours at runtime: in the debug menu (X › PAINT) or from your own Blueprint UI. Each part that can be recoloured is a paint channel.

Set up paint channels

  1. In your car Blueprint, Class Defaults › Drift | Paint › Paint Channels: click + for each part (for example Body and Rims).
  2. For each channel set the Target mesh, the Material Slots to colour (the slot names from the Static Mesh editor) and the Color Parameter.
  3. The material needs a colour parameter: open the material, right-click the colour going into Base Color › Convert to Parameter and give it a name (for example PaintColor). If Base Color comes from a texture, multiply the texture by a Vector Parameter to tint it. Apply and save.
FieldDefaultWhat it does
LabelBodyName shown in the debug menu and used by Set Paint Color By Label ("Body", "Stripes", "Rims").
TargetBodyWhich mesh: Body, Glass or Wheels (all four wheels).
Material SlotsemptyMaterial slot NAMES on that mesh (Static Mesh editor › Material Slots). Empty = every slot.
Color ParameterNoneVector parameter to set in those materials. None = tries Paint Tint, PaintColor, BaseColor, Base Color, BaseColorFactor, Color, Tint, DiffuseColor.
ColorwhiteStarting colour.
RandomizetrueGets a random colour on spawn / reset (when Random Color On Spawn / Respawn is on).
Example: rims on a wheel with materials M_Spoke, M_Tires and M_Screw: Label Rims, Target Wheels, Material Slots M_Spoke, Color Parameter PaintColor. The tyres and bolts keep their colour.

In game, X › PAINT: < > picks the channel, then click a quick colour or click / drag on the colour palette (hue left to right, white at the top, black at the bottom, greys on the right). The headlight and underglow colours under LIGHTS use the same palette.

Random colours: Random Color On Spawn / Respawn give every channel with Randomize ticked a new colour (only from Paint Palette if you fill it). With no paint channels, the car uses one body colour set through Paint Parameter on every body slot.

Missing materials, slots or parameters are skipped quietly: nothing errors, the colour just doesn't show.

Use your car in the game

The car is spawned by a game mode. Make a Blueprint child of DriftGameMode (or duplicate BP_DriftGameMode) and set its Default Pawn Class to your car. Then choose where it's used:

The drift game mode also sets the player controller (input, debug menu, camera), the HUD and the player state. To use your own, change them in your game mode Blueprint (use Blueprint children of the DriftHeaven classes so everything keeps working).

Always spawn a Blueprint car with its meshes set. The plain C++ DriftCarPawn has no meshes and is invisible.

DriftHeaven includes a main menu built in C++: the DRIFT HEAVEN title, TRAINING, SETTINGS and QUIT on the left, and DISCORD and WEBSITE buttons at the bottom right. It works with mouse, keyboard and gamepad. The 3D scene behind it is your own map.

Set up a menu map

  1. Make a map (the plugin's is Maps/DriftHeaven_Menu) with your scene: a garage, a car Blueprint placed in it for show, lights.
  2. World Settings › GameMode Override: DriftMenuGameMode (or a Blueprint child). It spawns no player car and shows the menu.
  3. Camera: place a Camera Actor and give it the tag MenuCamera (Details › Actor › Tags). With no camera, the menu slowly orbits the first drift car in the map.
  4. Project Settings › Maps & Modes › Game Default Map: your menu map, so the game starts on it.

In game, BACKSPACE (gamepad Start) goes back to the menu map set in the player controller's Menu Map.

Menu settings

On DriftMenuPlayerController (make a Blueprint child and set it in your menu game mode):

SettingDefaultWhat it does
Training MapDriftHeaven_DemoMap opened by TRAINING.
Title Top / Title BottomDRIFT / HEAVENThe two lines of the title (the second one is purple).
TaglineARCADE DRIFTSmall text above the title.
Footer TextemptyBottom-left text. Empty = DRIFT HEAVEN v(plugin version) | ZEXP.
Discord URLdiscord.gg/zcMT75d3YtDISCORD button link.
Website URLzexp.devWEBSITE button link.
Menu Camera TagMenuCameraA Camera Actor with this tag is used as the view.
Orbit Display CartrueWith no tagged camera, orbit the first drift car in the map.
Orbit Speed / Distance / Height / FOV5 / 720 / 170 / 50The orbit: degrees per second, cm, cm, degrees.
Frame Offset160Moves the car to the right of the screen (cm), clear of the buttons.

Override On Training Pressed or On Quit Pressed in the Blueprint to do something else (a loading screen, a confirmation...). Open URL, Show Menu, Hide Menu and Open Settings can be called from anywhere.

SETTINGS

TabOptionsSaved in
AUDIOMaster, Engine, Tyres, Effects volume, Reset audioSaved/SaveGames/DriftSettings.sav (DriftUserSettings: Get Drift User Settings in Blueprint)
DISPLAYWindow mode, Resolution, Render resolution, V-Sync, Frame rate limitGameUserSettings.ini (Unreal's Game User Settings)
GRAPHICSOverall quality, Auto-detect, View distance, Anti-aliasing, Shadows, Global illumination, Reflections, Post processing, Textures, Effects, Foliage, ShadingGameUserSettings.ini

Changes apply and save instantly. Q / E (gamepad bumpers) switch tabs, Esc / Backspace (gamepad B) goes back. The car's sounds follow the audio volumes automatically.

Driving modes

There are three driving styles. Each one is a full set of Tuning values:

StyleFeelTop speed
DriftTorque, easy long slides, the default.~160 km/h (45 m/s)
Road RaceHalf way between Drift and Straight Speed: more grip, faster, still slides.~250 km/h (70 m/s)
Straight SpeedGrip and top speed, little sliding, 8 gears.~340 km/h (95 m/s)

Where to change it

What a style changes

A style changes the handling values (engine, grip, steering, drift angles, gears). It keeps your stance and lights. The full list of what each style sets is in the Tuning reference (the small "Road · Straight" line under each default). To make your own mode, pick the nearest style, adjust the sliders and press SAVE SETUP, or set Start Style to Custom and type your values into Tuning.

Assist and gearbox

Debug menu (X)

Press X while playing. The mouse cursor appears and the car still drives. Every change is live.

SectionWhat's in it
CAR TUNINGStyle buttons, SAVE SETUP / LOAD SAVED / RESET DEFAULTS, assist level, manual gearbox, debug text, random paint, a slider for every handling value, burnout_max_slip.
STANCECar height, camber front / rear, wheel offset front / rear, RESET STANCE. Looks only.
PAINTPick a paint channel (< >), quick colours and a colour palette.
LIGHTSHeadlights and underglow: on / off, quick colours, colour palette, brightness, beam, range, pulse, underglow height / length / width.
WHEEL BLURWheel motion blur on / off, max visible wheel spin.
AIR RIDEAired out on / off, drop, camber, wheel push, timing.
CAMERAViews 1-4, invert Y, drift camera on / off, sensitivity, follow speed, field of view, speed effects, shake, zoom limits, the current view's distance and height.
SOUNDSound on / off, every volume, engine pitch, idle and redline RPM.
DRIFT POINTSHow points are earned, the combo window, multipliers, burnout points.
PLAYER XPLevel, EXP, best drift, totals; +1000 EXP, +1 LEVEL, RESET PROFILE; drifts give EXP on / off; level, EXP in level, EXP per level, EXP per point, multiplier, max level, start level.

Saving

WhatWhereHow
Car setup (handling, stance, lights)Saved/DriftTuning/<setup name>.jsonOne per car: the setup name is Car Name, or the Blueprint's name when Car Name is empty. SAVE SETUP in the debug menu, Save Tuning in Blueprint, or tick Auto Save Setup. Loaded automatically when the car spawns (Auto Load Setup). LOAD SAVED reloads it, RESET DEFAULTS goes back to the style.
Player level, EXP, best scoreSaved/SaveGames/<Save Slot>.sav (default DriftProfile)Saved automatically by the car's XP component (Auto Save). RESET PROFILE in the debug menu, or Reset Profile in Blueprint, clears it.
A saved setup always wins over the Blueprint's Tuning values. If your Blueprint changes don't show, press RESET DEFAULTS, untick Auto Load Setup, or call Delete Saved Setup. The debug menu shows the car's setup name and whether it has a saved setup. Paint colours are not part of the saved setup.

Multiplayer

DriftHeaven cars work in multiplayer out of the box (listen server or dedicated server). Each player drives their own car on their own machine, so drifting feels exactly like single player with no input lag. Their car's position, drift state, inputs, gear, stance, lights, air ride and paint are sent to everyone else, and other players' cars are drawn smoothly blended between updates.

Try it

  1. Place a few Player Starts in your map, so cars don't spawn inside each other.
  2. In the editor: Play button menu › Number of Players: 2, Net Mode: Play As Listen Server, then Play.
  3. In a packaged game: one player opens the map with ?listen (for example open DriftHeaven_Demo?listen in the console), the others connect with open <host IP>.

What everyone sees

The scores come from DriftPlayerState: Drift Level, Best Drift, Session Score, Current Drift and Current Multiplier are replicated and can be read in Blueprint for your own scoreboard. The name is Unreal's Player Name: call Set Name on the player controller to change it.

Network settings (car Blueprint › Drift | Network)

SettingDefaultWhat it does
Net Send Rate30Updates per second the owning player sends (5 - 60).
Net Interp Delay0.1Other players' cars are shown this far in the past (s) so there are always two updates to blend. Raise to 0.15 - 0.2 for bad connections.
Net Max Extrapolation0.25When updates stop arriving, keep the car moving along its last velocity for at most this long (s).
Each player's EXP, level and saved setups stay on their own machine. Other players' cars never score points or write your save files. The owner decides where their car is, so this is ideal for drift lobbies, cruises and tandems; it isn't cheat-proof for competitive ranked racing.

Chat

Text chat for single player and multiplayer, built into the drift player controller (the Chat component). Press T or Enter to open the chat box, type, Enter to send, Esc to cancel. While typing, the car lets go of every control. Messages show bottom left and fade after a few seconds; system messages are orange and replies only for you are blue. On touch screens use the CHAT button.

Chat settings (player controller › Chat component)

SettingDefaultWhat it does
Max Message Length120Longer messages are cut (server).
Min Seconds Between Messages1Cooldown between two messages from the same player.
Burst Limit / Burst Window5 / 10At most this many messages in this many seconds.
Filter ProfanitytrueReplace banned words with ***.
Banned Words10 common swear wordsYour word list (not case sensitive, also inside other words).
Announce Join Leavetrue"Name joined" / "Name left" (multiplayer).
Announce Big Drifts / Big Drift Pointstrue / 25000"Name banked a 25,000 point drift!" for everyone (multiplayer).
Announce Level Upstrue"Name reached level 5!" (multiplayer).
Custom CommandsemptyYour own /commands (lower case, no slash). Typing one fires On Chat Command on the server.
Max History / Visible Lines / Fade Seconds50 / 8 / 10Messages kept, lines on screen, seconds before a line fades (all recent lines show while typing).

Touch controls

On phones and tablets, on-screen controls appear automatically: a steering pad bottom left (slide your thumb left and right), GAS, BRAKE and HAND (handbrake) bottom right, and RESET, CAM, AIR, LIGHTS and CHAT above the pad. On a PC with a touch screen they appear as soon as the screen is touched. Several fingers work at once.

Player controller › Drift | Touch: Touch Controls (Auto / Always / Never), Touch Button Scale and Touch Opacity. To test them in the editor, tick Project Settings › Input › Use Mouse For Touch or set Touch Controls to Always.

The plugin is set up for Windows. To build for Android or iOS, add the platform to SupportedTargetPlatforms and the module's PlatformAllowList in DriftHeaven.uplugin.

Steering wheel

Wheels that work as an Xbox controller (many Logitech / Thrustmaster wheels in Xbox mode) work straight away: the wheel steers and the pedals act as the triggers. For other wheels (DirectInput):

  1. Edit › Plugins: enable Raw Input and restart.
  2. Project Settings › Raw Input: add your wheel's Vendor ID and Product ID (Windows Device Manager › your wheel › Details › Hardware Ids: VID_xxxx&PID_xxxx) and map its axes.
  3. Play and turn the wheel: it takes over as soon as it moves. If an axis is wrong, change it on the player controller (Drift | Steering Wheel).

If the car accelerates on its own or the pedals do nothing, change Pedals Full Range / Invert Pedals. If steering is reversed, tick Invert Wheel Steer. Wheel Steer Scale sets how much you turn for full lock. Keyboard, gamepad, wheel and touch all work at the same time. There's no force feedback.

Reference: Tuning

Found on the car under Class Defaults › Drift | Tuning › Tuning. Units are metres and seconds (m/s × 3.6 = km/h). The "Road · Straight" line shows what the Road Race and Straight Speed styles set; values without it are the same in every style.

Engine

How fast the car gets going, how it slows down and its top speed.

ValueDefault (Drift)UnitDebug sliderWhat it does
max_speed45
Road 70 · Straight 95
m/s15 - 110Top speed. 45 m/s is about 160 km/h (multiply by 3.6 for km/h). The engine's push fades to nothing as the car gets close to it.
engine_accel6
Road 8.5 · Straight 11
m/s²2 - 30Acceleration from a standstill. Higher = quicker off the line. It fades toward max_speed and is shaped by the gear torque.
drift_engine_factor0.6
Road 0.5 · Straight 0.4
x0 - 1.5How much of the engine's push is kept while drifting. 1 = full power while sideways, lower = the car slows down in long drifts.
reverse_max_speed8m/s-Top speed in reverse (hold brake when stopped).
reverse_accel6m/s²-Acceleration in reverse.
brake_decel18
Road 19 · Straight 20
m/s²5 - 60Braking power. Higher = shorter stops.
rolling_resistance1
Road 0.9 · Straight 0.8
m/s²-Constant slow-down when coasting (no throttle, no brake).
air_drag0.0008
Road 0.00052 · Straight 0.00025
-Air resistance, grows with speed squared. Lower = higher real top speed and less slow-down at speed.

Grip

How hard the tyres stop the car sliding sideways (m/s of sideways speed removed every second).

ValueDefault (Drift)UnitDebug sliderWhat it does
grip45
Road 52.5 · Straight 60
m/s²10 - 120Normal grip when not drifting. Higher = the car goes where it points, lower = it slides around in turns.
drift_grip8
Road 9 · Straight 10
m/s²0 - 30Grip while drifting. Low = long, floaty slides; high = the car straightens up quickly.
handbrake_grip3
Road 3.5 · Straight 4
m/s²0 - 20Rear grip while the handbrake is held. Lower = the handbrake kicks the rear out more.
handbrake_decel5m/s²-How much the handbrake slows the car down.
power_slide0.85
Road 0.465 · Straight 0.08
0 - 10 - 1Full steering + throttle loosens the rear so the car steps out without the handbrake. 0 = off (handbrake needed to start drifts).
drift_speed_retention0.55
Road 0.45 · Straight 0.35
0 - 10 - 1Part of the sideways speed the tyres scrub off that is fed back into forward speed while on the throttle. Higher = drifts keep their speed.

Steering

Normal (grip) steering.

ValueDefault (Drift)UnitDebug sliderWhat it does
steer_rate2
Road 1.8 · Straight 1.6
rad/s0.5 - 5How fast the car turns at full lock. Higher = sharper turning.
steer_full_speed5
Road 5 · Straight 5
m/s-Speed at which steering reaches full strength. Below it, steering is weaker (so the car can't spin on the spot).
high_speed_steer_factor0.55
Road 0.465 · Straight 0.38
x-Steering strength left at top speed (1 = same as slow, 0.5 = half). Makes high speed stable.
yaw_response8
Road 7.5 · Straight 7
1 - 25How quickly the car's turning follows the steering. Higher = snappy, lower = lazy and smooth.

Drift

When a drift starts and ends, and the angle the drift assist holds.

ValueDefault (Drift)UnitDebug sliderWhat it does
drift_enter_angle10
Road 15 · Straight 20
deg3 - 40Slip angle (how sideways the car is) needed to start a drift. Lower = drifts start easily.
drift_exit_angle4
Road 5 · Straight 6
deg1 - 20Below this angle the car counts as straight again.
drift_exit_time0.3s0 - 1How long the car must stay straight before the drift ends (and before the drift ended event fires).
min_drift_speed5m/s1 - 20Slowest speed a drift can start at. The drift also ends below half of this.
drift_base_angle30
Road 22.5 · Straight 15
deg5 - 60Angle the car holds at full throttle with the steering straight.
drift_lift_factor0.15x0 - 1Off the throttle the held angle is drift_base_angle x this, so lifting off straightens the car.
drift_steer_angle18deg0 - 45Extra angle from steering into the slide.
max_drift_angle55
Road 42.5 · Straight 30
deg20 - 85Largest angle the assist will ever aim for.
transition_strength1x0 - 1.5How far the car swings to the other side in a transition (full counter-lock held). 1 = the same angle the other way.
drift_angle_correction2.20.5 - 10How strongly the car is pulled to the target angle. Higher = the angle locks in, lower = looser and more manual.
handbrake_kick0.9
Road 0.7 · Straight 0.5
rad/s0 - 4Instant rotation when the handbrake is pulled while steering. Higher = sharper handbrake entries.

Counter-steer

What happens when you steer against the slide.

ValueDefault (Drift)UnitDebug sliderWhat it does
countersteer_min_angle10deg-30 - 40Angle the car eases down to at full counter-lock (catching the slide). Negative = full counter-lock pulls the car right through to the other side.
countersteer_curve1.50.5 - 3How the counter-steer builds up: 1 = straight line, higher = small corrections do little and full lock does a lot.
countersteer_catch10 - 3Extra pull toward the target angle while counter-steering. Higher = slides are caught faster.
transition_threshold0.850 - 10.5 - 1How much counter-lock (0 - 1) counts as "full" for a transition.
transition_delay0.3s0 - 1.5How long full counter-lock must be held before the car swings to the other side.
visual_countersteer0.80 - 10 - 1Visual only: how much the front wheels turn toward the slide (opposite lock) while drifting.

Assist

Used by the drift assist levels (see Assist Level).

ValueDefault (Drift)UnitDebug sliderWhat it does
line_control0.6-With assist on, steering into or out of the drift changes the drift grip, so you can tighten or widen your line. 0 = off.

Gearbox

Gears for the automatic and manual gearbox (M switches, Q up, E down).

ValueDefault (Drift)UnitDebug sliderWhat it does
gear_top_speeds11, 18, 26, 34, 41, 48
Road 14, 24, 34, 44, 54, 62, 70 · Straight 16, 28, 40, 52, 64, 76, 86, 95
m/s-Top speed of each gear. The number of entries = the number of gears. The automatic shifts up at 97% of a gear's top speed and down below 62% of the gear below.
gear_torque1.35, 1.2, 1.1, 1.0, 0.95, 0.9
Road 1.4, 1.25, 1.15, 1.05, 0.98, 0.93, 0.88 · Straight 1.45, 1.3, 1.2, 1.1, 1.02, 0.96, 0.9, 0.86
x-Pull of each gear (same order). Low gears pull harder.
shift_time0.12s-Power cut while a gear changes.
engine_brake2m/s²-Slow-down from the engine when off the throttle (stronger at high revs).
clutch_speed5m/s-Below this speed in 1st / 2nd the clutch slips, so the car pulls well off the line.
lug_torque0.30 - 1-Pull left at very low revs (lugging the engine in too high a gear). 1 = no penalty.

Crashes

Hitting walls.

ValueDefault (Drift)UnitDebug sliderWhat it does
crash_bounce0.30 - 10 - 1Part of the speed into the wall that bounces back out. 0 = the car stops dead on the wall, 1 = full rebound.
crash_scrape0.350 - 10 - 1Speed lost along the wall in a hard hit. Higher = hits cost more speed.
crash_spin0.080 - 0.3How much a hit on a corner of the car spins it.
crash_recover0.45s0 - 1.5How long the car stays unsettled (looser steering) after a hard hit.
crash_min_speed1.5m/s-Hits slower than this into the wall are ignored (no bounce, no spin).
mass1
Road 1.075 · Straight 1.15
x-Reserved for car-to-car collisions. Not used by the physics yet.

Stance

Looks only, never changes the handling. In the debug menu under STANCE.

ValueDefault (Drift)UnitDebug sliderWhat it does
ride_height0m-0.10 - 0.15Car height: + raises the body over the wheels, - lowers it. The debug menu shows it in cm (car_height_cm).
camber_front0deg-10 - 20Front wheel tilt. + = the tops of the wheels lean in (negative camber, the stance look), - = tops out.
camber_rear0deg-10 - 20Rear wheel tilt, same as above.
wheel_offset_front0cm-5 - 10Front wheels pushed out (+) or in (-), like wheel spacers.
wheel_offset_rear0cm-5 - 10Rear wheels pushed out (+) or in (-).

Lights

Looks only. In the debug menu under LIGHTS. H toggles headlights, U toggles underglow.

ValueDefault (Drift)UnitDebug sliderWhat it does
headlights_ontrue-Headlights on or off.
headlight_color(1, 0.95, 0.85)colour-Headlight colour (red, green, blue, 0 - 1).
headlight_intensity8000cd0 - 50000Headlight brightness (candelas).
headlight_cone35deg10 - 80Width of the beam.
headlight_range4000cm500 - 15000How far the light reaches.
underglow_ontrue-Underglow (neons) on or off.
underglow_color(0.55, 0.1, 1)colour-Underglow colour (purple by default).
underglow_intensity150cd0 - 5000Underglow brightness. Too high washes the colour out to white.
underglow_range350cm50 - 1000How far around the car the glow reaches.
underglow_pulse0Hz0 - 5Pulses per second. 0 = steady.

World

ValueDefault (Drift)UnitDebug sliderWhat it does
gravity30m/s²5 - 60Gravity on the car. Arcade: much heavier than real (9.8) so the car stays planted over bumps and lands fast from jumps.
style0-The driving style this setup started from (0 Drift, 1 Road Race, 2 Straight Speed). Set by the style buttons / SetStyle. To choose the style a car spawns with, use Start Style instead.

Reference: Car settings

Found on the car under Class Defaults.

Drift | Tuning

SettingDefaultWhat it does
Tuning-All the values in the Tuning reference below. Open it in Class Defaults to edit.
Car NameemptyName of this car's saved setup (Saved/DriftTuning/<name>.json). Empty = the Blueprint's name (BP_MyCar...), so every car Blueprint gets its own setup automatically. Give two Blueprints the same Car Name to share one setup.
Auto Load SetuptrueLoad this car's saved setup when it spawns (if there is one).
Auto Save SetupfalseSave the setup automatically when the car is removed or the game ends (no need to press SAVE SETUP).
Start StyleDriftDriving style the car spawns with: Drift, Road Race, Straight Speed, or Custom (the Tuning values exactly as set in the Blueprint). A saved setup is loaded on top.
Assist Level0Drift assist: 0 off (raw tuning), 1 normal, 2 strong. See Assist levels.
ManualfalseStart with the manual gearbox (M toggles it in game).
Burnout Max Slip20Largest slip angle (degrees, either side) during a burnout.

Drift | Meshes

SettingDefaultWhat it does
Default Body MeshemptyOptional fallback body mesh, used only if the Body component has no mesh. Skipped quietly if the asset doesn't exist.
Default Glass MeshemptyOptional fallback glass mesh (same rule).
Default Wheel MeshemptyOptional fallback wheel mesh for any wheel left empty (same rule).

Drift | Body

SettingDefaultWhat it does
Box Size(462, 196, 128)The collision box in cm: length, width, height. Its bottom is the ground under the wheels. Make it match the body.
Box Forward Offset12Moves the box forward (cm) if the body is longer at the front than at the back.
Body Offset(0, 0, 14.3)Where the body mesh sits (cm), from the point on the ground under the car's centre. Raise Z if the body sinks into the ground.
Body Rotation(0, 0, 0)Rotate the body mesh if it isn't modelled facing +X (forward). For a mesh facing +Y use Yaw -90.

Drift | Wheels

SettingDefaultWhat it does
Wheel PositionsFL, FR, RL, RRCentre of each wheel in cm, from the same point as Body Offset (X forward, Y right, Z up). Order: front left, front right, rear left, rear right. Left wheels have negative Y.
Wheel Radius Cm39.3Wheel radius in cm. Used to spin the wheels at the right speed and to keep them on the road when cambered.
Left Wheel Yaw180Turns the left wheel meshes so the rim faces outward. Swap 0 / 180 if the rims face into the car.
Right Wheel Yaw0Same for the right wheels.
Max Visual Steer Deg32How far the front wheels turn at full lock (visual only).
Wheel Motion BlurfalseOff: the wheels' visible spin is capped (Max Wheel Spin Deg Per Sec) so Unreal's motion blur doesn't smear them into a messy disc. On: true spin speed.
Max Wheel Spin Deg Per Sec540Fastest visible wheel spin when Wheel Motion Blur is off. Lower = less blur, slower-looking spin. Physics is never affected.

Drift | Lights

SettingDefaultWhat it does
Headlight Offset(215, 62, 72)Position of the right headlight in cm (body mesh frame). The left one is mirrored. Move it into your car's lamps.
Headlight Aim Down4Degrees the headlights point down.
Underglow Offset(0, 0, 22)Centre of the underglow light panel (cm, body mesh frame). Keep it up under the floor.
Underglow Size(220, 70)Light panel length and width (cm). Keep it smaller than the car: the light spreads past it and fades softly. Big and low = a hard bright box on the road.

Drift | Air Ride

SettingDefaultWhat it does
Air Drop Cm7How far the body drops when aired out (cm). Lower it if the body clips through the wheels.
Air Camber Front6Front camber when aired out (degrees, tops of the wheels in).
Air Camber Rear7Rear camber when aired out.
Air Push Front0Front wheels pushed out when aired out (cm), to sit flush with the arches.
Air Push Rear1Rear wheels pushed out when aired out (cm).
Air Down Time1.6Seconds to dump the bags.
Air Up Time1.1Seconds to air back up.

Drift | Paint

SettingDefaultWhat it does
Random Color On SpawntruePick a random body colour when the car spawns.
Random Color On RespawntrueAlso pick a new colour when the car is reset (R).
Paint ChannelsemptyThe colours players can change at runtime, one entry per part (Body, Stripes, Rims...). See Paint and colours. Empty = one body colour using Paint Parameter on every body material slot.
Paint ParameterPaint TintOnly used when Paint Channels is empty: the colour parameter in your body material (the template body uses "Paint Tint").
Paint PaletteemptyRandom colours are picked only from these. Empty = any bright colour, plus the odd white, black or silver.

Drift | Engine

SettingDefaultWhat it does
Idle RPM900Engine revs at idle (sound and rev bar).
Redline RPM7000Engine revs at the top of each gear (sound and rev bar).

Reference: Assist levels

Set with Assist Level on the car or in the debug menu.

Effect0 Off1 Normal2 StrongWhat it means
Drift gripx1x1.15x1.35Drifts are easier to hold.
Line controloffx1x1.5Steering tightens / widens the drift line (line_control).
Speed kept in driftsx1x0.85x0.7drift_speed_retention: assisted drifts are a little slower and calmer.
Angle correctionx1x1.2x1.5The car holds its angle more firmly (drift_angle_correction).
Extra high-speed steering0+15%+35%Less steering lost at high speed (high_speed_steer_factor).

Reference: Drift points

Points build up while drifting (drift angle × speed) and in burnouts. Drifts linked within the combo window form a chain and grow the multiplier. When you stop drifting for longer than the combo window the chain is banked (chain × multiplier goes to the EXP system); a hard wall hit loses it.

Select the Scorer component in your car Blueprint to edit these:

SettingDefaultWhat it does
Points Rate0.25Points per second for every (degree of drift angle x m/s of speed). Higher = more points.
Combo Window1.5Seconds you can be out of a drift before the chain is banked. Link drifts inside it to keep the chain going.
Multiplier Step Time2.5Seconds of drifting for every +1 on the multiplier.
Max Multiplier5Highest multiplier.
Crash Impact5A wall hit that takes this much speed (m/s) off the car loses the whole chain.
Burnout Rate40Points per second when a burnout starts...
Burnout Rate Max140...rising to this...
Burnout Ramp5...after this many seconds of burnout.

Blueprint: override Get Points Per Second in a Blueprint child of DriftScorer to change how points are earned.

Reference: EXP and levels

The EXP system is the XP component on the car (DriftXPComponent). Select it in your car Blueprint's Components panel to edit every value. Banked drifts give EXP (points × XP Per Point × XP Multiplier); when the EXP in a level reaches what the level needs, the player levels up, and anything left over carries into the next level. Level, EXP, best drift score and totals are saved automatically.

How much EXP each level needs

Level n needs Base XP Per Level + (n − 1) × Extra XP Per Level. With the defaults:

Level1 → 22 → 33 → 44 → 59 → 10Total to reach 10
EXP1000150020002500500027 000

Your own curve: fill XP Table on the XP component. Entry 0 is the EXP for level 1 → 2, entry 1 for 2 → 3, and so on (for example 500, 800, 1200, 2000, 3500). Levels past the end of the table use the last entry plus Extra XP Per Level for each level after it. Leave it empty to use the formula above.

Settings

SettingDefaultWhat it does
Base XP Per Level1000EXP needed to go from level 1 to level 2.
Extra XP Per Level500Extra EXP needed for every level after that. With the defaults: level 2 needs 1000, level 3 needs 1500, level 4 needs 2000...
XP TableemptyYour own level curve: entry 0 = EXP for level 1 → 2, entry 1 = 2 → 3... Levels past the end use the last entry + Extra XP Per Level per level. Empty = the formula (Base + (level − 1) × Extra).
XP Per Point1EXP for every banked drift point. 0.5 = half, 2 = double.
XP Multiplier1Multiplies ALL EXP gained, from drifts and from Add XP (double-XP events, difficulty settings...).
Max Level0Highest level. 0 = no limit. At the top, EXP stops and only the lifetime totals keep growing.
XP From DriftstrueBanked drifts give EXP automatically. Untick to only give EXP with your own Add XP calls (missions, races...).
Start Level1Level a new profile starts at (and the level Reset Profile goes back to).
Save SlotDriftProfileSave game name (Saved/SaveGames/<Save Slot>.sav). Cars with the same slot share one profile, so the player keeps their level when they change car.
Load On Begin PlaytrueLoad the profile when the car spawns.
Auto SavetrueSave after every EXP gain. Untick to save only when you call Save Profile.

Values you can read

VariableWhat it is
LevelCurrent level.
XPEXP inside the current level (towards the next one).
Best ComboBest banked drift score.
Lifetime PointsEvery banked drift point ever.
Total XP EarnedEvery EXP ever earned.

Functions

FunctionWhat it does
Add XP (Amount, bApplyMultiplier)Give EXP from anything: missions, races, pickups. Levels up as needed. Tick bApplyMultiplier to use XP Multiplier.
Add Combo (Points)Same as a banked drift: updates the best score and lifetime points and gives Points x XP Per Point EXP.
Set Level (NewLevel)Jump to a level (EXP in it goes back to 0). Doesn't fire On Level Up.
Set XP (NewXP)Set the EXP inside the current level (levels up if it's enough).
Set Best Combo (NewBest)Change the best drift score.
Get XP To Next Level (ForLevel)EXP needed to finish a level (from XP Table, or the formula).
Get Level Progress0 to 1 through the current level, for XP bars.
Get XP RemainingEXP still needed for the next level.
Is Max LevelTrue at Max Level.
Save Profile / Load Profile / Reset ProfileSave, load, or go back to Start Level with 0 EXP and 0 best score (and save).

Examples

Reference: Camera

On DriftCameraManager. Make a Blueprint child and set it as the player controller's Player Camera Manager Class to change the defaults, or tweak live in the debug menu.

SettingDefaultWhat it does
Use Drift CameratrueOff = Unreal's normal view from the car's own Camera component.
Presets4 viewsThe chase views (C switches): X = distance behind, Y = height, Z = look-at height, all in cm. Defaults: (600, 220, 110), (850, 320, 100), (450, 180, 110), (1800, 1400, 0).
Preset0View used at the start (0 = first).
Follow Sharpness5How quickly the camera swings in behind the car.
Velocity Blend0.80 = the camera sits behind the nose, 1 = behind the direction of travel (shows off the drift angle).
Fov Base90Field of view (degrees).
Fov Speed Gain8Extra field of view at top speed.
Fov Fast Gain10Extra again when going really fast (over ~40% of top speed).
Fast Pull Back120How much further back the camera goes at high speed (cm).
Fast Drop40How much lower it goes at high speed (cm).
Rumble0.5Fine road buzz at high speed. 0 = off.
Crash Shake1Shake strength on wall hits. 0 = off.
Mouse Sensitivity0.005Free look speed with the mouse.
Stick Speed2.5Free look speed with the right stick.
Invert YfalseInvert up / down in free look.
Orbit Min / Max Distance260 / 1200Mouse wheel zoom limits in free look (cm).
Orbit Look Height65Height of the point the camera orbits around (cm above the ground).
Photo Mode Max Speed3With the car aired out and below this speed (m/s) the free look view stays where you leave it.
Cycle View Key / Gamepad KeyC / BKeys that switch views.
Free Look KeyRight Mouse ButtonHold to look around.

Reference: Sound

On the car's Audio component (select it in your Blueprint). The sounds are Sound Wave assets in the plugin's Content/Audio folder, set by default on every car. To use your own, pick them in Drift | Sound | Assets (any Sound Wave or Sound Cue). The six engine loops and the two tyre sounds are looped automatically. Any slot left empty is just skipped. You're free to use the included sounds in your own games. Play One Shot plays any sound once.

SettingDefaultWhat it does
Sound EnabledtrueAll car sounds on / off.
Master Volume0.6Volume of everything.
Engine Volume0.8Engine loops.
Squeal Volume0.7Tyre squeal in drifts and burnouts.
Scrub Volume0.55Low rubber scrub at the start of a slide.
Shift Volume0.9Gear change clunk.
Blow Off Volume0.6Blow-off valve when lifting at high revs.
Air Volume0.8Air ride valve hiss.
Engine Pitch1Deeper (lower) or higher engine note.
Engine Low / Mid / High Onengine_*_onEngine loops on the throttle (low, mid, high revs). Looped automatically.
Engine Low / Mid / High Offengine_*_offEngine loops off the throttle. Looped automatically.
Tyre Scrub / Tyre Screechtyre_scrub / tyre_screechSlide sounds. Looped automatically.
Shift Up / Shift Downshift_up / shift_downGear change sounds.
Blow OffblowoffBlow-off valve.
Air Down / Air Upair_down / air_upAir ride valve hiss.

Reference: Controller

On DriftPlayerController (make a Blueprint child and set it in your game mode to change these).

SettingDefaultWhat it does
Steer Speed5How fast keyboard steering goes to full lock.
Steer Return Speed8How fast keyboard steering returns to centre.
Deadzone0.15Gamepad stick and trigger deadzone.
Debug Menu KeyXOpens the debug menu.
Air Ride KeyLAir ride on / off.
Headlights KeyHHeadlights on / off.
Underglow KeyUUnderglow on / off.
Back To Menu KeyBackspaceBack to the main menu (gamepad: Start). Only if Menu Map exists.
Menu MapDriftHeaven_MenuThe main menu map.
Show Debug TexttrueDebug numbers at the bottom left (can be toggled in the debug menu).
Chat KeyTOpens the chat box (Enter also opens it). Enter sends, Esc cancels.
Touch ControlsAutoOn-screen controls: Auto (phones / tablets, and on PC as soon as the screen is touched), Always or Never.
Touch Button Scale / Touch Opacity1 / 0.35Size and transparency of the on-screen controls.
Steering WheeltrueRead a wheel + pedals through the Raw Input plugin. Only used once the wheel moves.
Wheel Steer / Throttle / Brake AxisGeneric USB Axis 1 / 2 / 3Which Raw Input axes the wheel and pedals use.
Wheel Handbrake / Shift Up / Shift Down ButtonButton 1 / 5 / 6Wheel buttons (paddles for shifting).
Wheel Steer Scale1.5Steering multiplier: 2 = full lock at half the wheel's rotation.
Invert Wheel SteerfalseTick if steering goes the wrong way.
Pedals Full Range / Invert Pedalstrue / trueMost pedals report -1..1 and read 1 when released. Change these if the car accelerates on its own or the pedals do nothing.
Wheel Deadzone0.03Small wheel / pedal movements ignored.

HUD: untick Draw Default HUD on a Blueprint child of DriftHUD to draw your own HUD (UMG or Event Receive Draw HUD).

Blueprint events

In your car Blueprint, select the car (Self) or a component and click + next to the event in the Details panel, or right-click in the Event Graph and search "Assign On ..." / "Bind Event to ...".

On the car

EventGives youWhen
On Drift Started / On Drift Ended-A drift starts / ends.
On Burnout Started / On Burnout Ended-A burnout starts / ends.
On Handbrake Pulled / On Handbrake Released-The handbrake is pulled / let go.
On Braking ChangedbActiveStarted (true) / stopped (false) braking.
On Accelerating ChangedbActiveStarted (true) / stopped (false) accelerating.
On Max Drift ScoreNewBest, OldBestA banked drift beat the player's best drift score (XP component).
On Gear ChangedNewGear, bUpshiftThe gear changed (manual or automatic).
On Wall HitImpactAny wall hit; Impact = speed lost in m/s.
On CrashedPoint, Normal, ImpactA real crash (bounce + spin): where, the wall's direction and how hard.
On Air Ride ChangedbAiredOutThe bags start to dump (true) or fill up (false).
On Headlights Changed / On Underglow ChangedbActiveLights switched on / off.
On Paint ChangedChannel, ColorA paint channel's colour changed (debug menu, Set Paint Color, random paint).
On Setup Loaded-This car's saved setup was loaded (on spawn or by Load Tuning).
On Chat MessageMessageChat component: a message arrived (Sender, Text, Type: Player / System / Private, Time). Use it for your own chat UI.
On Chat CommandCommand, ArgsChat component, server: a player typed one of your Custom Commands.
(multiplayer)On other players' cars, Drift / Burnout Started / Ended, Gear Changed, Air Ride Changed, Paint Changed and the light events fire too, so effects you bind to them show for everyone. Crash and wall-hit events only fire on the driver's machine.

Points and EXP

EventGives youWhen
On Chain BankedPointsA drift chain was banked (Scorer component).
On Chain LostPointsA chain was lost in a crash (Scorer component).
On Multiplier ChangedMultiplierThe multiplier went up or reset (Scorer component).
On XP GainedGained, TotalXPEXP was added; TotalXP = EXP now in the current level (XP component).
On Level UpNewLevelThe player levelled up. Fires once per level (XP component).
On Max Level ReachedNewLevelMax Level was reached (XP component).
On New Best ComboNewBest, OldBestNew best drift score (XP component).
On Profile Loaded-The saved profile was loaded (XP component).

Blueprint functions

Drag off a reference to the car and search for these. All the car's settings and state (speed, drift angle, gear, RPM, velocity...) can also be read directly as variables.

FunctionWhat it does
Get Speed / Get Speed Kmh / Get Speed MphSpeed in m/s, km/h or mph.
Get Speed In (bMph)km/h, or mph when bMph is ticked.
Get Drift Angle (bAbsolute)Drift angle in degrees: + left-hand drift, - right-hand. Tick bAbsolute for always positive.
Is Drifting / Is Burnout / Is ReversingCurrent state.
Is BrakingOn the brake while rolling forward (not reversing, not a burnout).
Is AcceleratingOn the throttle, or reversing.
Is Handbrake PulledHandbrake held.
Is On FloorThe car is on the ground.
Get Max Drift ScoreThe player's best banked drift score.
Get Ride Height / Set Ride HeightCar height in cm.
Get Crash Bounce / Get Crash Spin / Get Crash Scrape / Get GravityThe tuning values.
Are Neons On / Are Headlights OnLight states.
Set Headlights / Set Underglow / Set Headlight Color / Set Underglow ColorChange the lights.
Set Air Ride / Toggle Air Ride / Get Air AmountAir ride on / off; Get Air Amount = 0 at ride height, 1 fully down.
Set Paint Color (Channel, Color)Change one paint channel's colour (0 = first channel).
Set Paint Color By Label (Label, Color)Same, by the channel's Label ("Rims"). Returns false if no channel has that label.
Get Paint Color (Channel) / Get Paint Channel CountRead the paint channels.
Apply PaintRe-apply every channel's colour, for example after swapping meshes or materials.
Set Body Color / Randomize Body ColorPaint channel 0 (or the single body colour) / random colours for every channel with Randomize ticked.
Pick Random Body ColorOverride in your Blueprint to choose colours your own way.
Set Style (Index)0 Drift, 1 Road Race, 2 Straight Speed.
Set Manual (bOn)Manual or automatic gearbox.
Save Tuning / Load TuningSave / load this car's setup (same as the debug menu buttons).
Get Setup Name / Has Saved Setup / Delete Saved SetupThe name the setup is saved under, whether it has one, and delete the file.
Refresh Light PlacementCall after changing Headlight Offset / Aim Down or Underglow Offset / Size at runtime.
RespawnBack to the start point.
Scorer › Bank / Reset Chain / Reset Total ScoreBank the open drift chain now, throw it away, or start the session score from 0.
Movement › Is On Floor / Is On Wall / Get Floor NormalGround and wall contact from the car's movement component.
Controller › Open Chat / Close Chat / Is Chat OpenThe chat box.
Chat › Send Chat Message / Add Local MessageSend a message (or /command) as this player / show a message on this screen only.
Chat › Broadcast System Message (server)A system message to every player: events, race results...
Chat › Reply Private / Filter Text / Announce Drift / Announce LevelReply to one player, run the profanity filter, post an announcement.
Controller › Get Touch Layout / Is Touch Zone Held / Get Touch SteerRead the on-screen controls (for your own touch UI).
Is Simulating Locally / Is Remote CarMultiplayer: true / false on the machine that drives this car; another player's car is a remote car.
Set Input (Input)Drive the car from a Blueprint or AI: Throttle 0-1, Brake 0-1, Steer -1..1, Handbrake, Shift.
Get Gear Text / Gear Count"R", "N" or the gear number / number of gears.

Troubleshooting

ProblemFix
My Blueprint changes don't show in gameA saved setup for that Car Name is loading on top. Press RESET DEFAULTS in the debug menu, change the Car Name, or delete Saved/DriftTuning/<Car Name>.json.
A different car (or no car) spawnsThe map isn't using your drift game mode: set World Settings › GameMode Override, or see Use your car in the game. If the Outliner shows DriftCarPawn0 instead of BP_DriftCar_C_0 while playing, a DriftGameInstance with Force Drift Game Mode ticked is overriding the map: untick it or set its Drift Game Mode Class to your Blueprint game mode.
The car is invisibleThe game mode spawns the plain C++ DriftCarPawn. Set Default Pawn Class to BP_DriftCar or your own Blueprint car.
The car floats or sinksChange Body Offset Z, and make Box Size Z / Wheel Positions Z match your mesh.
Rims face into the carSwap Left Wheel Yaw / Right Wheel Yaw between 0 and 180.
Wheels spin too fast or too slowSet Wheel Radius Cm to your wheel's real radius.
The body clips through the wheels when aired outLower Air Drop Cm, or push the wheels out with Air Push Front / Rear.
Paint does nothingThe material has no colour parameter, or the names don't match: check the channel's Material Slots and Color Parameter (see Paint & colours).
No soundSelect the car's Audio component: check Sound Enabled and that the sounds are set under Drift | Sound | Assets. Check the volumes in the main menu SETTINGS › AUDIO.
The underglow is a hard, white boxLower underglow_intensity (around 100 - 200) and keep Underglow Size smaller than the car, Underglow Offset Z around 20.
Wheels look smeared at speedUntick Wheel Motion Blur, or lower Max Wheel Spin Deg Per Sec.
Mouse look too fast / slowDebug menu › CAMERA › mouse_sensitivity.
Other players' cars stutterRaise Net Interp Delay on the car Blueprint (0.15 - 0.2).
Players spawn inside each otherPlace one Player Start per player in the map.
The steering wheel does nothingXbox-mode wheels work as a gamepad. For other wheels enable the Raw Input plugin and add the wheel's Vendor / Product ID in Project Settings › Raw Input, then turn the wheel once in game.

Drift Heaven v2.0 · Unreal Engine 5.7 / 5.8 · © 2026 ZEXP