Linux Modding Environment Setup

Although Satisfactory does not have official Linux support, and Unreal Engine typically prioritizes Windows for development, significant community efforts have resulted in a mostly stable Linux development environment for Satisfactory modding.

Are you a Windows user? These directions cover setting up the modding environment on a Linux machine. If you are on Windows, follow the standard modding setup guide.

Word of Caution

As Linux systems often have unique setups, expect to have to face some undocumented complications and join the Discord to seek setup assistance.

These directions are not intended to fully replace the normal Getting Started guide - we highly encourage you to read each section’s corresponding Windows setup step as well to get a better understanding of how the modding environment works, and troubleshoot issues that may arise during Linux setup as well.

Sections will have blocks like this one pointing out the corresponding Windows setup direction step(s), or directing you to another point on the page. Sometimes reading the corresponding Windows step is required to get information/links to proceed, so don’t skip them.

Prerequisites

Before we can begin, we must install the following packages with our distro’s package manager. On Debian-based systems such as Ubuntu, this would be apt install, or dnf install on Fedora.

  • git (For version control)

  • msitools (For msiextract, used by vsdownload.py of msvc-wine)

  • tar and zstd (For decompressing the engine archive)

  • dos2unix (For the Wwise patches, used by the SML project)

  • wine (Needed to build Alpakit Win64 targets and open the Wwise Authoring application)

For example, on Fedora this would be:

dnf install git msitools tar zstd dos2unix wine

Engine Setup

Now we can begin setting up our custom version of Unreal Engine.

Download MSVC

First, we must install MSVC using msvc-wine.

Copy and paste this into your terminal, but be sure to first swap <msvc_install_dir> to the directory where you want to install MSVC, then run it. This will automatically clone the msvc-wine repository and use it to download the correct version of MSVC for the editor to use.

git clone --branch ue-patches https://github.com/mircearoata/msvc-wine.git

cd msvc-wine

./vsdownload.py --accept-license --dest "<msvc_install_dir>" --msvc-version "17.8" --sdk-version "10.0.22621" --channel "release.ltsc.17.8"

./install.sh "<msvc_install_dir>"

Next, you’ll need to edit either /etc/environment or ~/.profile with a tool such as Neovim, to set the UE_WINE_MSVC environment variable.

For example: UE_WINE_MSVC="<msvc_install_dir>" (make sure to surround the directory in quotes)

Then you may need to log out and back in, or restart your PC for the change to take effect.

Corresponding Windows step: Visual Studio

Download the engine

First, follow the standard setup directions to get access to the custom engine.

Once you have access, you can install the engine in one of two ways: Either build it from source, or download an already built archive from our GitHub releases.

From Source

A source build can take at least 2-3 hours depending on your hardware and will consume a boatload of disk space.

The tag from the release mentioned here will tell you what to switch to after you clone the repository.

Download an archive

Download each of the UnrealEngine-CSS-Editor-Linux.tar.zst.* files.

You do NOT have to download the UnrealEngine-CSS-Editor-Linux-Debug.tar.zst.* files. Only the non-debug ones.

Once those are done downloading, create a folder called UnrealEngineCSS or similar, and move the archives into it. Then run the command below to extract them:

cat UnrealEngine-CSS-Editor-Linux.tar.zst.* | zstd -d | tar -xf -

Register the engine

Register the engine to your system by running this command, replacing <ue_dir> with the path to your engine installation:

<ue_dir>/Engine/Binaries/Linux/UnrealVersionSelector -register -unattended

Project Setup

The Starter Project is a custom Unreal Engine project we distribute that includes modding tools and game headers/stubs.

Starter Project Download

Clone or download the starter project.

wwise-cli Assisted Wwise Installation

Download the latest build of wwise-cli from https://github.com/mircearoata/wwise-cli/releases/latest.

Run this command in your terminal to download the required version of Wwise:

