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 1.11+ or newer.
- 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"
"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.
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"
"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.
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
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.
Requirements:
- Python
ambuild2- a SourceMod source checkout available via
--sm-pathor theSOURCEMODenvironment variable - a working C/C++ toolchain for the requested targets
Typical native build:
python configure.py --sm-path=/path/to/sourcemod --targets=x86,x86_64
ambuildThe local command plugin can be rebuilt separately with spcomp:
spcomp scripting/accelerator_local.sp -i=scripting/include -o=accelerator_local.smxLinux container build helper:
bash ./dockerbuild/accelerator_docker_build.shThis produces Linux x86 and x86_64 extension binaries under build/accelerator.ext/.
Windows native build helper:
- run
configure.pyfrom a Visual Studio Developer PowerShell or another shell with a working MSVC toolchain - build both
x86andx86_64
Windows 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/linuxdist/accelerator-windows-sm112-api8.zipdist/accelerator-linux.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.