Skip to main content

LANCommander 2.1.0 Release Notes

Latest Version

This page covers the full LANCommander 2.1 series. The latest patch is 2.1.8 — see Patch Updates below for what's changed since the initial release.

LANCommander 2.1.0 is a landmark release that touches virtually every part of the platform. A brand new launcher built on Avalonia, a standalone packager application, a C++ SDK powering a legacy Win32 launcher, major server improvements, and the launch of LANCommander HQ all come together in what has been the most ambitious update cycle to date.

Breaking Changes

.NET 10

LANCommander has been upgraded from .NET 8 to .NET 10. This should be a seamless transition as all LANCommander binaries are self-contained and include the appropriate .NET runtime. However, if you are running an older version of Windows that does not support .NET 10, you may encounter issues running this version of LANCommander. The minimum supported Windows version is now Windows 10 version 1809.

Launching Into the Future

To kick things off, LANCommander 2.1.0 introduces a new launcher. As a recap, the previous launcher was built using .NET Blazor and wrapped into a Webview2 chrome using the open source project Photino. This decision was originally made in an effort to maintain a somewhat shared codebase with the server web UI.

Unfortunately, over time limitations of the platform made it apparent that a change had to be made. Community member aaronpowell stepped up and built out a proof of concept for a launcher using Avalonia, an open-source native cross-platform UI framework for .NET. The potential was immediately clear and the decision was made to jump in head first. The following months saw the project refocus on building a new launcher with a major emphasis on performance, reliability, design, and feature parity.

The result is, well, a project that went off a little off the rails in the best possible fashion:

Launcher
Launcher

The brand new Avalonia-based launcher

I think the screenshots speak for themselves. Okay, not quite, there's a lot of fun stuff in this build so let's dive right in!

User Library

Previous versions of the launcher attempted to bring the art of a game to the forefront. These views are where most players spend their time interacting with the application. However, everyone's tastes are different. As such the library now contains three main views; cover grid, list, and shelf.

Shelf View

Game Details

Browsing the user library is great and all, but the detail view is where a game really gets to shine. Metadata has shifted to the right-hand side, descriptions now support more complex formatting with Markdown rendering support, and finally videos and screenshots are displayed in a carousel. A lightbox viewer lets you zoom in on screenshots, watch videos, and even read game manuals right from the detail view thanks to the new built-in PDF viewer.

Game Screenshot Detail

This is really just the start of something new. Expect this part of the launcher to be built out more in the future with better publishing tools and metadata expansion.

Depot

The depot has been overhauled too, probably more than any other part of the launcher. Previous iterations have been fine, but with large game sets it was hard to find just what you needed. The new depot puts a focus on categorization while maintaining granular filtering tools to get you exactly where you need to go.

Depot

As you can see, this section more than any other benefits from high quality metadata. We'll get into that later, but first let's talk about game installation.

Download Queue

Game installation and downloading has been the hardest component to develop in the entire LANCommander platform. And rightly so! Without game installation, all you get is a fancy web UI and a pretty launcher that can't launch any games.

The LANCommander launcher is essentially a UI wrapper for the LANCommander SDK. The SDK is a .NET library that provides all of the useful bits of communicating with a LANCommander server install. Authentication, script execution, save management, game installation and so much more are provided through this library. In previous iterations, the SDK had a very strict execution plan for installing games. Often times this would lead to deadlocks and outright failures.

To resolve this in 2.1.0, the game install process has moved to a two-layer queuing system. The first layer of the queue manages what actually enters the download queue. This could be a game, redistributable, tool, or addon. The second layer handles any subprocessing step such as executing the different script types, save downloading, existing file verification, etc. The result is a system that is more transparent and reliable.

This queuing system has been exposed somewhat in the download queue:

Download Queue

Each entry in the download queue will now report each step of the process during a game installation. In addition to looking a bit less mystical, this should give users an idea of what exactly is happening during a game installation.

Big Screen Mode & Gamepad Navigation

