SkillAgentSearch skills...

Luxtorpeda

Steam Play compatibility tool to run games using native Linux engines

Install / Use

/learn @luxtorpeda-dev/Luxtorpeda
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Luxtorpeda Dev

Luxtorpeda project Discord Downloads Build Action GitHub contributors GitHub Sponsors

Steam Play compatibility tool to run games using native Linux engines

screenshot-0

Pre-requisites

The compatibility tool will work on any modern 64-bit Linux distribution. All packaged games are compiled for Steam Runtime Sniper environment and any additional dependencies are provided in the download.

Using Luxtorpeda with Steam native runtime may or may not work, but is not supported.

Supported titles

Just click "Play" and Luxtorpeda will download and install the package for you. You need to select Luxtorpeda as a compatibility tool first, of course.

The supported titles are mostly open source engines, like UZDoom, but also include closed-source executables, like for UT99, and recently Windows mod support via Proton.

When you launch a game that supports multiple engines, a prompt will appear asking for the engine that should be downloaded and launched. Once the engine has been picked, a second prompt will ask if the engine should become the default. Launches after this if "Yes" is picked in this dialog will not ask for the engine again. A file can be deleted to restore the engine prompt for a particular game. The file will have the following format: ~/.config/luxtorpeda/<app_id>/default_engine_choice.txt

To go to the main website, go to https://luxtorpeda.org

To see a list of supported titles, go to https://luxtorpeda.org/packages

Proton Mod Support

Alongside the native engines that have been supported for a while, there are also Windows game mods available as well via Proton, with the same ease of use as the native engines, where Luxtorpeda will download and install the mod for you, and setup the launch options. The pieces like changing the WINEDLLOVERRIDES, putting the mod in the correct spots, etc, is all done for you, and then Luxtorpeda will launch the game with Proton for you.

This also lets you pick and choose the Proton version to use in the luxtorpeda client.

Because of the automatic downloads, the mods usually need to come from GitHub, or another public CDN that does not require a login or manual clicking, so stuff hosted on pcgamingwiki or nexus would not be doable.

You can see all of the ones that use Proton by searching for "Engine runs via Proton on the packages list". Some examples include Alpine Faction for Red Faction, various widescreen patches for many games, and the Juiced Patch for Saints Row 2.

<img width="1010" height="581" alt="image" src="https://github.com/user-attachments/assets/b661b3b7-27bf-4787-8b0b-9ce44c82b20f" /> <img width="1010" height="581" alt="image" src="https://github.com/user-attachments/assets/1ed5e8d3-72fb-452c-9fbd-fe24f60080c6" />

Getting Help

Want a specific game?

Check issues to see if we are working on it.

You can also make a package request by creating a new issue

You can also create a package yourself

Installation (using tarball)

The packages.json for the supported packages and getting the latest versions will get updated on each launch of luxtorpeda, without any input needed from the user. New releases of the luxtorpeda client will need to be downloaded manually, but a new release of the client is not required when a package is created or updated, unless that package depends on a new feature (which will be noted in the release notes).

  1. Close Steam.

  2. Download latest version at https://github.com/luxtorpeda-dev/luxtorpeda/releases

  3. Move and unpack tarball to compatibilitytools.d directory (create one if it does not exist):

    $ cd ~/.local/share/Steam/compatibilitytools.d/ || cd ~/.steam/root/compatibilitytools.d/
    $ tar xJf luxtorpeda-<version-number>.tar.xz
    
  4. Start Steam.

  5. In game properties window select "Force the use of a specific Steam Play compatibility tool" and select "Luxtorpeda".

Installation (using GUI)

  1. Download ProtonUp-Qt from here: https://davidotek.github.io/protonup-qt/#download
  2. Run ProtonUp-Qt and select Steam
  3. Click Add Version, select Luxtorpeda and press Install
  4. Restart Steam
  5. In Steam game properties window select "Force the use of a specific Steam Play compatibility tool" and select "Luxtorpeda". <img height="220px" src="https://user-images.githubusercontent.com/54072917/139227152-0536ac68-0d4b-44bf-be88-42105f5c3dd6.png" />

