Satisfactory Modding Documentation

Basics

Welcome to the Satisfactory Modding Documentation site!

Here you can find lots of information regarding modding Satisfactory, the factory-building sim by Coffee Stain Studios. Modding for Satisfactory is more established than you might think given how long the game has been out. There are already numerous mods released, and there are multiple methods by which you can develop new mods yourself.

In this page, we will provide some surface level information for both mod users and developers.

If you want to take part in this great community, we recommend you join our Discord Server or the Ficsit.app Forums.

For Users

If you’d like to get started using mods, this section is for you.

Satisfactory Mod Repository (aka. SMR aka. ficsit.app aka. FICSIT Augmentation Database)

The Satisfactory Mod Repository (SMR) is the most extensive collection of mods made for Satisfactory. It’s easy to upload a mod of your own or write a guide for other users. Uploaded content is tested for malware and such before it is approved for download. Visit ficsit.app to learn more.

Satisfactory Mod Manager (aka. SMM)

The Satisfactory Mod Manager allows the end user to easily install mods, their dependencies, as well as the bootstrapper and mod loader. It connects to SMR allowing for a quick and easy installation process.

Check it out on GitHub!

For installing mods as end user we highly recommend using Satisfactory Mod Manager, as it makes using mods that much easier. However, if you really don’t want to use the launcher, directions for manual installation can be found here.

We highly recommend you to use the launcher for installing mods, as it simplifies the process significantly.

For Developers

If you’d like to write a mod of your own, this section is for you.

The Satisfactory Mod Manager offers a convenient developer mode that automatically installs SML and the bootstrapper for you. To enable it, change Configs to development.

If you’re looking to write your own mods, we suggest you start with making pak mods first rather than C++ mods. Learn more in our Beginners Guide.

If you’re looking to make models, it’s best to learn how to put a mod together first. Once you’ve completed the Buildable step in Beginners Guide, then check out our Modeling Guide.

Installing Your "Raw" or WIP Mods

If you don’t have a .smod/.zip of the mod and the proper data.json file, you still can use them for testing and such.

Just place the .pak, .dll and .pdb files if you need them into the mods folder and start the game with the SML config setting developmentMode enabled.

If you need to know how to enable developmentMode, please refer to the SML Configuration Page.

Modding Technologies

If you’d like to learn more about how modding works internally, this is the section for you.

Satisfactory Mod Bootstrapper

The Satisfactory Mod Bootstrapper is the holy heart of C Modding for Satisfactory. Due to technical limitations, custom built Unreal Engine C modules can’t get linked by the Windows dynamic linker into the game because the game is built monolithic. This also means that some functions are simply not built into the game. We rely on accessor functions to allow C mods to use these functions anyway. An example of one of these functions is `USceneComponent::SetVisibility`. In short, the bootstrapper uses third-party libraries to hook the Windows dynamic loader and to search in the by CSS provided .pdb for symbol references and returns them back to the dynamic loader. As a result, the dynamic loader is able to link the functions of the game to built C mods. We wont get into further detail as to how it works in this documentation. If you’re interested in more details, please reach out to us on the discord.

Satisfactory Mod Loader (aka. SML)

Satisfactory Mod Loader (SML) allows Satisfactory to load additional content and is essential in making most mods work. It also provides a framework for functionally many mods need but are not provided by CSS or UE4.

Things the Mod Loader does:

  • Starts the ModInit of pak mods

  • Unpacks and mounts .zip packaged mods

  • Manages mod dependencies

  • Provides a basic interface for pak mods to interact with some native code

  • Implements a Hooking system for C++ mods