The launcher now supports a big screen mode designed for use with TVs and handhelds. When enabled, the launcher switches to a fullscreen layout optimized for focused gaming. Gamepad support has been added as well. Controllers are detected and mapped using SDL2, and directional navigation has been implemented across the library views, carousels, game detail pages, and overlay dialogs. Focus management handles moving between UI elements naturally with a d-pad or analog stick, making it possible to browse, install, and launch games with a controller. This feature is pretty barebones for now, but adds a foundation for deeper integration in the future.

Discord Rich Presence

The launcher now integrates with Discord Rich Presence. When you're playing a game through LANCommander, your Discord status will update to show what you're playing. By default this will show as LANCommander with the game name as the status. If the game is mapped to the correct Discord ID (via external IDs in the server), then the game's official Discord assets will be used for a more polished presentation.

Offline Mode

Previous attempts at an offline mode in the launcher were pretty clunky and unreliable. In 2.1.0, the launcher now has a proper offline mode that allows you to launch previously installed games even when the server is unreachable.

Command Line Interface

The Avalonia launcher now handles all CLI functionality directly, replacing the previous standalone CLI project. The full set of CLI verbs is supported: RunScript, Install, Uninstall, Run, Sync, Import, Export, Upload, Login, Logout, and ChangeAlias. The --help and --version flags are also recognized, and console logging has been added for headless execution.

Single Sign-On

SSO was supported in the previous launcher, but it was a bit of an afterthought and not super reliable. In the new launcher it's been given more attention and should work as expected.

Chat

As with the last version, the chat functionality remains pretty barebones. This is an area that will get more attention in the future, but it is currently available in the new launcher. It might even work a little better.

Server Improvements

This release should also be pretty exciting for server admins. With a new launcher and shiny new features brings a set of tools to manage them.

LANCommander HQ

A new metadata provider has been added: LANCommander HQ. This gives server admins another option for sourcing game metadata and media alongside IGDB and SteamGridDB. In addition, support for external IDs beyond IGDB has been introduced, making it easier to cross-reference games across multiple platforms and services. To get started with the HQ, link your Discord account under "Integrations / HQ" in the server settings. The first time setup wizard now includes a step to log in to HQ directly during initial configuration, streamlining the onboarding experience. Existing metadata providers such as IGDB and SteamGridDB are still available as well, so no functionality has been lost from previous versions. We'll cover more about HQ later on in these notes.

Preview Tool

A new "Preview" editing view has been added to the server for managing game art. Inspired by the launcher's presentation, this tool gives admins a better sense of how their media will look in the launcher before publishing. Screenshots and videos can now be uploaded in bulk, and the media grabber supports selecting multiple assets at once. Animated covers are now supported as well, APNG images grabbed from SteamGridDB are automatically converted to video and should display in the new launcher.

Preview Tool

Script Editor Improvements

The script editor has received a significant upgrade. Context-aware code completions now suggest built-in PowerShell cmdlets, LANCommander-specific variables, and generated type definitions. Validation has been improved, and script errors are now logged rather than silently swallowed. A new Set-GameDetails cmdlet has been added for specifying package details from within scripts.

Variable Picker Dialog

A new variable picker dialog has been added to the action editor and save path editor. When editing action arguments, working directories, or save paths, a new button opens a dialog that lets you browse and insert LANCommander variables ({InstallDir}, {DisplayWidth}, etc.), environment variables (%APPDATA%, %LOCALAPPDATA%, etc.), and special folder paths (%MyDocuments%, %Desktop%, etc.) with a single click.

Redistributable Options

Redistributables now support configurable options. Options can be defined with a schema editor, given display names, and are preserved across import/export. Assigning redistributables to a game can now be accessed under the "Redistributables" section of the game editor. When selected, a redistributable with options will render as an easy-to-use form and per-game overrides can be defined.

Redistributable Options

A new RunWrapper script type has been added as well, giving admins more control over how redistributables and games are executed. RunWrapper scripts now run alongside the game process with proper state tracking, cancellation support, and child process cleanup when the game exits. This should enhance redistributables to cover more use cases such as emulators, launchers, and compatibility shims like Proton or dgVoodoo.

Packaging Dialog

The "Package" button has been moved from individual game, redistributable, and tool edit pages to the archive editor. A new packaging dialog provides a consolidated view of the packaging process, making it easier to build and manage archives directly from the archive list.

Background Uploading

