A small Source.Python plugin that adds simple FastDL support without needing a separate web server.
The plugin can start a built-in HTTP server, set sv_downloadurl automatically, create a FastDL directory structure, and compress downloadable files to .bz2.
By default, the plugin uses a separate FastDL folder and creates .bz2 files for maps, materials, models, and sounds. Original uncompressed files can also be copied if wanted, or used as a fallback when .bz2 compression is unavailable or fails.
This plugin requires Source.Python.
It should work with any game supported by Source.Python. The release archive is structured so it can be extracted directly into your game folder, such as cstrike, csgo, hl2mp, or another Source.Python-supported game folder.
- Built-in FastDL HTTP server
- Automatically sets
sv_downloadurl - Automatically creates required FastDL subdirectories
- Supports a custom FastDL directory
- Automatically creates
.bz2compressed files - Optional uncompressed file copying
- Optional fallback to uncompressed files if
.bz2compression is unavailable or fails - Ignores common stock CS:GO maps by default
- Supports a custom ignored maps file
- Only processes supported FastDL file types
- Automatically scans for new downloadable files
- Configurable auto-scan interval
The plugin scans common game content folders such as:
maps/
materials/
models/
sound/
Then it prepares matching FastDL files in a custom directory, for example:
csgo/fastdl/csgo/maps/example.bsp.bz2
The built-in HTTP server serves that folder, so clients can download files from the URL set in sv_downloadurl.
- Install Source.Python.
- Download the latest release of this plugin.
- Extract the archive directly into your game folder, for example
csgo,cstrike, orhl2mp. - Load the plugin with:
sp plugin load fastdl
The plugin includes cvars for controlling the main behavior:
fastdl_use_custom_path
fastdl_custom_directory
fastdl_auto_compress
fastdl_fallback_uncompressed
fastdl_copy_uncompressed
fastdl_auto_create_subdirectories
fastdl_enable_auto_scan
fastdl_auto_scan_interval
fastdl_reload_ignored_maps
The default setup is intended to work without much configuration, but server owners can adjust the path, compression behavior, and scan behavior if needed.
Common stock CS:GO maps are ignored by default.
The plugin also creates an ignored maps file:
cfg/source-python/fastdl_ignored_maps.txt
You can add extra map names there to block them from FastDL auto-compression. Use one map per line:
de_dust2
de_mirage.bsp
my_private_map
Map names can be written with or without .bsp and .nav . Lines starting with # are ignored.
By default, the ignored maps file is loaded when the plugin loads. If fastdl_reload_ignored_maps is enabled, the file is reloaded on every FastDL scan.