CHAPPiE

Competition drift judging for CarX Drift Racing Online. Depth-graded line scoring against zones you author in your own map, host-controlled qualifying, live lobby scoreboard and CSV results.

Line Angle Consistency X-Factor

Get started Build a track View on GitHub

Track authoring

How to build a map CHAPPiE can judge, from an empty scene to a signed .ksm.

This assumes you can already build and export a CarX map. CHAPPiE adds geometry and names on top of that — it doesn’t change how your map is made.


The pipeline

1. Design          Decide where zones go and how deep they run.
   ↓                Paper or a top-down screenshot. No tools yet.

2. Model           Build the zone grid as separate meshes,
   Maya/Blender     one per (length × depth) cell.

3. Unity           Import, attach SDK components, place lines,
   + CHAPPiE SDK    walls and start lights.

4. Export          KnMap → AssetBundle → test in CarX.
   Kino SDK

5. Verify          Drive it. Check debug.log for scan results.

Steps 2 and 3 are where CHAPPiE-specific work happens. Everything else is the normal CarX map process.


Guides

   
1. Designing the zone grid What a zone is, how deep to go, how many bands. Read this first — it’s the part that decides whether your track judges well.
2. Building the meshes Maya and Blender. Splitting, naming, pivots, export settings.
3. Unity setup SDK components, special lines, start lights, common mistakes.
4. Export and test KnMap, packaging, and how to confirm the mod actually found your zones.

Before you start

You don’t need the SDK. The naming contract is the real interface — meshes named correctly work whether they came from an SDK component, a Blender export, or you renaming them by hand. The SDK just makes the names hard to get wrong.

Zone meshes are invisible in game. They’re detection volumes. Give them a transparent or disabled material — nothing about them should be visible to the driver.

Detection uses renderer bounds, not colliders. A zone mesh needs a MeshRenderer to be found. Colliders are optional and only sharpen body detection on convex bumper segments.

The grid is axis-independent. A zone mesh can be rotated any way you like. “Depth” is defined by which mesh you name _1 vs _3, not by a world axis.