Eigenen Server betreiben
Ballerspiel bringt einen Dedicated Server für Windows und Linux mit. Er braucht keine Grafikkarte und niemanden am Rechner. Der Download folgt zum Start.
So finden Spieler ihn. Die Online-Liste im Spiel zeigt unsere offiziellen
Server. Deinen eigenen Server erreichen Spieler über seine Adresse: im
Mehrspieler-Menü den Reiter LAN öffnen, die Adresse eintippen (zum Beispiel
203.0.113.5:7777) und Verbinden drücken. Im selben lokalen Netz erscheint
der Server auch von selbst in der LAN-Liste.
Starten
Linux:
./BallernServer Ballern -log -port=7777 -ServerConfig=/pfad/zu/server.json
Windows:
BallernServer.exe Ballern -log -port=7777 -ServerConfig=C:\Ballern\server.json
| Schalter | Bedeutung |
|---|---|
-port=7777 |
Spielport (UDP) - in der Firewall freigeben |
-ServerConfig=<Datei> |
die Konfiguration unten |
-saveddirsuffix=<name> |
eigener Ordner für Logs, Sperren und Spielstände - nötig für mehrere Server auf einem Rechner (jeder mit eigenen Ports) |
-nosteam -lan |
nur LAN: ohne Internet, erscheint im LAN-Reiter jedes Spielers |
-log |
Logdatei schreiben |
Konfiguration
Eine JSON-Datei legt Name, Plätze, Bots, Kartenrotation, Beute und Admins
fest. Das Beispiel erklärt jede Einstellung direkt in der Datei (Schlüssel mit
_ am Anfang sind Kommentare - der Server ignoriert sie, sie dürfen bleiben;
die Erklärungen sind englisch):
BallernServer.example.json herunterladen
Ohne Konfiguration oder mit einer kaputten startet der Server trotzdem: jedes
Match ganz zufällig, keine Admins, und das Log sagt, was falsch war
([Dedicated] ConfigError ...).
Im Spiel
Admins (in der Konfiguration mit SteamID64 oder EOS:<id> eingetragen)
moderieren per Chat: /kick, /ban, /unban, /banlist, /mute, /unmute,
/map, /nextmap, /setbots, /addbot, /removebot. Spieler können
abstimmen: /votemap, /votenext, /votekick, /voteban (Kick- und
Bann-Abstimmungen nur, solange kein Admin online ist). /help zeigt alles.
Die Beispieldatei
{
"_help": [
"Ballerspiel dedicated server - example configuration with explanations.",
"Start: BallernServer Ballern -log -port=7777 -ServerConfig=/path/to/this.json",
"Keys starting with '_' are explanations; the server ignores them, so you can keep them.",
"Everything not set falls back to a sensible default; a missing or broken file starts the server",
"with a fully random rotation and no admins (the log says why: '[Dedicated] ConfigError ...').",
"Several servers on one machine: give each its own -port and -saveddirsuffix=<name>",
"(own logs, bot roster, ban list and skill saves)."
],
"ConfigVersion": 1,
"ServerName": "My Ballerspiel Server",
"_help_ServerName": "Shown in the in-game server browser.",
"SteamAdvertise": true,
"_help_SteamAdvertise": "true: list the server in the online server browser (Steam master server; with -BallernOnline=EOS an EOS session). false: reachable by IP only.",
"Lan": false,
"_help_Lan": "true: announce a LAN session instead - visible in every player's LAN tab, no login and no internet needed. Same as -lan on the command line (use together with -nosteam).",
"MaxPlayers": 64,
"_help_MaxPlayers": "Human player slots, 1-64 (default 64). Bots never take one of these slots.",
"BotCount": 6,
"_help_BotCount": "Bots per match for every rotation entry that does not set its own. Omit it to keep the game's default. Capped by the server's bot limit (64).",
"HumanVsAI": false,
"_help_HumanVsAI": "true: in team modes (TM, CTF, BB) all humans play together against the bots. Also applies to /map and /votemap.",
"Loot": {
"_help": [
"Optional: change what loot crates contain. Only list what differs from the game's defaults.",
"Crates: per crate, per content: a weight (0 = never, higher = more often).",
"Mix: how often each crate type appears on the spawn points (default: the three standard crates, equally often).",
"Crate types: BP_AllCrate, BP_WeaponAmmoCrate, BP_HealArmorBuffCrate, BP_AmmoCrate, BP_ArmorCrate, BP_BuffCrate, BP_HealCrate, BP_WeaponCrate.",
"This block applies to all rotation entries; an entry with its own Loot block replaces it for that match."
],
"Crates": {
"BP_AllCrate": { "BP_AtomicBombCannon": 0 }
},
"Mix": {
"BP_AllCrate": 1, "BP_WeaponAmmoCrate": 1, "BP_HealArmorBuffCrate": 1, "BP_BuffCrate": 1
}
},
"Rotation": [
{ "_help": "One match: Map, GameMode and MatchTimeSeconds. Weather and Daytime are optional - left out, they are random every time.",
"Map": "ZoneZero", "GameMode": "BR", "MatchTimeSeconds": 480, "BotCount": 14 },
{ "_help": "Ballerball on City at night in the rain, with its own bot count.",
"Map": "City", "GameMode": "BB", "MatchTimeSeconds": 300, "Weather": "rain", "Daytime": "night", "BotCount": 8 },
{ "_help": "Clown-Off on Carnival; weather and daytime random.",
"Map": "Carnival", "GameMode": "CO", "MatchTimeSeconds": 300 },
{ "_help": "Humans against bots for this match only.",
"Map": "Camp", "GameMode": "CTF", "MatchTimeSeconds": 420, "HumanVsAI": true, "BotCount": 10 },
{ "_help": "No atomic bombs on the small map: this entry's Loot block replaces the global one.",
"Map": "Stores", "GameMode": "FFA", "MatchTimeSeconds": 300, "Daytime": "apocalypse",
"Loot": { "Crates": { "BP_AllCrate": { "BP_AtomicBombCannon": 0 }, "BP_WeaponCrate": { "BP_AtomicBombCannon": 0 } } } },
{ "_help": "Leave out Map and/or GameMode and the server picks them at random for this slot.",
"MatchTimeSeconds": 300 }
],
"_help_Rotation": [
"Played top to bottom, then from the start again. An empty or missing list = every match fully random (300 s).",
"Maps: Ballertopia, Camp, Carnival, City, Motel, Stores, Village, ZoneZero.",
"GameMode: FFA (free-for-all), TM (team deathmatch), CTF (capture the flag), BR (battle royale), BB (Ballerball), CO (Clown-Off). Every mode works on every map.",
"Weather: clear, cloudy, fog, rain. Daytime: morning, noon, afternoon, evening, night, apocalypse.",
"MatchTimeSeconds: length of a match; 0 or missing = 300."
],
"Admins": [
{ "UniqueId": "76561197960287930", "Comment": "Steam player: the SteamID64 (17 digits)" },
{ "UniqueId": "EOS:0002aeeb5b2d4388b9a2e3c4d5e6f701", "Comment": "Epic/GOG player: EOS: plus the Product User ID" }
],
"_help_Admins": [
"Admins can use these chat commands (type /help in the game to see them):",
"/kick <player>, /ban <player>, /unban <name|id>, /banlist, /mute <player>, /unmute <player>",
"/map [map] [mode] [weather] [daytime], /nextmap, /no (cancels a running vote)",
"/setbots <n>, /addbot [n|name], /removebot [name], /resetbot <name>, /deletebot <name>",
"Everybody: /help, /maplist, /kill, /stuck, /votemap, /votenext, /votekick, /voteban (votes only while no admin is online), F1 = yes, F2 = no.",
"Bans and mutes are stored on the server and last until an admin lifts them. The two IDs above are examples - replace them."
]
}