Skip to main content
  • Version ID: 1937
  • Size: 61.64 MB
  • Published: 2022-02-28

Changelog

New features, options and improvements

  • New server options:
    • 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;
  • Few tweaks for new smoke dynamics and shading.

Fixes

  • 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;
  • A few smaller fixes and stability improvements.

Configs

  • Track configs:
    • Changing of dynamic shadows casting property now applies live;
    • Specify flammable materials (with extra visual effect for burning bales of hay, already added by default to Material_Bale from materials_track);
    • Link dirt, grass and dust color to conditions (or use [BASIC] USE_WINTER_DIRT_COLOR = 1 to apply default seasonal adjustment transition);
    • Apply extra blur to dynamic shadows with SHADOWS_EXTRA_BLUR = 1;
    • Turn flat spectators made with ksPerPixelAT shader and such to regular particle-driven spectators to benefit from new way of rendering spectators;
    • Stop new spectators from using flashes with [SPECTATORS] FLASHES = 0;
  • Car configs:
    • Use expressions for car inputs referring to several values at once or outputs of other shared inputs;
    • New way to write extended digital instruments: use [DIGITAL_INSTRUMENT_OVERRIDE_...] with INPUT;
    • Hide specific digital text nodes;
    • Navigators: add map offset if camera should not be centered on the screen;
    • Options to offset generated wheel shadows with Fake Shadows FX;
    • Interior PBR materials now support skinned meshes (for regular and cloth materials);
  • New functions for car input and track condition expressions: max(), min(), smoothstep(), remap(), saturate() and few more;
  • New option for ksPerPixelMultiMap_AT shader: set extUseDiffuseAlpha to 1 to swap roles for alphas of txDiffuse and txNormal;
  • Minimum lights range reduced from 10 cm to 0.5 cm;
  • Refracting setup tool works better with origin shift.

Lua

  • Server scripts:
    • 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);
    • Create transforming matrices (translation, rotation, scaling);
    • Ray/plane raycasting;
    • Get list of files in a ZIP array;
    • Load and save files asynchronously;
    • Events shared between all running scripts;
    • Additional functions to access state of controls and gamepads, as well as number of connected controls, their names and capabilities;
    • Get pen pressure with Windows Ink API;
    • Functions to parse and serialize INI files in AC or CSP compatible formats;
  • Default extension in UI dialogs fixed;
  • VS extension updated to support auto-detect of car physics scripts;
  • Unless specifically configured, display scripts for other cars will not get loaded at all until needed;
  • VS Code plugin updated, now increases preloadFileSize setting automatically (in workspace only);
  • Remote images now cached in accordance with HTTP rules (Last-Modified, ETag, Cache-Control, etc.).