Accelerator is a SourceMod extension that captures SRCDS crashes, preserves minidumps, and can process them locally without sending anything to a remote website.
This repository builds the accelerator extension itself. It does not vendor or auto-fetch carburetor sources. Local raw dump processing uses an external carburetor binary that must be provided separately at runtime.
- Crash capture for Source dedicated servers.
- Traditional remote upload mode for existing Accelerator/Throttle style workflows.
- Fully local mode that never uploads dumps, symbols, or binaries.
- Local dump inspection commands exposed through the
accelerator_local.smxplugin. - Automatic local symbol generation into
addons/sourcemod/data/dumps/symbols. - Human-readable output files in
addons/sourcemod/data/dumps/outputs.
extension/- native extension source.scripting/- SourcePawn include files and the local command plugin.gamedata/- gamedata required by the extension.buildbot/PackageScript- packages extension runtime files only.
- SourceMod package compatibility:
- API8 builds: SourceMod
1.12.x - API9 builds: SourceMod
1.13.0.7354+
- API8 builds: SourceMod
- Supported runtime targets:
- Linux
x86/x86_64 - Windows
x86/x86_64
- Linux
carburetorbinary for local raw processing:- Linux
x86:addons/sourcemod/bin/carburetor - Linux
x86_64:addons/sourcemod/bin/x64/carburetor - Windows
x86:addons/sourcemod/bin/carburetor.exe - Windows
x86_64:addons/sourcemod/bin/x64/carburetor.exe
- Linux
- Optional
dump_syms.exefor automatic local symbol generation on Windows:- Windows
x86:addons/sourcemod/bin/dump_syms.exe - Windows
x86_64:addons/sourcemod/bin/x64/dump_syms.exe
- Windows
- Writable directories:
addons/sourcemod/data/dumpsaddons/sourcemod/data/dumps/symbolsaddons/sourcemod/data/dumps/outputs
webternet.ext is required only for remote upload mode. It is not required in local mode.
Copy the common runtime files to your game server:
addons/sourcemod/extensions/accelerator.autoload- autoload markeraddons/sourcemod/gamedata/accelerator.games.txt- required gamedataaddons/sourcemod/plugins/accelerator_local.smx- local dump command plugin
Linux runtime files:
addons/sourcemod/extensions/accelerator.ext.so- 32-bit Linux extensionaddons/sourcemod/extensions/x64/accelerator.ext.so- 64-bit Linux extensionaddons/sourcemod/bin/carburetor- 32-bit Linuxcarburetoraddons/sourcemod/bin/x64/carburetor- 64-bit Linuxcarburetor
Windows runtime files:
addons/sourcemod/extensions/accelerator.ext.dll- 32-bit Windows extensionaddons/sourcemod/extensions/accelerator.ext.pdb- 32-bit Windows symbols for local symbol generationaddons/sourcemod/extensions/x64/accelerator.ext.dll- 64-bit Windows extensionaddons/sourcemod/extensions/x64/accelerator.ext.pdb- 64-bit Windows symbols for local symbol generationaddons/sourcemod/bin/carburetor.exe- 32-bit Windowscarburetoraddons/sourcemod/bin/x64/carburetor.exe- 64-bit Windowscarburetor
Optional Windows symbol-generation helper:
addons/sourcemod/bin/dump_syms.exe- 32-bit Windowsdump_symsaddons/sourcemod/bin/x64/dump_syms.exe- 64-bit Windowsdump_syms
The following directories should exist and be writable:
addons/sourcemod/data/dumpsaddons/sourcemod/data/dumps/symbolsaddons/sourcemod/data/dumps/outputs
Accelerator supports two distinct modes controlled by MinidumpMode.
Use site mode when you want the traditional Accelerator workflow:
- dumps are prepared for upload
- symbol and binary upload logic stays active
- remote presubmit / upload logic is used
webternet.extis required
Typical core.cfg keys for site mode:
"MinidumpMode" "site"
"MinidumpDebug" "no"
"MinidumpDeleteAfterProcessing" "1"
"MinidumpAccount" "7656119..."
"MinidumpPresubmit" "yes"
"MinidumpSymbolUpload" "3"
"MinidumpBinaryUpload" "yes"
"MinidumpUrl" "http://example.com/submit?token=YOUR_TOKEN"
"MinidumpSymbolUrl" "http://example.com/symbols/submit?token=YOUR_TOKEN"
"MinidumpBinaryUrl" "http://example.com/binary/submit?token=YOUR_TOKEN"Notes:
MinidumpDeleteAfterProcessing "1"keeps the historical behavior and removes successfully processed dumps.- Local helper commands can still exist, but the extension itself remains in remote upload mode.
MinidumpAccountshould be the Steam account used for dump ownership / attribution.MinidumpSymbolUploadcontrols how aggressively symbols are uploaded in remote mode.MinidumpPresubmit,MinidumpUrl,MinidumpSymbolUrl, andMinidumpBinaryUrlare only meaningful insitemode.MinidumpDebug "yes"enables verbose diagnostics inaddons/sourcemod/logs/accelerator.log.
Use local mode when you want the server to stay fully offline:
- no presubmit requests
- no dump upload
- no symbol upload
- no binary upload
- local symbol generation is used for analysis
carburetoris used only as an external runtime tool for local raw dump processingwebternet.extis not required
Typical core.cfg keys for local mode:
"MinidumpMode" "local"
"MinidumpDebug" "no"
"MinidumpDeleteAfterProcessing" "0"
"MinidumpLocalSymbolPath" "addons/sourcemod/data/dumps/symbols"Optional core.cfg keys for local mode:
"MinidumpLocalCarburetorPath" "bin/x64/carburetor"
"MinidumpLocalCarburetorPath" "addons/sourcemod/bin/x64/carburetor"Use bin/carburetor or addons/sourcemod/bin/carburetor instead on 32-bit Linux servers.
Use bin/carburetor.exe or addons/sourcemod/bin/carburetor.exe on 32-bit Windows servers.
Absolute paths are also accepted.
On Windows, automatic local symbol generation also expects dump_syms.exe in the matching addons/sourcemod/bin[/x64] directory.
Keep the matching accelerator.ext.pdb next to each accelerator.ext.dll if you want local stack traces to resolve Accelerator function names instead of only module + offset.
The recommended local workflow is asynchronous. The plugin queues the heavy dump analysis work onto a background worker so normal use does not require -nowatchdog.
MinidumpDebug controls how noisy addons/sourcemod/logs/accelerator.log is.
MinidumpDebug "no"or unset:- minimal operational log
- no routine
Accelerator mode: local|siteline inaccelerator.log - no idle
No pending crash dumps found - no path banners such as
Local mode carburetor path - no detailed presubmit / symbol / binary upload trace
MinidumpDebug "yes":- enables detailed diagnostics
- includes mode line, path banners, upload thread start lines, presubmit details, and symbol/binary upload trace
Every line written to accelerator.log is timestamped in local server time.
The mode line is still printed to the server console in both modes; MinidumpDebug only controls whether that routine line is also mirrored into accelerator.log.
Example local + debug:
"MinidumpMode" "local"
"MinidumpDebug" "yes"
"MinidumpDeleteAfterProcessing" "0"
"MinidumpLocalSymbolPath" "addons/sourcemod/data/dumps/symbols"
"MinidumpLocalCarburetorPath" "addons/sourcemod/bin/x64/carburetor"Example site + debug:
"MinidumpMode" "site"
"MinidumpDebug" "yes"
"MinidumpDeleteAfterProcessing" "1"
"MinidumpAccount" "7656119..."
"MinidumpPresubmit" "yes"
"MinidumpSymbolUpload" "3"
"MinidumpBinaryUpload" "yes"
"MinidumpUrl" "http://example.com/submit?token=YOUR_TOKEN"
"MinidumpSymbolUrl" "http://example.com/symbols/submit?token=YOUR_TOKEN"
"MinidumpBinaryUrl" "http://example.com/binary/submit?token=YOUR_TOKEN"MinidumpModesite- traditional remote upload modelocal- fully offline local processing mode
MinidumpAccount- Steam account identifier used by the remote workflow
MinidumpDeleteAfterProcessing1by default0/no/nkeeps dumps after successful processing
MinidumpDebugnoby defaultyesenables verbose diagnostics inaccelerator.log
MinidumpPresubmit- enables the remote presubmit flow in
sitemode
- enables the remote presubmit flow in
MinidumpSymbolUpload- controls remote symbol upload behavior in
sitemode
- controls remote symbol upload behavior in
MinidumpBinaryUpload- enables remote binary upload in
sitemode
- enables remote binary upload in
MinidumpUrl- remote dump submit endpoint
MinidumpSymbolUrl- remote symbol submit endpoint
MinidumpBinaryUrl- remote binary submit endpoint
MinidumpLocalCarburetorPath- optional override for the
carburetorbinary path
- optional override for the
MinidumpLocalSymbolPath- optional extra symbol search paths, separated with
;or,
- optional extra symbol search paths, separated with
These commands are provided by accelerator_local.smx:
sm_dump_list- lists pending local dumps
sm_proc_stack_dump <dump>- starts an asynchronous stack trace job
- prints the final stack trace automatically when the job finishes
sm_proc_dump <dump> Trace [output-file]- starts an asynchronous dump processing job
- prints the final completion status automatically when the job finishes
sm_proc_dump <dump> rawstack [output-file]sm_proc_dump <dump> rawmemory [output-file]sm_proc_dump <dump> rawraw [output-file]sm_proc_dump <dump> all [output-file]sm_proc_dump <dump> console- prints only the captured console history
sm_proc_jobs- lists processing jobs
sm_proc_status <job-id>- shows job state and output path
sm_proc_result <job-id>- optional manual fetch for the finished stack report or final file-processing status
sm_dump_crash_test- intentionally crashes the server so Accelerator can capture a test dump
If no output filename is provided, dump results are written to:
addons/sourcemod/data/dumps/outputs/<mode>_<dump>.txt
Legacy blocking natives and workflows still exist for compatibility. If you explicitly use the old synchronous path on Linux and the server spends too long in local analysis, -nowatchdog is still a valid fallback launch option.
The default AMBuild path builds the accelerator extension. carburetor remains a separate project and is built separately.
Build/package matrix:
- Windows API8: SourceMod
1.12.x,x86+x86_64 - Linux API8: SourceMod
1.12.x,x86+x86_64 - Windows API9: SourceMod
1.13.0.7354+,x86+x86_64 - Linux API9: SourceMod
1.13.0.7354+,x86+x86_64
Requirements:
- Python
- a SourceMod source checkout available via
--sm-pathor theSOURCEMODenvironment variable ambuild2and a working C/C++ toolchain for the requested targets- Docker only if you want to use the optional containerized Linux helper flow
The local command plugin can be rebuilt separately with spcomp:
spcomp scripting/accelerator_local.sp -i=scripting/include -o=accelerator_local.smxLinux native build:
python configure.py --sm-path=/path/to/sourcemod --targets=x86,x86_64
ambuildOptional containerized Linux helper flow:
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_builder.ps1
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_accelerator.ps1 -SourceModPath /path/to/sourcemod
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_accelerator.ps1 -SourceModPath /path/to/sourcemod-api9 -BuildDir build/linux-accelerator-api9This flow:
- runs entirely inside the Docker image
accelerator-linux-builder:bullseye - stages the Linux build in a separate working directory
- keeps Linux build products out of the main repository tree
Linux carburetor helper:
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_carburetor.ps1 -CarburetorRoot /path/to/carburetor -Arch x86 -BuildDir build-linux-carburetor-x86
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_carburetor.ps1 -CarburetorRoot /path/to/carburetor -Arch x64 -BuildDir build-linux-carburetor-x64The helper scripts use the local Docker image accelerator-linux-builder:bullseye so the Linux toolchain is installed once at image-build time, not on every build run.
Optional staging override for the containerized helper flow:
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_accelerator.ps1 -SourceModPath /path/to/sourcemod -StageRoot /path/to/linux-stage
powershell -ExecutionPolicy Bypass -File buildbot/build_linux_carburetor.ps1 -Arch x64 -StageRoot /path/to/linux-stageLegacy Linux helper:
bash ./dockerbuild/accelerator_docker_build.shKeep it only for compatibility. The buildbot/*.ps1 helper path is the maintained one.
Windows native build helper:
- run
configure.pyfrom a Visual Studio Developer PowerShell or another shell with a working MSVC toolchain - build
x86andx86_64in separate developer shellsx86:VsDevCmd.bat -arch=x86x86_64:VsDevCmd.bat -arch=amd64
Windows helper scripts:
:: accelerator API8
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_accelerator.ps1 -SourceModPath C:\path\to\sourcemod -BuildDir build\win-accelerator-api8-x86 -Targets x86
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_accelerator.ps1 -SourceModPath C:\path\to\sourcemod -BuildDir build\win-accelerator-api8-x64 -Targets x86_64
:: accelerator API9
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_accelerator.ps1 -SourceModPath C:\path\to\sourcemod-api9 -BuildDir build\win-accelerator-api9-x86 -Targets x86
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_accelerator.ps1 -SourceModPath C:\path\to\sourcemod-api9 -BuildDir build\win-accelerator-api9-x64 -Targets x86_64
:: carburetor
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_carburetor.ps1 -CarburetorRoot C:\path\to\carburetor -Arch x86 -BuildDir build\win-carburetor-x86
powershell -ExecutionPolicy Bypass -File buildbot\build_windows_carburetor.ps1 -CarburetorRoot C:\path\to\carburetor -Arch x64 -BuildDir build\win-carburetor-x64Windows helper scripts:
buildbot/build_windows_accelerator.ps1- builds
acceleratorwith AMBuild from a Visual Studio Developer PowerShell
- builds
buildbot/build_windows_carburetor.ps1- stages a local copy of the sibling
carburetorrepository - copies locally cached
breakpad,distorm,json, andcppcodec - applies the local Breakpad patch set in the staging directory
- configures and builds
carburetor.exeforx86orx64
- stages a local copy of the sibling
buildbot/PackageScript packages Accelerator runtime files only:
- extension binaries
accelerator.autoload- gamedata
accelerator_local.smxwhen a prebuilt plugin is present
The ready-to-deploy runtime packages used in this repository are stored in dist/:
dist/windows-sm112-api8dist/windows-sm113.0.7354-api9dist/linux-sm112-api8dist/linux-sm113.0.7354-api9dist/accelerator-windows-sm112-api8.zipdist/accelerator-windows-sm113.0.7354-api9.zipdist/accelerator-linux-sm112-api8.tar.gzdist/accelerator-linux-sm113.0.7354-api9.tar.gz
These dist packages are runtime-only and contain:
- extension binaries
accelerator.autoload- gamedata
accelerator_local.smx- runtime helper binaries such as
carburetor,dump_syms.exe,msdia140.dll, and Windows.pdbfiles where applicable
If you package from raw buildbot/PackageScript output instead of the prepared dist directory, add:
- Linux
carburetorforx86andx86_64 - Windows
carburetor.exeforx86andx86_64 - Windows
dump_syms.exeforx86andx86_64 - Windows
msdia140.dllforx86andx86_64 - Windows
accelerator.ext.pdbforx86andx86_64
Accelerator uses carburetor as an external companion tool for local raw dump processing. The binary is not modified by Accelerator at runtime. Accelerator simply resolves the path, executes it, passes symbol paths, and consumes the resulting output.
On Windows, local symbol generation is done by invoking an external dump_syms.exe helper if it is present in the architecture-matching addons/sourcemod/bin directory.
See the project source headers and upstream licensing terms for Accelerator, SourceMod SDK pieces, and bundled third-party components.