ACORN
In ProgressAn offline racing enhancement platform for Assetto Corsa: improved AI driving, pit strategy, new UI, etc.
More Than an AI Mod
ACORN started as an attempt to make Assetto Corsa’s offline racing feel less robotic. It grew into a full enhancement platform: a DLL plugin loaded through Assetto Corsa’s official — but long-abandoned — plugin API.
DLL plugins for AC have a small C interface. At load, the game builds its own ACPlugin wrapper for the DLL (keeping the Sim* and module handle), then binds six optional exports via GetProcAddress — a missing export only logs an error:
bool acpGetName(wchar_t* name); // plugin writes its UTF-16 display name
bool acpInit(IACPPluginHost* host); // one-time setup; host is the game's
// ACPlugin object — the bridge into the sim
bool acpUpdate(ACCarState* state, float dt); // per-tick car state
bool acpOnGui(ACPluginContext* ctx); // GUI callback
bool acpGetControls(ICarControlsProvider** out); // return true to replace the car's
// controls provider (official input takeover)
bool acpShutdown(); // teardown
The quiet superpower is acpGetControls: when it returns true, the game installs the plugin’s controls provider on the car via CarAvatar::setControlsProvider — a sanctioned path to taking over driving inputs. ACORN uses this contract as its load mechanism, then detours AIDriver::acquireControls to observe and improve the offline AI where the API stops.
Assetto Corsa logo © Kunos Simulazioni, used under CC BY-SA 4.0.
Features
AI Driving
Multiple enhancements to offline AI capabilities, they are faster, smarter and more dynamic
UI
A host of UI improvements like a new modern main menu, new pause menu, new replay controls, and in-game MFD losely based on the ACC MFD