Skip to main content
  • Version ID: 2736
  • Size: ??.?? MB
  • Published: 2023-12-16

Changelog

New features, options and improvements

  • Caster and KPI displays for cosmic suspension in setup menu and suspension app;
  • Updated tyre contact points logic;
  • New physics experiment disabling car sleeping outside of pits after starting a race (disabled by default for now);
  • FFB Tweaks:
    • Option to average skipped FFB samples for more precise feedback;
    • Option to reduce update rate for damping FFB (since it’s only used for low speed FFB damping, it makes sense to update it less often. Can help with 99% cpu warnings at low speeds with some wheel bases);
  • GPU optimizations:
    • Option to use background BC7 compression for cached CSP textures (such as WeatherFX clouds or billboards of new trees);
    • Option to use background BC7 compression to re-encode wrongly compressed AC textures so they could load faster and run better on subsequent runs;
  • Graphics Adjustments:
    • Generate new fallback LOD for all cars using collider mesh;
    • Limit amount of active LOD As of cars with a single LOD;
    • Option to render virtual mirror before the scene in single and triple screen mode (might add some small glitches with refraction and ExtraFX, but save a bit of performance);
  • Holding Shift or Alt stops AC system bindings (such as Ctrl+R for replays) allowing to bind extra things to something like Ctrl+Shift+R;
  • Option in car instruments for car headlights to shake a bit;
  • New audio tweak to add reverb to more audio events and increase amount of reverb for non-reverb events a bit;
  • New taskbar update:
    • Collapsing categories;
    • Optional streamlined mode going straight to the list of apps;
    • Optional compact mode;
    • Scrolling speed increased;
    • Alt+H shortcut from old CSP taskbar is supported;
  • New built-in audio app replacing original with presets and extra sliders;
  • Original sun trajectory removed, equinox trajectory (20th of March 2023) is used instead, but WeatherFX styles and Lua apps can change the neutral sun trajectory timestamp;
  • Track audio slider moved from Track Adjustments to AC audio settings and affects track Lua scripts as well;
  • Bind car reset and taking a step back to controller buttons;
  • CSP Debug app:
    • Option to click on a track to teleport to a clicked point (in singleplayer practice sessions);
    • Saving and loading car state can be bound to controllers working even if the app is closed;
  • Default WeatherFX style:
    • A bit of pollution haze in clear weather based on light pollution configuration;
    • Rain audio and other rain-related effects improved;
  • New Traffic race mode (requires configured tracks with traffic-planner-ready tag);
  • Walking Out module moved from being a hidden module to a new Quick Drive mode;
  • UI animations are a bit faster, with an option to disable animations entirely;
  • Option for triple screen mode to configure margins per side to shift UI a bit and prevent losing apps outside of visible area, also saves a bit of FPS;
  • Experimental tweak for OpenVR postponing buffer swap that might increase responsiveness;
  • Some of CSP resources are packed inside dwrite.dll for things to work more reliably and load a bit faster;
  • Option to stretch accumulation DOF shape horizontally or vertically;
  • Web browser engine updated: few security fixes from OBS CEF repo, FPS is no longer locked at 30 with direct loop mode;
  • Options for windowed VR to capture mouse and force AC window to stay on top, just in case;
  • CSP now supports all the system hotkeys from CM for better responsiveness and proper modifier button logic;
  • Disabling seasons also disables accurate sun trajectory by default (unless it’s an online race and server specifies date explicitly);
  • Refueling in pits smoothly increases the amount of fuel shown on a dashboard.

