0.3.0-preview520
- Version ID: 4053
- Size: 137,97 MB
- Published: 2026-08-02
Changelog
Section titled “Changelog”New features, options and improvements
Section titled “New features, options and improvements”-
AC & CSP physics:
- The old AC bug where subsequent hits override suspension damage fixed;
- Thermal model v4 is compatible with AIs;
- Speed limiter (
[SPEED_LIMITER]inelectronics.ini) rewritten to be more accurate and prevent oscillations; - New parameters for
[_EXTENSION_FLEX]:VERTICAL_BENDING,LATERAL_BENDING,LATERAL_SHEAR,VERTICAL_SHEAR,LONGITUDINAL(now everything works accurately); - Add
EXT_DAMAGE_GAIN=<amount>parameter to[FRONT]/[REAR]to damage suspension when travel exceedsEXT_DAMAGE_THRESHOLDfrom the same section; - Add
[_EXTENSION] WATER_THERMAL_MASS=20 WATER_COOL_SPEED_K=0.002toengine.inito tweak water temperature calculation; - Surface noise reworked: a lot of fixes, now applies to all the contact points independently;
- Finished physics experiments can no longer be disabled online to ensure the same conditions for everybody;
- Editing custom physics setup sliders triggers ride height reevaluation as well;
- With minimal ride height, cosmic suspensions continue to be tested as long as ride height changes;
- Physics engine uses GIMPACT for detecting collisions, instead of OPCODE;
-
New taskbar:
- An option to change the edge of the screen the taskbar is on;
- An option to configure icon alignment;
- Smaller fixes;
-
New menu:
- If lap splits are empty, lap splits from the previous lap will be shown, matching original behavior;
- Split times are rounded the same way they are in the original menu;
- Race info: click on sessions on top to quickly switch between them (stepping back is not available online);
- Time table: times from previous sessions, times for different cars, printing fixed;
-
Rain FX:
- Freezes when rain starts should be reduced;
- Small fixes for windscreens;
- Wiper showing up for a frame in wrong position fixed;
- Thresholds for splash particles adjusted;
- Rain is compatible with accurate mirror projection;
- A bug with rain occlusion failing to reuse cached variant fixed;
-
CSP Debug app:
- A new checkbox to show the actual track surface relief (affected by track surface noise and such);
- A new button to break and fix suspension;
- A new button to view
tyres.iniof cars with automatically generated tyre sets; - An outline of a saved car state and the distance to it;
- LOD selector shows LOD distance multiplier for the car selected;
-
Car state saving rewritten:
- Jumps with strut suspension fixed;
- Saving more data: state of turbos, controllers, ERS/KERS, cosmic damage, extra cosmic bodies, custom setup items;
- Issues with CSP body flex, shifting driver or ballast fixed;
- Interpolation between several states and state precision improved;
- Functions for state transformation are fixed and now work even if the car isn’t present;
-
Visuals:
- Light bouncing off cars fixed;
- Dynamic shadows: car headlight edges are fixed, other small improvements;
- Trees receiving shadows adjusted;
- Large Grass FX pieces look better when close to an edge;
- Fake wheel shadows are better compatible with surface noise;
- Depth-based particles collision fixed, now sparks and pieces can be present under bridges;
- Rear mirrors use clamping sampler, fixing occasional rendering artifacts;
- Brake sparks disabled entirely until I’ll find a better way of tuning it;
-
New and changed options:
- New option in DXGI Tweaks,
VRR / uncapped FPS: automatic (default) uncaps FPS only if G-Sync or FreeSync is on in Windows or GPU settings; otherwise FPS stays capped to the display refresh rate to avoid tearing; - New weather controller switching between a few weathers: Schedule;
- Using mouse wheel for zooming with free camera can be disabled now;
- New experimental option to use FFmpeg instead of Microsoft Media Foundation;
- New option in DXGI Tweaks,
-
Default Weather FX style:
- Puddles audio is working with rain and wetness at zero;
- Lightning illuminates the scene more;
-
Showroom and CSP previews:
- Crashes and rendering issues when generating previews fixed, body flex is paused;
- Gaussian splats for showrooms;
-
Neck FX:
Fix cursor in placedisabled by default (it was conflicting with some apps);- Old motion method no longer glitches on overlapping AI spline;
- Helmet definition for
vrc_rhp_helmet_b_famodel;
-
DualSense haptic feedback:
- Available with Wheel input mode;
- Operates in stereo (for wheels);
- Adjusts to master audio volume (still doesn’t work with master volume set to 0% though);
- A few fixes;
-
Music monitoring:
- New implementation, more efficient, responsive and informative;
- Direct audio capture from music process alone, allowing to track peaks and audio spectrum precisely;
- Experimental option for tracking peaks and spectrum from internal music players, disabled by default;
- AIMP integration updated and disabled by default;
-
Miscellaneous:
- A simple turbo boost estimation for remote cars online;
Flash lightsbutton now uses logic similar to flashing high beams (with the new option[BASIC] FLASH_HIGH_BEAMS=1, which is default);- A couple of small fixes for Surfaces FX physics, improved compatibility with Rain FX;
- New experimental controller tweaks for extrapolating steering (disabled by default);
- Car Debug app: new
Dynamic & aero controllerssection showing detailed controllers state; - Bounding sphere calculation for cars rewritten, now uses lowest LOD if possible (the same as AABB), fixing issues with questionable mods;
- CSP now uses WIC to save regular PNG screenshots, no longer includes alpha-channel (previously, it could mess up screenshots if accumulation AA was disabled);
- Radiance (
.hdr) and TGA textures support; - Shaders cache purging reworked, might help with long initializations;
- Default timing modes are switched to high resolution timers,
Sleepmode adjusted to improve responsiveness; - Freezes profiling can be enabled in Render Stats app, without that setting in developer section, small fixes;
Check Intel CPUsoption is re-enabled (according to all the checks I’ve made, it should work correctly now);- HBAO+ is initializing in background;
- A lot of improvements for background shaders loading to reduce stutters;
- Hyperthreading fix has been reworked for better compatibility with Windows 11 and those fancy new CPUs;
- Extreme FPS limit values work better with mouse and keyboard events (basically, any such event pushes a frame to happen sooner);
- More values in
assetto_corsa.inican be changed live:LOW_SPEED_FF,FORCE_FEEDBACK,FF_EXPERIMENTAL,OVER_TIME_MULT, screenshot format, dirt multiplier and glass damage threshold; - If accumulation screenshots are disabled for some reason, photo app features (flashlight, preview, etc.) should be available regardless;
- New hidden
OVERRIDE_SPLITsetting for Smart Shadows, for exceptional cases, allowing to override shadow distances entirely; - CEF updated to v150.0.11.0;
meshoptimizerlibrary updated from 0.25 to 1.1;
- SFP should be compatible with altonline (and P2P mode);
- The issue with disabled assists shown as enabled fixed;
- Leaderboard in replays fixed;
- Fixes for some crashes related to custom physics;
- Fixes for occasional crashes with P2P and custom physics that could happen when another user connects;
- Occasional crash linked to disabling original flames fixed;
- Small performance improvements, CSP no longer uses MMCCS for physics;
- Skipping to a race session from the main menu no longer leaves cars’ tyres in a messed up state;
- An issue with disappearing cars with a single LOD fixed;
- Test Pad track no longer breaks with
Do not wait for walls to be readyexperiment; Account for ping online: occasional crash should be fixed now;- Occasional GPU crashes should be fixed;
- Extra FX doesn’t drop everything when resolution changes, fixing issue with accumulation screenshots and DLSS (or simply a different resolution scale);
- Session names in online sessions are fixed (in Lua API and the new menu);
- An old bug with disabled controls in chat settings fixed;
- Exporting skidmarks as OBJ is compatible with DLSS and similar extensions;
- Nice Screenshots: resolution multiplier fixed;
- New KN5 loader: bounding sphere cache not being reset cleanly fixed;
- Improved compatibility with non-linear (gamma) Weather FX styles;
- IMGUI: optional scrollbars no longer lead to flicker with components that have their width and height linked (such as color picker);
- Full reload no longer breaks custom lights (such as the light from Light Maker app);
- Bounding spheres recompute updated to be a bit faster and handle exceptional cases better;
- Crash reports include information about Lua scripts running on other threads;
- Crashes caused by resizing when loading fixed;
- Walking Out helper fixed, now loads car facing the correct way;
- Small fixes for multiple monitors;
- Loading process is a bit smoother;
Configs
Section titled “Configs”-
Cars:
- Racing cars get low beams as well (previously,
[BASIC] IS_LOW_BEAM_AVAILABLEfor racing cars by default was 0, now it’s only 0 for open wheelers); - New
[AUDIO_PROPERTIES] WHEEL_BRAKE_TEMPERATURE=1parameter for car configs for passingbrake_temperatureparameter to wheel audio events; - New
SKIP_FRAMESparameter for car stereos (defaults to 3); - Fixes for car stereos: better characters lookup, frames skipping is now based on time and not on frames, refresh rate is boosted when real spectrum is available;
- Car headlights cast shadows even if
DIFFUSE_CONCENTRATIONis below 0.7 (it doesn’t have any other effect on car headlights anyway); CORNERINGLAMP_…car inputs: newMAX_SPEED_KMHparameter, defaults to 40 km/h;- Issue with ride height detection with rear cosmic suspension in pits fixed;
DISABLE_NEW_FLAMES_ENTIRELYoption is working as intended now;- New hidden
[DEV] EXPORT_RAIN_TYRES=…option ingeneral.iniallowing to export generated rain tyre textures; - Car cloth flags physics rewritten (still needs a bit more work);
- Racing cars get low beams as well (previously,
-
Tracks:
- New
[GRASS_FX] COLOR_SAMPLE_MIP_LEVEL=…parameter (defaults to 0, increase to make grass color smoother); - New
DELAY_BETWEEN_RUNSfor ksanim-based track animations; - Edits of included track configs no longer constantly trigger full reload;
- New
-
Both cars & tracks:
- New
RECOMPUTE_TANGENTS = 1/INVERToption for[MESH_ADJUSTMENT_…]; make-rgba::andmake-script::textures are fixed;- Objects Inspector: click and drag 1D values to temporarily change them;
- New depth mode:
WRITE_ONLY(for exceptional cases);
- New
-
Session:
- New session tweak (for both offline and online):
[EXTRA_RULES] BACK_TO_PITS_PRESERVES_DAMAGE=1stopping cars from having their damage reset on teleporting to pits; - New
[EXTRA_RULES] CHANGE_TYRES_PER_AXIS=1parameter for offline races, allowing changing tyres for front or rear axle only using Quick Pits menu (for online races, next CM update will have a checkbox; if set and user chooses to change tyres on both axles at once, time to change is doubled);
- New session tweak (for both offline and online):
Lua & Python
Section titled “Lua & Python”-
Common API:
- New
ac.SimStatefields:.renderSize,.upscaleConfiguredFactor,.upscaleAppliedFactorand.upscaleSharpen; - New
ac.StateCar.suspensionDamage; ac.StateCar.collidedWithworks in online races;ac.onCarCollision()works in replays;ac.encodeTexture()is available to scripts without I/O access once again;- Pass an array of values to shaders using
ac.StructItem.array(ac.StructItem.vec4(), …)(vec4only); - New
require('shared/utils/playing').spectrum(),.fftMagnitudes()and.fftRawData()(relies on new music monitoring options); - New
ac.INIConfig.systemSurfacesData(); - New
ac.SurfaceExtendedType.Wall, updates forshared/sim/surfaces, fix forsurfaces.propertyAccessor(); .raycastDetailed()ofshared/sim/surfaces: argument to skip walls (or everything but walls), argument for backface culling;- New
ac.getReplayFilename()function returning full filename of the loaded replay; ac.stringifyCurrentSetup()fixed, got a newmodifiedOnlyargument;- More details about loading FMOD audio events from Lua API in CSP log, prefixed with
[LuaFMOD]; debug.traceback()function is available to sandboxed scripts as well;mat4x4:mul()and such no longer crash AC when receivingnilvalues;- 2D perlin noise with large inputs fixed;
- Fix for a rare crash related to Lua callbacks;
- New
-
UI:
- New
ui.nextRow(); - New
ui.pathSetColor()allowing to draw multi-colored lines and shapes; - New
ui.drawRectMultiColor(); - Repeated calls to
ui.pushDWriteFont()no longer lead to a crash; ui.MediaPlayer()withrawOutput = falsenow redirects audio through FMOD, allowing to position it in 3D;ui.GIFPlayer(): argument to specify format when pushing data manually, docs updated (if you need to pass a large array to a shader, this is the best option);- A glitch caused when issuing too many
ui.draw commands into a secondary render canvas fixed; - Redirecting IMGUI windows no longer breaks canvas updates within;
- New
-
Web API:
- Improved certificate pinning (checking the entire chain, intermediate or final requests, public key, compare against multiple fingerprints, collect extended details);
- Option to ignore specific HTTPS errors;
- Errors should be more meaningful;
- Performance and security improvements;
-
Scene API:
- New
:createMeshAsync()function (uploads the asset to GPU in background); - New
:applyShaderReplacementsAsync()function (parses in background, applies changes a few at a time to prevent a freeze); :findByClass(ac.ObjectClass.Renderable, …)and such should work now;- Small stability improvements and a couple of fixes for Scene API leading to occasional crashes;
render.AntialiasingMode.SimplifiedYEBISno longer follows auto-exposure of the main camera;- Geometry shots use best sky shader if best quality is requested, culling with custom projection matrices fixed;
- New option to ignore renderable flag and load everything when loading KN5s;
:getLocalAABB()takes an argument for extra transform, docs updated;- Exclusive grass or shadows for geometry shots no longer mess up geometry culling;
- New
-
I/O API:
os.runConsoleProcess()better handles environment variables, logging is more detailed;- Fixes for
os.listSerialPortsAsync()andos.openSerialPort(); - If AC is running elevated (as admin; please don’t do that), child processes now start from shell process, fixing some compatibility issues;
-
Car physics scripts:
- New
ac.StateCphysCar.suspensionDamagefield,ac.addSuspensionDamage()for car physics scripts; ac.setGearsGrinding()respectsdamageKparameter as a multiplier;ac.addSetupTab(): default pitstop presets tab has an index of 2000, so passing 1000 for a custom tab will place it above;- Additional tabs by default are sorted alphanumerically;
ac.configureSetupTabs()affects dynamically added tabs as well;- Hidden setup tabs no longer stay visible if they’ve been selected while tabs menu wasn’t shown, hiding is better compatible with horizontal tabs;
- Functions
ac.setCurrentQuickPitPreset(),ac.setPitstopSpinnerValue()andac.disableQuickMenuPitstop()are available to car physics render modules; - Crash when reloading car physics scripts with automatic gearbox (and similar) fixed;
- New
-
Physics API:
- New
physics.offsetFinalFFB(); - New
physics.setSuspensionDamage(); ac.tryToTeleportToPits()andphysics.teleportCarTo(): argument to specify if damage should be preserved;physics.raycastTrack()andray:physics(): argument for backface culling;
- New
-
Apps API:
- New
NO_ICON_IN_WINDOWflag hiding icons from windows of Lua apps, or apps created viaui.addSettings(); - New
ac.getPowerState()andac.onPowerStateUpdate(); - New
ac.applyRenderingLimits()for temporarily limiting FPS, game scale, shadows resolution, or disabling Extra FX (more fields will be added later); ac.setAudioVolume(): changes are saved, passfalseas fourth parameter to disable;
- New
-
Lua Debug app:
- Better at showing large numbers;
- Column for garbage per second;
- Small improvements for summary tab;
-
Miscellaneous:
- New
require('shared/vr/vrmisc').rawDeviceTransform()function; require('shared/sim/weather').estimateRainIntensity(): adjusted values for drizzle;display.text():alignmentno longer mutatesposvector;- Animated GIFs are working in loading screen scripts;
- New
ac.preloadRainFX()for Weather FX controllers (Pure and Sol controllers are preloading rain automatically); - GameNetworkingSockets: if signalling service is not configured, the default one will be used instead;
- New
-
Python:
- Warnings about Python apps causing freezes;
ac.ext_setAudioVolume(): changes are saved, passfalseas second parameter to disable;- New
ac.ext_setMessage()for Python apps, the same arguments as inac.setMessage()in Lua scripts; - CamTool_2 and other Python apps setting system-wide keyboard and mouse hooks no longer cause everything to lag when FPS is low (for example, when Assetto Corsa window is in background), hooks are no longer active when apps are paused as hidden;
This site is maintained by C1XTZ, a 3rd party unaffiliated with Custom Shaders Patch. You can contribute here.