Skip to content

Asperitase/CorsaUnlocker

Repository files navigation

CorsaUnlocker

CI C++23 CMake Platform License

Replace each car’s collider.kn5 under Assetto Corsa content/cars using compile-time embedded KN5 bytes.

Build · Run · GitHub Releases


Overview

CorsaUnlocker locates your content directory (via Steam uninstall metadata for AppID 244210, or a manual UTF-8 path), walks each folder under content/cars/, and overwrites collider.kn5 with the byte array in include/corsa/assetto/embedded_collider.hpp. It keeps a content/manifest.json (tool version + payload fingerprint + car folder names) so cars already matching the embedded KN5 size are not rewritten every run.

The idea (one shared collider propagated under cars) comes from AC-unlocker (Go, archived). This repository is an independent C++ / CMake tool, not a port.


Highlights

Topic Details
Input Steam content path or pasted UTF-8 path
Target content/cars/**/collider.kn5
Payload constexpr bytes in embedded_collider.hpp (edit there, then rebuild)
Toolchain C++23, CMake 3.21+
CI Windows MSVC, clang-cl, MinGW (MSYS2 UCRT64) — Debug & Release
Deps Glaze vendored as a git submodule under third_party/glaze

Build

Clone with submodules (required for Glaze):

git clone --recurse-submodules https://github.com/Asperitase/CorsaUnlocker.git
# or, if you already cloned:
git submodule update --init --recursive

Then:

cmake -S . -B out/build
cmake --build out/build --config Release

Artifact: CorsaUnlocker.exe (under your build directory, layout depends on generator).

Release builds

Ship Release, not Debug. Debug MSVC binaries depend on ucrtbased.dll (Visual Studio), which typical players do not have. Release uses the static CRT (/MT), so end users usually do not need the separate VC++ Redistributable for vcruntime140.dll.


Run

  1. Run CorsaUnlocker.exe.
  2. If registry lookup succeeds, the tool uses that content path.
  3. Otherwise paste the full path to content (the folder that contains cars). Use a UTF-8 console for non-ASCII paths (e.g. chcp 65001 on Windows).

Example (your library layout may differ):

C:/Program Files (x86)/Steam/steamapps/common/assettocorsa/content

If collider_kn5_bytes in embedded_collider.hpp is empty, the program exits with an error.


GitHub Releases

Attach the Release CorsaUnlocker.exe to a GitHub Release. Keep notes short: what it changes, that it targets content/cars, and the disclaimer below.


Issues

Open an Issue with OS, compiler, and steps to reproduce if something breaks.


Disclaimer

Technical / educational use only. You are responsible for the game’s EULA, online rules, and applicable law. Not affiliated with Kunos Simulazioni.


License

Apache License 2.0 — see LICENSE.md.

About

Overwrites each car’s collider.kn5 under Assetto Corsa content/cars using embedded KN5 bytes; resolves content via Steam (AppID 244210) or a UTF-8 path.

Topics

Resources

License

Stars

Watchers

Forks

Contributors