Multiplayer

Satisfactory can be played in multiplayer, with up to four players officially supported, but with no hard player-limit see below. The game is co-op only and there will be no PvP elements, although engineers can damage each other. This means that HUB, M.A.M. and Space Elevator progress is shared among all players.

Cross-platform multiplayer is available across Steam and Epic Games.

Hosting a session
Currently, sessions can only be hosted by players. The session host cannot leave the session without disconnecting other players.

To start a multiplayer session, the host has to start an online session (a normal session like when playing in single-player, as long as the host has internet access and authentication servers are working normally) and then allow other players to join, or to invite those players (see sections below).

Session privacy
The following session privacy settings are available:


 * Friends Only - Allows anyone in the host's client list to join the hosted session from the Join Game menu without invitation. This also allows Session ID to be used, regardless of friend list status.
 * Private - Clients can only join the hosted session if invited using in-game invites. Attempting to join the session via Session ID will result in it not being found.

There are no plans for a "Public" option, due to griefing concerns.

Network configuration
It might be necessary to configure the network in some scenarios, notably on NAT: Strict, which disallows hosting sessions and allows joining sessions only on NAT: Open. Should both the host and client/s have NAT: Moderate or Open, joining sessions should be normally possible.

The game uses the following ports:
 * 5222 TCP & UDP
 * 6666 TCP & UDP
 * 7777-7827 UDP

Additionally, ensure Windows Firewall rules weren't refused when asked for permission.

Sessions with more than 4 players
For more than four players to be able to play in one session simultaneously, the game's config has to be edited.

The host has to navigate to  and add the following lines to the end of that file: [/Script/Engine.GameSession] MaxPlayers=REPLACE_WITH_NUMBER where REPLACE_WITH_NUMBER corresponds to the desired maximum amount of players.

Dedicated servers
Dedicated servers are currently being worked on at higher priority with no set release date.

Some information about them is already known:
 * Time will not stop if there are no players on the server, therefore factories will keep on working.
 * However, the server (regardless of player activity) will need to be restarted every 24 or 48 hours, which might happen automatically.
 * Linux support is wanted, but not yet confirmed, Windows is the initial platform they are being worked on for.
 * The release isn't linked to a major update, it will be released alongside just a patch in the experimental branch once ready.
 * Dedicated servers will not cost anything (meaning that the software itself will be free, but server providers will likely charge for their services).

Join Game menu
Players can join online sessions of players in their friend list from the Join Game menu. As mentioned above, an invitation may or may not be required based on the session privacy setting. It is easy to join players on the same platform this way, to crossplay, Steam players must have linked their Epic account upon prompted.

