Project Setup

A key aspect of fast and efficient development is a proper Workspace and project setup. With a misconfigured or suboptimal setup, you’ll lose valuable time. That’s why we will guide you now through making a good project setup for Satisfactory.

Are you a returning Satisfactory modder who already has a past modding environment set up? Make sure to follow the Updating your Mod guide before following these directions.

Starter Project

You should either be preparing to clone the Starter Project, or you downloaded a zip of it in the previous steps of the tutorial.

The Starter Project folder will be your modding workspace, and could grow to a considerable file size depending on what kinds of mods you make. As such, you should extract the folder somewhere convenient so that you can find it later.

DO NOT put the project in any of the following locations:

  • ❌ Downloads folder

    • Windows sometimes automatically cleans up this folder depending on your system settings, deleting your files.

  • ❌ Cloud-synced folder

    • Cloud sync services like Dropbox, Google Drive, and OneDrive can corrupt your project files.

  • ❌ Documents folder

    • Some cloud sync services will automatically sync your Documents folder without telling you about it.

  • ❌ Nested within many folders

    • When packing Unreal projects, some filenames can get long, so a deeply nested location may cause bizarre issues because Windows handles long paths poorly.

  • ❌ In a folder path with unusual/international characters in any folder name

    • Unreal and Windows are easily be confused by unicode characters in file and folder names.

DO consider putting your project folder in one of these locations:

  • ✔️ Near the root of your drive (for example, C:\Modding\Satisfactory\)

    • This avoids long path issues and avoids including your computer user’s name in files distributed with your mod.

  • ✔️ On your SSD

    • Most modding operations will run significantly faster if you keep the project on an SSD, assuming you have one.

  • ✔️ On a secondary drive

    • This will help keep your primary drive from filling up with modding files.

You can use this Starter Project for developing multiple mods at once, since each mod will be its own separate plugin folder within the project.

Feel free to rename the Starter Project folder to whatever you like.

Depending on if you plan to clone the project or downloaded the zip, go to the relevant heading immediately below.

You’re Cloning the Starter Project

Make sure to read the notes in the above Starter Project heading about where to clone the files.

The below box will contain directions on which branch to clone. It’s imperative that you download the correct Starter Project version of the game you’re modding or you will have to repeat some of the setup process again.

This is the latest version of the docs.

If you want to develop mods for Update 8, you should clone either the dev branch, which will have the latest changes and fixes, or the master branch .

Of those two, you probably want whichever branch was pushed to most recently, which you can see on the GitHub repository.

If you’re still uncertain which to download, ask us on the Discord.

Here is a link to the repository to clone. Again, make sure to clone the correct branch - it will probably start you on the master branch by default and you may have to switch branches to the correct one.

The directory is ready for use as soon as the clone is complete. Move on to the next heading.

You Downloaded a Zip

By default, Windows marks files downloaded from the internet as "blocked". You will run into problems later on because of this. To get around this issues, right-click the zip and "unblock" it before unzipping it.

Make sure to read the notes in the above Starter Project heading about where to unzip the files.

If you downloaded the Starter Project as a zip, unzip SatisfactoryModLoader-master.zip (or the -dev.zip) to get the Starter Project files. If you’re encountering issues extracting the zip, try using another zip extracting software such as 7zip or WinRAR.

You should strongly consider using version control software, such as Git, to manage your mod’s files. If you’d like to do this, you can learn more about that process here. As mentioned earlier, you probably want to clone the Starter Project repo instead of downloading a zip file of it.

Setting up Wwise

Wwise is an audio and sound system used by Satisfactory, and setting it up is required to get your modding environment working. Setting up Wwise can be confusing, but we’ll walk through the steps here. Be sure to follow only the steps listed here - Wwise will often present you with lots of additional messages that looks like errors or warnings but can be safely ignored.

If part of the setup process fails for you, it is most likely this step. If you have errors completing the setup process, come back to here and make sure you followed these steps correctly.

Start the Wwise launcher that you installed earlier and update the launcher if prompted. Make sure you have signed in to the launcher. It can give ambiguous error messages when trying to integrate Wwise if you aren’t signed in. Next, open the Unreal Engine tab in the sidebar. Do not click any of the update buttons on the Unreal Engine Wwise tab. Satisfactory requires a specific version of Wwise to work, and updating can prevent your mod from working correctly. Click on the Open Other button next to the "RECENT UNREAL ENGINE PROJECTS" header and select the FactoryGame.uproject file contained in your Starter Project folder. Your project should now appear in the Wwise launcher. Click on the Integrate Wwise into Project…​ button.