Archive uploads now continue in the background, allowing you to navigate away from the upload page without losing progress. An upload indicator in the sidebar tracks active uploads so you can continue working in other areas of the server while files transfer. This also applies to the import upload dialog.

File Manager Improvements

The server file manager has received several usability improvements including faster enumeration of large directories, toggleable columns, new Created and Type columns, fixed breadcrumb navigation, and a properly built directory tree with support for cross-platform roots and special folders.

Key Management

Key allocation has been improved. The allocation method on keys is now nullable, and a new manual key assignment dialog has been added. The logic for choosing the next available key has also been reworked.

Media & Tooling

Server settings now include checks for ffmpeg and yt-dlp availability, with automatic installation support in Docker environments. A new streaming endpoint for media has been added, improving video playback in the launcher. Automatic downloads for Steam screenshots have been added as well. YouTube video support has been added to the media grabber, and ffmpeg is now used for video processing tasks such as APNG conversion and thumbnail generation.

LANCommander Packager

A new standalone Avalonia application, LANCommander Packager, has been added for building LCX package files outside of the server. The packager works by monitoring the files and registry entries created by a game's installer. You can then choose which files and registry keys are bundled into the final LCX file. If the tool is authenticated to a LANCommander server instance, the game can be directly uploaded to the server as well.

Monitor
Packager Monitor

The Packager application will monitor the files and registry entries created during installation

C++ SDK & Legacy Launcher

C++ SDK

A new C++ SDK (LANCommander.SDK.Cpp) has been introduced. Written in C++14, it provides maximum compatibility from Windows 95 through modern platforms. The SDK includes 16 API clients covering authentication, games, library, saves, media, tools, depot, and more. It ships with two HTTP backend implementations (WinINet for Windows and libcurl for cross-platform) and uses vendored cJSON for zero mandatory external dependencies. This SDK is the foundation that powers the legacy launcher.

Legacy Launcher

A Fun Detour

The legacy launcher is a fun side project and detour from the main development track. It should not be regarded as a primary concern or a supported production launcher. Think of it as an experiment in seeing just how far back LANCommander's reach can extend.

The legacy launcher is a native Win32 application written in C++ that targets Windows 9x (Windows 95/98/ME) and beyond. Built on Allegro 4 for rendering and GDI+ for image decoding (JPEG cover art, backgrounds, etc.), it provides a surprisingly full-featured LANCommander experience on vintage hardware. GDI+ is a requirement and must be available on the target system. For Windows 9x systems, this means installing the GDI+ redistributable.

Features include:

  • Library and Depot browsing with cover art grid
  • Game detail view with metadata and screenshots
  • Download queue with progress tracking
  • Login screen with server authentication
  • Settings screen with configurable server address
  • SQLite-backed local database for offline game metadata
  • Custom window chrome with a themed UI
  • Unicode support for international character sets
Login
Legacy Launcher Login

The login screen running on Windows 98

LANCommander HQ

Last but far from least, this release coincides with the launch of LANCommander HQ, a new metadata provider and community hub for LANCommander users. The HQ aims to provide a centralized platform for game metadata and media across multiple providers, while also normalizing and enhancing that data with a focus on the needs of LANCommander users. There's a bit to cover, so let's dive in!

Metadata

LANCommander HQ aggregates metadata from multiple sources including IGDB, SteamGridDB, and user contributions. This data is then normalized and enhanced with a focus on the needs of LANCommander users. There are many metadata providers out there, and unfortunately they all have their own unique schemas and data quality issues. The HQ's goal is to provide a single source of truth for game metadata that can be consumed by LANCommander servers and launchers.

There are a lot of exciting features in the works for the HQ, but for this release the focus is on building out the core infrastructure and integrating with the new launcher. Expect to see more features and improvements in the future as the HQ continues to evolve.

Community

The main features of the HQ are currently focused on metadata, but there is the potential to expand it into a broader community hub for LANCommander users. This could include an area to share game configurations, scripts, and other resources. Additionally, there are some content moderation tools in place that should allow the HQ to host user-generated content and provide the best possible experience for all users. If you have a knack for curation and want to help out, there will likely be opportunities to get involved in the future!

