Testing Your Mods

Testing your mods to ensure that content is accessible and there are no bugs present is an important step in development. Careful testing before release can save you from having to release multiple versions in quick succession in order to fix a bug.

This page lists some helpful resources and information regarding testing your mods.

SML Logging

You can use the relevant blueprint or C++ libraries to print log messages you can view from a terminal window while you have the game launched. This terminal reflects the contents of the the game’s log file, which you can find at \AppData\Local\FactoryGame\Saved\Logs\FactoryGame.log.

To use it, check the SML Config page and turn on consoleWindow, which will cause the window to open on game launch.

If you select text in the terminal window, it will freeze the game until you press 'enter' to deselect it. This can help with reading things before they would normally scroll by.

Since the log terminal is a regular Windows Command Prompt window, you can right click on its top bar and set some default customization values, such as where the window spawns and how wide it is, which will be applied every time the terminal opens. You can use this to have it always open on a second monitor, for example. Be aware that the values you set here will affect every instance of Command Prompt on your system.

Multiplayer Testing

Instructions

Run 2 games of Satisfactory for multiplayer testing in a few easy steps!

  1. Create a new Powershell script with the contents of the below code block and edit the first line to the game install folder. Note: You can edit the 2nd and 3rd line for a custom name

  2. Run the script in Powershell (by right clicking it and hit "run by powershell") and wait for both copies of the game to load.

  3. Open up your save file in either copy of the game.

  4. Once you’ve loaded in, go to the second game instance and open the console by pressing the ` (backtick/grave) key. Then type in open 127.0.0.1 and hit enter. The second instance will now connect to the game hosted by the first instance.

Using backtick to open the console seems to work only with the Windows UK keyboard Layout, not a physical one, but in Windows set it to UK keyboard layout. On some other keyboard layouts, F2 works instead. If you are having trouble opening the console, you can edit the settings in Satisfactory’s Input.ini file to change the console key to another key of your choice.

Powershell Launch Script

$GameDir = "C:\Program Files\Epic Games\SatisfactoryEarlyAccess"
$Username1 = "Player1"
$Username2 = "Player2"

$Args1 = "-EpicPortal", "-NoSteamClient", "-NoMultiplayer", '-Username="'+$Username1+'"'
$Args2 = "-EpicPortal", "-NoSteamClient", "-NoMultiplayer", '-Username="'+$Username2+'"'

function BGProcess(){
    Start-Process -NoNewWindow @args
}

BGProcess "$($GameDir)\FactoryGame.exe" $Args1

sleep -m 5000

BGProcess "$($GameDir)\FactoryGame.exe" $Args2

Automatically Load a Map on Launch

It’s possible to make the game to automatically load to the game world on launch, as opposed to the main menu, cutting down on load time and clicks when testing your mod.

To do this, you’ll need to either create a file with some configuration settings or add them to the default game configuration.

To get started, create a .ini file in a convenient location (such as your Satisfactory game install directory) that contains the following:

[/Script/EngineSettings.GameMapsSettings]
LocalMapOptions=??skipOnboarding?loadgame=LastLight_autosave_0
GameDefaultMap=/Game/FactoryGame/Map/GameLevel01/Persistent_Level.Persistent_Level
GameInstanceClass=/Script/FactoryGame.FGGameInstance

In place of LastLight_autosave_0 you should put the name of your desired save file. Note that loading last autosaves of a map works as well if you format it correctly. The example will load the latest autosave of a save called LastLight.

Note that doing this will prevent you from returning to the main menu in that game session - when you try to do so, you will instead re-load your selected game save.

There are a few other flags you can use as well:

FG Map Options Switches from Archengius:

Switches found in AFGGameMode::InitGame:

?skipOnboarding (skip landing animation)
?allowPossessAny (allow possessing any pawn on the map, even if player IDs don't match)
?loadgame=<SaveGame Name Here Without Path and extension>
?startloc<Start Location Tag Name> (see AFGGameMode::ChoosePlayerStart_Implementation)
?sessionName=<Session Name> (sets mSaveSessionName, so apparently it determines autosave file name and probably name visible to other players?)
?DayLength=<Day Length In Minutes>
?NightLength=<Night Length In Minutes>

General notes:
  Regarding Start Location Tag Name:
      - TRADING_POST is the hub APlayerStart actor tag
      - Any APlayerStart actor with matching PlayerStartTag is selected
  Regarding Session Name:
      - Apparently there is a system of "bundled saves" that I know nothing about. Further investigation is required.

Switches found in AFGGameSession:

?Visibility=SV_Private/SV_Public (Session visibility)
?adminpassword=<Admin Password used in console command AdminLogin to gain host privileges>

There is also ?bUseIpSockets linked with offline sessions
Apparently it disables EOS sockets and makes the game fall back to normal IPv4 sockets

You can launch the game with these settings in one of two ways.

Option 1 - Custom Configuration with Startup Script

You can launch the game from command line with the path to your configuration file specified in the EngineINI command flag.

For example, if your file was called LoadMapEngineConfiguration.ini, your launch command could look like this:

"D:\SatisfactoryExperimental\FactoryGame\Binaries\Win64\FactoryGame-Win64-Shipping.exe" -EpicPortal -NoMultiplayer -Username=Player1 EngineINI="D:\SatisfactoryExperimental\LoadMapEngineConfiguration.ini"

Note that you will have to modify this example command so that it points to where you have the game installed.

You might want to save it in a batch file or powershell script for easy execution later.

Option 2 - Add to Default Game Configuration

Instead of creating a new file for your configuration, you can edit your default game configuration, found at %APPDATA%/Local/FactoryGame/Saved/WindowsNoEditor/Engine.ini.

If you choose this option, the game will always launch using this config no matter where you launch it from, even when mods are not installed.