Suspension tutorials — one per type
A separate, step-by-step guide for each suspension type, each with an accurate diagram. Read the shared basics below once, then jump to your type. All of these build with the current locked system (no axis/flip picking — you pose parts in the scene and the mod keeps that orientation).
| Type | When you’d use it | Tutorial |
|---|---|---|
| MacPherson strut | most front ends (GT86, E36 front, etc.) | 01-macpherson.md |
| Double wishbone | sports/race front or rear (upper + lower A-arms) | 02-double-wishbone.md |
| Multilink | modern rear (3–5 separate links) | 03-multilink.md |
| Trailing / semi-trailing arm | BMW E36/E30 rear, older rears | 04-trailing-arm.md |
| Cantilever / pushrod | inboard shock (race cars, customs) | 05-cantilever-pushrod.md |
| Solid / live axle | beam axle: live-axle drift cars, swaps, trucks | 06-solid-axle.md |
Add-ons (layer these on any type above)
| Add-on | What it adds | Tutorial |
|---|---|---|
| Driveshafts / prop shaft | spinning halfshafts + centre prop shaft (AWD-ready) | 07-driveshafts.md |
| Anti-roll bar (sway bar) | a bar that twists with the left↔right travel difference | 08-anti-roll-bar.md |
| Steering rack | the rack slides with steer; inner tie-rods ride it | 09-steering-rack.md |
| Rig / bone visualiser | see the invisible skeleton in Unity + in game (F8) | 10-debug-overlay.md |
Long-travel offroad and 6×6 are planned — see ../../ROADMAP.md.
Shared basics (true for every type)
The roles (one KSuspBone per marker, pick a Role + Corner)
| Role | Goes on | Key fields |
|---|---|---|
| Hub | the upright/knuckle | Wheel Rotation = SteerCamber |
| Arm | any link/arm/rod (control arm, tie rod, trailing arm, pushrod) | Inner Pivot (chassis end) · Outer Target (hub point) · Telescopes = ON |
| Shock | the spring/damper assembly | Tophat, Lower Mount, Spring Bone, optional Body Bone, Tophat Rotates, Body Anchored At Tophat |
| RidesWithHub | rigid bits bolted to the hub (caliper, rotor) | Corner only |
| Axle | a solid/live axle beam spanning both wheels | Left Mount · Right Mount (one marker under each Hub) · Stretch = OFF |
| Driveline | a spinning shaft — halfshaft or prop shaft | Spin Source, Spin Axis, Spin Scale; halfshaft also uses Inner Pivot + Outer Target. See 07 |
| SwayBar | an anti-roll bar spanning both wheels | Left Link · Right Link (one under each Hub) · Torsion Axis · Twist Scale. See 08 |
| Rack | the steering rack (front) | Slide Axis · Slide Scale · Max Slide; parent the inner tie-rods under it. See 09 |
Tip: turn on the rig / bone visualiser to see every one of these relationships as a coloured line while you place the markers — in Unity and in game (F8).
How each role moves
- Hub follows the game wheel: track width, wheelbase, travel, steer, and camber — no spin.
- Arm rotates about its Inner Pivot toward its Outer Target and stretches to stay attached (that stretch is what absorbs the hub’s camber/steer travel — leave Telescopes ON).
- Shock pins at the tophat, locks its bottom to the Lower Mount (aim + telescope), and twists about the strut line with the hub (kingpin). The spring telescopes.
- Axle rides the midpoint of its two mounts and aims along the left→right line — so when one wheel travels further than the other, the beam tilts and you get axle roll for free. It’s the only cross-corner role (every other role animates its corner independently), so it lives on Front/Rear rather than inside a corner. See 06-solid-axle.md.
Naming convention
CORNER_<Part> on the bone, CORNER_<Part>_end on the hub-side target. Prefix every object with
its corner (FL_ FR_ RL_ RR_). See GETTING_STARTED.md Step 2.
Build order (every type)
- Tools ▸ KSL ▸ Build Rig Hierarchy (Rig root = your rig root).
- Tools ▸ KSL ▸ Attach Parts to Bones (Parts root = the mesh group, Bone root = rig root).
- Set Car Id + Setup Name on
KSuspensionRoot. - Tools ▸ KSL ▸ Bake Suspension Descriptor → save the
.ksusp. - Drop the
.ksuspin…\CarX Drift Racing Online\kino\suspensions\. - Fully restart the game (the
.ksemod loads at startup; “Reload config” only re-reads.ksusp).
Two placement rules that fix 90% of problems
- Hub-side targets (
*_end, the shock’s Lower Mount) must be children of the Hub so they ride- steer with the wheel.
- A shock’s Lower Mount on the kingpin/strut axis (the line from the Tophat to the lower ball joint) so steering rotates the strut about it instead of swinging it.
Picking between several setups for one car
Drop multiple .ksusp in the folder; the KSL menu’s Setup (this car) picker lists every one
matching the loaded car — click to switch live. (Or pin one in config.json.)