Skip to content

0.3.0-preview322

  • Version ID: 3859
  • Size: 141.04 MB
  • Published: 2026-03-16
  • AI & New Behavior:
    • A general issue with AI that has been around for a while affecting things has been fixed;
    • Straighten AI's trajectory when starting reworked properly;
    • Prevent AIs from redlining before the start improved as well;
    • Adjust shifting for slow sectors should be working now;
    • physics.setAISplineAbsoluteOffset() should work a bit better;
    • Cooldown lap shouldn’t cause cars to keep teleporting around in the end;
    • AI in headless mode going backwards fixed;
  • Glass materials losing normal maps are fixed;
  • Bots online mistakenly shown on the map are fixed (recent regression), hidden cars no longer show up in overlay leaderboard or in the new menu;
  • The issue with CSP not launching on Linux fixed;
  • Simulation occasionally getting deadlocked with car teleports fixed;
  • Smart Shadows:
    • Adaptive first split rewritten, no longer applies to drivable and cockpit cameras;
    • Option for adaptive first split is visible again;
    • Distant cascade updated to respect tree textures again;
  • Surface noise upgrade fixed, scale adjusted (even previous Perlin was a bit too high, and newly added simplex was really wild);
  • New KN5 loader sharing materials across cars fixed (previously, the case of basic-and-then-skin-overriden material would misbehave);
  • Shaders clamp output color to make sure it’s never negative, so even wildly misconfigured materials won’t break rendering too much;
  • nePBR shaders can handle clear coat F0 above 100% a bit better (F0 should never exceed 100%);
  • Shaders better handle extColoredReflection above 100%;
  • A few improvements to the shape and shading of fallback LOD;
  • Default Weather FX: some small adjustments for grass shading and fog hues, new Volumetric fog effect (experimental, disabled by default);
  • CSP Debug:
    • Positioning of teleport preview improved;
    • Holding Ctrl to teleport a car no longer creates a force if the click was on the car;
    • Toggle extra car animations;
    • Shortcuts for extra observe commands;
    • A helper to quickly switch between car LODs;
  • Increase conditions limits tweak is enabled by default, allowing setting road temperature above 36° C;
  • Incorrect (zeroed) normals in KN5 are corrected during loading, fixing some visual artifacts (in particular, with Windscreen FX reflections);
  • Neck FX: Maximum offset now allows to configure values per-axis;
  • Piece particles:
    • Motion parameters updated to increase visual variety;
    • Particles aren’t sliding around on a flat surface anymore;
    • Largeness of rare lucky particles reduced;
  • Rain drops flying off wheels and arches improved a bit;
  • Photo app: layout of lens tab is a bit tidier;
  • Splitscreen:
    • Stability control and other AI tweaks no longer apply to the second car;
    • System shortcuts changing ABS, TC and such apply to both cars at once;
    • Input smoothing for second car is disabled;
    • Grass FX is properly shown in the second view;
    • Second view also got its own reflection cubemap;
    • Discrepancy in headlights intensity fixed;
  • OBS views:
    • New Higher quality option with dedicated grass spawn and shadows set;
  • ac.GeometryShot:update() got an overload accepting actual view and projection matrices, as well as options for dedicated grass spawn and shadow maps;
  • Geometry shots: grass is drawn before particles;
  • If HDR is enabled, but not available, config loaded with ac.INIConfig.cspModule(ac.CSPModuleID.DXGITweaks) will have that option disabled;
  • Crashes name format updated to be a bit shorter, but include CSP version as well;
  • Ash motion fixed;
  • In-game license plate generator updated to better handle a case with textures taking a while to load;
  • INIpp:
    • Use @DISCARD=1 in both templates/mixins/generators or regular sections to discard them entirely (better alternative to ACTIVE=0);
    • Add @PARENT=SECTION_NAME to copy values not present in this section from SECTION_NAME, list several to keep copying missing values;
    • Use discard() in @OUTPUT to discard the final section (useful for templates doing nothing but spawning generators);
    • A couple of smaller fixes and optimizations (the parser is about 60% faster);
  • Detection range for ac.getCarBlindSpot() and BLIND_SPOT input increased from 20 to 200 m;
  • ac.getSetupValue() returns actual nil if value is missing, caches results across the calls, docs got a hint on how to deal with GEAR_SET;
  • New ac.forceDetailedCarLOD() for Gameplay API, some of default OBS views use it to force detailed LOD;
  • ui.progressBar() fixed;
  • New fields for ac.CarPhysicsValueID for altering parameters of automatic shifter live;
  • New ac.getSceneShadow() for Weather FX styles sampling shadow map in camera position (using fourth cascade);
  • New getApproximateSceneShadow(position) for scene shaders (uses fourth cascade as well);
  • Use [HEADER] PARSER=INIPP in car data to use INIpp features, including includes, or read('data/car.ini/SECTION/KEY', 0) to access other files;
  • Car non-physics scripts (but not scriptable displays) load in headless mode (apparently, there are some cool mods out there that use those for physics-related stuff, which is something I didn’t anticipate at all);
  • CSP loads GUIDs.txt even if it’s a read-only file;
  • A few small fixes for render stats app;