Install guide
Roughly ten minutes. You copy a few files into an existing AssettoServer install and restart it — there is no separate service to run and nothing to expose.
Before you start
- An AssettoServer install, version 0.0.55 or newer.
- A VPS or game server. 2 vCPU and 2 GB RAM comfortably runs a 24-slot server.
- Players on CSP 2651 or newer. The in-game HUD uses an API that landed in that version; older clients see no HUD at all.
- Your bundle — a zip we send you, containing the plugin, your licence and your API key.
Steps
- Stop your AssettoServer.
- Copy the bundle in.
KOTT.Plugin.dll,kott.license,manifest.json,appsettings.jsonand thekeys/folder go into yourplugins/directory;plugin_kott_cfg.ymlgoes intocfg/. - Enable the plugin in
extra_cfg.yml:EnablePlugins: - KOTT.Plugin
The name must be exactlyKOTT.Plugin— AssettoServer keys plugins by directory name and boots with "No plugin found" otherwise. - Start the server and watch the log for "License verified successfully" then "Heartbeat health Healthy". Those two lines mean you're connected.
- Join it. You should see the KOTT HUD and a "Hosted by …" ribbon for the first few seconds.
Your track needs two things
Well-packaged tracks already have both, but some mod tracks don't — and the server hard-fails at boot rather than starting without them:
- An AI spline — a
fast_lane.aiunder the track'sai/folder. KOTT uses it for finish detection and off-track judgement, and AssettoServer refuses to start without one. - Track params (latitude, longitude, timezone). If your track isn't
in CSP's database, add
IgnoreConfigurationErrors: { MissingTrackParams: true }toextra_cfg.yml— that relaxes only the sun position, and leaves car checksums strict.
If it doesn't connect
- "License verification FAILED"
- The licence file is wrong, corrupt or expired. Re-download your bundle.
- Heartbeat returns 426
- Your plugin is below the current protocol floor. Re-download the bundle for the current build.
- "Heartbeat health Degraded"
- The plugin can't reach KOTT. Check your firewall and DNS. Racing continues and results queue locally, replaying when the connection returns.
- The server runs but doesn't appear on my page
- Give it a minute — servers register on their first heartbeat. If it's still missing, the two log lines in step 4 tell you whether it reached us at all.
Still stuck? Send us the server log on Discord — it almost always names the problem directly.
Source code
The plugin is AGPL-licensed and loaded into AssettoServer, so you and your players are entitled to its source. See /source — that offer is built into the plugin's own in-game panel, and leaving it in place is what keeps you compliant.