A multi-boxing launcher for Asheron's Call private servers. Launch and manage multiple game clients simultaneously, with per-account credential management, server browsing, DAT file management, and Decal plugin support.
- Multi-boxing — launch multiple AC clients at once using hard links, each with its own isolated working directory
- Account manager — store accounts per server, auto-fill credentials on login
- Server browser — fetch and browse community server listings, add servers in one click
- DAT management — servers can require alternate DAT files (e.g. expansion content, custom worlds); ShadowLauncher fetches and caches them automatically from a community DAT registry, then uses hard links to point each client at the correct set — no manual file swapping required
- Decal support — inject Decal into each client for plugin support
- Login commands — send login commands globally or per-character after login (via ThwargFilter or optional ShadowFilter)
- Auto-update — checks GitHub Releases and installs updates in-app
- Windows 10 or 11 (x86 or x64)
- .NET 10 Desktop Runtime (x86) — installed automatically by the setup wizard
- An Asheron's Call client (
acclient.exe) and associated DAT files - Decal — required for login automation and plugin support
- A Decal network filter for automation — if you already have ThwargFilter, keep using it (ShadowLauncher writes its launch files). ShadowFilter is optional and ships under
ShadowLauncher\ShadowFilter\for users who want the first-party filter — see Settings → Help
Note: Basic launching and server browsing work without Decal. Character auto-login, login commands, and heartbeat monitoring need Decal with ThwargFilter and/or ShadowFilter enabled.
Download ShadowLauncher-Setup.exe from the latest release and run it. The setup wizard will install the .NET 10 runtime if needed — no manual steps or special permissions required.
Note: If your AC client is installed under
Program Files, ShadowLauncher will automatically copy it to your local app data folder the first time it runs. This one-time copy (a few hundred MB) is required so hard links can be created without elevation.
- .NET 10 SDK
- WiX Toolset v5:
dotnet tool install --global wix --version 5.0.2 - WiX extensions:
wix extension add WixToolset.UI.wixext/5.0.2 WixToolset.Util.wixext/5.0.2 WixToolset.Netfx.wixext/5.0.2 WixToolset.Bal.wixext/5.0.2 --global
.\Build-Installer.ps1Output: ShadowLauncher.Installer.Bundle\bin\ShadowLauncher-Setup.exe
To override the version:
.\Build-Installer.ps1 -Version 0.2.0- Update
<Version>inShadowLauncher\ShadowLauncher.csproj,ShadowLauncher.Installer\ShadowLauncher.Installer.wixproj, andShadowLauncher.Installer.Bundle\ShadowLauncher.Installer.Bundle.wixproj(all three must match) - Open a PR and merge to
master - GitHub Actions builds the installer and publishes a GitHub Release tagged
vx.y.zwith a summary of merged PRs - Verify the release asset (
ShadowLauncher-Setup.exe) and notes on the Releases page
Merges that do not bump the version (or that target a version ≤ the latest existing release tag) are skipped automatically. To release locally instead, run .\Build-Installer.ps1 -Version x.y.z and upload the output manually.
Users with the app installed will be notified via Settings → Check for Updates.
ShadowLauncher/ Main WPF application
Core/ Domain models and interfaces
Infrastructure/ Native interop, config, networking
Presentation/ ViewModels, Views, converters
Services/ Business logic (launch, monitor, DATs)
ShadowLauncher.Installer/ WiX MSI package
ShadowLauncher.Installer.Bundle/ WiX bootstrapper bundle (.exe)
ShadowLauncher.Installer.CustomActions/ Managed MSI custom actions (app data cleanup)
Build-Installer.ps1 One-command release build script
MIT — see LICENSE.