Change the left hand drop-down to All. Then select the same version you installed earlier (likely 2022.1.5.8242). The version number may have additional numbers on the end of it e.g. 2022.1.5.8242.1234 but as long as it starts with 2022.1.5.8242 it should work.

If version 2022.1.5.8242 does not appear even after you have selected All, edit the .uproject file in a text editor to be sure that EngineAssociation is set to 5.2.1-CSS.

If this version still doesn’t show up, try any other version starting with 2022.1.5.

If you missed a required component as part of the Wwise installation, it may show a yellow warning box indicating what’s missing as well as a button to "Modify" the installation. Go ahead and follow what it says for this step only. If Wwise warns you that it could not find an installation in a red warning box, that means you have not selected the correct version as stated above. If you see a blue box offering both "Modify" and "Add Plug-in", that means it’s configured correctly, so continue to the next step.

Under "Wwise Project Path", click the little triangle dropdown on the right and choose New project to clear the path.

If everything worked according to plan, you should now be able to click on the blue Integrate button. Do so, and agree to the terms to start the process.

That’s it! If Wwise shows "Operation completed successfully," you have integrated Wwise into your project. You can close the Wwise launcher.

Note: the below gif may select a version that does not match what is written above. Please use the version mentioned in the text above.

image

If you encounter a checksum error during Wwise integration, installing another Wwise version similar in version number should fix the problem.

Generate Visual Studio Files

Next, you’ll need to generate the remaining files for the project with Unreal Engine’s "Generate Visual Studio Project Files" tool.

Right-click on the .uproject file in your Starter Project folder and select Generate Visual Studio project files. If this option appears for you and runs without error, skip down to the next section. If this option errors, check out the Troubleshooting section below.

Otherwise, you’ll need to run a tool from the command line to generate the project files.

The command will follow the form below:

"<path to your Unreal build batch file here (it was installed with the custom Editor)>" -projectfiles -project="<path to your .uproject file here>" -game -rocket -progress

Here is an example of a completed command:

"C:\Program Files\Unreal Engine - CSS\Engine\Build\BatchFiles\Build.bat" -projectfiles -project="D:\Git\SatisfactoryModLoader\FactoryGame.uproject" -game -rocket -progress

The above command will not work if you copy paste it - you’ll need to modify it yourself to point towards your project file and Unreal Engine install.

Make sure you run the above command from Command Prompt and not Powershell. It is not correctly formatted for Powershell.

Troubleshooting

If you are prompted to choose an engine version when generating project files, or the generation command fails, it’s possible that you have a corrupted engine install left behind from previous modding or Unreal Engine endeavors.

The correct engine version should appear in the picker as 5.2.1-CSS and should not be considered a binary build. To remove the listing for the corrupted engine install, use the Windows registry editor to edit the registry key HKEY_CURRENT_USER\SOFTWARE\Epic Games\Unreal Engine\Builds and remove the key pointing to your "Unreal Engine - CSS" install location.

You can add the correct items to this registry key by either reinstalling the engine or running the SetupScripts\Register.bat script in the engine’s install folder.

Project Compilation

Next up is compiling the project from Visual Studio. It is possible for Unreal to compile the project as well on launch, but if there are any errors, Unreal will give a very vague report as to what went wrong and you’ll have to rebuild from Visual Studio anyways to get more details. As such, it’s best just to always compile from Visual Studio so you don’t have to build a second time to see the error report.

If you have multiple computers available on your network, you can optionally use Incredibuild to speed up the compilation process. More info here.

Open up the FactoryGame.sln file in your project folder.

Visual Studio may tell you "Based on your solution, you might need to install extra components for a full development experience" at the top of the Solution Explorer window. It is safe to ignore this message. Alternatively, you can install the requested components to keep Visual Studio from complaining about this at the cost of additional disk space.

Once Visual Studio loads, you should see a list in the Solution Explorer containing entries for UE5, FactoryGame, AccessTransformers, and more. It’s important to note that these separate solution items exist only for organization purposes. When it’s time to compile your mods, compiling any one of the items will compile the whole project. The only exception to this is the UE5 entry which will do nothing when you compile it since you already installed that by installing the custom engine version earlier.