./wwise-cli download --sdk-version "2023.1.14.8770" --filter Packages=SDK --filter DeploymentPlatforms=Windows_vc160 --filter DeploymentPlatforms=Windows_vc170 --filter DeploymentPlatforms=Linux --filter DeploymentPlatforms= --filter Packages=Authoring

When that’s done, run this command to integrate it into the starter project, replacing <project_dir> with the path to your project:

Note the intentional difference between the sdk and integration versions.

./wwise-cli integrate-ue --integration-version "2023.1.14.3555" --project "/FactoryGame.uproject"

Wwise Project Generation

Next, we need to open the Wwise authoring application to generate the Wwise project.

Run this command to open the Wwise Authoring application.

wine ~/.cache/wwise-cli/wwise/2023.1.14.8770/Authoring/x64/Release/bin/Wwise.exe

In the bottom left, click New. Set the project name to SatisfactoryModLoader_WwiseProject, and the location to the root of your project folder.

Create Wwise Project

If you get a pop-up saying No valid license key found. Wwise will run in Trial mode., you can ignore it and click Close in the bottom right.

Sound Bank Generation

Find the "Project Explorer" tab in the Wwise editor (left sidebar) and select the SoundBanks sub-tab. Right-click on the top level folder and click Generate Soundbank(s) for all platforms.

Generate Wwise Soundbanks

A pop-up should open stating "Completed with message(s)". Click the Close button in the bottom right.

Corresponding Windows step: Generate Sound Banks

IDE setup

Now we must set up our IDE for building the starter project, and for developing with C++. Since Visual Studio isn’t available for Linux, you can instead use Rider or VS Code.

Rider

There are two methods to open the project in Rider. Uproject is preferred, but Solution + Makefile is also available if you need it for a specific reason.

Uproject

Due to a bug with Rider, you’ll need to install a plugin in order to see the Mods folder when opening the Uproject file. Open the Settings window and find the "Plugins" page, then search the marketplace for Unreal Project Model Mods Fix by Archengius and install it. Restart the IDE if prompted.

Makefile

The other method is to generate a Visual Studio Solution and Makefile to build the project.

Run the following commands, replacing <ue_dir> and <project_dir> with the respective paths.

To generate the VS Solution:

<ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -2022

To create a Makefile:

<ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -Makefile

Open the FactoryGame.sln file in Rider. In the Rider settings, under Toolset and Build, make sure .NET CLI executable path is set to <ue_dir>/Engine/Binaries/ThirdParty/DotNet/8.0.300/linux/dotnet

Then to build it, run make FactoryEditor or any of the other targets.

VS Code

To generate a code-workspace file, run the following command, replacing <ue_dir> and <project_dir> with the respective paths.

<ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -VSCode

Open the .code-workspace file, not the folder. In the workspace settings, add <ue_dir>/Engine/Binaries/ThirdParty/DotNet/8.0.300/linux to omnisharp.dotNetCliPaths

Other

For other IDEs (not tested by us), you can check the engine UBT GenerateProjectFilesMode class implementation to discover command line options used for various other IDEs.

Compile the project

  • For Rider, select Development, Editor, Linux, and then click the build button in the top right.

  • For VS Code, press Ctrl + Shift + P, then select Run Task, then FactoryEditor Linux Development Build

Then wait for the build to complete.

Corresponding Windows step: Project Compilation

Open the editor

If everything above was done correctly, you may now open the FactoryGame.uproject file in your Starter Project to launch the Unreal Editor.

Assign Generated Sound Banks Paths

You should get a pop-up saying "GeneratedSoundBanks folder does not seem to be set" once you get into the editor. This is expected because the wwise-cli does not create a project automatically.

Satisfactory Mod Manager

Satisfactory Mod Manager is used to install other published mods for testing purposes. Although not required to proceed, we advise installing now to be prepared for future work. We provide native Linux builds as documented in the SMM installation guide.

Next Steps

You should now be able to proceed with the rest of the Getting Started Guide.