Conan Exiles Database Maintenance and Mod Orders via AMP
Conan Exiles persists every placeable, every thrall, and every chest into a single SQLite database (game.db). On a server with 100 active players, that file routinely exceeds 8 GB after a month, at which point world load times stretch past 5 minutes and ping spikes correlate with every database write. Database maintenance is not optional for a long lived Conan server. This guide uses CubeCoders AMP on Windows Server to schedule a weekly VACUUM and integrity check, plus a locked modlist.txt that prevents Steam Workshop from reordering mods after an update.
Prerequisites
- Windows Server 2022, 16 GB RAM, 6 CPU cores, SSD storage.
- An AMP license that includes the Conan Exiles module.
- The official SQLite command line tools (
sqlite3.exe) installed inC:\\tools\\sqlite\\. - UDP 7777, 7778, and 27015 open at the Windows firewall.
Step 1: Create the Instance
- Module: Conan Exiles. Memory: 12288 MB. CPU affinity: cores 2 through 5.
- SteamCMD app ID 443030.
Step 2: Strict Mod Load Order
Conan loads mods in the exact order listed in ConanSandbox/Mods/modlist.txt. The Steam client rewrites this file when the user clicks Subscribe, so on a server you must own the file and make it read only after edits. The order matters: framework mods (Pippi, Improved Quality of Life) must load before content mods that depend on them.
*880454836.mod*1369743238.mod*1159180273.mod*1843102056.mod*2128642958.mod# Make the file read only after every confirmed editattrib +r "C:\AMP\Instances\ConanExiles01\ConanSandbox\Mods\modlist.txt"Step 3: Database Maintenance Script
VACUUM rebuilds the SQLite file from scratch, reclaiming pages freed by deleted thralls, decayed buildings, and looted chests. Integrity check catches corruption before it cascades. Both must run with the server stopped, because SQLite locks the file during writes.
$ErrorActionPreference = "Stop"$db = "C:\AMP\Instances\ConanExiles01\ConanSandbox\Saved\game.db"$sqlite = "C:\tools\sqlite\sqlite3.exe"$backup = "C:\AMP\Backups\game-$(Get-Date -Format 'yyyyMMdd-HHmm').db"Copy-Item $db $backup& $sqlite $db "PRAGMA integrity_check;" | Tee-Object -FilePath "C:\AMP\Logs\integrity.log"& $sqlite $db "VACUUM;"& $sqlite $db "ANALYZE;"Get-ChildItem "C:\AMP\Backups" -Filter "game-*.db" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -ForceStep 4: Wire the AMP Task Chain
Weekly maintenance window: warn, stop, vacuum, restart. AMP's Scheduler handles all of it.
- Trigger: Every Sunday at 05:00.
- Action 1: Send message
Weekly maintenance in 10 minutes, please log off. - Action 2: Wait 10 minutes.
- Action 3: Stop instance.
- Action 4: Run external program
powershell.exewith arguments-File C:\\AMP\\scripts\\db-maintenance.ps1. - Action 5: Start instance.
Step 5: Verify the First Run
# A healthy database returns exactly one line:ok# If you see anything else, restore from the most recent backup before VACUUM.Performance and Tuning
- Run VACUUM weekly, not daily. The operation rewrites the entire file and is heavy on SSD wear.
- Keep at least 30 days of backups. Conan corruption events are sometimes invisible for several days.
- Lock
modlist.txtread only. The single most common cause of "server boots into wrong mod state" is the Steam client overwriting it.
Conclusion
Conan Exiles will run for years on the same database file, as long as it gets a weekly vacuum and the mod list is treated as a versioned config file rather than something Steam can rewrite at will. AMP's scheduler turns both into background chores.