An unfortunate consequence of this organization system is that Visual Studio does not understand that each of these solution items will compile the whole project.

As such, we do NOT want to use the generic 'Build Solution' operation that Visual Stuido provides. Doing so will try to run the build one time for each solution item we have in the project, wasting some time, and, if there are any error messages, duplicating them many times over!

In preparation for compiling our project, first select the Development Editor Solution Configuration and Win64 Solution Platform in the top toolbar. Development Editor is the editor program that you’ll be using to make mods. It’s near the undo/redo buttons and the play button menu items.

Select Development Editor build target

To start the actual compile process, right click on any of the solution explorer items under the Mods folder, for example, SML, and select Build.

Build Solution

This will take some time; go pet some lizard doggos as you wait. See below if you run into any issues. You’ll know it’s done when the little box-with-cubes-piling-into-it icon in the colored bar at the bottom of Visual Studio goes away. You can monitor its progress from the Output pane (View > Output) if desired.

After it completes, you should select the Shipping Solution Configuration from the top toolbar (the same place you selected Development Editor earlier) and start another build. Building both of these is required for the editor to function correctly and for you to be able to distribute your mod.

Now that you’ve built the binaries, your Unreal Editor should open without any issues.

Some important notes for the future:

After updates to SML that change the Editor, or your own C++ code that changes Editor functionality, you must close the Editor and rebuild Development Editor from Visual Studio for the changes to take effect.

Alpakit (a tool discussed later) will take care of building Shipping for you when required, but you can still build it from Visual Studio if you want to.

Troubleshooting

Almost all warnings, and occasionally some errors, reported by the editor can be safely ignored during the build process. This section will help you decide how to proceed if you encounter errors while building.

The command …​ exited with code 6

This is not actually an error message, just a message that is informing you that the build task has failed. Keep reading the Error List to see what actually went wrong. Sometimes the real error does not show up until the build has finished. You may also have to check the Output > (Show output from: Build) tab instead of the Error List to see the actual error message(s).

Compiler is out of heap space

Your computer ran out of RAM while trying to compile the project. This is a common issue even on computers with 32GB of RAM. Thankfully the completed build progress persists between attempts at building, so just keep re-running the build task and it will slowly make progress. Close other stuff on your computer that is using RAM if possible, such as web browsers and games. Restarting your computer and then trying the build again may also help.

If the project still continues to fail to build with this reason after many attempts, contact us on the Discord for further troubleshooting. Your computer may unfortunately not have enough ram to compile the project.

AkAudio

If you see errors related to AkAudio or similar, you need to go back and re-do the Wwise integration step.

Something.pch : No such file or directory

Make sure that your project folder is not stored in a folder path that contains unicode characters. Review the directions in the Starter Project section.

Entire computer locks up while compiling

The fix for this rare but troublesome issue seems to vary for each person that encounters it. Try the following:

  • Disable hardware graphics acceleration in your Visual Studio settings

  • Downgrade to Visual Studio 2019

  • Check your system for RAM and GPU issues

Something Else

If you run into a problem that isn’t described above, please ask for help on the Discord, even if you fix it yourself. We can update the docs with your findings to help other people that might have a similar issue!

Open Unreal Editor

The Unreal Editor allows you to create new content for the game and helps build your mod. It also heavily relies on the C++ project, so make sure you don’t change stuff in there unless you know what you’re doing.

Depending on how your copy of Unreal Engine installed, you may be able to double-click the FactoryGame.uproject file in the Starter Project folder to open the editor, which will directly open your project.

If that doesn’t work, you’ll have to open the Unreal Editor separately, then browse to your project. You can find it by searching for it in the Windows search bar (it should appear as Unreal Engine - CSS) or by navigating to where you installed it, which is probably something similar to C:\Program Files\Unreal Engine - CSS\Engine\Binaries\Win64\UnrealEditor.exe Once the welcome panel has opened, click "Recent Projects", then "Browse" and select the file FactoryGame.uproject in your starter project folder.

Opening the project for the first time can take a considerable amount of time as it compiles shaders.

You might be told that some modules were "missing or built with a missing engine version"; press Yes and allow it to build. This will take some time, and will drastically increase the size of your project folder - go find some more lizard doggos to pet.

If this step fails, you should go back to compile the editor from Visual Studio to find out why it’s erroring and return here when finished with that step. Consider seeking help on the Discord if you are stuck here.

