Behavior Presets
A behavior preset is a complete bundle of driving-feel settings — ABS, ESP, TCS, friction curves, steering helpers, counter-steering aggressiveness, anti-roll forces — saved as a named preset and applied to every vehicle in your scene with a single line of code. This document explains what presets ship with RCC, what each one does, and how to switch between them.
Why Presets Exist
The same physical vehicle drives radically differently depending on assist settings and friction values. The same Skyline can feel like a hardcore simulator (where one mistake spins you out) or a forgiving arcade game (where you can mash gas through every corner). Rather than configure each vehicle individually for each game mode, RCC lets you switch the entire feel with one global setting.
When the player selects a difficulty in your game's options menu — "Simulator," "Arcade," "Drift" — you call RCC.SetBehavior(index) and every car in the scene shifts to the new feel.
What's Included Out of the Box
RCC ships with four pre-configured behavior presets. They live in RCC_Settings.asset, under the behaviorTypes array. The defaults are:
| Index | Name | Style |
|---|---|---|
| 0 | Realistic | Full simulator — every assist off, real friction, full consequences. |
| 1 | Race | Race car feel — high grip, predictable, fast laps. |
| 2 | Sport | Sports car feel — balanced, communicative. |
| 3 | Drift | Optimized for sliding — low rear grip, aggressive counter-steer. |
| 4 | Arcade | Forgiving, easy — high grip, ABS / ESP / TCS on. |
(The exact preset names and order depend on the version of RCC_Settings.asset shipped with your install. Open it to see the actual list.)
What a Preset Controls
Every preset configures roughly 30 fields. The most impactful ones:
Stability Assists
- ABS — Anti-lock braking. When on, prevents wheel lockup during heavy braking. Beginner-friendly.
- ESP — Electronic stability. Selective braking to correct slides.
- TCS — Traction control. Cuts engine power when wheels spin freely.
- Steering Helper — Active correction of fishtailing.
- Traction Helper — Same as TCS but tuned for engine torque rather than brakes.
A "simulator" preset turns these off. An "arcade" preset turns them all on.
Steering Response
- Steering Type — Curve, Simple, or Constant (see 08 — Vehicle Inspector Reference).
- Steering Curve — speed → max angle.
- Limit Steering — clamp max steering at high speed.
- Counter Steering — auto counter-steer aggression.
- Steering Sensitivity — smooth large steering input changes.
A "drift" preset gives a slow steering curve (full lock available even at high speed) and aggressive counter-steer. An "arcade" preset gives instant response and heavy counter-steer.
Friction Curves
- Forward Extremum Slip / Value — peak forward grip.
- Forward Asymptote Slip / Value — long-tail forward grip.
- Sideways Extremum Slip / Value — peak sideways grip.
- Sideways Asymptote Slip / Value — long-tail sideways grip.
These are the single most important preset settings. They define how the tire grips. A simulator preset breaks grip cleanly; an arcade preset has high grip with a forgiving falloff; a drift preset breaks sideways grip early but keeps forward grip strong.
Anti-Roll
- Anti Roll Front Horizontal Minimum — base anti-roll force for the front axle.
- Anti Roll Rear Horizontal Minimum — base anti-roll force for the rear axle.
Higher values reduce body roll in turns. A simulator preset uses lower anti-roll (you can feel the car lean); an arcade preset uses higher (the car stays flat).
COM Assister
- COM Assister — Off / Slight / Medium / Opposite. Dynamically shifts the center of mass based on the vehicle's rotation. Helps stabilize a high-COM vehicle.
Switching Behavior at Runtime
The simplest way:
RCC.SetBehavior(0); // Realistic
RCC.SetBehavior(1); // Race
RCC.SetBehavior(2); // Sport
RCC.SetBehavior(3); // Drift
RCC.SetBehavior(4); // Arcade
The call:
- Updates
RCC_Settings.behaviorSelectedIndex. - Applies the new preset's helper toggles to every vehicle in the scene.
- If the preset has
applyExternalWheelFrictions = true, applies the new friction curves to every wheel. - Fires the
RCC_Events.OnBehaviorChangedevent so UI / HUD code can update.
Note: behavior changes mid-drive can feel jarring (the car's grip suddenly shifts). For the smoothest experience, switch behavior between scenes or before the player starts driving.
Changing the Default
To make the game start in a particular preset:
- Open
Assets/RealisticCarControllerV4/Resources/RCC Assets/RCC_Settings.asset. - Set Behavior Selected Index to the index you want (0 = first preset, 4 = fifth).
- Save.
The setting persists across Play mode (because of the runtime clone — RCC_Settings clones itself in Play mode so the asset isn't modified at runtime; the in-memory copy keeps the change for the session).
Disabling Presets Entirely
You can turn off the global preset system by unchecking Override Behavior at the top of RCC_Settings. When off, every vehicle uses its own per-vehicle settings (the values configured on its RCC_CarControllerV4). This is useful when you want each vehicle to feel different — e.g., a hatchback that always feels sluggish and a sports car that always feels nimble in the same scene.
The global override stays on by default because most games have one consistent "feel."
Per-Vehicle Override
If you want most vehicles to follow the global preset, but one specific vehicle to ignore it (e.g., a tank that should always be heavy and slow regardless of game mode), enable Override Behavior on that vehicle's RCC_CarControllerV4. The flag is at the top of the Inspector.
When per-vehicle override is on, that vehicle uses the fields configured directly on its controller and ignores the global preset.
Creating a Custom Preset
To add your own preset (e.g., "Hardcore"):
- Open
RCC_Settings.asset. - Find the
behaviorTypesarray. - Right-click the array and Add Element (or set the Array Size to one higher).
- Configure the new entry: name it, set ABS/ESP/TCS, configure friction curves, etc.
- Save the asset.
Switch to your new preset:
RCC.SetBehavior(5); // your new index
A practical workflow: duplicate an existing preset that's close to what you want, then adjust from there. Tweaking is faster than building from scratch.
What Each Default Preset Feels Like
Realistic (Index 0)
Every helper off. Friction is realistic — the tire will lock up if you brake too hard, will spin if you stab the throttle from a stop, will plow understeer if you enter a corner too fast. ABS, ESP, TCS all off. The steering wheel doesn't auto-correct. The car can be flipped if you push too hard.
This is the closest to a real driving simulator. New players will struggle.
Race (Index 1)
High friction curves with very predictable break-loose behavior. Steering helper and traction helper on, but ABS / ESP / TCS off — the player is in charge of brake and throttle modulation, but the car helps stabilize the rear.
This is the typical "race game" feel — competitive, requires skill, not punishing.
Sport (Index 2)
Balanced. Mid-range grip, mid-range helpers. ESP and ABS on. The car holds the road well but can be drifted with effort. Suitable for a general-purpose driving game without dedicated racing or arcade pretensions.
Drift (Index 3)
Low sideways grip with a long break-loose curve. The car snaps into oversteer easily and holds the slide while the player counter-steers. High counter-steer aggression. The forward grip stays high so the engine can keep pulling through the slide.
This is the typical drift game feel. Great for showing off; not great for going around a corner quickly.
Arcade (Index 4)
Every helper on. Friction is unrealistic — high grip across the board, with grip falling off very slowly even at high slip values. ABS, ESP, TCS all on. The car practically can't spin out. The steering helper is aggressive.
Suitable for mobile games, casual racers, or any context where the player shouldn't lose control.
Tuning a Preset
If a preset is almost what you want but slightly off:
- Open
RCC_Settings.asset→behaviorTypes→ the preset you're editing. - Drive in Play mode and adjust live (the runtime clone preserves your edits for the session).
- When happy, exit Play mode and re-apply the values manually to the asset (the runtime clone doesn't write back).
The most impactful single setting is Sideways Extremum Value — this is your "grip dial." Raise it for more arcade feel, lower it for more drifty / loose feel.
The second most impactful is Steering Curve — adjust the high-speed end to control how nimble the car feels at speed.
Listening for Behavior Changes
If your UI or other game systems need to react when the player changes presets:
using UnityEngine;
public class BehaviorChangeListener : MonoBehaviour {
void OnEnable() { RCC_Events.OnBehaviorChanged += HandleBehaviorChanged; }
void OnDisable() { RCC_Events.OnBehaviorChanged -= HandleBehaviorChanged; }
void HandleBehaviorChanged() {
Debug.Log($"Behavior changed to index {RCC_Settings.Instance.behaviorSelectedIndex}");
// Update HUD, play sound, etc.
}
}
See 24 — Events System for the full event surface.
Common Behavior-Related Issues
"Switching to Drift didn't change anything"
Make sure applyExternalWheelFrictions is enabled on the preset. Without it, the preset only changes helper toggles — friction curves stay at the per-wheel values.
"The Arcade preset still spins me out"
The behavior preset isn't being applied because Override Behavior at the top of the vehicle's Inspector is enabled. Disable it on the vehicle, or copy the preset values into the per-vehicle fields.
"I changed RCC_Settings in Play mode and the changes were lost"
That's by design. RCC_Settings clones itself in Play mode so the asset on disk isn't modified at runtime. To make changes permanent, exit Play mode and re-apply them. See RCC_Settings.cs for the clone logic.
Next Steps
- 09 — How WheelColliders Work — what friction curve values actually do.
- 21 — RCC Settings Deep Dive — every field of
RCC_Settings. - 23 — Scripting API —
RCC.SetBehavior()and related methods.