Tiering / Subscriptions

The HQ operates on a tiered subscription model. Currently there are only two tiers: Basic (Free) and Premium ($5/month). The Basic tier provides access to the core metadata features of the HQ, while the Premium tier provides access to additional features such as enhanced metadata, relaxed rate limiting, and more. More information will be provided in the near future and will be provided on this site under the LANCommander HQ section. All paid subscriptions on the HQ are handled by Stripe, so every transaction is secure and your personal information is protected.

This subscription model is primarily in place to help cover the costs of running the HQ while also providing a sustainable path forward for continued development of LANCommander itself. This entire project is developed and maintained by essentially one person with some help from the community here and there. While this is a labor of love, there are real costs associated with running the infrastructure for the HQ and continued development of LANCommander. The subscription model is designed to be as accessible as possible while also providing a way for users to support the project if they find value in it.

As such, this will probably mean that the Patreon page will be going away in the near future. For existing patrons, it is recommended to switch over to the new subscription model on the HQ as it provides a more direct way to support the project and access the benefits of the HQ today.

Contributions

This release includes contributions from the following community members:

@aaronpowell | PR #395: Avalonia Launcher A substantial 42-commit, 6,000-line PR that bootstrapped the cross-platform Avalonia launcher. Aaron built out the core application structure, service wiring, and async initialization, and then built out the UI with filtered depot browsing and grid layout, a download queue, install/uninstall flows, a settings page, PDF manual viewer, game action bars, and a full CI pipeline for Windows, Linux, and macOS builds. A lot of the foundation that the current launcher sits on came from this PR.

@akifreak | PR #398: Fix Game Archive Upload Discovered that archive uploads through the web UI were silently broken after upgrading to v2.0.2, traced the problem through the JavaScript bundle, and submitted 11 targeted fixes rather than a single bug report. The fixes covered ES module loading, null-guards on DOM elements, a FileMode.Append seek conflict, incorrect archive ID passing, and error propagation throughout the upload pipeline. The uploading process should feel much more stable now!

@akifreak | PR #403: Fix Beacon Discovery Back for another round of contributions, akifreak tracked down and fixed an issue where server discovery wasn't working reliably. In some cases the launcher was actually finding servers on the network but wasn't surfacing them in the UI. The fix spans the full discovery pipeline; making the probe socket more resilient to bad data, ensuring beacon responses actually reach the client, and refreshing the server list as soon as a new server is found.

@MasterMNB | PR #400: Avalonia Launcher Back Button Improved the visibility and styling of the back button in the GameDetailView, which was previously hard to distinguish from the background. It's a small change, but it's a real usability improvement that makes navigation feel more intentional.

Changelog

Launcher

  • Added: Brand new launcher built on Avalonia
  • Added: Screenshots and videos in game detail carousel with lightbox viewer
  • Added: Redesigned depot with categorization carousels and advanced filtering
  • Added: Tools support
  • Added: Download transfer speed graph
  • Added: OS notifications upon game installation completion
  • Added: Discord Rich Presence integration
  • Added: SSO/OIDC external authentication provider support
  • Added: Built-in PDF viewer for game manuals
  • Added: Splash screen on startup
  • Added: Verify files option in game dropdown
  • Added: Markdown rendering for game descriptions
  • Added: Big screen mode for fullscreen TV/controller use
  • Added: Gamepad navigation across library, carousels, detail views, and overlays
  • Added: Full set of CLI verbs (Install, Uninstall, Run, Sync, Import, Export, Upload, Login, Logout, ChangeAlias)
  • Added: Console logging for headless CLI execution
  • Changed: Refactored game/redistributable/tool install process to two-layer queue system
  • Changed: Imports should be faster and execute in the background without causing major UI hiccups
  • Changed: Improved memory management with proper disposal of HTTP clients, RPC clients, and cancellation tokens
  • Changed: Redistributable files are now tracked and cleaned up on uninstall
  • Changed: Redistributables without detect install scripts now always run the install script
  • Fixed: Installing games that already have files on disk will show the verification process during install
  • Fixed: Linux path variable expansion now preserves root prefix
  • Fixed: Script writing for all script types
  • Removed: Standalone CLI project (functionality merged into Avalonia launcher)