Once you load into the Editor, you might see a popup that says 'New plugins are available.' You can safely dismiss this popup.

Familiarize Yourself with the Editor

Now is a good time to familiarize yourself with the Unreal Engine editor through various other tutorials. We suggest you take the 'Welcome to the Unreal Editor' guided tutorial that the editor should be telling you about if you haven’t taken or dismissed it yet.

We also suggest the following resources:

Setting up Alpakit

Alpakit is a tool made by the modding community to make building and testing your mod more convenient. It’s one of the editor plugins that comes pre-installed with the starter project.

Opening Alpakit

Click on the Alpakit button in the Tool-Bar of the Unreal viewport to open its panel. It looks like an alpaca peeking out of a cardboard box. You can also bring it up via File > Alpakit.

You can open the alpakit-specific log window by clicking the three-dots button next the icon and selecting "Alpakit Log". This information is also present in the UE Output Log, albeit mixed with other editor messages.

Both the Alpakit window and log window can be dragged by their top tabs and docked as new tabs or panes in the editor for easy access later.

If you’re wondering what something in the Alpakit window does, hover over it - most elements have expanatory tooltips.

Configuring Dev Packaging Settings

Once you’ve opened the Alpakit window, head over to the Dev Packaging Settings heading. For now, the only target we need to modify is Windows (the game client), but you can use the other options later to build for dedicated servers.

In order to get started building mods, you’ll have to tell Alpakit where your game install directory is located so it can copy mod files there for you.

In the Windows subheading, check the Enabled box to enable packaging for that target, check the 'Copy to Game Path' box, then click on the 3 dots near Satisfactory Game Path and select your root Satisfactory game installation folder. It will be something like C:\Program Files\EpicGames\SatisfactoryEarlyAccess\. Follow the directions on the FAQ to easily determine this location.

Choose an item from Launch Game After Packing that corresponds to the game install path you provided, or leave it unchecked if you don’t want the game automatically started for you.

Find out more about how to launch the game quickly for testing on the Testing/Multiplayer Testing page.

Right now you should see two items in a searchable list - Example Mod (ExampleMod) and Satisfactory Mod Loader (SML). This is the list of all mods present in your project. They are listed first by friendly name and then by Mod Reference in parentheses. Once you have created a mod, it will appear in the list automatically.

Packaging Mods with Alpakit

In order to package a single mod for testing press the "Alpakit!" button next to its name in the list. Alpakit will compile and package your mod for you, then take actions based off of the options you selected in the Dev Packaging Settings.

If you want to package multiple mods at a time, check the boxes to the left of their Alpakit! buttons and use the "Alpakit Dev" button. This will first package all mods, If you selected a Launch Game After Packing option it will wait for all tasks to complete before launching.

Upon starting an Alpakit task, a popup will appear informing you that the mod is being packaged and the Alpakit Log window will reflect the packaging results.

The Alpakit Release and Release Targets fields can be safely ignored for now as they will be explained later in the guide.

Alpakit

Uninstalling your Packaged Mods

Alpakit will automatically install the mods it packages for you when you have the 'Copy to Game Path' option enabled. The Satisfactory Mod Manager will try to avoid interferring with mods that you have packaged with Alpakit and will not "see" that you have them installed in its own mods list.

If you ever need to uninstall one of the mods you’ve packaged, simply go to your installation’s Mods folder and delete the folder named with the Mod Reference of the mod you wish to uninstall.

(Optional) Packaging SML

Note that if you have not yet installed the Satisfactory Mod Loader (SML) in your game files, you can use Alpakit to build SML for you and put it in the right folder. This could cause problems if your copy of the Starter Project is not up to date with the latest SML changes, in which case you should either update your Starter Project or use the Mod Manager’s development profile to install SML for you instead.

(Optional) Modify Editor Color Scheme

The Unreal Engine 5 editor is very dark by default. It may be difficult to read depending on your computer settings and eye health. This video shows how to change the editor’s color scheme and provides an alterative grey theme you can use out of the box.

Ready to Rumble

That should be it. Your starter project should now be set up and ready to go! In the next section, we’ll walk through creating the base Plugin for your mod, then run through a couple common modding examples to demonstrate how to get started making your own mods.

The Starter Project also includes and ExampleMod that you can look at, which includes examples like those described in this documentation, as well as a few things that don’t have docs pages yet. It also has some examples of C++ mod functionality. Consider looking around in there after completing some of these tutorials.