Suggestions, criticisms, and issues are highly encouraged. Please open a GitHub issue, reply on a release, or reach out on Discord — feedback directly drives what gets fixed and built next.
Donations help keep development going. If SoF Buddy is useful to you, consider sponsoring on GitHub — contributions go toward monthly Cursor subscriptions and other tooling that make ongoing fixes and features possible.
A modern enhancement suite for Soldier of Fortune 1 — scaling, fixes, and quality-of-life improvements for the best SoF experience.
Press F12 in-game (or bind a key to sofbuddy_menu sof_buddy). That opens the SoF Buddy menu — settings, updater, profiles, and everything else. Do this first. If you don’t, you’re missing the main way to use SoF Buddy.
Click to expand
- 🔠 Font Scaling — Crisp, readable fonts at any resolution:
1x,2x,3x,4x, etc. Enable Auto Font Scale (_sofbuddy_font_scale_auto 1) to track resolution (vid_h / 480), or turn auto off and set_sofbuddy_font_scalemanually. - 🔤 Font Pack Switcher — Choose Default, Force SoFPlus, or Force Vanilla fonts from F12 → UI Scale; changing it reloads the renderer without restarting the game.
- 🖥️ HUD Scaling — Scale the HUD independently from the font for perfect UI balance. Auto HUD Scale (
_sofbuddy_hud_scale_auto 1) uses the same resolution ratio; disable auto to pick a manual_sofbuddy_hud_scale. - 🎬 Cinematic Image Scaling — Credit/fade images (
SP_FLAG_CREDIT) scale up from 640×480 to your resolution. Toggle with_sofbuddy_scale_cinematic_pics(1= on,0= off) or Scale Cinematic Images in F12 → UI Scale. - 🎯 Crosshair Scaling — Scale crosshair textures independently for improved visibility.
- 🎯 More Crosshairs — Engine
crosshairstays 0–4; F12 → Gameplay adds a theme list (pack filenames undersof_buddy/crosshairs/) with a live preview image. - 🎯 Restored
cl_maxfpsin Singleplayer — Smooth SP caps via F12 → CPU → Framerate (legacy ms-budget list, or optional Exact FPS cap for integer values like60). - ⚡ Stable Framerate & CPU Saver — Uses
QueryPerformanceCounterfor precise timing and energy savings. New cvar:_sofbuddy_sleep. - 🖱️ Raw Mouse Input — Direct hardware input bypassing Windows acceleration. All original sensitivity cvars still work!
- 🏷️ Widescreen Teamicons GlitchFix — Team icons are always correctly positioned, even in widescreen. Team icons and playernames above players scale with the HUD — toggle with
_sofbuddy_icons_autoscaleor Icons Autoscale in F12 → UI Scale. - 🖼️ HD Texture Support — Native support for high-res
.m32textures. Learn more - 👤 Extended Multiplayer Skins — Extra player models ship in
sof_buddy/extended_skins.pak(skins by Acadie). - 🌙 Lighting Blend Mode Adjustment — Experience WhiteMagicRaven's lighting tweaks (optional).
- 🖲️ Console Size Adjustment — Set how much of the screen the console covers, for any setup.
- 🔄 VSync Reliability —
gl_swapintervalis applied on everyvid_restartfor hassle-free vsync. F12 → CPU shows the measured display refresh, a request picker built from your driver's actual modes, plus a cap check that warns when VSync could deliver more than the framerate cap allows. - 🛠️ Sane Defaults on First Run — Fixes bad config defaults after hardware changes.
- 🛡️ Console Overflow/Crash Fixes — No more crashes from large pastes or ultra-wide resolutions.
- 🧾 Large
config.cfgExec Fix — AvoidCbuf_AddText: overflowwhen runningexec config.cfgwith very large configs. - 🧩 Embedded Loading / Internal Menus — Serve RMF menu assets from memory (includes loading UI) and open internal pages via
sofbuddy_menu. - 🌐 HTTP Map Download Assist — Download missing maps over HTTP and resume precache; provider URLs configurable via cvars.
- 🌐 GameSpy Master Selection — Choose a known master server for SoFPlus from F12 → Network; the selected
_sp_cl_master_gamespyvalue is saved by SoFPlus. - ⬆️ In-Game Updater + Startup Prompt — Check/download release zips in-game, with optional startup check and internal-menu prompt.
- 🎮 SoF Plus installer wizard — Windows Setup optional task Install SoF Plus client applies the official 20140531 SoF Plus client patch (
spcl.dll,base/sofplus.pak, and related files). After you choose the SoF folder, Setup inspectsSoF.exeto pick CD vs GOG and whether the KB4571756 Raven-string fix is already on the executable, then runs the matching bundled kit—no manual “stub vs full” choice. See SoF Plus client (installer). - 🧓 Windows XP Updater Mirror Defaults — XP builds default updater feed URLs to
sofvault.org(overrideable via cvars). - 📚 Feature Docs — See
src/features/internal_menus/README.md,src/features/http_maps/README.md,src/features/master_server_fallback/README.md, andsrc/features/cbuf_limit_increase/README.md.
Click to expand
For Windows, the installer is the most effortless way to install SoF Buddy: it installs the universal DLL, lets you choose features, and writes the runtime selection for you. No manual extraction or feature-enable scripts are needed.
- Download the latest Windows installer (
sof_buddy_setup_v<version>.exe). - Run it and select the SoF folder containing
SoF.exe. - Keep Recommended feature set or choose Custom feature selection, then finish setup.
- Setup automatically enables SoF Buddy and saves the original as
SoF.exe.bak. - Launch SoF.
- Option A: Download a pre-compiled release
- Option B: Compile from source:
make # Release build (optimized) make BUILD=xp # Windows XP-targeted build make debug # Debug build (with logging) make BUILD=xp-debug # XP-targeted debug build make debug-collect # Debug build with func_parents collection
- Recommended: Delete your
User/config.cfgfor optimal defaults. - Extract the release
.zipdirectly into your SoF root (whereSoF.exelives). It contains:sof_buddy.dll(goes in the SoF root)sof_buddy/folder (created under the SoF root)sof_buddy/funcmaps/(contains JSON function maps)sof_buddy/*.pak—sndrstfindimage.pak(silencesGL_FindImagespam aftersnd_restart),extended_skins.pak(multiplayer skins; credit Acadie)- Windows:
sof_buddy/enable_*.cmdscripts andsof_buddy/patch_sof_binary.ps1 - Linux/Wine:
sof_buddy/enable_*.shscripts andsof_buddy/patch_sof_binary.sh
- Use the helper scripts to patch SoF.exe to load different DLLs:
**enable_sofplus_and_buddy.cmd** → Loadssof_buddy.dll(recommended: SoF Buddy + optional SoF Plus)**enable_sofplus.cmd** → Loadsspcl.dll(SoF Plus only, disables SoF Buddy)**enable_vanilla.cmd** → LoadsWSOCK32.dll(vanilla SoF, no mods)**sof_buddy_update.exe**→ Graphical Windows updater (universal channel / installer only): progress bar and release notes**update_from_zip.cmd**→ Standard Windows update path (all channels): extract downloaded zip (sof_buddy/update/*.zip) into SoF root
- SoF Buddy auto-loads
spcl.dllif present, so it works with SoF Plus.
See WINDOWS_INSTALLER.md for the complete packaging, runtime-selection, and updater behavior.
The Windows installer uses one universal DLL and writes the selected features to
sof_buddy/features.cfg; it does not compile a custom DLL for each installation.
GitHub publishes that universal channel separately as
release_windows_universal.zip; release_windows.zip remains the
compile-time/default channel, and the updater keeps those channels separate.
Its initial selections are generated from features/FEATURES.txt. The file can be
edited later (feature enables it, // feature disables it); restart SoF after changes.
If features.cfg is missing, the universal DLL falls back to those same defaults.
The F12 Features tab exposes the same choices at runtime as archived
_sofbuddy_feature_<name> cvars. Changes are written to base/sofbuddy.cfg,
shown as Unavailable when the installed non-universal DLL does not contain a
feature, and take effect after restarting SoF. On startup, those saved selections
are read before hooks are registered and synchronized back to
sof_buddy/features.cfg; that file remains the early-startup source of truth.
It also offers a Select Additional Tasks page with Optional installation
options. After you pick the game directory, Setup probes SoF.exe and
pre-checks the first two tasks when they still make sense for your retail build;
Install SoF Plus client stays off unless you enable it.
-
[OPTIONAL] Apply Windows 10+ Application Compatibility fix — For a recognized
SoF.exe, applies the same PE change GOG uses so the game behaves under Windows 10+ application compatibility. The original is saved asSoF.exe.sofbuddy.bak. Unrecognized executables are not modified. Skipped when the KB4571756 Raven-string fix is already present on the executable. -
[OPTIONAL] Unlock full violence — Recommended when you are not using SoFPlus's
spcl.dll. Password, volume serial, and-cskey are optional. The installer sets SoF parental-control values for the volume that contains the chosen game folder, for the current Windows user only. Uninstalling SoF Buddy does not remove those per-user settings. -
[OPTIONAL] Install SoF Plus client (20140531) — Bundles all four retail patch kits (
cd,gog,cd-kb4571756,gog-kb4571756); Setup selects one from yourSoF.exe, runssofplus-patch.exe, and then enablesenable_sofplus_and_buddysosof_buddy.dllloadsspcl.dllwhen present. Full detection rules: WINDOWS_INSTALLER.md.
Click to expand
- Windows: Run
sof_buddy/enable_sofplus_and_buddy.cmd - Linux/Wine: Run
sof_buddy/enable_sofplus_and_buddy.sh - This enables SoF Buddy and optionally loads SoF Plus (if
spcl.dllis present) - To apply a downloaded update zip, run:
- Windows universal / installer:
sof_buddy/sof_buddy_update.exe(orupdate_from_zip.cmd) - Windows compile-time channel:
sof_buddy/update_from_zip.cmdonly - Linux/Wine:
sof_buddy/update_from_zip.sh
- Windows universal / installer:
- Windows: Run
sof_buddy/enable_sofplus.cmd - Linux/Wine: Run
sof_buddy/enable_sofplus.sh - This disables SoF Buddy and uses only SoF Plus
- Windows: Run
sof_buddy/enable_vanilla.cmd - Linux/Wine: Run
sof_buddy/enable_vanilla.sh - This removes all mods and restores the original game
**F12** (or**bind <key> sofbuddy_menu sof_buddy**) — Open the SoF Buddy menu. Use this. It’s the main entry point for all settings, updater, and profiles. Set an additional shortcut from Settings → Menu → Bonus menu key; F12 remains available. Under UI Scale: Auto Font Scale / Auto HUD Scale toggle_sofbuddy_font_scale_auto/_sofbuddy_hud_scale_auto; manual scale lists appear when auto is off. Auto Round Scale and Scale Cinematic Images are on the same page.sofbuddy_list_features— Print compiled features (and whether they are on/off).sofbuddy_master_next— Query the next configured GameSpy master server.sofbuddy_menu <name>— Open an embedded internal menu page (examples:loading,sof_buddy).sofbuddy_menu <menu>/<page>— Open a specific embedded page (e.g.sofbuddy_menu sof_buddy/cpu).sofbuddy_apply_profile_comp— Apply competitive/low-visual profile preset.sofbuddy_apply_profile_visual— Apply visual/high-fidelity profile preset.sofbuddy_update— Check latest release from configured update API endpoint and compare with your current version.sofbuddy_update download— Download latest release zip tosof_buddy/update/(apply after closing game; release zips are preferred over debug zips).sofbuddy_update_install— On universal builds with graphical updater enabled (default), queuesof_buddy_update.exe; otherwiseupdate_from_zip.cmd/ in-DLL extract on Wine/Proton, viawinstart, then quit SoF.sofbuddy_openurl <https_url>— Open trusted community links in your default browser (used by the Social Links menu page).
Click to expand
- Use the XP package from releases (
release_windows_xp.zip) or compile with:make BUILD=xp
- XP builds define
SOFBUDDY_XP_BUILDand default updater endpoints to:_sofbuddy_update_api_url=http://sofvault.org/sof_buddy/releases/latest.json_sofbuddy_update_releases_url=http://sofvault.org/sof_buddy/releases/latest
- If you run your own mirror/proxy feed, override in console:
set _sofbuddy_update_api_url "http://your-endpoint/latest.json" set _sofbuddy_update_releases_url "http://your-endpoint/releases/latest"
- XP users may hit WinHTTP TLS failures on modern HTTPS endpoints (for example GitHub API). The mirror defaults above avoid that path.
- The sofvault host syncs the XP zip +
latest.jsonfrom GitHub on a cron schedule (rsrc/sofvault_mirror/sync_from_github.sh); no SSH publish from CI is required.
Click to expand
- Recommendation: Use Wine for best fullscreen experience and fewer visual glitches.
- Launch Example:
wine SoF.exe +set console 1 +set cddir CDDIR #%command% - Proton Note: Proton ≤ 4.11-13 recommended. Otherwise, adjust sound frequency each startup.
- Raw Mouse Input (
_sofbuddy_rawmouse): For true raw mouse input (bypassing system acceleration), you need Proton ≥ 9.0 or GloriousEggroll's custom Proton builds. Standard Wine/wine-staging may still apply system mouse acceleration. - Optimal FPS Tweaks: Add to
base/autoexec.cfg:(Note:cl_quads 0 ghl_light_method 0 ghl_shadows 0cl_quads 0disables many effects.)
Click to expand
Every user-facing cvar is editable from F12 → Cvars, which shows the live value, the
default, and a description for each one. Friendly controls also live on the named tabs (Cpu,
UI Scale, Graphics, Lighting, Gameplay, Network, Version, General, …).
Use set <name> <value> in the console to script them.
Internal bookkeeping cvars (layout math, migration guards, runtime status read-outs) use the
_sb_internal_ prefix and are listed separately at the bottom. Do not edit those by hand.
| Cvar | Description |
|---|---|
_sofbuddy_high_priority |
Default 1. Set process priority to HIGH (0 = NORMAL). F12 → CPU. |
_sofbuddy_sleep |
Default 1. CPU-saving sleep between frames. F12 → CPU. |
_sofbuddy_sleep_jitter |
Default 0. Frame time borrowing. Experimental; can worsen pacing, leave 0 unless needed. F12 → CPU. |
_sofbuddy_sleep_busyticks |
Default 2. 1 ms busyloop ticks per frame. Lower saves CPU, 0 may stutter. F12 → CPU. |
_sofbuddy_cl_maxfps_exact |
Default 0. 1 = cl_maxfps is literal integer FPS; 0 = legacy millisecond-budget list. Requires Singleplayer Max FPS. F12 → CPU. |
_sofbuddy_perf_profile |
Default 0. Perf preset: 0 Competitive, 1 High Visual, 2 Low Visual, 3 Custom/Current. The **Cpu** tab selects Custom/Current when the adjusted cvars do not match a preset. F12 → Cpu. |
_sofbuddy_font_scale |
Default 1. Manual font scale multiplier (0.25 … 8 in 0.25 steps). Used when auto is 0. F12 → UI Scale. |
_sofbuddy_font_scale_auto |
Default 1. Auto font scale from vid_h / 480. 1 on, 0 off. Legacy _sofbuddy_font_scale -1 migrates to auto on + scale 1. F12 → UI Scale. |
_sofbuddy_font_pack |
Default 0. Font mode: 0 Default, 1 Force SoFPlus, 2 Force Vanilla. Changing it reloads the renderer. F12 → UI Scale. |
_sofbuddy_hud_scale |
Default 1. Manual HUD scale multiplier (0.25 … 8 in 0.25 steps). Used when auto is 0. F12 → UI Scale. |
_sofbuddy_hud_scale_auto |
Default 1. Auto HUD scale from vid_h / 480. 1 on, 0 off. Legacy _sofbuddy_hud_scale -1 migrates like font auto. F12 → UI Scale. |
_sofbuddy_scale_round_auto |
Default 0. Snap auto font/HUD scale to round steps instead of a continuous ratio. 1 on, 0 off. F12 → UI Scale. |
_sofbuddy_scale_round_ratio |
Default 0.25. Snap increment used when round auto is on (0.05, 0.1, 0.125, 0.25, 0.5, 1). Also applies to cinematic image scaling. F12 → UI Scale. |
_sofbuddy_scale_cinematic_pics |
Default 1. Scale cinematic credit/fade images (SP_FLAG_CREDIT / SCR_DrawCinemaScope) up from 640×480. 1 on, 0 off. F12 → UI Scale. |
_sofbuddy_crossh_scale |
Default 1. Crosshair size multiplier. F12 → Gameplay → Crosshair. |
_sofbuddy_icons_autoscale |
Default 1. Scale team icons and playernames drawn above players with the HUD scale. 1 on, 0 off. F12 → UI Scale. |
_sofbuddy_console_size |
Default 0.5. Console height as a fraction of screen height (0–1, 1 = fullscreen). F12 → UI Scale. |
_sofbuddy_minfilter_unmipped |
Default GL_LINEAR. Min filter for sky and other unmipped textures. GL_NEAREST or GL_LINEAR (mipmap modes make textures incomplete). F12 → Graphics. |
_sofbuddy_magfilter_unmipped |
Default GL_LINEAR. Mag filter for sky and other unmipped textures. F12 → Graphics. |
_sofbuddy_minfilter_mipped |
Default GL_LINEAR_MIPMAP_LINEAR. Min filter for mipmapped textures. F12 → Graphics. |
_sofbuddy_magfilter_mipped |
Default GL_LINEAR. Mag filter for mipmapped textures. F12 → Graphics. |
_sofbuddy_minfilter_ui |
Default GL_NEAREST. Min filter for UI textures. Keep GL_NEAREST — LINEAR makes fonts unreadable. F12 → Graphics. |
_sofbuddy_magfilter_ui |
Default GL_NEAREST. Mag filter for UI textures. Keep GL_NEAREST — LINEAR makes fonts unreadable. F12 → Graphics. |
_sofbuddy_lighting_overbright |
Default 0. Overbright lighting. 1 on. When on, it overrides the manual blend cvars below. F12 → Lighting. |
_sofbuddy_lighting_cutoff |
Default 64. Dynamic light threshold (DLIGHT_CUTOFF). F12 → Lighting. |
_sofbuddy_water_size |
Default 64. Warp texture chunk size for water, lava, and sky turbulence. Smaller is finer (more work), minimum 16. F12 → Graphics. |
_sofbuddy_lightblend_src |
Default GL_ZERO. Lightmap blend source. Experimental, leave at default. F12 → Lighting. |
_sofbuddy_lightblend_dst |
Default GL_SRC_COLOR. Lightmap blend destination. Experimental, leave at default. F12 → Lighting. |
_sofbuddy_shiny_spherical |
Default 1. Let shiny gl_detailtexturing change with view angle. 1 on, 0 off. F12 → Lighting. |
_sofbuddy_rawmouse |
Default 0. Raw mouse input via the Raw Input API, bypassing Windows pointer acceleration. 1 on, 0 off. F12 → Gameplay. |
_sp_cl_master_gamespy |
Default sof1master.sofvault.org. Selected GameSpy master server; choose a known host from F12 → Network. SoFPlus saves this value across launches. |
_sofbuddy_http_maps |
Default 1. HTTP map assist: 0 Off, 1 Primary, 2 Random provider, 3 Rotate providers. F12 → Network. |
_sofbuddy_http_maps_dl_1 |
Default https://sofvault.org/sof1maps. Zip download base URL, provider slot 1. F12 → Network (provider block) or Cvars. |
_sofbuddy_http_maps_dl_2 |
Default https://raw.githubusercontent.com/plowsof/sof1maps/main. Zip download base URL, provider slot 2. F12 → Network or Cvars. |
_sofbuddy_http_maps_dl_3 |
Default empty. Zip download base URL, provider slot 3. F12 → Network or Cvars. |
_sofbuddy_http_maps_crc_1 |
Default https://sofvault.org/sof1maps. CRC lookup base URL, slot 1 (HTTP Range fetch of the zip central directory). F12 → Network or Cvars. |
_sofbuddy_http_maps_crc_2 |
Default https://raw.githubusercontent.com/plowsof/sof1maps/main. CRC lookup base URL, slot 2. F12 → Network or Cvars. |
_sofbuddy_http_maps_crc_3 |
Default empty. CRC lookup base URL, slot 3. F12 → Network or Cvars. |
_sofbuddy_http_show_providers |
Default 0. Show the provider + updater URL inputs on the Network tab. 1 show, 0 hide. F12 → Cvars (value); URLs on Network when shown. |
_sofbuddy_update_check_startup |
Default 1. Run the updater check at startup and open the internal prompt when a newer release is found. F12 → General. |
_sofbuddy_update_use_gui |
Default 1 on universal builds (Windows, Wine, and Proton); 0 on non-universal channels. Use sof_buddy_update.exe when queuing an install (sofbuddy_update_install) unless turned off (then script / in-DLL extract on Wine/Proton). Toggle on F12 → Version. |
_sofbuddy_update_api_url |
Default build-dependent. Updater JSON feed URL. XP builds default to the sofvault mirror, non-XP to the GitHub API. F12 → Network or Cvars. |
_sofbuddy_update_releases_url |
Default build-dependent. Human release page URL shown in updater status/help. F12 → Network or Cvars. |
_sofbuddy_update_target_tag |
Default latest. Release tag to install. Run sofbuddy_update releases to refresh the tag list after changing. F12 → Cvars (or console). |
_sofbuddy_menu_theme |
Default 0. Menu color preset (0 … 37). Reopen the menu to apply. F12 → General. |
_sofbuddy_loading_lock_input |
Default 0. Block opening the console while the loading screen is up (1 locked, 0 unlocked). F12 → General. |
_sofbuddy_loading_show_mapname |
Default 1. Show the current map name on the loading screen header. 1 on, 0 off. F12 → General. |
_sofbuddy_loading_show_download |
Default 1. Show HTTP/download status on the loading screen header. 1 on, 0 off. F12 → General. |
_sofbuddy_entity_edit |
Default 0. Map entity / map study tools (off by default): set 1 to enable the spawn cache during load, sofbuddy_entities_draw / ev_debugbox, and primary-attack intersect. Nothing in this feature runs until this is on — see Map entity wireframes. F12 → Cvars (Map Study section). |
_sofbuddy_entities_draw_verbose |
Default 0. Log one line per entity when sofbuddy_entities_draw runs. F12 → Cvars (Map Study). |
_sofbuddy_map_debug_map |
Default empty. Map stem for Map study load + spawn recording, no path and no .bsp (e.g. moscow). F12 → Cvars (Map Study) or sofbuddy_menu sof_buddy/map_debug. |
_sofbuddy_map_study_deathmatch |
Default 4. deathmatch mode applied before the map loads. 4 = CTF, which suits most map testing. F12 → Cvars (Map Study) or map_debug page. |
The four _sofbuddy_entity_edit / _sofbuddy_entities_draw_verbose / _sofbuddy_map_debug_map /
_sofbuddy_map_study_deathmatch cvars come from the entity_visualizer feature, which is
disabled by default in features/FEATURES.txt. In a default build they are never registered,
so they do not appear in the console and the Map Study section is hidden from the Cvars tab
(gated on _sb_internal_feature_entity_visualizer via <cinclude>). Enable that feature to get
them.
- See OpenGL glBlendFunc docs for blend values.
- Cvars with
CVAR_SOFBUDDY_ARCHIVEpersist tobase/sofbuddy.cfgand are reapplied on startup.
| Cvar | Purpose |
|---|---|
_sp_cl_info_sofbuddy |
windows--, wine--, or universal--, sent with client userinfo so a server can identify the SoF Buddy channel. |
The build number is the GitHub Actions run number; local builds use local.
This is informational client metadata, not an anti-cheat signal.
Written by sof_buddy itself. Values are recomputed each launch, so editing them has no lasting effect.
| Cvar | Purpose |
|---|---|
_sb_internal_version |
Build version string, reported on the Version tab. |
_sb_internal_build_flavour |
Release channel label (Universal, Windows, Linux / Wine, Windows XP, Debug, …). |
_sb_internal_build_number |
CI build number from SOFBUDDY_BUILD_NUMBER. |
_sb_internal_tab / _sb_internal_menu_last_page |
Remembered tab index and last opened page. |
_sb_internal_menu_vid_w / _sb_internal_menu_vid_h |
Cached engine vid_w / vid_h used to recompute menu layout cvars. |
_sb_internal_center_panel_px, _sb_internal_tabs_row1_*, _sb_internal_tabs_row2_* |
Computed tab-bar layout: panel width, prefixes/suffixes, content width and bias. Recomputed on resolution change. |
_sb_internal_profile_target_* |
In-use profile values shown on the CPU tab. |
_sb_internal_font_scale_rounded / _sb_internal_hud_scale_rounded |
Read-only mirror of the effective scale after ratio and glyph-grid rounding. |
_sb_internal_font_scale_auto_migrated / _sb_internal_hud_scale_auto_migrated |
One-shot guards so the legacy -1 auto-scale migration runs once. |
_sb_internal_loading_progress / _sb_internal_loading_current / _sb_internal_loading_status / _sb_internal_loading_network |
Runtime loading-screen state and status text. |
_sb_internal_loading_zip_indicator |
Pic path for the loading-screen download indicator. |
_sb_internal_update_status / _sb_internal_update_latest / _sb_internal_update_download_path / _sb_internal_update_downloaded_asset / _sb_internal_update_checked_utc |
Updater progress read-outs (Version tab and startup prompt). |
_sb_internal_update_release_list_rmf / _sb_internal_update_release_list_status |
Generated RMF markup for the release list, plus its load status. |
_sb_internal_feature_entity_visualizer |
Compile-time build flag (1/0) used by <cinclude> to hide menu sections whose feature is not compiled in. |
_sb_internal_feature_master_server_fallback |
Runtime menu gate for the GameSpy master selection control. |
_sb_internal_openurl_status / _sb_internal_openurl_last |
Last social-link open result and requested URL. |
See RELEASE_INSTRUCTIONS.md for the full manual guide.
SoF Buddy uses two version numbers:
| Part | Where | Example |
|---|---|---|
Version (MAJOR.MINOR) |
VERSION file (bump manually) |
8.1 |
| Build | GitHub Actions run_number (automatic) |
189 |
Published tags look like v8.1-build189. Pushing to master always builds; a GitHub Release is created only when VERSION changes in that commit.
Cut a release:
./tools/new_release.sh # bump VERSION, stage hdr/version.h
# update CHANGELOG.md with ## vX.Y
./tools/new_release.sh --check # verify bump + changelog
./tools/new_release.sh --commit -m "Release vX.Y: summary"--commit runs --check automatically. Feature fixes on master without a VERSION bump still CI-build but do not publish a new GitHub release.
- WhiteMagicRaven — Lighting blend mode
- Acadie — Endless knowledge;
extended_skins.pak - More Crosshairs — Classic community packs in
sof_buddy/crosshairs/(original authors retain credit; SoF Buddy repackages them for the theme picker):- FL44 —
fl44.pak - Jay —
jay_crosshairs_v4.pak - Keifer —
keifer_2009.pak,keifer_2010.pak - MHP —
mhp.pak - Reps —
reps_crosshairs_v1.2.pak - Sauron —
sauron_crosshairs.pak - Yump Skulls —
yump_skulls.pak
- FL44 —
- d3nd3 — Project lead
- Community — Bug reports, testing, and support
This project is licensed under the MIT License. See LICENSE for details.
- Open an issue
- SoF1.org Forums
- Discord Server: Join our Discord
SoF Buddy is not affiliated with Raven Software or Activision. Soldier of Fortune is © their respective owners.

