Skip to content

About

A complete graphical front-end for installing, updating, managing and launching the STALKER Anomaly + GAMMA mod pack on Linux.

Topics

Resources

Stars

32 stars

Watchers

0 watching

Forks

Repository files navigation

S.T.A.L.K.E.R. G.A.M.M.A. COMMANDER

A complete graphical front-end for installing, updating, managing and launching S.T.A.L.K.E.R. Anomaly with the GAMMA modpack on Linux.

License: GPL v3 Platform Python Qt Release Discord

What this is • Features • Installation • First run • Contributing • Credits • License • Discord

1-dashboard

What this is

GAMMA is a huge S.T.A.L.K.E.R. Anomaly mod pack, normally installed through a Windows launcher and run through Mod Organizer 2. On Linux, the community solution is FaithBeam/stalker-gamma-cli — an excellent but entirely terminal-driven installer.

COMMANDER is a desktop GUI around that CLI. It doesn't reimplement any installer logic — it drives the real stalker-gamma binary as a subprocess and parses its output live. Every download, checksum and extraction is performed by the upstream CLI, so results are identical to using it by hand; you just get progress tables, a mod manager, prefix handling and a Play button instead of a terminal.

On top of the CLI, COMMANDER adds things it doesn't do on its own: launching through Mod Organizer 2 in a Wine/Proton prefix, a GE-Proton installer, a modlist.txt editor, dependency setup, and a full integrity check & repair pass.


Features

Dashboard

The landing page. Shows the active profile, install status for Anomaly and GAMMA, a live dependency count, storage usage across your Anomaly/GAMMA/cache folders, and a background check for GAMMA addon updates. Quick-open buttons jump straight to the Anomaly, GAMMA, cache and log folders, and a Play GAMMA shortcut launches the game without leaving the page.

Install

Installs S.T.A.L.K.E.R. Anomaly and GAMMA with a live per-addon progress table (name, operation, percent) and an overall completion bar. Pick a base folder and hit Create folders to auto-generate the Anomaly/GAMMA/cache layout.

2-install
  • If a download is interrupted, the next launch offers Resume GAMMA Installation — cached archives are hash-verified and reused, only missing or changed ones are re-downloaded.
  • Minimal mode deletes addon archives after extraction to save ~50 GB of disk space.
  • Preserve user.ltx / Preserve MCM settings checkboxes protect your keybindings, game options and mod configs across a reinstall.
  • Install Dependencies sets up everything MO2 and the game need in one click: umu-run, protontricks (via pipx on PEP 668 systems), and eight Visual C++/DirectX runtimes (d3dcompiler_43, d3dcompiler_47, d3dx10, d3dx11_43, d3dx9, quartz, dx8vb, vcrun2022) — installed through the selected runner's own Wine (umu-run winetricks for GE-Proton, the runner's wine binary otherwise), never the system winetricks/wine on PATH. Running a different Wine build against a Proton prefix corrupts its system DLLs and makes the game crash-loop on launch; COMMANDER now refuses to do that.

Play

Launch GAMMA through Mod Organizer 2, open MO2 directly, or run Anomaly's executable without the MO2 virtual file system. Targets are read straight from ModOrganizer.ini, with AnomalyLauncher.exe used as a fallback if none are found.

3-play
  • Auto runner detection — the newest installed GE-Proton build is picked automatically and launched through umu-run.
  • Built-in GE-Proton installer — browse recent GE-Proton releases, download with a progress bar and cancel support, and COMMANDER verifies the SHA-512 checksum and installs it into compatibilitytools.d for you. No manual downloading or extracting.
  • Per-runner prefixes — each runner remembers its own Wine prefix, so switching runners never corrupts a prefix built by a different version.
  • A live command preview with a copy button, a custom launch options field (supports env vars like PROTON_USE_WINED3D=1), and status chips showing installed GE-Proton builds, GameMode and MangoHud.
  • The game launches detached — closing COMMANDER doesn't kill your session — with output captured to a rotating launcher.log. Failed launches are diagnosed automatically: a DXVK/Vulkan problem, a runner/prefix mismatch, or the classic concrt140.dll error are called out by name instead of surfacing a raw Wine crash, with a one-click option to bundle a bug report on the spot.
  • One-click desktop shortcuts that launch a specific target with the currently selected runner.
  • Total playtime is tracked per profile and shown on the Dashboard.
  • Optional Discord Rich Presence ("Playing S.T.A.L.K.E.R. GAMMA" with your mod count and total playtime) — off by default; one checkbox in Settings turns it on, no Discord developer setup needed.

