New method to calculate wheel positions for remote cars, should be somewhat better if remote car has jumped or flipped (optional);
Also with that new method, server can optionally let clients exchange data on toe and camber for more accurate wheels positioning;
And also, new method might reduce CPU load for clients;
Make disconnected cars visible;
Adjust amount of those spectating 2D people in stands;
Limit controls lock time;
Force headlights for all cars without making server CSP-only;
Stop some pitlanes from counting towards serving drivethrough penalty (for example, secondary pitlane on Spa);
Configure collisions between cars (make them softer, stiffer, bouncier, etc.; depends on what the server might need);
Enable lap invalidation for laps with car going through pits;
Verify integrity of miscellaneous Assetto Corsa files;
Force specific CSP modules to be active;
To extended previously added NO_BACK_TO_PITS: now possible to allow to use pits for cars that are already in their pit position (for accessing setups);
GamepadFX:
New module altering gamepad inputs with a Lua script implementing new control schemes or simply acting like an assist;
New script Custom by Dmitrii A. which uses forces acting on steering wheel;
GUI:
New look for pause menu with built-in photo mode (for now disabled by default);
Option to use controllers (such as wheels or gamepads) to move mouse cursor and select things;
Loading screen:
Animations that don’t cover the whole screen no longer move, with an option to fill empty areas with blurred version;
Better compatibility with custom screenshot names (strict search now disabled by default, names checking improved);
Recursive screenshots search if strict search is disabled;
Fading for optional slideshow;
Keyboard input method:
Smooth transition for toggling mouse steering to make sure suspension would not get damaged;
Mouse steering: options to shift with 4th and 5th buttons or mouse wheel, pause if window is not in focus now applies to acceleration and braking as well;
Graphics Adjustments:
VHS filter has been replaced with new scriptable filters system allowing to create dynamic post-processing filters with Lua;
New Tunnel Effect filter adding a bit of radial blur with speed and B&W effect for crashes;
New vintage filter trying to recreate style of old footage;
TyresFX:
Extra visual effect for wear showing up with driven distance;
New look for blown tyres;
WeatherFX:
Seasonal adjustments (that winter look) are disabled by default, can be re-enabled in WeatherFX settings;
Updated sky texture and stars brightness computation in default WeatherFX script;
Overcast and light pollution in default WeatherFX script are updated;
Weather scripts now can control sun specular intensity separately and use masks to cover moon and stars when using cloud domes;
Custom car physics:
Link engine torque and malfunction chance to engine damage with a LUT;
Add physics Lua script with read and write access to car inputs and few other things (can be used for creating various automatic gearboxes, launch controls, different ways to control a car, etc.);
Custom track physics:
Define new faster custom colliders in surfaces.ini, such as capsules, cylinders, boxes, spheres and planes;
For configuring time, use live reload for collision parameters and new custom colliders;
New SkidmarksFX implementation (fully reworked to improve visuals and performance):
Cars leave traces in dirt and sand (outside of track);
Blown tyres leave scratches;
Dynamically extending elements to make sure traces would not get detached from their wheels;
Optional advanced blending (forcing new marks to wipe out previous ones instead of adding up);
Option to save skidmarks between races;
Car configs can adjust skidmarks opacity and tint;
When blown, tyres release a bit of dust particles;
Updated look for sparks, simpler and more consistent to try and prevent sparks from looking mad;
ExtraFX: TAA update, now with a new option to increase resulting sharpness without relying on sharpening in post-process;
Hotkeys to adjust Real Mirror mirrors (with extra options in Small Tweaks settings);
Hotkeys to move onboard camera around during the race (with extra options in Small Tweaks settings);
Alter yaw of onboard camera as well (currently, by using either hotkeys or a Lua app);
Cache for computed meshes metadata (bounding spheres and more) to speed up loading;
Faster loading for DXT1/3/5 and RGBA8888 DDS textures (experimental, disabled by default);
Clicking on meshes now works in VR (option to choose which eye to use, or use middle point of both of them);
Built-in script recreating some sort of Android Auto OS, can be easily added to car configs (with support for additional custom apps);
Mesh data compression now uses LZ4 compression to speed up loading;
Custom physics: alternative option for worn tyres to pop;
Dust particles change color with seasonal adjustments (if set in track config);
New rendering method for spectators (with shadows and faster), with an option for spectators to use camera flashes;
Option to control font scale with new name tags;
Option for angle of looking back for Neck FX;
Option for loading information to show on middle screen only with triple screen;
Option for chromatic aberrations to apply in all views but first person one (by default it’s only active with track cameras);
Fix for crashing Discord overlay (can be disabled in General settings just in case);
Small Tweaks: option to hide standind spectators;
Sun position for sun rays now computed differently, with better support for VR and triple;
Graphics Adjustments: accessible options for clip planes in VR, default far clip plane value fixed;
Splitscreen mode: support for two separate mouse devices if both control presets use keyboard input method, working mirrors;
New accurate moon texture;
Nearest car now casts highly detailed dynamic shadows (number of cars can be increase in settings);
NeckFX now works for other cars online and in replays;
Option to disable Ctrl+P hotkey (enabled by default);
Option to get AIs to drive faster with some three-wheelers with short rear axle;
Windows 7 support is fixed (especially sorry about that one, didn’t mean to do it);
Stereo mirrors in VR fixed;
ExtraFX: overly blurred with some configurations (and not really working in general as intended) TAA fixed;
Overly bright extra lights in and on some modded cars fixed (now light-to-emissive-bounding behaviour automatically switches to an older buggy version for mods that need it);
Fixed overly bright light cast by sparks with ExtraFX and screen-space lights;
Failing to load textures from ZIP files fixed;
Broken in some occasions solid color textures (for example, messing up Toyota GT86) fixed;
Black windscreen dirt in some combination of settings with some cars fixed;
Live WeatherFX controller fixed;
Telltale reset button binding is fixed;
Drive-through penalties set for speeding up in pits resetting when leaving pits in some circumstances fixed;
Windscreen wipers shaking with speed fixed (could lead to strange jumping with some configurations before);
Removing meshes with extension script leading to sometimes AC crashing on launch fixed;
WeatherFX: reflection brightness and saturation adjustments now apply to SSLR as well, unloading textures fixed;
ExtraFX: a few issues with SSLR leading to overly dark reflections in fog and similar issues are fixed;
TyresFX: shading for damaged tyres fixed;
Dynamic shadows remaining from disconnected cars fixed;
Dynamic shadows cast from meshes invisible with alpha testing (for example, Santa Monica Mountains) or because of world detail level fixed;
Dynamic shadows optimized and improved with proper gaussian blur;
Driver VAO would no longer be applied with custom driver model replaced via an extension config;
Setting UI scale would no longer mess up navigators and such;
Issue with track displays sometimes crashing the game during loading fixed;
Driver hiding before the start of the race fixed (now hiding seatbelt and switching vertex AO set);
Nice screenshots: ETA text format fixed, quality of rear view mirrors fixed;
Changing master audio level live fixed;
Custom physics: ballast fixed;
Virtual mirror sometimes disappearing (for example, with original smoke particles) fixed;
Issue with overly bright lights (above 60000 in brightness) producing black artifacts fixed;
Server option allowing clients to drive in wrong way now works even for clients with New Behaviour module disabled;
New starting camera trajectories no longer result in messed up visuals with flying grass and such;
Extended physics turbo not showing up negative pressure properly fixed;
Bug with some cars with extended physics not driving forward because of unfortunate comment in engine.ini fixed properly (previous fix only worked with cars without packed data);
Video players now initialize in background to make sure there wouldn’t be a lag;
Distant emissives not working if mesh was loaded from an additional KN5 fixed;
Distant emissives area glow now works with origin shift;
TAA in refracting headlights not always functioning properly (and causing headlights to look dimmer than they should have) fixed;
Refracting lights generating messed up internal normal map in some cases fixed;
New UI: simplified transparency fixed;
VHS filter is compatible with CAS now;
Partial live reloading for cars and tracks fixed (now working better with generic configs);
Improved multi-user inputs support (for example, in split-screen mode secondary user now can use CSP keyboard input tweaks and such);
New Modes crash fixed;
Teleport destinations fixed: issues with scrolling, crash with too many elements;
Bug with optional car parts misbehaving with distance fixed;
New flames: interior audio fixed;
Triple mode tweaks: driver name tag for nearest car is hidden now;
Clicking on scene (for example, for auto-focus) in triple fixed;
Grass culling in triple screen mode fixed;
Visually adjustable wings are synced online now;
Splitscreen mode: improved support for multiple wheels, flickering, shadows and few other issues fixed;
Cars ABS not accessible from setup menu if present but not active by default fixed;
Smoke, other particle effects and occlusion on tyres for remote cars online fixed;
Issue with glass meshes getting lit up from the back too much with VAO patches fixed;
Assetto Corsa no longer crashes when activating AI for main car without preferred tyres set;
Smoke works properly with disabled soft particles;
Smoke brightness fixed;
Bug with AC rarely loading into black screen until PP filter is changed fixed (hopefully);
Unlinking digits from turbo adjustment now no longer stops other AC functions bound to digits;
Enabling AI driver when using mouse steering now stops hiding mouse cursor;
Fixed issue with new chat in start menu if new UI scale is not 100%;
Car input SPEEDLIMITER now reacts to manually enabled pits speed limiter;
Escape-to-unpause no longer unpauses AC if there is another window in foreground;
Physics API is available without extended track physics now;
Scripts can access files for selected cars and track (can be used to change car skins live, for example);
Add new extras to that list with lightbulb in chat app for extra online features (either with popup dialogs or working as tools);
Add new extras for admins;
Get Steam ID for current player;
Set additional post-processing color corrections;
Access cars KN5 textures (to revert changes when switching skins);
Access some gameplay API (move camera around, toggle drivers, open car doors, set track conditions, switch car camera is focusing at and more);
For live reload, server scripts now loaded from extension/lua/online rather than track folder (server scripts got a separate library);
Listen to events of somebody connecting and disconnecting;
Error messages in callbacks getting cut fixed;
Storage messing up values with commas fixed;
Several online events in one script not working properly fixed;
Transparent and tool windows always having that non-disableable padding fixed;
Car and track script configs now can refer to scripts in extension/lua/cars and extension/lua/tracks accordingly;
API to control particle emitters (smoke, flames, sparks) and detractors;
Information about car metadata like year or special features with functions to access car brand name and country;
Access information about currently playing music track, its cover and peak levels, play/pause and switch to the next or previous track;
Function to draw a race flag of a custom color with fullscreen HUDs;
Fullscreen HUDs no longer need to create transparent windows to draw things (but can still do it for simplifying general operation);
Online events now can set namespaces (so that Lua app can exchange data with an online script, for example);
Scriptable displays: functions to access dimensions of a screen and the texture, a function to move driver eyes position (for moving the seat?);
Web API:
Upload binary files;
Limit for simultaneous requests no longer creates an error, instead following requests are queued up;
Scene API:
Use live textures with ref:setMaterialTexture() (videos, currently playing album cover);
Use asynchronous textures with ref:setMaterialTexture() (textures loaded from web or set with ui.setAsynchronousImagesLoading(true));
Quickly apply a skin to a node, or reset a skin;
Access world transformation of child nodes;
Access texture slots and material properties (number of, names, values);
Apply shader replacements from INIpp format configs;
Load and apply KsAnim animations;
Load and use remote KN5s and KsAnims;
Project textures onto models with optional masking and other options (or even custom shaders);
Make a shot of some 3D meshes or nodes and use it as a texture or an image to draw in UI;
Physics API:
Apply penalties;
Add forces to cars (invalidates laps);
Set tyres temperature and/or blankets, set car damage and fuel;
Override racing flag (including access to new flag types like ambulance or slippery warning);
Disable user controls;
Access state of user controls directly;
Change driver name and/or team during the race (for hot driver swaps);
Set engine RPM, activate and deactivate stalling;
UI API:
Create separate canvases (render targets), draw things into them and then use them as textures, access their pixel colors, store data as images, backup and restore their state, apply anti-aliasing and more;
Apply blurring effect to drawn images;
New universal ui.icon() function which can draw 24×24 icons, flags, any other icons and custom icons (any other API method expecting icon now can take other ones too);
Add icons to previously drawn elements with ui.addIcon();
Function ui.atlasIcons() to easily load compatible icons from atlases;
New functions to get image size and mouse wheel offset;
Store values and flags associated with UI elements;
DWrite fonts: load system fonts using @System for the path;
Media players: link playback rate to simulation speed, generate mips (great for setting videos as textures without dynamic textures);
Create custom tooltips with more than just text;
Create modal popup dialogs (the ones with blurred background);
Render textures with masks, custom blending mode and more using ui.renderTexture();
Render custom shaders with bound textures and parameters using ui.renderShader() (shaders are compiled on-fly);
Pushing clipping rects fixed (now affects inputs as well);
Lua apps:
Windows restoration on reloading fixed;
Window IDs are ensured to be unique now to avoid conflicts;
Special flag for app to work in lazy mode: no scripts would be loaded until app is opened, in full lazy mode scripts will get unloaded completely when app is closed;
New APIs to check window visibility, toggle windows, change window title, unload apps in background;
APIs to move onboard camera, change FOV, pitch and yaw (alters same values as that default onboard camera editor app allowing to create custom alternatives);
API to reload control settings live (only limitation is that input method can’t be changed);
Missing scrollbars are fixed now;
Monitor file system changes;
Control state of AI spline recorder: start and stop recording (allows to create AI splines without crossing finishing line);
General API:
A few functions for strings with binary data (compression, struct-to-binary and binary-to-struct, base64, UTF-8-16 conversion);
Some functions, such as io.save() and web.post(), now work properly with binary strings (strings that contain zero bytes in them);
Strings passed back from C++ in callbacks now work properly with zero bytes as well (strings returned synchronously were working before);
Calculate checksum of a file (SHA-256, works asynchronously) or binary data (either XXH3 or SHA-256);
Encode and decode halfs (with support in ac.StructItem as well);