Fixes

  • Taskbar getting stuck in a loop and flickering fixed;
  • Cars sliding off tilted surfaces fixed (with custom physics);
  • Fixing an ancient AC typo, dampers for strut are flipped right way up;
  • Setup tabs order and arrangement with extended physics fixed;
  • Loading tracks installed with CM no longer causes AC to crash for the first launch;
  • Ghost car saving rewritten from scratch, shouldn’t have any glitches anymore;
  • Controllers and other input devices are correctly released on exit;
  • Issue with AC not being able to save AI splines or damaging long replays when saving on exit should be fixed;
  • AIs and mouse steering braking take rain intensity into account (should help with AIs locking wheels and overbreaking);
  • BrakeDiscFX: rim reflection updated to be properly aligned and better blur with speed, blurring works for all cars, orientation fix;
  • TyresFX uses geometry normals for global occlusion instead of texture normals for smoother shading;
  • A few fixes for old taskbar style (might still be removed a bit later though);
  • Quick Pits menu should handle wings with non-zero click mode better (optional, can be disabled in General/Control);
  • App Shelf automatic updates fixed;
  • Disappearing smoke fixed, visuals updated, especially for dust and dirt particles;
  • Piece particles malfunctioning and disappearing with several cars fixed;
  • Flame particles light casting intensity reduced a lot to stop producing light during the day;
  • Dragging car in CSP Debug app fixed;
  • Cubemap fully updates when track camera switches;
  • CSP preview generation is more stable and works with cars with uppercase letters in their folder names;
  • Car and track scripts shut down correctly on exit;
  • Crashes in background threads should be able to produce proper reports;
  • Missing OEM colors issue fixed;
  • Optional render idling for AC in background state also stops audio;
  • AIs should be a bit better at activating turning lights;
  • Background CSP tasks should have lower priority leaving more CPU time for main threads;
  • Date and DST stored in replays are taken into account;
  • Desktops with the same names won’t break context menu anymore;
  • Motion accumulation shots fixed (should be more stable at the end);
  • New driver tags are less affected by dynamic lights;
  • Size of shadows for water droplets fixed;
  • Teleporting doesn’t reset tyre pressure of cars with custom physics anymore;
  • Unbound app (and toggling turning lights from Lua) is compatible with turning lights bindings in hold mode;
  • AC won’t get stuck anymore trying to exit in cases like failed handshake online;
  • AI drivers no longer freak out if normal tyres are fit for rain;
  • CSP won’t crash anymore if VAO patch is damaged;
  • Dynamic shadows are compatible with accumulation screenshots again;
  • Haptic feedback no longer messes up audio;
  • Damper graphs in car debug app are fixed;
  • Half-resolution smoke can handle AC resolution changes;
  • Changing scale for curved filter shouldn’t crash anymore, and be compatible with triple FSR scale;
  • New shader for depth resolve should solve issues with subpixel outlines around meshes with smoke particles or with WeatherFX shaders using depth;
  • Leaderboards and car positions online in Lua API fixed;
  • Very rare crash when a remote car finishes a lap fixed;
  • Cosmic suspension debug lines are positioned correctly;
  • Physics debug lines from CSP Debug app show up in triple screen;
  • Suspension debug lines are compatible with origin shift and take into account WeatherFX brightness;
  • Gas and brake pedals for AI are smoothed similar to steering (visual values only), fixing really weird engine and braking audio in the rain;
  • Message about invalidated lap no longer shows in replays or when exiting replays;
  • Drops on windscreen move slower during less intense rain;
  • Controller integration works in pause menu again;
  • Throttle-to-start option works with gamepads;
  • Custom VR HUD rendering modes won’t activate with post-processing disabled (otherwise they’d break);
  • Photoelasticity renamed to iridescence (a much more fitting name);
  • Misconfigured controls will show a proper error instead of crashing AC;
  • Exterior transmission audio is affected by audio slider, few similar fixes for extra CSP car audio events;
  • Window context menus shouldn’t be triggered with active menus anymore;
  • SSLR updates: Hi-Z tracing is less prone to visual artifacts, simple quality should look a bit better, sampling doesn’t allow emissive objects to leak around as much;
  • Option DISPLAY_DUMMIES in track_adjustments.ini also shows reverb areas;
  • Rim collisions are compatible with cosmic suspension and a bit smoother to reflect actual material properties;
  • Refracting headlights with RELATIVE_TO function correctly with LODs;
  • Mirrors glitching out in the rain, especially in some non-open wheel cars, fixed;
  • Side mirrors on doors with Real Mirrors enabled take into account door rotation when opened;
  • Rare issue with sky disappearing for a frame with clearing re-enabled fixed;
  • Messed up imprints on dirt skidmarks fixed;
  • Skidmarks of all types fade in smoothly when spawning;
  • Rain volume slider removed (it wasn’t doing anything since rain audio was moved to WeatherFX style and was controlled by weather slider);
  • Specular component of dynamic lights reacts to shadowing from light shape and such more, allowing for smoother overall look;
  • The whole audio occlusion thing can be enabled now (but also needs a track config);
  • CSP heat shimmering additions won’t be applied to cars driving faster than 35 km/h;
  • Cars with missing fake shadows, as well as cars replacing all their shaders by something like fuPBR shaders, shouldn’t crash during loading;
  • Taskbar icons loading with new IMGUI taskbar style rewritten to work better and waste less VRAM;
  • Rare default WeatherFX style custom post-processing error resulting in stuck sunrays fixed;
  • Resetting car with autopilot resets its state so it would no longer try and turn onto the pitlane;
  • Car wetness map updated to add a bit of lag hopefully helping with car drying out when it drives under bridges;
  • A couple of small shading improvements for new trees;
  • Refraction buffer interior masking improved, especially for roofless cars;
  • Option for using exterior audio won’t break interior detection anymore (like stopping windscreen raindrops from working);
  • Wet surfaces get darker sooner;
  • Issue with TyresFX and dirty tyres fixed, TyresFX distance for non-openwheelers increased to 32 meters;
  • Option to bring welcome message popup back in new chat is working now;
  • Drawing UI over HUD no longer interferes with failed checksum message;
  • Cars using shaders like ksGrass and ksTree won’t crash CSP during loading;
  • Custom physics plank wear now triggers customizable penalties and resets with car resets;
  • Cosmic suspension fix for using spring LUTs and preload with coilovers (quite broken previously);
  • Custom physics thermal model v2 [WIP] fix for (lack of) temperature reset in some scenarios;
  • TORQUE_MODE_EX=2 now should be fully correct with cosmic cars using axle arrangements;
  • Powered axle wheels stopping in mid air after curb strikes should well and truly be fixed, please report if not;
  • Crashes when trying to access date and time with WeatherFX disabled fixed;
  • AI spline payloads caching is reworked to prevent various problems and update in time;
  • Few internal changes to prevent some stutters, allow for smoother exits and make CSP more GPU-friendly;
  • UV2 patches stop mesh optimizations;
  • Few smaller bug fixes and optimizations.

