Class ServerConfig
- Namespace
- McServerLauncher.Models
- Assembly
- McServerLauncher.dll
Persisted data of a Minecraft server registered in the application. Stored in %APPDATA%\McServerLauncher\servers.json.
public class ServerConfig
- Inheritance
-
ServerConfig
- Inherited Members
Properties
BackupRetention
How many backups to keep; older ones are deleted after each new one.
public int BackupRetention { get; set; }
Property Value
BackupsEnabled
Whether a zip backup of the world is made before starting and after an explicit stop.
public bool BackupsEnabled { get; set; }
Property Value
BedrockModContentEnabled
Whether Hydraulic is installed, so Bedrock players see what the mods add.
public bool BedrockModContentEnabled { get; set; }
Property Value
Remarks
Separate from CrossplayEnabled because it answers a different question. Geyser gets Bedrock players in; without this they arrive to a world whose modded blocks and items they cannot see. Fabric only — see HydraulicService.
BedrockPort
The local UDP port Geyser listens on. 0 until crossplay is set up.
public int BedrockPort { get; set; }
Property Value
Remarks
UDP, and a different namespace from the Java port: this one can be 19132 while some other program holds TCP 19132, and vice versa.
CrossplayEnabled
Whether Bedrock players (phone, console, Windows 10/11) can join this server too.
public bool CrossplayEnabled { get; set; }
Property Value
Remarks
Remembered rather than set up once and forgotten, because it is not a one-off action: it needs a second tunnel to keep existing, and Geyser has to keep advertising that tunnel's public port. Both can drift, and only something that knows the server is meant to be crossplay can put them back.
ExtraJvmArgs
Extra JVM arguments (optional, e.g. GC flags).
public string ExtraJvmArgs { get; set; }
Property Value
FolderPath
Server root folder (where the .jar and server.properties live).
public string FolderPath { get; set; }
Property Value
ForgeArgs
Modern Forge (1.17+) and every NeoForge build have no runnable jar; they are launched via an
args file under libraries/<loader-root>/<id>/{win,unix}_args.txt. When this
holds that id — "1.20.1-47.2.0" for Forge, "21.1.248" for NeoForge — the launcher uses the
args file instead of "-jar". Empty means the classic "-jar JarFile" launch (Vanilla, Fabric,
old Forge ≤1.16.5).
The name stays ForgeArgs even though it now covers both: it is the key in every
existing servers.json, and renaming it would leave installed Forge servers unable to start.
public string ForgeArgs { get; set; }
Property Value
GameVersion
Minecraft game version (e.g. 1.20.1).
public string GameVersion { get; set; }
Property Value
Id
Stable identifier (so we don't depend on the name, which may change).
public string Id { get; set; }
Property Value
IdleShutdownMinutes
Minutes with nobody connected before the server stops itself. 0 means never.
public int IdleShutdownMinutes { get; set; }
Property Value
Remarks
Zero is the default so no existing server changes behaviour on update: a server that used to stay up forever keeps doing exactly that until its owner asks for something else.
JarFile
Server .jar file name (relative to the folder). Defaults to server.jar.
public string JarFile { get; set; }
Property Value
JarFullPath
Full path to the .jar combining folder + jar name.
[JsonIgnore]
public string JarFullPath { get; }
Property Value
JavaPath
Path to the Java executable. "java" uses the one on the PATH.
public string JavaPath { get; set; }
Property Value
MaxRamGb
Maximum memory in GB (-Xmx). Same default the create dialog suggests.
public int MaxRamGb { get; set; }
Property Value
MinRamGb
Minimum memory in GB (-Xms). Same default the create dialog suggests.
public int MinRamGb { get; set; }
Property Value
ModLoaderVersion
Version of the mod loader (e.g. 0.16.2 for Fabric).
public string ModLoaderVersion { get; set; }
Property Value
MultiVersionEnabled
Whether ViaVersion and ViaBackwards are installed, for joining from other versions.
public bool MultiVersionEnabled { get; set; }
Property Value
Remarks
Separate from CrossplayEnabled on purpose. Geyser does not need these to work, and a Java-only server benefits from them just as much: they are about which Minecraft versions may connect, not which edition.
Name
Display name of the server (e.g. "Survival", "Modded").
public string Name { get; set; }
Property Value
Notifications
Per-server notification override, used only when UseCustomNotifications.
public NotificationSettings? Notifications { get; set; }
Property Value
PlayitEnabled
Whether the Playit.gg integration is enabled for this server.
public bool PlayitEnabled { get; set; }
Property Value
PropertiesPath
Path to server.properties inside the server folder.
[JsonIgnore]
public string PropertiesPath { get; }
Property Value
TunnelAddress
Public tunnel address for this server. It is detected automatically when running playit, but it can also be typed/pasted by hand and is kept saved.
public string? TunnelAddress { get; set; }
Property Value
Type
Type of the server (Vanilla, Fabric, Forge, Paper, NeoForge).
public ServerType Type { get; set; }
Property Value
UseCustomNotifications
When true, this server uses its own Notifications instead of the global notification settings. When false (default), the global settings apply.
public bool UseCustomNotifications { get; set; }
Property Value
WakeOnDemand
While stopped, answer on the server's port so that someone trying to join starts it.
public bool WakeOnDemand { get; set; }
Property Value
Remarks
Off by default: it opens a listening socket, and nobody should end up with one without having asked. Pairs with IdleShutdownMinutes — sleep when empty, wake on demand — but each half works on its own.