Updates

Compares your installed GAMMA version and addon list against the latest official data — without hitting the rate-limited GitHub REST API — and shows exactly what changed: Added, Modified, Removed, and archive-name changes.

4-update

Applying updates reuses the same live progress UI as a fresh install, respects the Minimal/preserve-settings options, and holds the global install lock so it can never run alongside another install. A background check runs at most once a day even if you never open this page, with a desktop notification if one is found. If an update doesn't go well, Undo Last Update restores the modlist.txt snapshot taken right before it was applied.

Mod Manager

Direct, careful editing of the active MO2 profile's modlist.txt — search, enable/disable, delete and reorder mods, grouped by the _separator categories GAMMA ships.

5-modmanager
  • Drag-and-drop reordering with multi-selection support, plus Move Up/Down.
  • Reversed load order detection: a GAMMA load order that has been flipped end to end (which crashes the game on startup) is flagged in the Mod Manager and before launching, with a one-click fix.
  • Create new categories, install a local ZIP/7Z/RAR/FOMOD mod archive straight into the modlist, and use the active profile as MO2's selected profile without opening MO2.
  • A backup is taken automatically before your first edit (modlist.txt.gammagui.bak) and can be restored from the UI, alongside a Restore Original Order option.
  • Writes are atomic — a crash or full disk cannot truncate your load order — and edits are blocked while Mod Organizer is running, since MO2 rewrites the file on exit and would silently discard them.
  • Check for File Conflicts scans every enabled mod's files for ones shared by more than one mod, so you can see what the current load order is actually overriding.
  • Press Ctrl+F anywhere in the app to jump straight to this page's search box.

Verify Integrity & Repair

Runs three passes: an Anomaly file check, a GAMMA presence check (every enabled mod must exist on disk), and a full MD5 scan of every file under gamma/mods against a saved baseline. Anything missing, corrupted or changed is reported.

If a broken mod matches an entry in the official GAMMA mod list, COMMANDER can repair it automatically and non-destructively: the mod folder and its cached archive are set aside (not deleted), then it's redownloaded and MD5-verified against the official checksum. If the reinstall fails or is cancelled, the set-aside copies are restored automatically — nothing is permanently lost until a repair is confirmed successful. Your own added mods and files are never touched, and anything with no known download source is reported instead of touched.

Profiles