Car, track & server configs

  • Option added to use linear interpolation (instead of default cubic) for load sensitivity LUTs;
  • Sessions (both offline and online) can alter order of actions in pits with [EXTRA_RULES] PITS_ORDER=F<TR> (Fuel, Tires, Repair, angle brackets around things that can be done in parallel, default AC behavior is <FTR>);
  • [RAIN_FX] settings should be able to load from extended server config properly;
  • Mumble integration: new MUTE_DISTANCE parameter muting audio entirely for cars further from camera than specified;
  • On servers requiring 2690 build or newer edited car color can be reset;
  • Servers can ask CSP to verify its integrity;
  • 4 more extra switches for cars (G, H, I, J);
  • Car configs can specify a message to be shown when switching extras;
  • ALTERNATIVE_PHYSICS_MESH_DETECTION option works for tracks without extended physics as well;
  • Line lights can be used for car headlights, brake lights and such (they disable some of additional features such as edge or secondary spot, but could be useful for some special cases);
  • Track .ksanim animations shouldn’t crash on reloads anymore;
  • Traffic planner: few fixes, automatic data loading, new cars can be added by simply copying models and JSON file with description;
  • Condition expressions: functions (like INPUT = max(SUN, 45) in track condition) didn’t work previously, should work now;
  • NeckFX helmet parameters configurable per car;
  • Number of SCRIPT_… inputs for controllers increased from 8 to 256;
  • Animated wipers tool showing RainFX traces without animation being active fixed;
  • VAO interior brightness tweaks won’t apply to smCarPaint shaders as well;
  • New experimental track parameter [VAO] WEIGHT_FACTOR=1 for smoother sampling of extra VAO samples (default value is 0.05, lower value means less weight for darker samples);
  • Stereo’s multimap shaders can be emissive;
  • Track configs can alter ambience volume based on condition (applied by default to Kunos tracks to make things more quiet at nights);
  • Track lights attached to moving nodes no longer stop working when moving further than ≈2.5 km;
  • New REMAP_UV in [MESH_ADJUSTMENT_…] for redoing UV when loading a mesh (used by MX5 config adding Android Auto, for example);
  • Refracting glass is more stable and got an option for colored bulbs and internal normals bias just in case;
  • Just in case, cars can override label WINGS with [_EXTENSION] QUICK_MENU_WINGS_LABEL=… in setup.ini;
  • Occluding walls on tracks:
    • Now up to 32 walls can be active at once, instead of old limits of 4 to 8;
    • Walls can be used either for rendering, audio or both;
    • Walls occluding audio can specify volume amount, reverb boost and softness, all within the tool;
    • Configure how exactly wall occlusion stops when moving further from a wall for all walls using [AUDIO_OCCLUDERS] FADE_START=… FADE_END=… parameters;
    • Nearby walls expand each other allowing for more efficient coverage;
    • Tool can show actual walls working;
  • Reduce volume a bit and add some reverb to distant audio sources to simulate general occlusion with [AUDIO_DISTANT_OCCLUSION] DISTANCE=… FADING=… (already set by default for Kunos tracks in generic config);
  • Add reverb to audio events located in reverb areas even if camera is outside of reverb areas with [AUDIO_DISTANT_OCCLUSION] REVERB_CONTRIBUTION=… (also configured for Kunos tracks);
  • Occasional misbehavior and crashes happening when editing car lights and emissives fixed;
  • Colliders can be configured using stiffness and damping instead of CFM/ERP, or even with curves for values depending on depth. Can be used for cars with sprung bottom planks (e.g. LMP2) or to just have more control over ground collisions. Documentation to be added to wiki;
  • VAO ambient adjustments no longer apply to objects with ambient adjustment set by a config.