Server

  • Added: LANCommander HQ metadata provider support
  • Added: Support for external IDs beyond IGDB
  • Added: New launcher-inspired "Preview" tool for managing art
  • Added: Context-aware script editor with code completions, validation, and PowerShell type definitions
  • Added: Redistributable options with schema editor and display names
  • Added: RunWrapper script type with full execution support
  • Added: Package versioning for archives
  • Added: Bulk upload for screenshots and videos
  • Added: Multiple select support in media grabber
  • Added: Animated cover support (APNG auto-conversion to video)
  • Added: Steam screenshot downloads
  • Added: YouTube video support in media grabber
  • Added: Media streaming endpoint
  • Added: ffmpeg/yt-dlp availability checks and auto-install in Docker
  • Added: Manual key assignment dialog and reworked key allocation
  • Added: Set-GameDetails cmdlet for package scripts
  • Added: Variable picker dialog for action editor and save path editor
  • Added: Packaging dialog on archive editor
  • Added: RunWrapper script type available for redistributable scripts
  • Added: Background uploading with sidebar progress indicator
  • Added: HQ login step in first time setup wizard
  • Added: Button to download current log file
  • Changed: Moved "Package" button from edit pages to archive editor
  • Changed: Updated PowerShell code snippets
  • Changed: Improved file manager with faster directory enumeration, toggleable columns, and cross-platform directory tree
  • Fixed: Media uploads should now behave as expected
  • Fixed: Game archive uploads in web UI
  • Fixed: Orphaned files tool
  • Fixed: Redistributable archive downloads
  • Fixed: Script working directory for games
  • Fixed: SteamCMD login when SteamGuard is enabled
  • Fixed: Import file cleanup after completion
  • Fixed: Package scripts are no longer exposed through API responses
  • Fixed: Script helper now correctly maps Package and RunWrapper script filenames
  • Fixed: Redistributable and tool importing
  • Fixed: Media settings page failing to render
  • Fixed: HQ metadata lookups
  • Fixed: Log viewer under Settings / Logs (#393)
  • Fixed: User approval menu item (#405)
  • Fixed: Archive processing for "Use Local File"
  • Fixed: "Use Local File" disabled button
  • Fixed: Standalone expansions/mods shown in nested game lists (#284)
  • Fixed: Missing nested game data

Packager

  • Added: New standalone application for building LCX package files
  • Added: CI workflow for building and releasing the packager

Legacy Launcher

  • Added: Complete native Win32 launcher targeting Windows 9x
  • Added: Library and depot browsing with cover art grid
  • Added: Game detail view with metadata display
  • Added: Download queue with SQLite-backed local database
  • Added: Settings screen with YAML configuration
  • Added: Custom themed window chrome
  • Added: Unicode support for Win9x targets
  • Added: CI workflow for automated builds

SDK

  • Added: C++ SDK (LANCommander.SDK.Cpp) with C++14 compatibility
  • Added: WinINet and libcurl HTTP backend implementations
  • Added: 16 API clients covering full LANCommander API surface
  • Added: RunWrapper script execution for redistributables with process lifecycle management
  • Added: Logging in save packaging and upload pipeline
  • Changed: Game list filtering now shows only standalone mods/expansions and main games
  • Changed: Multi-target framework support
  • Changed: Source-generated cmdlet registration via new CmdletRegistrationGenerator
  • Fixed: Discovery probe socket resilience against malformed data
  • Fixed: Broadcast send reliability in DiscoveryProbe
  • Fixed: Beacon responses now forwarded to BeaconClient event
  • Fixed: Save client now checks for newer server saves before uploading
  • Fixed: Save path normalization to use forward slashes before regex matching (#266)

Infrastructure

  • Upgraded to .NET 10
  • Added ARM64 build support
  • Removed legacy Photino launcher from CI
  • Added nightly builds for Avalonia launcher

Patch Updates

2.1.1

View 2.1.1 patch notes

New Features

User Registration in Launcher

User registration has been added back into the launcher's login screen. This was a feature from the old launcher that was missed in the port to Avalonia.

Game Update Support

The Avalonia launcher's update functionality was only partially-implemented. This has been completed and moved over to the new installation workflow system. Additionally, updates for games can be ignored by clicking the dropdown next to the "Update" button and selecting "Play without updating".

Improvements

  • Game titles are now dimmed in the library when not installed, making it easier to see what's ready to play at a glance
  • The games list view and depot now display a helpful message when there are no items, instead of showing a blank screen
  • The launcher now downloads media on demand if it doesn't exist locally, and gracefully falls back if LibVLC fails to load

Bug Fixes

  • Fixed bundling of LibVLC on macOS and Windows
  • Fixed the display of the empty library view
  • Fixed game updating

Loading release downloads…

2.1.2

View 2.1.2 patch notes

New Features

Redistributable Update Checking

The launcher now checks if installed redistributables are up to date and will re-run them when updates are available on the server. This ensures games always have the correct runtime dependencies.

Drag and Drop File Import in Script Editor

The script editor now supports drag and drop for .ps1, .reg, .ini, and other text files. PowerShell scripts replace the editor contents, .reg files are automatically converted to PowerShell commands, and other text files are inserted as escaped strings.

Manifest and Script Refresh

When a game has no update available, the launcher will now refresh the manifest and scripts on disk. This ensures local files stay in sync with server-side changes that don't trigger a full update.

Improvements

  • Entire row is now clickable in the compact library list view
  • Items per page selection is now persisted in data tables
  • Improved process termination handling with fallback for Windows and absolute pathing for kill on Linux/macOS

Bug Fixes

  • Fixed padding in the metadata lookup dialog
  • Fixed HQ token retrieval on the first-time setup and integrations settings pages
  • Fixed local server engine tracking (contributed by @Mavyre)

Loading release downloads…

2.1.3

View 2.1.3 patch notes

New Features

Allow Registration Setting

Servers now have an "Allow Registration" setting to control whether new users can register accounts. Resolves #408.

Server Autostop Delay

Server lifecycle management has been moved to a dedicated ServerManager, and servers can now be configured with an autostop delay so they shut down after a period of inactivity. Autostart/autostop for servers should be much more reliable now.

Close to System Tray

The launcher can now be closed to the system tray instead of exiting, keeping it running in the background.

Image Optimization Tool

A new server-side tool optimizes stored images to reduce disk usage and increase performance when displayed in the launcher.

Play Session Rework

Play session tracking has been reworked to be more reliable. Play sessions are now tracked in realtime with the launcher sending keepalives to the server. If a session is detected as stale (e.g. from a crash or improper shutdown), it will be automatically closed and the playtime will be calculated up to that point. This should result in more accurate playtime tracking and prevent issues with sessions that never end.

If, for some reason, a session is improperly created with a suspiciously long duration, a new server-side tool can be used to clean up these sessions and recalculate playtime under Settings > Tools > Long Play Session.

Working Directory from PCGamingWiki

Save paths pulled from PCGamingWiki will now attempt to set a working directory automatically.

Breaking Changes

MySQL/PostgreSQL Database Engine Reinitialization

Previous versions of LANCommander had major issues with MySQL/MariaDB and PostgreSQL database engines that would end up softlocking the server when certain operations were performed. This was caused by connections to the database being disposed of prematurely, causing the data access layer to throw exceptions and fail to recover. This has largely been resolved and should result in a much more stable experience using these other database engines.

However, due to support for MySQL/PostgreSQL falling into neglect, many of the database migrations had become out of sync and would fail to apply correctly. To resolve this, all MySQL/PostgreSQL migrations have been regenerated. This will require deployments using MySQL/PostgreSQL to recreate the database. Normally this type of change would be reserved for a major release, but given the state of the MySQL/PostgreSQL support being completely broken, this change is necessary to provide a stable experience for users of these database engines. If you are using MySQL/PostgreSQL, please make sure to back up your data and be prepared to recreate your database when updating to this version.

Improvements

  • Performance optimizations for game details were made in the launcher, fixing potentially high CPU usage and RAM allocation with games that have videos or screenshots in the media carousel.
  • Video players in the media carousel now only play when in view and pause when scrolled out of view or when the window is inactive.
  • Updated Notify.NET and fixed taskbar progress reporting
  • Localized remaining time and install progress status
  • Adjusted styling in the game description
  • Removed dead code and fixed video/screenshot loading that could block the UI
  • yt-dlp is now downloaded as a self-contained build removing the dependency on Python for Linux systems.

Bug Fixes

  • Fixed updating one-to-many relationships on the server. This should resolve various issues with redistributables, tags, genres, and platforms not saving correctly.
  • Fixed an extra gap on the compact list scrollbar in the launcher
  • Fixed the missing "Starting" text in the play button when a game is launching
  • Fixed an exception when adding a game without a SteamGridDB API key configured
  • Fixed an error thrown during first-time setup when no storage locations exist
  • Regenerated MySQL/MariaDB and PostgreSQL migrations
  • Fixed an issue where the identity database context could be disposed of prematurely, causing various issues with user management and authentication when using other database engines
  • Improved server process termination on Linux by directly calling kill via libc

Loading release downloads…

2.1.4

View 2.1.4 patch notes

New Features

External Auth Provider Enhancements

External authentication providers received a major overhaul. The provider editor now supports auto-discovery of scopes and claim mappings, and claims can be mapped to roles so users are automatically assigned the correct roles when logging in over external auth. Users logging in through an external provider are also auto-provisioned.

Auto Redirect to External Provider

A new "Auto Redirect to Provider" setting switches authentication challenges to redirect straight to your external auth provider instead of showing the password login form. If more than one external provider is configured, a minimal provider selection page is shown instead.

Repack Non-Streamable ZIP Archives

A new server-side tool in the archive editor can now be used to repack archives that were not created in a streamable format. More information about why this is an issue can be found under the Archives documentation page.

WebP Media Support

Media uploads now support the WebP image format.

Redistributable Uninstall Scripts

Redistributables can now define an uninstall script, allowing their runtime dependencies to be cleanly removed.

Single Instance Launcher

The launcher now ensures only a single instance can run at a time, preventing conflicts from accidentally opening multiple copies.

Improvements

  • Local files selected for archive upload can now be moved instead of copied, saving disk space.
  • Reworked tool installation and action resolution.
  • Install notifications now only display once the entire install chain is complete.
  • The "Last Played" text now updates every minute and has been localized.
  • Added more logging to archive extraction and made the number of install retry attempts configurable.
  • A message is now shown indicating the server needs to be restarted after changes are made to authentication providers.
  • Game started/stopped server scripts now run as fire and forget and will not prevent servers from starting.
  • Adjusted styling for buttons and dropdowns in the launcher.
  • Updated SharpCompress to 0.49.1.
  • macOS builds now generate a proper .app bundle, and Linux builds now produce an AppImage bundled into the normal workflows.

Bug Fixes

  • Fixed some situations where saves were not being uploaded/downloaded.
  • Fixed an error in the launcher when tool actions were not defined.
  • Fixed server game actions not loading correctly from the server.
  • Fixed non-standalone addons appearing in the library compact list.
  • HQ authentication errors are no longer swallowed.
  • Fixed user promotion / role assignment.
  • Fixed application icons.

Loading release downloads…

2.1.5

View 2.1.5 patch notes

New Features

Auto Redirect to External Provider in the Launcher

The launcher now honors the server's "Auto Redirect to Provider" setting. When enabled, the login screen redirects straight to your external authentication provider, and the standard authentication fields and buttons are hidden based on the server's authentication settings.

Exit Button in Profile Dropdown

An "Exit" button is now available under the profile dropdown, making it easier to fully quit the launcher.

Improvements

  • Consolidated the game flyout into a unified context menu for more consistent actions across the library views.
  • Tools that have no archive are now hidden from the install overlay.
  • Automated testing for various aspects of the server UI (thanks aaronpowell!)

Bug Fixes

  • Fixed removing games from user libraries using the launcher.
  • Fixed tool installation.
  • Fixed the clickability of games in the compact library list.
  • Fixed updating of roles.
  • Fixed saving of authentication settings.
  • Fixed admin user creation in first time setup.

Loading release downloads…

2.1.6

View 2.1.6 patch notes

New Features

User and Role Limits

Roles and individual users can now be assigned limits for save storage, total user storage, and download speed. This gives admins finer control over resource usage on shared servers. Resolves #85, #84, and #100.

PowerShell Modules

A new "Scripting" section has been added to the server UI where PowerShell modules can be defined. These act as a library of reusable functions that can be called from any script. Modules are automatically synced to the launcher and imported when scripts are executed.

Per-Game Tool Tracking

Tools are now tracked on a per-game basis. Tools can be marked to "Always Install", and any tools installed for a game are automatically uninstalled when that game is uninstalled.

Admin User Creation Dialog

Admins can now create new users directly from the server with a new user creation dialog. Fixes #419.

Database Connection Editor

The connection string input used in first-time setup and server settings has been refactored into a full database connection component, making it easier to configure database connections. Fixes #256.

Improvements

  • Added "Select All" and "Load More" buttons to the media grabber. Fixes #417.
  • Metadata lookups now preserve existing values instead of overwriting them. Fixes #420.
  • The Library navigation and library/depot switcher are now hidden in both the web UI and launcher when user libraries are disabled.
  • Action ServerHost values now default to the LANCommander server address.

Bug Fixes

  • Fixed the display of UTC times.
  • Fixed creation of entities with many-to-many relationships. Ref #414.
  • Fixed reconciliation of library games based on whether user libraries are enabled or disabled. Ref #423.
  • The profile cache is now invalidated when logging out. Fixes #422.

Loading release downloads…

2.1.7

View 2.1.7 patch notes

Improvements

  • The launcher now loads your library from a new /Library/Games endpoint and displays it immediately, with images rendered directly from the server. The full import still runs in the background, so offline functionality is preserved while the library becomes usable much sooner.
  • Depot images are now streamed from a remote image cache instead of being downloaded to disk, reducing UI jank. Fixes #427.
  • Game installs and uninstalls are now more reliable: installs run in a consistent order (base game, addons, tools, then redistributables), tools are removed before their game is uninstalled, and the game action bar refreshes after a tool is installed. Ref #414.
  • The modify menu now lists installed addons.
  • Save upload failures are now logged instead of failing silently.
  • A running game process is now terminated as a fallback when no spawned window is detected.
  • View data is now loaded before transitioning, smoothing navigation.

Bug Fixes

  • Save path changes on a game now take effect immediately instead of requiring a server restart. Games are correctly updated when a save path is added, updated, or deleted.
  • Fixed installation of games and addons that have no dependent games.
  • Fixed importing legacy LCX files that have no save paths defined. Fixes #426.
  • Fixed persisted page sizes in data tables.

Loading release downloads…

2.1.8

View 2.1.8 patch notes

New Features

Runtime Platform Targeting

Actions, scripts, and save paths can now be scoped to a specific runtime platform (Windows, Linux, or macOS). This makes it possible to define platform-specific launch actions, install/uninstall scripts, and save paths on a single game without them conflicting across operating systems. A new Get-Runtime PowerShell cmdlet is also available for detecting the current platform from within scripts.

Improvements

  • The offline mode button has been moved to the titlebar for easier access.
  • The game description editor in the server UI is now a full Markdown editor.
  • Page functionality has been improved with better menus for adding and deleting pages, and slugs are now generated in PascalCase.
  • Client/server version mismatches are now detected and logged, making it easier to diagnose connection issues caused by version drift.
  • Data table sort order is now persisted.

Bug Fixes

  • Images now load from the local cache when the launcher is in offline mode.
  • Fixed enumeration of script snippets.
  • Fixed PowerShell module loading in the launcher. On Windows the execution policy is set to bypass, and module load failures are now trapped and reported as a warning per module instead of failing the entire script.

Loading release downloads…

Downloads

Loading release downloads…

View 2.1.7 downloads

Loading release downloads…

View 2.1.6 downloads

Loading release downloads…

View 2.1.5 downloads

Loading release downloads…

View 2.1.4 downloads

Loading release downloads…

View 2.1.3 downloads

Loading release downloads…

View 2.1.2 downloads

Loading release downloads…

View 2.1.1 downloads

Loading release downloads…

View 2.1.0 downloads

Loading release downloads…

Contributors

Loading contributors…