New Quick Drive mode Drift Challenge made by Neoned for some proper drifting;
SurfacesFX:
New ice physics made by Dmitrii, automatically applying to some older tracks with ice surfaces (optional);
If any ice surface is present, cars get extra tyre sets with spikes;
New Quick Drive mode Frozen Drive turning any track surface into ice (online servers can also activate this mode);
New KN5 loader:
Uses files mapping for more efficient loading;
Skips unused textures (for now optional, disabled by default);
Shares mesh data and materials across different cars to save RAM and VRAM (mesh compression option also has been moved there);
Skips meshes removed with [MODEL_REPLACEMENT_…] entirely;
Strips unnecessary data from physics-only meshes to save RAM;
A bunch of smaller optimizations for rewritten logic;
Default WeatherFX style:
Brightness has been reworked for nights, lights, emissives, driver tags, etc.;
Snow for snowy weathers or low temperatures with rain (currently needs RainFX to operate);
Ash for smoke weather type (for now, also needs RainFX since they’re sharing the same underlying mechanisms);
Option to draw nights a bit more blue;
Some basic tornados in background for tornado weather;
New physics experiments:
Stalling for cars that don’t have custom physics scripts reactivating stalling (if button is not bound, gas pedal starts the engine);
New car collision logic (pretty much the same for now, but with a slightly different method to estimate damaged side);
Fix for surface parameters assignment on tracks with incorrectly named meshes (they were ending up treated like walls);
TyresFX:
Tyres visually grow with angular velocity to match their physics state;
Blown tyres visuals and animation improved a bit;
Better Joycon support with an optional buttons remapping to better fit a single piece;
If selected engine map is linked to something in a car config, its state will be exchanged online and stored in replays;
Driver model tilts and moves with G-forces using that weird bit of code added earlier for driver weight shifting;
G-forces now also apply to driver’s head (a bit of extra movement on top of original logic);
Option to load inactive seatbelt geometry (might mess up some cars using it for some niceties in the showroom, so it’s disabled by default);
Held parking brake: option to configure speed threshold;
Experimental AI spline optimizations have been fixed and now enabled by default as proven to work;
Mumble integration: new adaptive PTT mode for servers (talk freely to people nearby, or hold PTT button to talk to everybody);
Small Tweaks:
Option to briefly desaturate image on collisions;
Option to hide driver in VR and keep only gloves;
Android Auto screenshots thing has been disabled and moved here;
Custom driver models: faster loading;
New audio adjustments in General:
Option to alter track ambience audio: remove all samples but one and instead use it to keep ambience working everywhere (General/Audio/Reposition AC ambience);
Option to alter AC ambience based on conditions (audio is loaded on-demand, more samples are coming soon; if disabled, audio will simply be lowered at night, kind of like generic config was doing previously for Kunos tracks using AMBIENCE_VOLUME_CONDITION);
New audio tweak to use actual throttle value (altered by gearbox cutoff or throttle curve) for audio;
Option to mix in external audio with opened doors or for roofless cars;
Alternatively, option to always play external audio together with interior audio (has an option to adjust AC reverb intensity);
An experimental tweak slightly altering engine audio when damaged;
Option to use external skidmarks audio everywhere;
New WeatherFX tweak automatically computing white reference point based on configured lighting;
Custom VR mirroring: a few options to quickly adjust brightness/contrast/gamma, just in case;
New OMSI-like style for mouse steering (look for a script with the same name);
Photo App: activate flashlight in scene tweaks;
SkidmarksFX:
Skidmarks on dirt or gravel from wheels going sideways and spinning create an extra row of stuff thrown out;
Flipped cars now create indents on gravel and snow;
ParticlesFX:
Dusty tracks (grip below 90%) now occasionally produce small dust clouds;
Default settings for arcade brake trails updated thanks to leBluem;
GrassFX: updated shading and spawn logic;
CSP Showroom:
Can be switched to fullscreen using Alt+Enter (also, remembers its position and size properly now);
Uses FLYCAM_… nodes properly;
Separate save file for opened apps;
Split-screen:
Automatic gamepads assignment to simplify things;
F6 camera is supported as well;
Option to keep HUD active;
Option to activate traffic;
Apps using physics API now can be used;
Separate save file for opened apps;
Audio from second car is working now;
Track camera works in split-screen mode as well;
New optimization letting CSP to cache configs in binary format to save time on INIpp processing;
Proximity indicator can be toggled in-game in View & Video Settings app (or by a launcher, config is being monitored now);
Box car colliders get more friction with ground contacts if any tyres are blown;
Collision audio logic updated (samples are still the same for now though);
Blowing tyres forcefully activate mesh collider;
Dirt accumulation for car bodies slightly updated, now stored in replays and can include snow;
Free camera respects cars exposure hints now;
For wheel inputs, as well as CSP ones, each section in controls.ini now can have an alternate binding in a [__ALT_<NAME>_<N>] section, where <NAME> would be the name of original section (i.e. GLANCELEFT), and <N> is any number (alternate binding could use any other device or whatever; not sure about CM support at this time though);
G27 lights: option to use AI shifting thresholds;
A couple of physics experiments are moved to the done section: the one smoothing controls locking and the one that randomizes wheel angles. Few other experiments are now enabled by default;
Automatic braking deactivation (from that physics experiment) now works in pitlane, but still not available in pit stop;
Some unnecessary settings have been hidden or removed.
Fixed overheating tyres in the rain on some cars when stationary;
Bug fixes for COSMIC suspension;
Steering column flex supported by COSMIC (though unlikely to be stable at 333Hz);
Fixed longitudinal G-input for TC/TC2 controllers with extended physics;
Tyre thermal model V3 is WIP with some additional features comparing to older models;
New native MoTeC data logger available (requires extended physics to be enabled) with logging rates up to 333 Hz;
Use OVERRIDE_BLANKETS_TEMP in tyres.ini/[FRONT/REAR] to override blanket temperature on per-tyre basis;
In some cases AC requires LUT to be a file and doesn’t accept inlined values, for example, with PERFORMANCE_CURVE. Now, you can use __INLINED: prefix, and the rest will be loaded as an inlined LUT.
Early colliders activation experiment leading to some cars misbehaving outside of flat surfaces rewritten to be smoother and more conservative, now taking distance to ground into account;
Issue with AI cars not starting to drive, or smoke at the starts sometimes shooting up, has been fixed;
Blue flags fixed;
Door sounds, as well as other audio events introduced by CSP, are fixed;
Lookless shadows (the ones more stable in VR) leading to flicker at speed fixed;
Additional reverb messing up audio in some cars fixed;
Variable Rate Shading (VRS) for VR fixed (there were some occasionally appearing artifacts);
Physics experiment fixing misplaced spawn points no longer messes up some tracks;
Look of stars in sky shader improved using proper bicubic interpolation;
VR mirroring with LCS and custom VR mirroring disabled fixed;
Issue with Forteny fixed: now meshes named with nothing but digits containing nothing but vertically-aligned triangles won’t affect physics (thresholds are rigid so it should be safe);
Binding Ctrl, Alt or Shift directly should work again with wheel or keyboard input scheme (since a recent update, it was filtered out due to the modifier state mismatch);
With gamepad input mode, pressing START button on a gamepad when pause command is not bound to a gamepad button pauses AC again unless that button is used somewhere else;
Side nets freaking out on replay rewinds are fixed;
Fireworks volume is linked to track volume, general look with LCS active has been improved;
Missing water normals texture used for water surface and caustics is fixed;
Default WeatherFX style:
Thanks to Tuttertep, a couple of major performance issues have been fixed;
Snow for snowy weathers and ash for smoke weather type;
Moonlight is actually noticeable now;
Stars look for low FOV views improved;
YEBIS replacement option shouldn’t cause lags with sun rays anymore;
Tunnels should be a lot smoother now;
Headlights should activate in tunnels as well, as long as there are VAO samples available;
Few fixes for rain audio;
Controllers integration for mouse movement:
No longer freaks out in pause menu with free camera;
Activates with in-game popup dialogs;
Mouse steering stops if there is a popup dialog within AC;
Mumble integration:
Better support for old Mumble servers (previously, all channels were mistakenly marked as closed);
New adaptive PTT mode for servers: talk freely to people nearby, or hold PTT button to talk to everybody (I hasn’t properly tested this one yet);
Some errors related to SSL fixed;
A couple of smaller fixes;
Loaded replays no longer play door sound at the start;
Improved compatibility with RealAuto Python app and other tools that might simulate key presses by sending key-down event instantly followed by key-up event;
Custom driver tags (in GUI) positioning fixed (previously they were over the heads of the drivers and not the cars themselves, so it looked somewhat broken);
Range of local area height and colormap extended to 100 m (resolution remained the same), now used to sync vertex AO with skidmarks too;
YouTube thing in Android Auto was updated once again;
Sun shape is drawn into reflection cubemaps;
Alt+Enter is handled properly with DXGI flip model;
Car fallback LOD now casts shadows properly;
Encrypted colliders and LOD D now can be loaded as shadow casters and for CSP Debug collider outline;
Overly extensive dynamic shadows jumping with nice screenshots fixed;
The bug with dropdown list opening behind popup dialog fixed;
Per-skin windscreen UV and rain occlusion would only be computed if skin config actually uses [MODEL_REPLACEMENT_…], that should help with loading performance;
Windscreen UV computation will try and reuse results as much as possible between cars in an attempt to speed up loading;
360° render mode uses its resolution setting instead of Fisheye’s one;
Photo App: automatic white balance now works with LCS;
Tab leaderboard online stops mouse from reaching IMGUI controls for better user experience;
Automatic braking deactivation no longer applies to cars with locked gearbox;
Water shader with LCS fixed;
Look of asphalt on Drift track improved;
AppShelf updates should be more stable now;
Ambient influence and reflections in rough surfaces are improved;
Assetto Corsa loads selected audio output device properly even if it contains non-ASCII symbols now;
New pause menu: pits button is disabled before the race start (it didn’t work anyway);
SkidmarksFX:
Few fixes for processing, saving and loading;
Parallax fixed, other shading improvements;
Context menus in App Switcher (Ctrl+Tab) are fixed;
Windscreen raindrops behavior and general visuals improved, amount of dirt spawned massively reduced;
GamepadFX: vibrations deactivation should be fixed now, also includes DualSense triggers resistance, also applies to haptic feedback;
CSP traffic:
Cars shouldn’t get flipped anymore, few other smaller fixes;
Damaged traffic cars now will despawn when far away;
Can be activated on any track in practice session;
After teleporting, AIs now use surface properties to figure out the target spline, and only after that they fallback to checking the distances;
Skinned meshes now contribute to car fake shadows;
Fake car shadows disappearing with LCS with FADE_FAKE_SHADOW lights active fixed;
NeckFX: added helmet definitions for rss_formula_modern_1 and gt-m24 driver models, definitions for driver_80 fixed;
Flag materials now cast rain shadows, fixing tents on Skidpad track (they use that flag shader in its tent mode);
Middle mouse button toggling mouse steering now works only with a proper click and not when being dragged (middle mouse button drag is used by NeckFX);
Fourth shadow split no longer messes up reflections, using min(shadow, AO) rather than ignoring AO where shadows are available, trees are no longer included;
Option for trees to receive shadows reworked, now a lot more stable;
Digital screen shader used for mirrors fixed, now better compatible with LCS;
CSP previews: blurry reflective ground fixed, showrooms with defined spawn locations no longer crash CSP or limit the number of skins processed at once;
BrakeDiskFX, including glow, now works on LOD B as well;
NeckFX: general visual for semi-transparent helmets is more compatible with LCS;
GrassFX:
Origin shift no longer messes up grass adjustments;
Color syncing misbehaving with LCS fixed;
Width of custom pieces fixed;
Skinned meshes now can receive raindrops;
RainFX:
Refraction buffer (mostly used for windscreen drops) fixed, now smoother and not overblowing with LCS, doing MSAA resolving if TAA is disabled as well;
Raindrop hits and splashes are now properly in sync with rain drops again;
Intermediate tyres get more accurate rain parameters;
Wind on trees is more pronounced now;
Cars collisions processing updated, now taking into account weight difference for audio, particles and other effects (so, no more particles spawning when hitting a cone);
ParticlesFX:
More sparks on collisions;
Piece particles shading and aliasing fixed, now properly occluded by track and car fake shadows;
Piece particles no longer break with many cars on a track, or with origin shift active;
Sun direction jitter with accumulation screenshots reduced;
Driver weight shift animation now affects seatbelt as well;
Camera under car (lower 30 cm) is no longer treated as camera inside the cockpit;
Emissives dimming in reflections adjusted, should help with occasionally breaking tunnels look;
New 3D trees:
Shadows are faster, especially when the sun is low;
General shading and performance improvements;
Billboards sample shadows better;
Wheel arch shadows and TyresFX spikes work better for cars with SUSP→WHEEL→TYRE nodes arrangement;
Smart Shadows:
Biases adjusted a bit;
Adaptive shadows: option to increase distance based on distance to ground, greatly improves shadows for views from above;
The bug with TyresFX failing to load custom textures from time to time fixed (might also fix other problems where textures weren’t updating properly);
CSP mechanism for detecting if certain wing animation is used to toggle some geometry got fixed to properly consider scale, so the optional roof of that Honda S2000 mod should hide completely;
Aero animations toggling geometry now trigger interior shape update, so interior masking cubemap of S2000 updates as it should;
Nodes used in aero animations toggling geometry now will be included in interior masking cubemap even if they’re outside of COCKPIT_HR (fixing another aspect of S2000);
Toggleable roof of Honda S2000 now works with RainFX, patching rain occlusion data on-fly;
Tilting driver (when using weight shift) now also tilts when casting a shadow;
Rare issue with extended car physics leading to car skin configs being ignored should be fixed now;
Crash when loading replays with track objects limit option in Small Tweaks active fixed;
Cars using carpaint_detail.dds for car paint color now can be recolored live as well;
Custom server loading background images no longer use forced caching allowing servers to update contents live (please remember to set caching headers appropriately if your image is static, or I’m going to be very upset);
New [EXTRA_RULES] AFK_AUTOKICK = <TIME>, [INPUT/SPEED] option for online servers (time in minutes, SPEED means stationary cars will be kicked, while INPUT is tracking car inputs and mouse position);
New option for online configs disabling snapping to the ground for specific cars (in case somebody would want to fly planes or something like that);
Disable autobraking with [EXTRA_RULES] DISABLE_AUTOBRAKING=1;
Car configs:
New INPUT=DATE, format can be tweaked with DIGITAL_ITEM_NUMBER_FORMAT=DATE, '%d.%m.%Y';
F1 rain lights behavior can be activated for pitlane lights with [DATA] RAIN_LIGHT_<meshname>=1, automatically activates if mesh contains rain (ignoring case);
Digital instruments can be added using [DI_…] INPUT=GAS syntax, as alternative to [DI_GAS_…];
Configure throttle value to use for audio using [AUDIO_TWEAKS] USE_ACTUAL_THROTTLE=<0/1/FULL/CUTOFF,CURVE,LIMITER,TC> (1 or FULL fully syncs up throttle with physics);
Configure rate of change for some audio values, specifying max change per frame;
Explicitly configure toggling animations to alter CPU heightmap;
Set an animation to alter rain occlusion data (currently, only a single geometry on/off animation can do that);
Setting INTERIOR_FAKE_UPPER_SHADOW_FADE or INTERIOR_FAKE_SHADOW_FADE to a negative value now forces CSP to ignore all INTERIOR_FAKE_… settings except INTERIOR_FAKE_SHADOW_OPACITY. Defaults depend on if car has a roof or not;
New [LIGHT_HEADLIGHTS] LOWBEAM_MULT=0.5 value specifying intensity of low beams comparing to high beams;
Logic for FADE_FAKE_SHADOW improved, now taking into account dynamic lights intensity (please only use FADE_FAKE_SHADOW for extra lights that might point under the car);
Real Mirrors: use CAMERA_POS and CAMERA_LOOK in a [REAL_MIRROR_…] config to alter the camera position for rear view displays;
Car skins car override driver position and animations;
New TORQUE_OFFSET for shaking exhausts (Porsche cars automatically get value of 1 to match their engine orientations and get exhausts to shift a bit with a lot of torque coming from the engine);
Bind extra car lights with BIND_TO_HIGHBEAM or BIND_TO_LOWBEAM;
Redirecting car audio ([AUDIO_REDIRECT] CARS=…) fixed;
Cars can use shared loaded on-demand soundbanks ([AUDIO_REDIRECT] SHARED=…), currently available: x4fab.test_peugeot_504 (CUPv2 users with certain permission can upload new soundbanks), could be useful for traffic;
car:: and track:: textures use skin textures if they’re overwriting the ones in KN5;
New BLIND_SPOT input for cars, a quick estimation of blind spot behaviour (use INPUT_SELECTOR=0 for left and INPUT_SELECTOR=1 for right, returns distance to the car);
Different flame types can be assigned to different flame points source groups, up to three groups in total;
CSP now uses GRAPHICS_OFFSETS from suspensions.ini. for default visual wheel and rim offsets for cars without animated suspension;
Digital instruments: switch blend modes using [DATA] DI_0_BLEND_MODE = ADD (for HUD of M4 to switch to additive blending);
Cars with a prefix rss_ can no longer use FADE_FAKE_SHADOW=0.8 value (it was meant for extra lights illuminating ground under a car);
Tracks:
Track coordinates and time zone are loaded from surfaces.ini first;
New _EXT_WEAR_MULT for surfaces.ini;
kn5:: textures (using strictly original textures) are now available to tracks as well;
If not explicitly configured, track heightmap now includes all renderable physics surfaces, not just the ones adding dirt;
New inputs for both car and track configs: LIGHT_SUGGESTION (1 if WeatherFX style suggests AIs to activate headlights, 0 otherwise, smooth transition in-between), RACE_STARTED, RACE_FINISHED, SESSION_TYPE, ROAD_GRIP;
Light bounceback is available for ksPerPixel, ksPerPixelAT, ksMultilayer_fresnel_nm (great for track lines), adjusted to work better with LCS;
Lua libraries loaded by configs are working properly now;
New developer option to crash when F12 is pressed (if loading is getting stuck, use it and send me the crash report please);
Hidden option for extensive FMOD logging;
ReflectionsFX debug app: brightness slider to help debug reflections with LCS active;
Flags for CSP configs to change logic based on LCS presence (not recommended to use).
ac.debug() fixed, now can handle change of the value type (previously, it would, for example, ignore nil as a value, if at first it saw a number);
Timeouts for web. can be adjusted, defaults are lower to better reflect the fact that we’re in 21st century now;
New parameter for ac.trackProgressToWorldCoordinate() to use linear interpolation;
New functions ac.distanceToRender() and alike to quickly compute distance to main camera (handles case with multiple main cameras better);
Typo in ac.setClipboadText() fixed (old name still works);
web. API asks Windows to use HTTP2 and TLS1.3 (requires Windows 11 to work though);
Similar to cars, Lua scripts now can refer to track textures with track::kn5::… (to load explicitly from KN5) and track::track::… (to load from a skin if present);
Pass true to ac.iterateCars.ordered() for an inverse order;
New ac.AudioEvent():setVolumeChannel() method linking audio event to one of existing volume channels;
ac.setSystemMessage() has been deprecated since there is ac.setMessage() doing the same but better;
New ac.StateWheel.surfaceSectionIndex storing index of a surface section from surfaces.ini, or -1 if not available;
New fields in ac.StateSim: .lightSuggestion, .isSessionFinished;
New ac.TrackPaint() to easily draw lines (solid, dashed, parallel, etc.), shapes (convex and concave), text and images on track surface in an easy and efficient way, automatically aligning things with track surface, integrating RainFX effects, VAO syncing and more;
New API for any gameplay-altering or track script to tweak color correction of post-processing in a super simple and efficient way (see ac.setColorCorrection()), now with access to LDR color corrections as well;
New ac.areCarsColliding() for gameplay scripts working even if collisions are disabled by checking colliders directly (could help if you’re looking into re-enabling disabled collisions without jumps, for example);
New Modes can load car state properly;
UI:
ui.GIFPlayer() got an option to instead stream raw RGBA data directly for unusual animated images;
ui.toast(): add an extra button to the toast;
ui.onDriverNameTag() got an option to change item size, as well as a few fixes;
ui.onExclusiveHUD() is compatible with camera shift of new pause menu (that also fixes splitscreen mode);
ui.MediaPlayer() tries to direct audio into configured audio output;
ui.toast(): function to add an extra button fixed;
ui.begin/endTonemapping() fixed, got an option to apply LCS-aware LDR/HDR conversion;
ac.ControlButton():control() works if more than one window draws a control for the same command;
ui.windowResizing() should react to window being resized by its side;
New ui.imageState() function;
I/O:
io.move() got an option to replace original file;
io.save() got an option to ensure safe proceedings without data loss;
OpenSSL library https://github.com/wahern/luaossl is available in shared/… for scripts with I/O access (possibly temporary limitation);
Scene API:
Lights and audio sources can be linked to ac.SceneReference with :linkTo() method;
Loading KN5 into the scene without wrapping it into a bounding sphere will create a bounding sphere automatically;
Functions to load KN5s now take an optional filter (something like { ! renderable:no }) can be useful if you want to use a single KN5 for both visuals and physics collider;
Extra models loaded into staticRoot or dynamicRoot now cast shadows properly;
:applySkin() improved, now can be used multiple times;
:resetSkin() can undo the entire car skin as expected;
Compiled Lua shaders now will be cached even without cacheKey parameter, unless cacheKey is set to false;
Car scripts:
display.mirror() for car scripts fixed, now applies LDR conversion;
Also, now display.mirror() returns a helper allowing to easily project world coordinates onto mirror, to recreate stuff like Bosch CAS-M3;
New ac.CarAudioTweak.setDSP() allowing to quickly add some extra DSPs to car audio;
ac.CarAudioTweak.setParameter() can block a parameter from being changed by AC;
Car physics scripts:
New ac.allowCarDRS() allowing to block DRS entirely;
New ac.setTyresBlankets() for some special cases;
New ac.overrideCarState() allowing to entirely replace a certain aspect of car state as it’s being sent to the graphics thread;
New ac.setTurboExtras2() which is actually usable (treats lags properly);
New ac.setTyreWearMultiplier() just in case;
Reloading script resets extra weights properly, weights properly integrate with chassis flex;
Physics API:
physics.RigidBody() can be used by track scripts (with surfaces.ini tweak, or mentioned in surfaces.ini) as it should’ve been, that was an unfortunate bug;
When using KN5 for physics.RigidBody(), it is now possible to specify mesh name or filter, respect mesh transform in KN5 and highlight mesh wireframe for debugging;
physics.RigidBody() is now allowed in sessions where teleport and such are allowed;
physics.setTyresTemperature() can alter inner, middle, outer or core parts only;
physics.startPhysicsWorker() can be used by online scripts;
New physics.lockUserControlsFor() for stopping controls entirely;
New physics.lockUserGearboxFor() acting similar to how car acts before the race starts;
If stalling has been reenabled by a script, pressing backspace no longer activates starter, custom physics scripts can instead apply custom starter torque;
New Modes:
Use [RULES] ALLOW_PHYSICS_ALTERATIONS=1 to allow apps to use Physics API;
Force activate extended physics with [TWEAKS] FORCE_EXTENDED_PHYSICS=1;
Turn all surfaces icy with [TWEAKS] ICE_EVERYWHERE=1;
Force a certain season with [TWEAKS] SEASON_FORCE=<WINTER/AUTUMN>;
WeatherFX:
Sun specular multiplier is working with LCS;
Use ac.configureGrassShading() to alter grass shading;
Use ac.setSnowMix() to replace rain drops with snow;
Use ac.setWeatherParticles() to add extra particles;
New ac.setRainWindscreenDropsMultiplier() just in case;
New ac.getPostProcessingLDRColorMatrix() to support LDR color corrections set from ac.setColorCorrection() (if not used, will be applied automatically);
Set [COMPATIBILITY] DISABLE_WHITE_REF_POINT_FIX=1 in manifest.ini to force deactivate automatic white reference point computation;
New simple tornado effect (render.tornado());
Libraries:
New require('shared/utils/signing').verify() function to quickly verify integrity of many files, including integrity of the script itself (works if script is not stored in a file as well), signing.blob() can be used to securely transfer the result to the backend (now its docs store an example on how to use it on backend);
New shared/sim/ambience library for altering track ambience audio based on conditions;
New shared/utils/ioext library with a function for recursive directory scanning (more functions coming soon);
New shared/math/cubic library for quickly doing cubic interpolation;
Library shared/sim/ghost got functions to get time, state and transform of a ghost;
Writer in shared/utils/binary got an :append() method (can take other readers and writers too if needed);
New shared/utils/diagnostics library with .renderStats() function;
New shared/sim/traffic library for easily adding traffic to new modes, mechanism allowing to load traffic configuration from a remote server for Kunos tracks;
New shared/sim/motec library for recording telemetry in MoTeC format;
New surfaces.propertyAccessor() in shared/sim/surfaces to quickly access extra properties of surfaces.ini for certain wheels;
WebBrowser library: example fixed;
Weather library: intensity of suggested rain for tornado weather style massively decreased;
New [CORE] DISABLE_IF=condition for Lua apps, for more advanced logic;
Lua Debug app: button to measure garbage generation and total memory taken;
Textures can be quickly encoded using command-line parameters as well;
ac.setTextureKey() now can be used by other scripts without conflicting with WeatherFX style;
ac.startBackgroundWorker() and physics.startPhysicsWorker() can take source code as input instead of filename;
Crash when trying to access dynamic::mirror fixed;
New SCRIPT flame type for cars, can be controlled by car scripts (ac.setScriptFlamesIntensity());
New ac.setExteriorAudioMix() for mixing exterior audio into interior (for things like opening windows);
Issue with Lua bytecode precompilation sometimes producing broken outputs or crashing AC fixed, other stability improvements;
LuaJIT interpreter updated with the latest commits from the official repo.