Lua & Python scripting

  • Common API:
    • New ac.onTyresSetChange() function to monitor tyre changes;
    • New ac.StateCar.customCarColor field (contains nan if color is default);
    • New ac.StateSim.explicitDateSet and ac.StateSim.neutralSunTrajectoryTimestamp fields;
    • ac.getTrackTimezoneBaseDst() also takes optional time so it can compute daylight saving offset;
    • ac.getSkyFeatureDirection() takes an optional time argument so it can be used to compute sun direction for a certain time;
    • ac.lapTimeToString() can handle negative time instead of showing something crazy;
    • Car speed, velocity and angular velocity in car state can’t be zero anymore (to make sure there won’t be some wild division by zero, regression in 0.2.1);
    • Functions checking file dates and size fixed;
    • Built-in JSON parser in Lua standard library fixed;
  • UI:
    • ui.modernButton() centers icons even if size is uneven;
    • New ui.Font.SmallItalic font;
    • Lua scripts can extended or override content of new driver tags with ui.onDriverNameTag();
    • New ui.modernMenuItem() for use in ui.onDriverContextMenu() callbacks;
    • ui.tabItem() got a parameter for adding a close button;
    • SDK definitions for ui.MediaPlayer() fixed;
  • Render API:
    • Extra canvases are cleared by default;
    • New render.on() function for adding extra callbacks to different points in scene rendering (more events will be added soon);
    • directValuesExchange option for Lua shaders fixed;
  • Scene API:
    • :setMaterialTexture() doesn’t do anything if file is missing;
    • Dumped shader replacements uses mesh IDs instead of names to avoid conflicts;
    • Applying dumped shader replacements shouldn’t interfere with applying skins later anymore;
  • Game API:
    • Function ac.overrideCarControls() available to Lua apps and new racing modes can be used to override AI controls too;
    • ac.setAudioVolume() and ac.getAudioVolume() can be used to tweak audio volume of a single car;
    • ac.applyLiveConfigEdit() can be used to change [VISIBLE_CARS] and [LODS] of graphics adjustments live;
    • ac.setWeatherExactUTC0Timestamp() can set the exact UTC0 timestamp updating DST as well;
    • Physics workers are fixed;
  • Gameplay API:
    • New modes and online scripts can alter leaderboard order;
    • ac.GrabbedCamera can control listener velocity as well (stationary by default);
  • Physics API:
    • New physics functions to change AI driver names and teams;
    • Adding engine or car body damage no longer invalidates lap times (but fixing car still does);
    • Physics API and car physics scripts can alter car water temperature;
  • Car physics scripts:
    • Access to car controls API, such as ac.setABS();
    • Setting control button listeners shouldn’t crash anymore;
    • New ac.reportIncompatibleSetup() and ac.onSetupValueChange();
  • WeatherFX styles:
    • New ac.setRadiosityAmbientColor() for WeatherFX style scripts;
    • New ac.setNeutralSunTrajectoryTimestamp() for setting timestamp for neutral sun trajectory in case seasons are disabled;
  • ac.ControlButton():
    • Internals of control buttons rewritten to improve performance, stability and solve potential issues with Lua buttons using the same IDs as CSP buttons;
    • Using : to separate readable name didn’t work with INIpp logic, so the separator changed to /;
    • If device is missing, shows something reasonable;
    • Buttons for cars without user control shouldn’t work anymore;
    • Entities can be disabled;
  • Python:
    • New ac.ext_getTyreWear() function for Python apps;
  • Car controls API can swap audio events with different ones with audio tweaks for something like a different engine audio event for a different mode;
  • New [AWAKE_TRIGGERS] BUTTON=… property for Lua apps;
  • Lua app awake triggers will shut down inactive lazy apps 10 seconds after triggering.