Installation (debug build from source)

Prerequisites

You will need Rust, Cargo, OpenSSL, Godot4 and export templates.

1. Install required software

Official method:

  • Rust and Cargo: You can install Rust and Cargo using rustup.
  • Godot 4: Download and install Godot 4 and export templates from their official webpage.
  • OpenSSL: Install OpenSSL from your distribution's package manager.

Terminal installation (for those who prefer the terminal):

  • Debian, Ubuntu, and variants: Open a terminal and run:

    $ sudo apt install cargo libssl-dev godot
    
  • Fedora: Use the following command:

    $ sudo dnf install openssl-devel rust cargo godot
    
  • Arch Linux: You know what to do:

    $ sudo pacman -S openssl rust godot
    

2. Get export templates for Godot

  • You can either open Godot, go to settings and install the export templates from there.

  • If you prefer to use the terminal these commands should work:

    $ mkdir -p ~/.local/share/godot/templates/4.2.2.stable/
    $ wget https://github.com/godotengine/godot/releases/download/4.2.2-stable/Godot_v4.2.2-stable_export_templates.tpz
    $ unzip -j Godot_v4.2.2-stable_export_templates.tpz -d ~/.local/share/godot/templates/4.2.2.stable/
    

3. Install and lauch the debug build

  1. Close Steam.

  2. Clone the repository, then use makefile to trigger cargo build and install:

    $ git clone https://github.com/luxtorpeda-dev/luxtorpeda.git
    $ cd luxtorpeda
    $ make user-install GODOT=godot-path-here
    
  3. Start Steam.

  4. In game properties window select "Force the use of a specific Steam Play compatibility tool" and select "Luxtorpeda (dev)".

Configuration

A configuration json file named config.json will be located in the ~/.config/luxtorpeda/config.json if the application has been run at least once. The defaults can be seen at https://github.com/luxtorpeda-dev/luxtorpeda/blob/master/src/config.rs. It has the following parameters:

  • host_url - This is used to determine where the packages.json file is located remotely, for use in automatic updates of this file.
  • should_do_update - If this parameter is set to true, then the packages.json file will be updated automatically.
  • disable_default_confirm - Disables default engine confirmation dialog. Defaults to false. This can be done globally in the config.json by setting disable_default_confirm to true, or setting LUX_DISABLE_DEFAULT_CONFIRM=1 %command% in the launch options of a particular game. Setting LUX_DISABLE_DEFAULT_CONFIRM=0 %command% will enable the confirmation if the config variable is set to disabled for that particular game.
  • enable_steam_cloud - If this parameter is set to true, each engine & game with steam cloud support will enable it. This defaults to false. This can also be done by setting LUX_STEAM_CLOUD=1 %command% in the launch options of a particular game.
  • hash_check_install - If this parameter is set to true, hash checking will be enabled for each file the engine needs to run, so that if a file has already been extracted/installed, it won't do it again until there is an update to one of the engine files. This is defaulted to false.
  • close_client_on_launch - If this parameter is set to true, the client will close as soon as the game launches, instead of waiting for the engine to complete like normal behavior. This is defaulted to false.
  • steam_app_id_install_wait_in_seconds - How long to wait for the install to complete when installing game dependencies. Defaults to 600.
  • additional_remote_packages - An array of full URLs of additional JSON files to retrieve package information from. If this is provided, the data will be merged with the official package metadata, only being active for new games, and only looking at the games and engines keys.

Logs will be written to file if LUX_WRITE_LOGGING=1 is set. The log file will be located at ~/.local/state/luxtorpeda/luxtorpeda.log.

User Packages Override

A ~/.config/luxtorpeda/user-packages.json file can be created, which will allow custom package information without having to change the normal packages.json file. This file should have the same format as packages.json, but can have either new games or overrides to existing games. See https://githu

Related Skills

View on GitHub
GitHub Stars951
CategoryDevelopment
Updated1d ago
Forks27

Languages

Rust

Security Score

100/100

Audited on Mar 31, 2026

No findings