Create, edit, activate and delete CLI profiles — each with its own Anomaly, GAMMA, cache, MO2 profile, download-thread and repository settings. Creation, activation and deletion are delegated to stalker-gamma config so its side effects (MO2's selected_profile, modlist downloads) happen exactly as the CLI intends. Advanced fields expose every repo URL and branch the CLI supports, for anyone using a fork or mirror.

  • Export/Import Profile saves a profile's portable settings (and its modlist.txt, if installed) to a file you can back up or hand to a friend — install folders are always chosen fresh on import, since they're specific to each machine.

System Check

Checks every dependency GAMMA and MO2 need in one place: the CLI, Wine, Winetricks, Protontricks, umu-run, Vulkan (including the 32-bit loader), each individual Winetricks runtime, GE-Proton builds, GameMode and MangoHud. Every check shows its status and a copyable install command for your distro, and manual overrides let you point COMMANDER at tools installed in non-standard locations.

6-systemcheck

Utilities

A toolbox for maintenance and recovery:

7-utilities
  • Cache cleanup — preview which archives are out of date and how much space they'll free, then clean them.
  • Clear shader cache and Remove ReShade for a clean slate after driver or mod changes.
  • Fix GOG installation — repairs ModOrganizer.ini paths for a GOG-provided copy of Anomaly.
  • Repair Wine prefix — restores the runner's own system DLLs if another Wine has written into the game's prefix (the symptom: every launch immediately crash-loops and can exhaust system memory). COMMANDER also refuses to launch into a prefix it detects as damaged, so this shouldn't come up in normal use — it exists for prefixes touched by something outside COMMANDER (a manual winetricks/wine command, another launcher). Reinstall dependencies afterward, since verb-installed runtimes are among the files a foreign Wine would have overwritten.
  • Move installation — copy Anomaly, GAMMA and cache to another drive, verified before the originals are deleted. An interrupted move is safely detected and resumed on the next launch.
  • Create Log Dump and Export Diagnostics — bundle logs, settings and system info into one archive for bug reports.
  • Fresh Reset, GAMMA Reset and Full Uninstall — guarded destructive actions that show exactly what will be deleted and what's kept (your Wine prefix always survives) before doing anything.
  • Opens the bundled COMMANDER ASSISTANT log analyzer directly from the page.
8-assistant

Settings

  • 10 languages — English, French, Spanish, German, Romanian, Polish, Russian, Ukrainian, Portuguese and Turkish. Switch anytime; it applies instantly with no restart, unless a background task is running.
  • 6 themes — GAMMA, GAMMA Black, Dusk, Midnight, Terminal and Reactor, each with its own color palette.
  • Interface font family (6 options) and size (9–22 px), both applied live.
  • Startup page, default runner, an "Always use GameMode" toggle, an Open Winecfg shortcut, and MO2 Display Scale presets (100–200%) for readable text in Mod Organizer.
  • Desktop autostart, launching COMMANDER automatically on login.
  • Add to Steam — writes COMMANDER and Deck Mode straight into your Steam library as non-Steam games, no manual "Add a Non-Steam Game" dialog needed.

Steam Deck Mode

A second interface built for the Deck's 1280x800 screen, its controls and its touchscreen. Open it from the small Steam Deck icon on the Dashboard, next to Quick actions — COMMANDER closes and reopens in Deck Mode. Exit Deck Mode, on Deck Mode's Settings screen (or the ☰ Menu button), brings you back the same way.

  • First-run setup. With no profile yet, Deck Mode asks one question — internal storage or SD card — and creates the profile for you, then sends you to Install.
  • Tabs, in handheld order: Dashboard · Play · Mods · Update · Install · Utilities · System · Settings.
  • Dashboard answers "can I play?" in one banner with the one button that moves things forward (Play, Install, Resume, Update), with playtime right under it, then Anomaly · GAMMA · Dependencies side by side, updates, mods, storage, and your profiles: switch, create, or edit a profile's name and its Anomaly / GAMMA / cache folders with a built-in folder browser.
  • Play (launch target, runner, session timer, and Force Stop Game for a game that hangs — the Deck has no Alt+F4), Mods (the desktop Mod Manager's category tree as a full-screen list, in MO2 order with priority numbers; fold categories, filter, search, enable/disable a whole category), Update (every added / modified / removed mod, plus scrollable patch notes), Install (Anomaly, GAMMA, dependencies, GE-Proton, install options, and Resume after an interrupted install), Utilities (cache, shader cache, ReShade, GOG fix, prefix repair, move install, log dump, and the Uninstall / Reinstall resets), System check (with a Copy install command button on each missing item) and Settings.
  • Handheld-aware. The Deck is kept awake while an install, update or move runs, you're warned before a long download on battery, the header shows the battery, and the footer shows the active profile and the time.
  • Any screen size. On the Deck it fills the panel; on a bigger window — maximised on a monitor, or docked to a TV — the whole interface scales up with it.

Controls. The controller works in Game Mode out of the box — COMMANDER reads the gamepad directly, so Steam's default layout is fine — and in Desktop Mode's keyboard layout as well:

Button Action
D-pad / left stick Move (hold to repeat)
A Select / toggle
B Back
X The screen's main action (below)
Y The screen's second action / search
L1 / R1 Previous / next tab
L2 / R2 Page up / down
☰ Menu Exit Deck Mode or quit
⧉ View Controls help
Screen X Y
Dashboard What the banner says (Play / Install / Resume / Update) Re-check
Play Play GAMMA (Force Stop while running) Open MO2
Mods Category menu Search
Update Check / Apply updates Show changes
Install Install or resume GAMMA Install dependencies
System Re-check —

The ☰ Menu button opens a quick menu from anywhere: Play GAMMA, Exit Deck Mode or Quit.

Text fields have a built-in on-screen keyboard (Y), touch works everywhere (tap to select, drag to scroll), and every screen shows its buttons in the footer. All six themes and all ten languages work as they do on the desktop, and the text size has its own 80–150% scale.

On a real Steam Deck, COMMANDER offers Deck Mode the first time it starts and remembers your answer (changeable later under Settings → When COMMANDER starts); in Game Mode it opens Deck Mode without asking. On any other machine it opens as an ordinary 1280x800 window, so you can try it out.

Adding Deck Mode to Steam so it works in Game Mode: in Desktop Mode, use Add COMMANDER to Steam (desktop Settings → Steam, or Deck Mode's Settings) — this writes both STALKER COMMANDER and STALKER COMMANDER DECK straight into your Steam library. If Steam is running it is closed first, the shortcuts are written, and Steam is started again. If you'd rather do it by hand, or the button can't tell which Steam account to use, the manual route still works:

  • AUR / from source: in Desktop Mode, Add a Non-Steam Game and pick STALKER COMMANDER (Deck Mode).
  • AppImage: add the .AppImage itself, then set its launch options to --deck. An AppImage can only publish one desktop entry, so the Deck one cannot ride along with it.

Deck Mode full-screens itself under gamescope, which has no window manager to size a window for it.


Installation

AppImage (recommended)

Download the latest .AppImage from Releases:

chmod +x STALKER-GAMMA-COMMANDER-*-x86_64.AppImage
./STALKER-GAMMA-COMMANDER-*-x86_64.AppImage

Python, Qt and the CLI are all bundled inside. For a menu entry and icon, use Gear Lever or AppImageLauncher.

Arch Linux

A PKGBUILD is provided under packaging/aur/:

git clone https://github.com/SSH-Kitty/STALKER-GAMMA-COMMANDER.git
cd STALKER-GAMMA-COMMANDER/packaging/aur
makepkg -si

From source

git clone https://github.com/SSH-Kitty/STALKER-GAMMA-COMMANDER.git
cd STALKER-GAMMA-COMMANDER
./run.sh

run.sh creates a .venv/, installs PySide6, and launches the app. The stalker-gamma CLI is already bundled at cli/usr/bin/stalker-gamma.

Add --deck to start straight in Steam Deck Mode: ./run.sh --deck.

run.sh allows several instances at once, so you can run two builds side by side while developing. Every extra window says [extra instance] in its title bar — they all share ~/.config/stalker-gamma, so their settings writes are last-write-wins, and nothing stops two of them starting an install into the same folders. Use COMMANDER_ALLOW_MULTIPLE=0 ./run.sh for the shipped behaviour. The AppImage and the AUR package are unaffected: both still refuse a second instance, and the AppImage does so even if the variable is exported in the shell that launches it.

Running the tests

QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/ -q

The Qt platform has to be set on the command line — the suite builds real widgets, and there is no pytest.ini to hold the variable.


First run

  1. Profiles → set your Anomaly, GAMMA and Cache folders (use absolute paths) and create the profile — it activates automatically.
  2. Install → Install GAMMA. Anomaly is installed first if it's missing. Expect a large download: ~150 GB, or ~100 GB with Minimal mode.
  3. Install → Install Dependencies — sets up the Wine/Proton runtimes MO2 needs.
  4. Play → pick a runner and launch target, then Launch Game.

Use Updates for addon updates afterward, and Verify Integrity if something seems broken.


Contributing a translation

Adding a new language is copy-and-fill-in, no code changes needed: start from commander_gui/locales/template.py, which lists every translatable string in the app. See the instructions in that file's header for the exact steps.


Credits

License

Licensed under the GNU General Public License v3.0 — see LICENSE. This project bundles and drives stalker-gamma-cli, which is GPL-3.0, so this front-end is GPL-3.0 as well.

  • Copyright for Python/Qt graphical interface: SSH-Kitty

Not affiliated with GSC Game World or the GAMMA development team.

About

A complete graphical front-end for installing, updating, managing and launching the STALKER Anomaly + GAMMA mod pack on Linux.

Topics

Resources

Stars

32 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages