From 96ddfe42e6f4b9e0694c8fab159fe53ff2e4a143 Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Thu, 13 Nov 2025 11:40:43 -0500 Subject: [PATCH 01/10] Add page for setting up the modding environment on Linux --- modules/ROOT/nav.adoc | 1 + .../BeginnersGuide/LinuxSetup.adoc | 159 ++++++++++++++++++ .../BeginnersGuide/dependencies.adoc | 38 ++--- 3 files changed, 179 insertions(+), 19 deletions(-) create mode 100644 modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 762099401..828514649 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -24,6 +24,7 @@ ***** xref:Development/BeginnersGuide/StarterProject/StarterProjectViaClone.adoc[Option A: Git Clone] ***** xref:Development/BeginnersGuide/StarterProject/StarterProjectViaZip.adoc[Option B: Download Zip] *** xref:Development/BeginnersGuide/project_setup.adoc[Project Setup] + *** xref:Development/BeginnersGuide/LinuxSetup.adoc[Linux Setup] *** xref:Development/BeginnersGuide/StarterProjectStructure.adoc[Starter Project Structure] *** xref:Development/BeginnersGuide/SimpleMod/index.adoc[Create a Simple Mod] **** xref:Development/BeginnersGuide/SimpleMod/gameworldmodule.adoc[Plugin Setup and Game World Module] diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc new file mode 100644 index 000000000..2685bfdc3 --- /dev/null +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -0,0 +1,159 @@ += Setting Up The Modding Environment on Linux + +The Satisfactory Modding Environment is also available for you to develop if you are on a Linux-based platform. + +NOTE: This is for setting up the Modding Environment on Linux. If you are on Windows, please follow the guide xref:Development/BeginnersGuide/dependencies.adoc[here]. + +== 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) + +For example, on Fedora this would be + +[source,bash] +---- +dnf install git msitools tar zstd dos2unix`. +---- + +== 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 `` 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 if MSVC for the editor to use. + +[source,bash] +---- +git clone --branch ue-patches https://github.com/mircearoata/msvc-wine.git + +cd msvc-wine + +./vsdownload.py --accept-license --dest "" --msvc-version "17.4" --sdk-version "10.0.18362" --channel "release.ltsc.17.4" + +./install.sh "" +---- + +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=""` (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. + +=== Download the engine + +You can do this one of two ways: Either build the engine from source, or download an already built archive from the GitHub CI. + +==== From Source + +Clone the `5.3.2-CSS-linux` branch of https://github.com/satisfactorymodding/UnrealEngine (A source build can take at least 2-3 hours depending on your hardware) + +==== Download an archive + +Currently, Mircea is hosting build archives for us at https://files.mircearoata.me/UE_Linux/, but this will be changed over to the GitHub CI eventually. +Click on the latest commit link, and download each of the `UnrealEngine-CSS-Editor-Linux.tar.zst.*` files one at a time. + +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: + +[source,bash] +---- +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 `` with the path to your engine installation: + +[source,bash] +---- +/Engine/Binaries/Linux/UnrealVersionSelector -register -unattended +---- + +Then, edit the file `/Engine/Build/InstalledBuild.txt` to remove the `-linux` suffix from the version name if it is present. + +== Project Setup + +Clone or download the starter project from https://github.com/satisfactorymodding/SatisfactoryModLoader as normal. + +=== Wwise setup + +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: + +[source,bash] +---- +./wwise-cli download --sdk-version "2023.1.3.8471" --filter Packages=SDK --filter DeploymentPlatforms=Windows_vc160 --filter DeploymentPlatforms=Windows_vc170 --filter DeploymentPlatforms=Linux --filter DeploymentPlatforms= +---- + +When that's done, run this command to integrate it into the starter project, replacing `` with the path to your project: + +[source,bash] +---- +./wwise-cli integrate-ue --integration-version "2023.1.3.2970" --project "/FactoryGame.uproject" +---- + +=== 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 + +Currently, Rider doesn't show the `Mods` directory when opening the .uproject, so you must generate a Visual Studio Solution to open it. +However, you will also need a Makefile to build the project. +Run the following commands, replacing `` and `` with the respective paths. + +To generate the VS Solution: + +[source,bash] +---- +/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -2022 +---- + +To create a Makefile: + +[source,bash] +---- +/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/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 `/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet` + +==== VS Code + +To generate a code-workspace file, run the following command, replacing `` and `` with the respective paths. + +[source,bash] +---- +/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -VSCode +---- + +Open the `.code-workspace` file, **not** the folder. +In the workspace settings, add `/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux` to `omnisharp.dotNetCliPaths` + +=== Other + +For other IDEs (not tested by us), you can view this page for command line options to generate project files for various other IDEs: https://github.com/satisfactorymodding/UnrealEngine/blob/5.3.2-CSS/Engine/Source/Programs/UnrealBuildTool/Modes/GenerateProjectFilesMode.cs#L26-L38 + +== Compile the project + +* For Rider, open the Terminal and run `make FactoryEditor` +* For VS Code, press `Ctrl + Shift + P`, then select `Run Task`, then `FactoryEditor Linux Development Build` + +Then wait for the build to complete. + +== 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. \ No newline at end of file diff --git a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc index fc3445728..56c7aeef3 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc @@ -14,6 +14,8 @@ once everything is installed and built - 30+ GB is possible. Keep this in mind when deciding where put all your files - don't keep them on a drive with very little space left. +NOTE: This is for setting up the Modding Environment on Windows. If you are on Linux, please follow the guide xref:Development/BeginnersGuide/LinuxSetup.adoc[here]. + == Before you Begin Make sure you've read the starting information on the @@ -103,7 +105,7 @@ Satisfactory's dedicated servers typically run on Linux. Cross-compiling from Windows to Linux requires the compatible version of Unreal Engine specific CLang Toolchain to be installed prior to building for Linux Dedicated Servers. -The download link for these files can be found on the Unreal documentation page for +The download link for these files can be found on the Unreal documentation page for https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-requirements-for-unreal-engine?application_version=5.3#nativetoolchain[Cross-Compiling for Linux]. Currently, Satisfactory uses Unreal Engine 5.3.2 with custom changes provided by Coffee Stain Studios. @@ -179,10 +181,21 @@ It's imperative that you download the correct engine for the version of the game or you will have to repeat a large amount of the setup process again. ==== -include::/_includes/current-branch-header.adoc[] +If you are looking to develop mods for Update 1.0, +follow the link:https://docs.ficsit.app/satisfactory-modding/v3.10.0/index.html[SML v3.10.0] documentation instead. +However, we strongly suggest developing mods for Update 1.1 instead as it will be released to the stable branch on June 10th. +==== + +// When updating the below, remember to update StaterProjectViaClone.adoc, StarterProjectViaZip.adoc, and dependencies.adoc (engine) +==== +This is the *latest stable* version of the docs. +// This is the *development* version of the docs. + +// Stable (Release) and Experimental are currently both the same version - 1.0 Release. -Download this engine version: + -https://github.com/satisfactorymodding/UnrealEngine/releases/{engine-version} +You should download from the *latest engine release*, +which an be found at the top of this page: +https://github.com/satisfactorymodding/UnrealEngine/releases ==== Download the following files from the release linked above: @@ -256,9 +269,6 @@ and in order to develop mods, you'll need to install and integrate Wwise with your mod project, even if you do not plan to modify sounds. -[id="WwiseLauncher"] -=== Download the Audiokinetic Launcher - Visit https://www.audiokinetic.com/en/download/[Wwise] and click on the `+Download Audiokinetic Launcher+` button. Clicking the button will probably redirect you to a sign in page. @@ -266,9 +276,6 @@ Create an account if you don't have one yet, or sign in, to download and run the After the installer is complete it should open the launcher for you. -[id="WwiseVersion"] -=== Install the Wwise Version - In the launcher's left sidebar, select the topmost `Wwise` section (note: not the "Wwise Audio Lab" section). Under the "INSTALL A NEW VERSION" heading, @@ -277,8 +284,6 @@ Select `2023.1` from the "Major" dropdown. Select version `2023.1.3.8471` from the "Version" dropdown. Click `Install`. -image::BeginnersGuide/Wwise/wwise_version.png[Select Wwise version screenshot, title=Installing a new Wwise version. Wwise UI may differ slightly from this screenshot.] - [WARNING] ==== Watch out - most older versions of Wwise don't have support for Unreal Engine 5, which this project needs. @@ -308,19 +313,14 @@ Once presented with options on what to install, select: *** _Windows_ **** pass:[] Visual Studio 2019 **** pass:[] Visual Studio 2022 -**** pass:[] Game Core -If anything else is selected by default, do not uncheck them. They are required for Visual Studio to work. - -image::BeginnersGuide/Wwise/wwise_packages.png[Select Wwise packages screenshot, title=Selecting packages and deployment platforms. Wwise UI may differ slightly from this screenshot.] +If anything is selected by default, do not uncheck them. They are required for Visual Studio to work. Click `Next` (you may need to scroll down to see the button). You don't need to add any plugins, -so press `Select None` in the top right then `Install` (or `Modify` if you already have it installed) in the bottom left to begin the installation process. +so press `Select None` in the top right then `Install` in the bottom left to begin the installation process. Accept any User Account Control or Terms and Conditions prompts that appear along the way. -image::BeginnersGuide/Wwise/wwise_no_plugins.png[Do not select any Wwise plugins screenshot, title=Deselect all plugins. Wwise UI may differ slightly from this screenshot.] - == Satisfactory Mod Manager xref:index.adoc#_satisfactory_mod_manager_aka_smm[Satisfactory Mod Manager] From 018cd9059c1f56c0b0bb00ec49c30871c3ec14f7 Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Fri, 14 Nov 2025 09:59:25 -0500 Subject: [PATCH 02/10] Revert unintentional changes to dependencies.adoc --- .../BeginnersGuide/dependencies.adoc | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc index 56c7aeef3..3326439df 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc @@ -14,7 +14,8 @@ once everything is installed and built - 30+ GB is possible. Keep this in mind when deciding where put all your files - don't keep them on a drive with very little space left. -NOTE: This is for setting up the Modding Environment on Windows. If you are on Linux, please follow the guide xref:Development/BeginnersGuide/LinuxSetup.adoc[here]. +NOTE: This is for setting up the Modding Environment on Windows. +If you are on Linux, please follow the guide xref:Development/BeginnersGuide/LinuxSetup.adoc[here]. == Before you Begin @@ -105,7 +106,7 @@ Satisfactory's dedicated servers typically run on Linux. Cross-compiling from Windows to Linux requires the compatible version of Unreal Engine specific CLang Toolchain to be installed prior to building for Linux Dedicated Servers. -The download link for these files can be found on the Unreal documentation page for +The download link for these files can be found on the Unreal documentation page for https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-requirements-for-unreal-engine?application_version=5.3#nativetoolchain[Cross-Compiling for Linux]. Currently, Satisfactory uses Unreal Engine 5.3.2 with custom changes provided by Coffee Stain Studios. @@ -181,21 +182,10 @@ It's imperative that you download the correct engine for the version of the game or you will have to repeat a large amount of the setup process again. ==== -If you are looking to develop mods for Update 1.0, -follow the link:https://docs.ficsit.app/satisfactory-modding/v3.10.0/index.html[SML v3.10.0] documentation instead. -However, we strongly suggest developing mods for Update 1.1 instead as it will be released to the stable branch on June 10th. -==== +include::/_includes/current-branch-header.adoc[] -// When updating the below, remember to update StaterProjectViaClone.adoc, StarterProjectViaZip.adoc, and dependencies.adoc (engine) -==== -This is the *latest stable* version of the docs. -// This is the *development* version of the docs. - -// Stable (Release) and Experimental are currently both the same version - 1.0 Release. - -You should download from the *latest engine release*, -which an be found at the top of this page: -https://github.com/satisfactorymodding/UnrealEngine/releases +Download this engine version: + +https://github.com/satisfactorymodding/UnrealEngine/releases/{engine-version} ==== Download the following files from the release linked above: @@ -269,6 +259,9 @@ and in order to develop mods, you'll need to install and integrate Wwise with your mod project, even if you do not plan to modify sounds. +[id="WwiseLauncher"] +=== Download the Audiokinetic Launcher + Visit https://www.audiokinetic.com/en/download/[Wwise] and click on the `+Download Audiokinetic Launcher+` button. Clicking the button will probably redirect you to a sign in page. @@ -276,6 +269,9 @@ Create an account if you don't have one yet, or sign in, to download and run the After the installer is complete it should open the launcher for you. +[id="WwiseVersion"] +=== Install the Wwise Version + In the launcher's left sidebar, select the topmost `Wwise` section (note: not the "Wwise Audio Lab" section). Under the "INSTALL A NEW VERSION" heading, @@ -284,6 +280,8 @@ Select `2023.1` from the "Major" dropdown. Select version `2023.1.3.8471` from the "Version" dropdown. Click `Install`. +image::BeginnersGuide/Wwise/wwise_version.png[Select Wwise version screenshot, title=Installing a new Wwise version. Wwise UI may differ slightly from this screenshot.] + [WARNING] ==== Watch out - most older versions of Wwise don't have support for Unreal Engine 5, which this project needs. @@ -313,14 +311,19 @@ Once presented with options on what to install, select: *** _Windows_ **** pass:[] Visual Studio 2019 **** pass:[] Visual Studio 2022 +**** pass:[] Game Core -If anything is selected by default, do not uncheck them. They are required for Visual Studio to work. +If anything else is selected by default, do not uncheck them. They are required for Visual Studio to work. + +image::BeginnersGuide/Wwise/wwise_packages.png[Select Wwise packages screenshot, title=Selecting packages and deployment platforms. Wwise UI may differ slightly from this screenshot.] Click `Next` (you may need to scroll down to see the button). You don't need to add any plugins, -so press `Select None` in the top right then `Install` in the bottom left to begin the installation process. +so press `Select None` in the top right then `Install` (or `Modify` if you already have it installed) in the bottom left to begin the installation process. Accept any User Account Control or Terms and Conditions prompts that appear along the way. +image::BeginnersGuide/Wwise/wwise_no_plugins.png[Do not select any Wwise plugins screenshot, title=Deselect all plugins. Wwise UI may differ slightly from this screenshot.] + == Satisfactory Mod Manager xref:index.adoc#_satisfactory_mod_manager_aka_smm[Satisfactory Mod Manager] @@ -341,4 +344,4 @@ To install Satisfactory Mod Manager, follow the directions xref:ForUsers/Satisfa The last dependency to obtain is a copy of the modding Starter Project. Check out the xref:Development/BeginnersGuide/StarterProject/ObtainStarterProject.adoc[next section] -for directions on how to obtain it. +for directions on how to obtain it. \ No newline at end of file From b6eb71827b5404d21012c1f476187ea77aaf0569 Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Thu, 12 Mar 2026 10:24:11 -0400 Subject: [PATCH 03/10] Fix some typos in the Linux Setup guide --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index 2685bfdc3..cbd24463f 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -18,7 +18,7 @@ For example, on Fedora this would be [source,bash] ---- -dnf install git msitools tar zstd dos2unix`. +dnf install git msitools tar zstd dos2unix ---- == Engine Setup @@ -30,7 +30,7 @@ Now we can begin setting up our custom version of Unreal Engine. First, we must install MSVC using msvc-wine: Copy and paste this into your terminal, but be sure to first swap `` 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 if MSVC for the editor to use. +This will automatically clone the msvc-wine repository and use it to download the correct version of MSVC for the editor to use. [source,bash] ---- From 20505b7080bcc4bf7d47c25054366859ff29967b Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Thu, 30 Apr 2026 11:58:00 -0400 Subject: [PATCH 04/10] Update Rider Solution generation command --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index cbd24463f..39adc820f 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -118,7 +118,7 @@ To generate the VS Solution: [source,bash] ---- -/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -2022 +/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -Rider ---- To create a Makefile: From 0f16bc1a88523ffa2923f15dac946f6ea5344104 Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Thu, 30 Apr 2026 13:58:22 -0400 Subject: [PATCH 05/10] Add wine to the list of necessary packages to install --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index 39adc820f..33ade7768 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -13,12 +13,13 @@ On Debian-based systems such as Ubuntu, this would be `apt install`, or `dnf ins * `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) For example, on Fedora this would be [source,bash] ---- -dnf install git msitools tar zstd dos2unix +dnf install git msitools tar zstd dos2unix wine ---- == Engine Setup From 910745a600293bc20ef8b33cccbc218c5a57050a Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Thu, 30 Apr 2026 16:17:17 -0400 Subject: [PATCH 06/10] Revert Solution Generator command --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index 33ade7768..0ab047507 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -119,7 +119,7 @@ To generate the VS Solution: [source,bash] ---- -/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -Rider +/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/FactoryGame.uproject" -game -2022 ---- To create a Makefile: From 531b5526934748f0b7cc02bc25e4e4d2843f4ddd Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Fri, 29 May 2026 12:50:46 -0400 Subject: [PATCH 07/10] Update Linux guide for 1.2 --- .../BeginnersGuide/LinuxSetup.adoc | 46 +++++++++++++------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index 0ab047507..873ea67e3 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -39,7 +39,7 @@ git clone --branch ue-patches https://github.com/mircearoata/msvc-wine.git cd msvc-wine -./vsdownload.py --accept-license --dest "" --msvc-version "17.4" --sdk-version "10.0.18362" --channel "release.ltsc.17.4" +./vsdownload.py --accept-license --dest "" --msvc-version "17.8" --sdk-version "10.0.22621" --channel "release.ltsc.17.8" ./install.sh "" ---- @@ -56,12 +56,18 @@ You can do this one of two ways: Either build the engine from source, or downloa ==== From Source -Clone the `5.3.2-CSS-linux` branch of https://github.com/satisfactorymodding/UnrealEngine (A source build can take at least 2-3 hours depending on your hardware) +Clone the `5.6.1-CSS` branch of https://github.com/satisfactorymodding/UnrealEngine (A source build can take at least 2-3 hours depending on your hardware) ==== Download an archive -Currently, Mircea is hosting build archives for us at https://files.mircearoata.me/UE_Linux/, but this will be changed over to the GitHub CI eventually. -Click on the latest commit link, and download each of the `UnrealEngine-CSS-Editor-Linux.tar.zst.*` files one at a time. +https://github.com/satisfactorymodding/UnrealEngine/releases/ + +Click on the latest release https://github.com/satisfactorymodding/UnrealEngine/releases/[here], and download each of the `UnrealEngine-CSS-Editor-Linux.tar.zst.*` files. + +[NOTE] +==== +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: @@ -80,8 +86,6 @@ Register the engine to your system by running this command, replacing `` /Engine/Binaries/Linux/UnrealVersionSelector -register -unattended ---- -Then, edit the file `/Engine/Build/InstalledBuild.txt` to remove the `-linux` suffix from the version name if it is present. - == Project Setup Clone or download the starter project from https://github.com/satisfactorymodding/SatisfactoryModLoader as normal. @@ -94,14 +98,14 @@ Run this command in your terminal to download the required version of Wwise: [source,bash] ---- -./wwise-cli download --sdk-version "2023.1.3.8471" --filter Packages=SDK --filter DeploymentPlatforms=Windows_vc160 --filter DeploymentPlatforms=Windows_vc170 --filter DeploymentPlatforms=Linux --filter DeploymentPlatforms= +./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= ---- When that's done, run this command to integrate it into the starter project, replacing `` with the path to your project: [source,bash] ---- -./wwise-cli integrate-ue --integration-version "2023.1.3.2970" --project "/FactoryGame.uproject" +./wwise-cli integrate-ue --integration-version "2023.1.14.3555" --project "/FactoryGame.uproject" ---- === IDE setup @@ -111,8 +115,22 @@ Since Visual Studio isn't available for Linux, you can instead use Rider or VS C ==== Rider -Currently, Rider doesn't show the `Mods` directory when opening the .uproject, so you must generate a Visual Studio Solution to open it. -However, you will also need a Makefile to build the project. +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. + +[NOTE] +==== +The Uproject method is preferred, but if for whatever reason you need to have the solution and makefile, you can follow these steps. +==== + Run the following commands, replacing `` and `` with the respective paths. To generate the VS Solution: @@ -130,7 +148,9 @@ To create a 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 `/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet` +In the Rider settings, under `Toolset and Build`, make sure `.NET CLI executable path` is set to `/Engine/Binaries/ThirdParty/DotNet/8.0.300/linux/dotnet` + +Then to build it, run `make FactoryEditor` or any of the other targets. ==== VS Code @@ -142,7 +162,7 @@ To generate a code-workspace file, run the following command, replacing `/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux` to `omnisharp.dotNetCliPaths` +In the workspace settings, add `/Engine/Binaries/ThirdParty/DotNet/8.0.300/linux` to `omnisharp.dotNetCliPaths` === Other @@ -150,7 +170,7 @@ For other IDEs (not tested by us), you can view this page for command line optio == Compile the project -* For Rider, open the Terminal and run `make FactoryEditor` +* 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. From 2c9fedcc67137835ae097f335d9833f52962cf0c Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Wed, 3 Jun 2026 16:32:00 -0400 Subject: [PATCH 08/10] Add section for creating a Wwise project on Linux --- .../Wwise/wwise-create-project-linux.png | Bin 0 -> 67125 bytes .../BeginnersGuide/LinuxSetup.adoc | 43 +++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 modules/ROOT/images/BeginnersGuide/Wwise/wwise-create-project-linux.png diff --git a/modules/ROOT/images/BeginnersGuide/Wwise/wwise-create-project-linux.png b/modules/ROOT/images/BeginnersGuide/Wwise/wwise-create-project-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..74c83071b76ace0eda031fdbc30859090ffa7208 GIT binary patch literal 67125 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�zW&roV2B> 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 Date: Wed, 3 Jun 2026 17:08:28 -0400 Subject: [PATCH 09/10] Remove redundant engine release link --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index 96bc5b7a3..c8ba54d38 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -60,8 +60,6 @@ Clone the `5.6.1-CSS` branch of https://github.com/satisfactorymodding/UnrealEng ==== Download an archive -https://github.com/satisfactorymodding/UnrealEngine/releases/ - Click on the latest release https://github.com/satisfactorymodding/UnrealEngine/releases/[here], and download each of the `UnrealEngine-CSS-Editor-Linux.tar.zst.*` files. [NOTE] From de0147c8d7de74e22672f6b3603cdd66562cef95 Mon Sep 17 00:00:00 2001 From: Jesse Hodgson Date: Wed, 3 Jun 2026 17:54:44 -0400 Subject: [PATCH 10/10] Fix punctuation --- modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc index c8ba54d38..1536faf98 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/LinuxSetup.adoc @@ -56,7 +56,7 @@ You can do this one of two ways: Either build the engine from source, or downloa ==== From Source -Clone the `5.6.1-CSS` branch of https://github.com/satisfactorymodding/UnrealEngine (A source build can take at least 2-3 hours depending on your hardware) +Clone the `5.6.1-CSS` branch of https://github.com/satisfactorymodding/UnrealEngine (A source build can take at least 2-3 hours depending on your hardware). ==== Download an archive