-
Notifications
You must be signed in to change notification settings - Fork 1
Full Runfile Example
JLangisch edited this page Dec 23, 2025
·
1 revision
Caution
NOTE: This file includes // comments for explanation — REMOVE ALL COMMENTS before using! JSON does not support comments, so this is invalid JSON until cleaned.
{
// === Meta Information ===
// Documentation: https://github.com/SteamServerUI/runfiles/wiki/Core-Structure
"meta": {
"name": "Somegame", // MUST exactly match the <Gamename> in filename: runSomegame.ssui
"version": "1.0", // Your runfile version
"author": "YourName", // Optional: Your name or handle
"image": "https://example.com/banner.jpg", // Optional: Banner for Dashboard
"logo": "https://example.com/icon.jpg" // Optional: Square logo/icon for Dashboard
},
// === Core Server Info ===
// Documentation: https://github.com/SteamServerUI/runfiles/wiki/Core-Structure
"steam_app_id": "123456", // Required: Steam AppID (numeric string)
"backup_content_dir": "./saves", // Optional: Folder SSUI will backup/restore
// Executables — at least one required for the host OS
"windows_executable": "./MyGameServer.exe", // Must end with .exe
"linux_executable": "./MyGameServer.x86_64", // Must NOT end with .exe
"architecture": "all", //"windows", "linux" or "both" / "all"
// Future use — currently ignored
// "steam_login_required": false,
// === Arguments ===
// Documentation: https://github.com/SteamServerUI/runfiles/wiki/Arguments and https://github.com/SteamServerUI/runfiles/wiki/Special-arg-fields
"args": {
// Recommended categories: "basic", "network", "advanced"
"basic": [
{
// Standard flag with a value
"flag": "-serverName",
"value": "My Awesome Server",
"required": true,
"requires_value": true,
"description": "Name shown in server browser",
"type": "string",
"ui_label": "Server Name",
"ui_group": "basic",
"weight": 10
},
{
// Optional flag (skipped if value empty)
"flag": "-password",
"value": "",
"required": false,
"requires_value": true,
"description": "Leave empty for no password",
"type": "string",
"ui_label": "Server Password",
"ui_group": "basic",
"weight": 20
},
{
// Always-on hidden flag (e.g., headless mode)
"flag": "-nographics",
"value": "",
"required": true,
"requires_value": false,
"description": "Required for dedicated servers",
"type": "bool",
"special": "hide_in_ui", // Never shown in UI
"ui_label": "Headless Mode (hidden)",
"ui_group": "basic",
"weight": 5
},
{
// Flagless/positional parameter
"flag": "SaveName", // Flag name is just for reference
"value": "MyWorld",
"required": true,
"requires_value": true,
"description": "Name of the save/world",
"type": "string",
"special": "dont_append_flag_just_value", // Only value is added
"ui_label": "Save Name",
"ui_group": "basic",
"weight": 30
},
{
// OS-specific argument
"flag": "-logFile",
"value": "./server.log",
"required": false,
"requires_value": true,
"description": "Log file path (Linux only example)",
"type": "string",
"ui_label": "Log File",
"ui_group": "basic",
"weight": 40,
"os": "linux" // Only included on Linux
}
],
"network": [
{
"flag": "-port",
"value": "2456",
"required": true,
"requires_value": true,
"description": "Game port",
"type": "int",
"ui_label": "Port",
"ui_group": "network",
"weight": 100
}
],
"advanced": [
{
"flag": "--maxPlayers",
"value": "16",
"required": false,
"requires_value": true,
"description": "Maximum players",
"type": "int",
"ui_label": "Max Players",
"ui_group": "advanced",
"weight": 200,
"min": 1, // Currently unused by backend (planned for UI)
"max": 64
},
{
// Example of a disabled arg (completely skipped)
"flag": "--someOldOption",
"value": "",
"required": false,
"requires_value": false,
"description": "Old option no longer used",
"type": "bool",
"ui_label": "Old Option",
"ui_group": "advanced",
"weight": 300,
"disabled": true
}
]
},
// Exposed Config Files
// Documentation: https://github.com/SteamServerUI/runfiles/wiki/Exposed-files
"files": [
{
"filename": "serverconfig.ini",
"filepath": "./config/serverconfig.ini",
"type": "ini", // json, ini, xml, yaml, or text
"description": "Main server configuration file"
},
{
"filename": "settings.json",
"filepath": "./settings.json",
"type": "json",
"description": "Additional game settings"
}
]
}Save as: runMyGame.ssui (replace MyGame with your game's identifier) Remove all // comments and this bottom comment before use!