-
Notifications
You must be signed in to change notification settings - Fork 1
Live data with FRM
Without a mod, the map shows the state of the last autosave (usually 5 minutes old). With the mod FicsIt Remote Monitoring (FRM) it becomes live:
| save only | with FRM | |
|---|---|---|
| Players, trains, trucks | every ~5 min, jumping | every 5 s, moving smoothly |
| "online" / follow mode | unknown | yes |
| Machines, power, item balance | every ~5 min | every minute |
| Stations, schedules, belts, foundations | from the save | from the save |
| Train throughput, round-trip times | – | yes |
The top right always shows honestly where the data comes from: live (green) or save N min ago (yellow).
- All players need the same mods (Satisfactory Mod Loader + FRM, same version). Without them, you can no longer join the server — the server log does not even show a connection attempt. FRM's description says "server-only", but in practice that is not true.
- Mods can break after game updates until they are updated. In that case, simply clear
FRM_URL— the map keeps running from the save.
- Clients: every player installs the Satisfactory Mod Manager and, in it, FicsIt Remote Monitoring (which brings the mod loader along).
-
Server: download SML + FRM in the server variant (LinuxServer / WindowsServer) from https://ficsit.app
and install them:
-
.smodfiles are ZIP archives. Unpack SML toFactoryGame/Mods/SML/, FRM toFactoryGame/Mods/GameFeatures/FicsitRemoteMonitoring/(not directly underMods/— otherwise the mod loads but does nothing). - Start the server once and stop it again.
- In
FactoryGame/Saved/Config/LinuxServer/GameUserSettings.ini(Windows:WindowsServer), replace the linemIntValues=()withmIntValues=(("FicsitRemoteMonitoring.Server.uWS.Autostart", 1),("FicsitRemoteMonitoring.Server.uWS.Port", 8080))— only edit while the server is stopped, otherwise the game overwrites the file. - Start the server.
LogHttpServer: Port 8080 unavailablein the log is normal. -
Pterodactyl: the script
tools/install_frm_pterodactyl.shdoes all of this via SSH on the Wings host.
-
-
Map: set
FRM_URL=http://<server>:8080in.envand rundocker compose up -d. -
Check:
curl http://<server>:8080/getSessionInforeturns JSON. Without Docker:FRM_URL=… python3 frm.py probe.
The FRM port does not belong on the internet — the map queries it, visitors do not need it. If it is only available in a container network (Pterodactyl), an SSH tunnel on the map's machine helps:
ssh -N -L 18080:<container-ip>:8080 root@wings-hostand FRM_URL=http://127.0.0.1:18080 (with Docker: http://host.docker.internal:18080 with
extra_hosts: ["host.docker.internal:host-gateway"] in docker-compose.yml).
The dedicated server reloads the session regularly (Session Restart Time, at night by default). Afterwards,
FRM sometimes keeps answering Blocked API call: World not ready. The map then shows "save N min ago" and keeps running
from the save. Workaround: fully restart the server process once, shortly after the session restart
(e.g. a Pterodactyl schedule "Power Action: restart", only when online). Technical details: docs/frm-issue-draft.md.
Satisfactory Logistics Map · Repository · Report a bug · Not an official Coffee Stain Studios project
Setup
- Installation with Docker
- Installation without Docker
- Save source
- Live data with FRM
- Public access
- Configuration
Using the map
Operation
Development