Skip to content

Repository files navigation

ShadowLauncher

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.


Features

  • 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

Requirements

  • 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.


Installation

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.


Building from source

Prerequisites

  • .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 the installer

.\Build-Installer.ps1

Output: ShadowLauncher.Installer.Bundle\bin\ShadowLauncher-Setup.exe

To override the version:

.\Build-Installer.ps1 -Version 0.2.0

Releasing a new version

  1. Update <Version> in ShadowLauncher\ShadowLauncher.csproj, ShadowLauncher.Installer\ShadowLauncher.Installer.wixproj, and ShadowLauncher.Installer.Bundle\ShadowLauncher.Installer.Bundle.wixproj (all three must match)
  2. Open a PR and merge to master
  3. GitHub Actions builds the installer and publishes a GitHub Release tagged vx.y.z with a summary of merged PRs
  4. 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.


Project structure

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

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages