Files
gbr-games/games/satisfactory-vanilla-stable/game.yaml
T
git_pipelineandClaude Opus 5.5 b9d445c57d
Validate game templates / validate (push) Successful in 45s
Validate game templates / boot-test (push) Successful in 5m57s
Validate game templates / publish (push) Skipped
fix(satisfactory): run the official SteamCMD server instead of wolveix/satisfactory-server
The wolveix image keeps its game files and saves in /config and /home/steam, outside the server volume, so they were lost on every start and the weekly boot test failed. Now: cm2network/steamcmd with Steam app 1690800, HOME=/server, ports 7777/udp+tcp and 8888/tcp, MaxPlayers in Game.ini, -ExternalReliablePort for the public reliable port.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MZxvxViV6QwAtVWT3saGvs
2026-11-07 01:45:00 +00:00

73 lines
2.3 KiB
YAML

# yaml-language-server: $schema=../../schema/game.schema.json
# The official dedicated server (Steam app 1690800), installed by the node with anonymous SteamCMD.
# Satisfactory keeps its saves under $HOME/.config/Epic/FactoryGame, so HOME is pointed at the server
# volume; otherwise they would land in /home/steam and be lost on the next start.
id: satisfactory-vanilla-stable
name: Satisfactory
defaultDockerImage: cm2network/steamcmd
defaultStartupCommand: >-
export HOME=/server;
mkdir -p "$HOME/.steam/sdk64";
cp -f /home/steam/steamcmd/linux64/steamclient.so "$HOME/.steam/sdk64/" 2>/dev/null;
exec ./FactoryServer.sh -Port=7777 -ReliablePort=8888 -ExternalReliablePort="${EXTERNAL_RELIABLE_PORT:-8888}" -log -unattended
requiredMemoryMb: 8192
requiredDiskMb: 20480
defaultPorts:
- 7777/udp
- 7777/tcp
- 8888/tcp
installMethod: STEAMCMD
installConfig:
appId: "1690800"
defaultConfig:
MaxPlayers: 4
ExternalReliablePort: '{PUBLIC_PORT_8888}'
configSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
MaxPlayers:
title: Max Players
description: How many players can be on the server at once. Set by your plan.
type: integer
category: Gameplay & Rules
default: 4
ExternalReliablePort:
title: Reliable Messaging Port (public)
description: The port players' games use for reliable messaging. Filled in for you; only change it if you know you need to.
type: string
category: System & General
default: '{PUBLIC_PORT_8888}'
required: []
configFilePath: FactoryGame/Saved/Config/LinuxServer/Game.ini
configFileFormat: STANDARD
configFormatOptions:
header: |
[/Script/Engine.GameSession]
footer: "\n"
separator: "\n"
assignment: '='
quoteStrings: false
trueValue: "True"
falseValue: "False"
uppercaseKeys: false
maxPlayersConfigKey: MaxPlayers
logFilePath: FactoryGame/Saved/Logs/FactoryGame.log
agnosticCommandConfig:
queryType: LOG_ONLY
playerJoinRegex: 'LogNet: Join succeeded: ([^\r\n]+)'
playerLeaveRegex: 'UNetConnection::Close:.*?\[PlayerName:\s*([^\]]+)\]'
actions:
Ban:
type: UNSUPPORTED
Broadcast:
type: UNSUPPORTED
Kick:
type: UNSUPPORTED
Save:
type: UNSUPPORTED
backupPaths:
- .config/Epic/FactoryGame/Saved/SaveGames
- FactoryGame/Saved/Config
maxBackupSizeMb: 2048