Session ID
Every online session has a set Session ID. Anyone who has access to this ID can join the session, as long as its privacy is set to Friends Only (despite the name, neither user does actually have to be in each other's friend list on either Epic or Steam).

This ID is unique to each session and is reset once the game is quit to the main menu or entirely.

The session ID can be found by doing the following:


 * Press.
 * In the menu, click on 'Manage Session', then click on 'Session Settings'.
 * Here, the session ID can be edited or copied to the clipboard.

The host of the session can then share this session ID for both Epic and Steam players to be able to join the session.

Performance improvements

 * Have the host and all clients choose  in the options.
 * If experiencing high latency, try unchecking  in the options.

Temporary lag solution
There is a way to decrease rubber-banding at the cost of increasing bandwidth by adding the following lines to the game's config files found in. Before adding the lines to the config files, ensure they aren't already in place but with different values if so, replace them instead of having duplicates.

By default, the game's maximum bandwidth appears to be throttled at 64 KB/s. By editing the config files, this limit is increased to 800 Mbit/s. At lower-end machines or internet connections, use  everywhere there is , this sets the limit to 480 KB/s or ~3.66 Mbit/s.

This has to be done by all players (both the host and client/s) to have an effect. The increased bandwidth can be even five times as much as it was before, therefore a stable internet connection is required.

Engine.ini
This file should be set as 'read only' to prevent the game from overwriting it. [/Script/Engine.Player] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 [/Script/OnlineSubsystemUtils.IpNetDriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 [/Script/SocketSubsystemEpic.EpicNetDriver] MaxClientRate=104857600 MaxInternetClientRate=104857600

Game.ini
This file should be set as 'read only' to prevent the game from overwriting it. [/Script/Engine.GameNetworkManager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760

Note: If increasing the bandwitdh to 480 kbit/s, set MinDynamicBandwidth to

Scalability.ini
This file will be initially blank and has to be set as 'read only' to prevent the game from overwriting it. [NetworkQuality@3] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760

Note: If increasing the bandwitdh to 480 kbit/s, set MinDynamicBandwidth to

Trivia

 * A total of 128 session participants is currently possible as a signed byte is used to track sessions, but Snutt had remarked that switching to an unsigned byte would enable up to 255 participants.

History

 * Patch 0.3.8.6:
 * Fixed vehicles getting launched in the air when exiting them as Client
 * Patch 0.3.8.5:
 * Fixed player camera and hands becoming off center for Clients when entering a vehicle or using a Hyper Tube
 * Patch 0.3.8.0:
 * The maximum bandwidth of the Network Quality Setting values has been increased.
 * General Bandwidth reduction
 * This includes optimisations to the general bandwidth consumption of Minimap/HUD location data transfer, Replication Graph optimizations for Conveyor Belts/Lifts, Building Inventory replication and many other minor replication changes.
 * Patch 0.3.7.4:
 * Fixed a bug where the power icon would look out of place for Client after upgrading Power Lines
 * Patch 0.3.7.3: Fixed a crash related to the wire hologram that mainly happened for Clients in Multiplayer
 * Patch 0.3.5.2: Added a start-up argument that disables all multiplayer related connections (-NoMultiplayer)
 * Patch 0.3.5:
 * Introduced crossplay across Steam and Epic
 * Fixed some session connection issues
 * Multiplayer information in the Manage Session UI now has the same styling as in other multiplayer related menus
 * Patch 0.3.4.15: Extractors should continue working as usual after a client player opens their menu
 * Patch 0.3.4.13:
 * Added a warning when copying the session ID from a private session, since a private session cannot be joined
 * Improved the player status shown on the in-game friend list with more information (no longer just “Exploring, Building a factory, etc.”)
 * Patch 0.3.4.11:
 * Implemented changes to multiplayer connection handling and some additional UI, still work in progress
 * Added some reminders that multiplayer has more bugs than single player in relevant menus
 * Clients should see less build effects replaying when joining a game
 * Clients now get the correct tutorial info when joining a newly started game
 * Clients can now empty single Pipelines and Fluid Buffers
 * Clients can now toggle standby correctly in production buildings and resource extractors (still needs to be fixed for generators)
 * Patch 0.3.4.8:
 * Can now change online session ID in the session settings
 * Sessions starting up will now check to make sure their ID is unique and change it if necessary
 * Patch 0.3.4.7:
 * New Epic Online Services (EOS) implementation for online session handling etc.
 * Fixed a crash that occurred when clients joined a game (related to track connection)
 * Fixed client crashing when the host builds railroad tracks
 * Patch 0.3.4.2:
 * Fixed the World->bInTick crash that could occur when a client joins a game
 * Building visuals should no longer persist for client players after dismantling
 * Patch 0.3.4.0:
 * Potentially fixed a crash that can occur when a client player builds a building
 * Train timetables should now work for client players
 * Patch 0.3.2.0: Potentially fixed a crash related to multiplayer
 * Patch 0.2.1.11: Fixed an issue where some players would get no color assigned to them
 * Patch 0.2.1.5:
 * Added a version check on joining invites and ensured that network connections with different game versions generally fail and give an error message
 * Fixed the multiplayer crash because of which the last patch was rolled back
 * Patch 0.2.1.4: The game now crashes when joining a multiplayer session (this caused the patch to be rolled back)
 * Patch 0.1.14:
 * Spore Flowers now properly react to client players
 * Alien Carapaces dropped by the Flying Crab Hatcher are now visible for clients
 * Conveyor Pole holograms now show properly under the Conveyor Belt for clients
 * Patch 0.1.13: Fixed a crash that occurred for joining clients that disconnected while in a vehicle
 * Patch 0.1.8:
 * Fixed some Map related crashes
 * Client players can now sort the inventory in various storages
 * Patch 0.101:
 * Likely fixed the issue with Sending Game Data that blocked multiplayer
 * Likely fixed some Replication Graph crashes
 * Patch 0.1: Fixed desync issues when dismantling wires connected to poles
 * Closed Alpha Build 90961 (February 2019): Introduced