Skip to content

Chapter 4 of 6

Track Modding Essentials

Track mods in Assetto Corsa combine 3D geometry, surface definitions, AI path data, timing logic, and presentation metadata into a coherent racing environment. The surfaces.ini file is the heart of a track's physical behavior: each surface is defined by its FRICTION (the slipperiness coefficient, with higher values meaning grippier), DAMPING (how the surface affects suspension response), WAVINESS (the bumpiness of the surface), SURFACE_SOUND (the FMOD event triggered when tires roll across it), SURFACE_COLOR (a tint for visual feedback), IS_VALID_TRACK (whether AI considers this surface drivable), IS_PITLANE (which enables speed-limiter logic when set to 1), and DIRT_ADDITIVE (which controls how much dirt builds up on tires running across it). The ksMultilayer shader is the workhorse for track terrain, blending multiple textures based on a mask image so that, for example, grass, dirt, sand, and tarmac can all coexist on a single mesh with smooth transitions.

AI behavior is driven by spline files stored in the ai subfolder. fast_lane.ai defines the ideal racing line that AI cars attempt to follow, while pit_lane.ai defines the path AI cars take when entering, traversing, and exiting the pits. A separate ideal_line.ai file, when present, can be shown to the player as a visual racing line helper in some configurations. The groove.ini file controls the visual rubbering-in effect, defining where skid marks accumulate along the racing line, how INTENSITY they build up, and FADE_TIME for how quickly they wear away after sessions end. Pit crews are positioned using AC_CREW_ prefixed empties (AC_CREW_0, AC_CREW_1, and so on) placed inside the track model, while AC_PHYSICAL_ prefixed meshes provide high-resolution invisible collision geometry that is more detailed than the visual meshes.

Timing, camera, and rule systems complete the track experience. sections.ini defines timing splits by placing SPLIT points at specific POSITION coordinates and giving each a NAME such as "Sector 1" or "Sector 2," enabling sector times on the UI. cameras.ini configures replay camera positions with POSITION, TARGET (the point the camera looks at), FOV, and NEAR/FAR clipping planes. rules.ini establishes track-specific behavior such as CUT_PENALTY for how cutting corners is punished, PIT_SPEED_LIMIT for the maximum allowed speed in the pit lane, TRACK_LIMITS for how strictly boundaries are enforced, and YELLOW_FLAG logic. The map.png image provides the 2D minimap displayed in the UI, while map.ini aligns it with the actual world by specifying X and Z for the top-left corner, ROTATION, SCALE (the pixels-to-meters factor), OFFSET, plus WIDTH and HEIGHT in meters for the area covered. The ui_track.json file supplies metadata such as the track's name, country, length, pitboxes count, description, and additional specs that Content Manager uses in selection menus and search filters.

All chapters
  1. 1Modding Foundations: Formats, Tools, and Folder Structure
  2. 2Car Physics Configuration Files
  3. 3Visual Assets: 3D Models, Textures, and Shaders
  4. 4Track Modding Essentials
  5. 5Custom Shaders Patch (CSP) and Extensions
  6. 6UI, Skins, Sound, and Scripting

Drill it

Reading is not remembering. These come from the Assetto Corsa Modding Cards deck:

Q

What is the primary 3D model format used in Assetto Corsa?

.kn5

Q

Which file format is standard for textures in Assetto Corsa to ensure optimal performance?

.dds (DirectDraw Surface)

Q

What text-based file format is used for almost all configuration in Assetto Corsa modding?

.ini

Q

What is the purpose of the data.acd file?

It is an encrypted archive of the car's physics and configuration data (the data folder).