Einen dedizierten WoP-Server erstellen

Dieses Tutorial zeigt dir, wie du einen dedizierten Server für World of Padman erstellst und alles, was du über eine grundlegende Einrichtung, notwendige Dateien, nützliche Befehle und Variablen wissen musst. Dieses Tutorial ist vielleicht etwas umfangreicher, als du es sonst gewohnt bist.

Allgemeine Informationen über Server

Zunächst einmal richtet sich dieses Tutorial an dedizierte Server, daher der Titel des Dokuments. Der Unterschied zwischen einem lokalen Server, d.h. wenn du ein Spiel von deinem lokalen Computer aus hostest, und einem dedizierten Server, d.h. wenn du einen Server mietest, der 24/7 läuft, ist enorm. Ich werde nicht ins Detail gehen, aber du solltest wissen, dass es besser ist, wenn du ein kurzes Spiel mit deinen Freunden haben möchtest, dies mit den Optionen im Spiel zu tun, die WoP dir anbietet, oder einen leeren Server zu finden.

Immer noch hier? Dann herzlich willkommen, zukünftiger Server-Administrator, du hast eine große Verantwortung. Aber mach dir keine Sorgen, wenn du diesem Tutorial folgst, wird es keine Probleme geben. Falls es nach dem Lesen immer noch Probleme gibt, dann frag mich. Ich gehe davon aus, dass du weißt, wie du auf deinen Server zugreifen kannst, da ich diese Grundlagen in diesem Tutorial nicht behandeln werde.

Hardware

Bevor wir nun tatsächlich beginnen können, ein paar letzte Worte zur Hardware, die dein Server haben sollte. Das absolute Minimum zum Betrieb eines dedizierten Servers ist eine 500 MHz CPU, 256 MB RAM und etwa 1,5 GB freier Speicherplatz für die Standardinstallation von World of Padman. Je nachdem, ob du Bots verwenden möchtest, solltest du eine schnellere CPU verwenden. Wenn du mehr Clients bedienen möchtest, wird dein Server mehr Bandbreite benötigen. Tatsächlich brauchst du dir über die Bandbreite keine Sorgen zu machen, da die meisten aktuellen Server mit einer 1000 MBit-Verbindung ausgestattet sind, was wirklich genug ist, um einen WoP-Server zu betreiben.

Ich bitte um die Einhaltung dieser Anforderungen. Es gibt bereits mehr Server als Spieler, wir brauchen also keinen weiteren Server, der ständig leer ist. Wenn du willst, dass dein Server gut ankommt, nimm dir etwas Zeit, um ihn richtig zu konfigurieren und achte auch darauf, wie sich die Spieler verhalten. Installiere die neuesten Patches für das Spiel und füge vielleicht sogar einige gute benutzerdefinierte Maps hinzu.

Grundlegende Einrichtung

Erforderliche Dateien

Du benötigst eine Basisinstallation von WoP, d.h. die PK3-Dateien, die plattformunabhängig sind, die ausführbare Serverdatei für dein Betriebssystem und eine Konfigurationsdatei, die wir im Laufe dieses Tutorials erstellen werden. Die PK3-Dateien und die ausführbare Datei können von der WoP-Download-Seite oder vom Paketmanager deines Betriebssystems bezogen werden. Bitte vergiss nicht, den neuesten Patch zu installieren.

Ich empfehle dir, ein Startskript für den Server zu erstellen. Mit einem Startskript kannst du deinen Server mit Cron-Jobs oder was immer du möchtest einfach neu starten. Im weiteren Verlauf des Tutorials gehe ich davon aus, dass du eine Linux-Distribution verwendest und dass du das Spiel in /usr/local/games/WoP installiert hast. Natürlich kannst du es in jeden beliebigen Ordner installieren, aber vergiss nicht, den Pfad aus den Beispielen, die ich gebe, anzupassen.

Kommandozeilenparameter

Kommen wir zum Startskript. Du kannst fast jeden Befehl, den du im Spiel erteilen würdest, an die ausführbare Serverdatei übergeben. Bitte achte besonders darauf, da dies dein Leben viel einfacher machen wird. Ich werde dir nun ein Beispielskript zeigen, die Erklärungen folgen später.

#!/bin/sh

cd /usr/local/games/WoP
./wopded.i386 +set dedicated 1 +set net_port 27961 +set com_hunkMegs 256 +exec server_settings.cfg

In diesem Beispiel starte ich einen reinen LAN-Server, der auf Port 27960 (UDP) lauscht, 256 MB RAM verwendet und die Befehle in server_settings.cfg ausführt. Wie du sehen kannst, setze ich bestimmte Variablen mit +set und lade dann eine Konfigurationsdatei mit +exec. Die allgemeine Syntax zur Ausgabe eines Befehls als Parameter an die ausführbare Serverdatei lautet +Kommando. Machen dir keine Sorgen, wenn du nicht weißt, woher all diese Befehle und Variablen kommen, ich werde sie im nächsten Abschnitt erklären.

Variablen setzen

Bevor alle Variablen erklärt werden, soll zunächst erklärt werden, wie sie gesetzt werden. Es gibt verschiedene Möglichkeiten, dies zu tun. Wie du gesehen hast, kannst du Variablen per Kommandozeile setzen. Dies wird nur für Variablen verwendet, die schreibgeschützt sind und nur beim Start des Servers gesetzt werden können. Jetzt wird dir vielleicht verständlich, warum wir den Port und die Größe des Speichers beim Start des Servers setzen. Beides kann nicht geändert werden, während der Server läuft. Wenn du möchtest, dass dein Server auf einem anderen Port lauscht, musst du ihn zuerst herunterfahren und dann mit dem neuen Port neu starten.

Die grundlegende Syntax zum Festlegen einer Variablen ist einfach set Variable Wert. Ein Beispiel wäre set g_gametype 0. Sei dir bewusst, dass du versehentlich nicht existierende Variablen setzen kannst, wenn du ihren Namen falsch eingibst! Wenn du eine Variable auf einen Wert setzen willst, der aus zwei oder mehr Teilen besteht, benutze Anführungszeichen für den Wert, d.h. setze Variable „bla1 bla2“.

Du kannst diese Funktion bewusst nutzen, um den Spielern weitere Informationen zur Verfügung zu stellen. Wenn du set verwendest, um eine nicht vorhandene Variable zu setzen, wird sie in der Konsole deines Servers angezeigt, aber nicht den Spielern. Um neue Variablen zu setzen, die für die Spieler sichtbar sind, verwende sets. Ich bitte dich, dies zu tun und einige Informationen über deinen Server wie im folgenden Beispiel anzugeben.

sets ".Admin" "ENTE himself"
sets ".Location" "Germany"
sets ".Email" "nobody@web.net"
sets ".IRC" "padman@qnet"

Ich habe mich dafür entschieden, den Variablennamen ein „.“ voranzustellen, damit man leicht zwischen realen Variablen und solchen, die als Zusatzinformation gedacht sind, unterscheiden kann. Diese Variablen werden im Spiel nicht angezeigt, können aber in fortgeschrittenen Server-Browsern gesehen werden.

Nun, da du jetzt weißt, wie man Variablen setzt, wollen wir sehen, wie wir diesen Befehl und andere in einer Konfigurationsdatei verwenden können, die alle Einstellungen für unseren Server enthält.

Konfigurationsdatei

Die Konfigurationsdatei, oder kurz die Config, ist die Datei, die alle Einstellungen für deinen Server enthält. Sie tut nichts anderes, als alle Befehle auszuführen, die du in sie schreibst. Das heißt, du könntest den Spielmodus auch jedes Mal über die Konsole deines Servers einstellen, aber die Konfigurationsdatei wird diese Aufgabe für dich vereinfachen.

Du kannst und solltest Kommentare zu deiner Config hinzufügen, die die Einstellungen erklären und weitere Informationen für dich enthalten. Kommentare beginnen mit //. Jede Zeile, die mit // beginnt, wird von WoP ignoriert. Ich zeige dir nun ein Beispiel einer Config, die als separate Textdatei gespeichert würde, die du dann über das Startskript des Servers in deinen Server einspeist.

// Simple sample configuration file for a WoP server
set sv_hostname "My First WoP Server"
set sv_maxclients "10"
set pointlimit "200"
set timelimit "20"
set g_gametype "3"
set rconpassword "mysupersecretpass"
set g_log "wop_server.log"

map wop_cabin

Wie du sehen kannst, setzen wir die Variablen einfach auf bestimmte Werte. Die meisten Variablen haben sprechende Namen. Am Ende der Datei laden wir eine Map, um die Dinge in Gang zu bringen.

In diesem einfachen Beispiel sind eine einzige Map und ein einziger Spielmodus für Testzwecke gut genug. Auf deinem Server solltest du rotierende Spielmodi und Maps haben, was ich im nächsten Abschnitt erläutern werde.

Map- und Spielmodus-Rotation

Ein Spielmodus- oder eine Map-Rotation ist nichts anderes als das Setzen der Spielmodus-Variablen und das Laden einer Map. Beides sind Befehle, die du bereits kennst. WoP hat eine Variable namens nextmap, die ausgeführt wird, wenn eine Runde beendet ist. Du hast richtig gehört, du kannst auch Variablen ausführen. Das heißt, du weist einer Variable einen Befehl zu und führst dann diesen Befehl aus. Das ist genau das, was wir jetzt für unsere Rotation tun werden. Ich zeige dir jetzt noch einmal eine Beispielrotation, die du kopieren und in deine Konfiguration einfügen kannst.

// Map rotation
set m1 "map wop_backyard; set next_map vstr m2"
set m2 "map wop_diner; set next_map vstr m3"
set m3 "map wop_cabin; set next_map vstr m4"
set m4 "map wop_trashmap; set next_map vstr m5"
set m5 "map wop_padgarden; set next_map vstr m6"
set m6 "map wop_padkitchen; set next_map vstr m7"
set m7 "map wop_padlibrary; set next_map vstr m8"
set m8 "map wop_padship; set next_map vstr m9"
set m9 "map wop_padattic; set next_map vstr m10"
set m10 "map wop_huette; set next_map vstr m11"
set m11 "map wop_bath; set next_map vstr m12"
set m12 "map wop_jail; set next_map vstr m1"

// Game type rotation
set g1 "pointlimit 20; g_gametype 0; set next_gametype vstr g2" // FFA
set g2 "pointlimit 3; g_gametype 4; set next_gametype vstr g3" // LPS
set g3 "pointlimit 30; g_gametype 5; set next_gametype vstr g1" // FFA Team

// Set initial values
set next_map "vstr m1"
set next_gametype "vstr g1"

// Modifying nextmap
set nextmap "vstr execnextmap"
set execnextmap "vstr next_gametype; vstr next_map; set nextmap vstr execnextmap"

// Load first map
vstr nextmap

Ich habe ein paar Kommentare hinzugefügt, um zu erklären, was hier vor sich geht. Zunächst einmal setzen wir eine ganze Reihe von neuen Variablen, d.h. m1, m2, m3 und so weiter. Dies ist eine Liste von Maps, die wir verwenden werden. Du kannst deine Variablen benennen, wie du willst, z.B. map_eins, map_zwei, map_drei und so weiter würde auch funktionieren. Jede Variable ist eigentlich ein Befehl, der eine Map lädt und next_map auf die nächste Map in unserem Array setzt. Die Spielmodus-Rotation funktioniert analog. Beachte dabei, dass die letzte die erste wieder laden wird, andernfalls würde die Rotation bei der letzten Map oder dem letzten Spielmodus stoppen. Wie du sehen kannst, kann man mehrere Befehle zu einem kombinieren. Füge sie einfach mit „;“ zusammen.

Nun zum interessanten Teil. Ich habe eine neue Variable namens execnextmap definiert, die den nächsten Spielmodus und die nächste Map lädt und dann wieder nextmap setzt. Wie du sehen kannst, habe ich einen neuen Befehl namens vstr verwendet. Dieser Befehl führt den Inhalt einer Variablen aus, als ob es sich um einen Befehl handeln würde, den du tatsächlich eingegeben hast. Das abschließende vstr dient einfach dazu, die erste Map des Arrays zu laden, ähnlich wie map wop_cabin in unserer Config ohne Rotation.

Fühl dich frei, weitere Maps zu dieser Vorlage hinzuzufügen. Du kannst auch das Punktelimit je nach Spielmodus ändern. Eine weitere verrückte Sache, die du tun kannst, ist, den aktuellen Spielmodus in den Namen deines Servers aufzunehmen. Dazu musst du natürlich zuerst wissen, welche Variable du setzen musst.

Steuerung des Servers

Wie ich bereits in der Einleitung erwähnt habe, gehe ich davon aus, dass du weißt, wie du auf deinen Server zugreifen kannst. Jedes Mal, wenn ich die Konsole des Servers erwähnte, meinte ich die Konsole von WoP, nicht die Shell deines Betriebssystems. Natürlich kannst du jedes Mal, wenn du eine Einstellung ändern möchtest, eine SSH- oder VNC-Verbindung zu deinem Server herstellen, aber es gibt einfachere Möglichkeiten, dies zu tun. Ich werde nun darauf eingehen, wie man die In-Game-Optionen von WoP verwendet, um rcon, das ist die Abkürzung für remote control, auszuführen. Wenn du WoP nicht jedes Mal starten möchtest, empfehle ich dir, einen Server-Browser wie XQF zu verwenden, der über eingebaute rcon-Unterstützung verfügt, so dass du WoP gar nicht erst installieren musst.

Rcon

Die Verwendung von rcon ist sehr einfach. Tatsächlich brauchst du nur allen deinen Administrationskommandos rcon, d.h. rcon Kommando, voranzustellen. Aber hey, bevor du das tun kannst, musst du zuerst ein Passwort für rcon auf deinem Server festlegen. Wähle dazu ein starkes Passwort, in Zeiten von Brute-Force-Angriffen bist du immer in Gefahr. So ersetze bitte „mysupersecretpass“ durch dein eigenes, starkes Passwort.

Eigentlich ist dies ein Vorgriff auf den nächsten Abschnitt. Füge in deiner Config eine Zeile wie die folgende ein, um das rcon-Passwort auf deinem Server zu setzen.

set rconpassword "mysupersecretpass"

Verliere dieses Passwort nicht und gib es niemandem! Was du als nächstes tun musst, ist, dieses Passwort client-seitig festzulegen. Du kannst auch rcon mit dem rcon Passwort-Befehl verwenden, aber da du ein starkes Passwort verwendest, wäre es ziemlich mühsam, die ganze Zeit dein Passwort zu schreiben.

Für den Moment starte WoP auf dem Computer, den du für rcon verwenden möchtest. Öffne im Spiel die Konsole mit Shift+Esc. Gib in der Spielkonsole den folgenden Befehl ein, der dein rcon-Passwort client-seitig setzt und in der Config deines Clients speichert.

seta rconPassword "mysupersecretpass"

Jetzt kannst du dich mit deinem Server verbinden und ihn vom Spiel aus steuern. Für den Fall, dass dein Server voll ist und du dich deshalb nicht mit ihm verbinden kannst, gibt es eine weitere Möglichkeit, die du nutzen kannst. Verwende diesen Befehl, um deinen Server aus WoP heraus zu administrieren, ohne dich mit ihm zu verbinden.

set rconAddress 192.169.100.3:27060

Natürlich musst du die IP und den Port deines Servers verwenden. Obwohl das Setzen von Variablen das wichtigste Kommando ist, benötigst du auch andere Befehle, die im nächsten Abschnitt erklärt werden.

Kommandos

Du kennst bereits einige Kommandos, diese sind set, exec, sets, map und vstr. Ich gebe dir nun eine Liste der gebräuchlichen Kommandos und ihre Erklärungen. Bitte beachte, dass dies nicht alle möglichen Kommandos sind. Um eine Liste aller auf deinem WoP-Server verfügbaren Kommandos zu erhalten, benutze das Kommando cmdlist, das dann eine Liste der Kommandos ohne ihre Funktionen ausgibt. Wenn du direkt auf deinem Server arbeitest, kannst du die Autovervollständigungsfunktion der Konsole im Spiel benutzen. Gib einfach die ersten Buchstaben eines Kommandos oder einer Variable ein, drücke die Tabulatortaste und das Spiel zeigt dir entweder einige Möglichkeiten an oder vervollständigt den Namen automatisch, wenn es nur eine Möglichkeit gibt.

set Variable Wert

Setzt eine Variable auf einen bestimmten Wert. Beachte, dass einige Variablen schreibgeschützt sind oder nur beim Start gesetzt werden können. Für einige Variablen musst du eine neue Map laden.

sets Variable Wert

Setzt eine Variable, die in einem Server-Browser angezeigt wird. Wird für zusätzliche Informationen über deinen Server verwendet.

status

Zeigt eine Liste mit verschiedenen Informationen über jeden Spieler auf dem Server, einschließlich Bots.

kick Benutzername

Wirft den Benutzer mit dem angegebenen Namen raus. Du brauchst dich nicht um bunte Namen oder Großbuchstaben zu kümmern. Du kannst auch die Benutzernummer des Spielers verwenden, die durch das Kommando status angezeigt wird. Außerdem kannst du über kick all alle Benutzer raus werfen, aber ich empfehle dies nicht. Fahre lieber den Server als Ganzes herunter. Außerdem kannst du über kick allbots alle Bots entfernen.

kicknum Benutzernummer

Wirft den Spieler mit der angegebenen Benutzernummer raus. Die Benutzernummer kann über das Kommando status angezeigt werden.

map Mapname

Lädt die Map mit dem angegebenen Namen. Der aktuelle Spielmodus wird beibehalten.

map_restart

Lädt die aktuelle Map neu und behält den Spieltyp bei.

addbot Botname Botskill Team Joindelay Funname

Fügt den Bot mit dem Charakter des gegebenen Botnamens, dem Botskill, des Teams nach einer Verzögerung (Joindelay) hinzu. Funname setzt den Standard-Botnamen des Bots außer Kraft.

exec Konfigurationsdatei

Führt die angegebene Konfigurationsdatei aus. Alle Kommandos und Variablen dieser Datei werden verwendet und überschreiben die aktuellen. Du kannst dieses Kommando benutzen, um die Variablen eines Mods von den Einstellungen deines Servers zu trennen. Erstelle einfach eine einzelne Config, z.B. meinmod.cfg, die du mit exec meinmod.cfg innerhalb deiner Haupt-Config lädst.

addIP ipmask

Da die Kommandos banUser und banClient in WoP deaktiviert sind, musst du IPs verwenden, um Spieler von deinem Server zu sperren. ipmask ist die IP des Spielers, den du sperren möchtest, die du über das Kommando status erhalten kannst. Du kannst auch Wildcards verwenden, z.B. addIP 192.246.40.*.

removeIP ipmask

Dieses Kommando entfernt einfach eine ipmask, die du mit addIP hinzugefügt hast. Du musst denselben Namen verwenden, den du eingegeben hast, d.h. du kannst 192.246.40.1 nicht entfernen, wenn du 192.246.40.* hinzugefügt hast.

listIP

Zeigt den Inhalt von g_banIPs, d.h. die verbotenen IPs, die du hinzugefügt hast.

forceteam SpielerID Team

Zwingt den gegebenen Spieler in eine Mannschaft. Entweder Spielername oder ID verwenden. Das Team kann „red“/“r“, „blue“/“b“, „spectator“/“s“ oder „free“/“f“ sein.

setgametype SpielmodusZeichenfolge

Dies ist eine Alternative zu /set g_gametype. Du kannst die Zeichenfolge des Spielmodus eingeben, z.B. set gametype syc team.

vstr Variable

Führt den Wert einer Variablen so aus, als ob es sich um ein von dir eingegebenes Kommando handeln würde. Wird für Spielmodus- und Map-Rotation verwendet.

Variablen

Und nun zu den Variablen, über die wir gesprochen haben. Da es so viele von ihnen gibt, ist dieses Kapitel in Abschnitte unterteilt. Du solltest set verwenden, um Variablen zu setzen. Verwende die Autovervollständigungsfunktion der Spielkonsole oder das Kommando cvarlist, um eine Liste aller Variablen auszugeben. Die meisten der von dir benötigten Variablen werden in den Beispielkonfigurationen verwendet, die bereits deiner WoP-Installation beiliegen. Sie befinden sich in /usr/local/games/WoP/wop.

Wenn du eine Mod verwendest, musst du möglicherweise noch mehr Variablen setzen. Diese sind normalerweise in der Readme-Datei des Mods dokumentiert.

Gameplay

pointlimit

Legt das Punktelimit für das aktuelle Spiel fest. Du solltest dies innerhalb deiner Map-Rotation je nach Spieltyp ändern. Wenn es auf 0 gesetzt wird, gibt es kein Limit und die Runden werden nur durch ein Zeitlimit begrenzt. Wenn du das Punkt- und Zeitlimit auf 0 setzt, solltest du Abstimmungen ermöglichen, damit die Spieler die Map selbst ändern können.

g_friendlyFire

Definiert, ob du deinen Teamkameraden schaden kannst oder nicht. Lass es besser aus (auf 0 setzen), da WoP eher ein unterhaltsames Spiel ist und die meisten Spieler nicht wirklich zu echtem Teamplay fähig sind.

g_LPS_startlives

Legt die Anzahl der Leben fest, mit denen der Spielmodus Last Pad Standing begonnen werden soll.

g_LPS_flags

Dies definiert einige der Spielregeln für Last Pad Standing. Addiere eine oder mehrere der folgenden Werte, z.B. für mehrere Punkte und keine Pfeile, setze 2+4, also 6.

  • 1 für Punktlimit: Eine Runde ist beendet, nachdem ein Spieler das Spiel so oft gewonnen hat, wie durch pointlimit vorgegeben. Deshalb pointlimit und g_LPS_startlives auf die richtigen Werte setzen.
  • 2 für mehrere Punkte: Jeder bekommt (g_LPS_startlives – [Spieler mit verbleibenden Leben] + 1) Leben. So können Spieler während des Spiels beitreten.
  • 4 für keine Namen: Zeigt die LPS-Pfeile im Spiel nicht an. Verwechsele dies nicht mit der Client-Einstellung für die Pfeile.
g_gametype

Legt den Spielmodus fest, der gerade gespielt wird. Wahrscheinlich möchtest du dies mit Hilfe der Map-Rotation ändern.

  • 0 für ffa: Free For All
  • 1 für tourney: Tournament
  • 2 für single: Singleplayer (not used)
  • 3 für syc: Spray Your Color
  • 4 für lps: Last Pad Standing
  • 5 für ffa: Free For All Team
  • 6 für ctl: Capture The Lolly
  • 7 für syc_tp: Spray Your Color Team
  • 8 für bb: Big Balloon
g_allowvote

Wenn der Wert auf 1 gesetzt wird, können die Spieler abstimmen. Sei dir bewusst, dass dies manchmal das Wählen für nicht existierende Spielmodi oder Maps beinhaltet, das Kicken von ahnungslosen PadPlayern, das Vote-Spammen im Allgemeinen und sogar deine sorgfältig geplante Map-Rotation zunichte machen könnte.

g_doWarmup, g_warmupReady, g_warmup

Definiert, ob das Aufwärmen durchgeführt werden soll (setze g_doWarmup auf 1), wie viele Prozent der Spieler bereit sein müssen, damit das Spiel beginnen kann (setze g_warmupReady auf einen Dezimalwert zwischen 0 und 1), wie lange die Aufwärmphase dauern soll (setze g_warmup in Sekunden).

g_knockback

Legt fest, wie starke Spieler zurückgestoßen werden sollen, wenn sie Schaden nehmen. Der Standardwert ist 1000.

g_teamAutoJoin, g_teamForceBalance

Definiert, ob Spieler automatisch einem Team beitreten, sobald sie verbunden sind (setze g_teamAutoJoin auf 1). Beachte, dass die Spieler auch bei neuen Spielen in ihrer Mannschaft bleiben. Wenn g_teamForceBalance auf 1 gesetzt ist, kann man einem Team nicht beitreten, wenn es mehr Spieler als das andere Team hat. Du solltest wirklich in Betracht ziehen, diese beiden Variablen zu setzen, um ein faires und ausgeglichenes Teamplay auf deinem Server zu haben.

g_weaponRespawn, g_weaponTeamRespawn

Setze g_weaponRespawn in Sekunden, um die Zeit zu definieren, bis Waffen nach dem Aufnehmen wieder neu gespawned werden. Verwende g_weaponTeamRespawn, um eine separate Zeit in Sekunden für teamorientierte Spielmodi zu definieren, die normalerweise höher sein sollte als die für Free For All.

g_speed

Damit wird definiert, wie schnell die Spieler laufen können. Der Standardwert seit WoP 1.5 ist 280, davor betrug er 320. Stelle diesen Wert nicht zu hoch ein, da er das Spiel unspielbar macht.

g_gravity

Diese definiert, wie stark der Spieler vom Boden angezogen wird. Je höher der Wert, desto stärker die Schwerkraft. Der Standardwert ist 800.

g_quadfactor

Dies definiert die Höhe des Schadens, den ein Spieler mit dem PadPower-Powerup anrichten kann. Ein Wert größer als eins bewirkt, dass der Spieler mehr Schaden austeilt.

g_forceSpawn

Dies kann entweder auf 0 oder 1 gesetzt werden. Falls gesetzt, werden die Spieler nach einer bestimmten Zeit wieder gespawned. Dies ist nützlich, um diejenigen zu reduzieren, die nicht erneut gespawned werden, um für Powerups zu campen.

g_KillerduckHealth

Damit wird definiert, wie viele Gesundheitspunkte eine einzelne Killerduck hat. Wenn auf -1 gesetzt, können Killerenten nicht getötet werden.

disable_

Du kannst tatsächlich Gegenstände im Spiel deaktivieren, ohne einen Mod zu benutzen! Um dies zu tun, setze ein cvar auf 1, das disable_classname heißt, z.B.

set disable_weapon_imperius "1"
set disable_ammo_imperius "1"
dmflags
  • 8 für keinen Sturzschade: Dies ist ein Überbleibsel aus Q3. WoP hat ohnehin keinen Sturzschaden.
  • 16 für ein festes FOV: Erzwingt jedermanns FOV (Field of View = Sichtfeld, clientseitig konfiguriert mit cg_fov) auf 90.
  • 32 für keine Schritte: Die Spieler geben keine Schrittgeräusche von sich.

Clients

sv_maxclients

Legt die maximale Anzahl von Clients auf dem Server fest. Dies schließt Bots mit ein.

g_maxGameClients

Legt die Anzahl der Clients fest, die spielen dürfen. Wenn auf 0 gesetzt, können alle Clients spielen, ansonsten müssen einige zuschauen.

sv_privateClients

Legt die Anzahl der privaten Clients fest. Dies wird normalerweise verwendet, um Platz für Admins oder VIPs zu reservieren. Sie müssen das richtige Passwort haben, um beitreten zu können.

g_inactivity

Legt fest, nach wie vielen Sekunden ein inaktiver Client gekickt wird. Inaktiv bedeutet, überhaupt keine Bewegung, kein Chatten oder Herumschauen. Du solltest dies nicht zu niedrig einstellen, da du sonst Spieler verärgern könntest, die nur kurz von der Tastatur weg sind. Im Allgemeinen ist es eine gute Idee, diese Variable zu setzen, da inaktive Spieler nur die Bandbreite beanspruchen oder von unfairen Spielern angegriffen werden. Inaktive Spieler werden 10 Sekunden vor dem Kicken gewarnt.

sv_zombietime

Wenn der Server innerhalb dieser Zeitspanne in Minuten keinen Befehl von einem Client erhält, wird der Client entfernt. Dies kann passieren, wenn die Verbindung hängt, d.h. für längere Zeit verzögert wird.

Server

g_log, g_logsync

g_log definiert den Dateinamen der Protokolldatei des Servers. g_logsync gibt an, wie das Protokoll geschrieben werden soll.

  • 0: Wenn der interne Puffer voll ist
  • 1: Jedes Mal, wenn eine neue Nachricht für das Protokoll eintrifft
sv_allowdownload, sv_dlURL

Du kannst Clients erlauben, alle benutzerdefinierten Maps und Mods herunterzuladen, die auf deinem Server laufen (setze sv_allowdownload auf 1). Die Dateien können entweder von deinem Server oder von einem externen Server via ftp/http heruntergeladen werden. Im letzteren Fall musst du sv_dlURL setzen, wie weiter unten beschrieben. Es ist normalerweise eine gute Idee, einen externen Server zu benutzen, da sonst die Downloads von der Bandbreite deines Spielservers abgezogen werden, was zu Lags führen könnte.

sv_master#

Du kannst bis zu 5 Master-Server definieren, indem du sv_master1 bis 5 gefolgt von der URL des Masterservers verwendest. Normalerweise brauchst du keinen von ihnen zu setzen.

g_filterban

Wenn auf 0 gesetzt, dürfen nur Spieler aus der IP-Liste spielen, die du mit addIP erstellt hast. Wenn der Wert auf 1 gesetzt ist, können Spieler aus der IP-Liste den Server betreten.

sv_hostname

Hier wird der Name des Servers festgelegt, der im Server-Browser angezeigt wird. Er kann auch Farb-Tags enthalten.

g_motd

Dies definiert eine „Nachricht des Tages“, die nur dann entweder im Server-Browser oder im Spiel angezeigt wird, wenn du Server-Infos anzeigst (Standardaktivierung mit K). Sie hat keinen wirklichen Nutzen.

rconpassword, sv_privatePassword, g_password

rconpassword setzt das Passwort für die Fernsteuerung des Servers. Wenn keines gesetzt ist, kannst du nur die Befehlszeile des Servers verwenden, um Befehle zu erteilen. sv_privatePassword setzt das Passwort für private Clients. Ihre Plätze sind auf dem Server reserviert. Private Clients müssen das passwort blabla in die Konsole eingeben, um beitreten zu können. g_password setzt das Passwort für jeden Client, der beitreten möchte. Wenn es gesetzt ist, müssen Clients das passwort blabla in die Konsole schreiben.

sv_pure

Setze diesen Wert immer auf 1. Andernfalls könnten Spieler modifizierte PK3-Dateien verwenden, z.B. um zu cheaten.

dedicated

Du musst diese Variable beim Start deines Servers setzen. Sie steuert, ob dein Server Heartbeats an die Master-Server sendet, d.h. ob er im Spiel selbst aufgelistet wird. Vergiss nicht, dass du, damit der Server aufgelistet wird, den Port in jeder Firewall zwischen deinem Server und dem Internet öffnen musst.

  • 2: Der Server sendet Heartbeats an die Master-Server
  • 1: Das wird es nicht, obwohl Leute immer noch beitreten können, wenn sie IP und Port kennen
net_port

Dies definiert den UDP-Port, auf dem der Server lauscht. Dies ist der Port, den du in deiner Firewall öffnen musst. Wenn du mehr als einen Server auf einer IP hosten möchtest, muss jede Instanz einen anderen Port verwenden.

com_hunkmegs

Dies ist die maximale Menge an RAM, die der Server verwendet. Je mehr er verbraucht, desto schneller lädt er normalerweise die Maps, da diese zwischengespeichert werden. Das Minimum sollte 256 MB betragen.

fs_game

Gibt den Ordner an, in dem die Engine nach Dateien suchen soll. Dies wird, wie später beschrieben, für Mods verwendet. Die WoP-Engine sucht nach Dateien innerhalb von /usr/local/games/WoP/wop, ~/.padman/wop und z.B. in /usr/local/games/WoP/meinemod und ~/.padman/meinemod.

Bots

bot_enable, bot_minplayers, bot_nochat, g_spSkill

Definiert, ob Bots aktiviert sind (setze bot_enable auf 1). Wenn dies der Fall ist, belegen sie alle durch bot_minplayer definierten Slots, verlassen diese aber, wenn menschliche Spieler beitreten. bot_nochat deaktiviert die vielleicht lästigen Slogans (auf 0 setzen), die die Bots gerne sagen. Wenn du bot_minplayers benutzt, wird diese Anzahl von Bots mit dem durch g_spSkill definierten Skill-Level, der zwischen 1 und 5 liegen kann, hinzugefügt.

Netz-Einstellungen

sv_minRate, sv_maxRate

Die maximale Datarate für einen einzelnen Client zum Server wird durch sv_maxRate definiert. Wenn dein Server keine schnelle und zuverlässige Verbindung hat, solltest du diese nicht über 25000 einstellen. Wenn ein Client eine niedrigere Datarate als die durch sv_minRate definierte hat, wird er beim Verbindungsaufbau zurückgewiesen.

sv_minPing, sv_maxPing

Der Server prüft beim Verbindungsaufbau auf den Ping der Spieler. Wenn er unter sv_minPing oder über sv_maxPing liegt, wird der Spieler abgewiesen.

sv_fps

Ja, sogar ein Server hat eine fps-Einstellung! Wenn du diese höher als die Standardeinstellung einstellst, benötigt der Server mehr Bandbreite, aber die Clients könnten ein flüssigeres Gameplay erfahren. Es kann auch zu einigen Bugs im Gameplay führen. Wenn du irgendwelche Fehler findest, benutze WoPs Bugtracker oder schreib eine Zeile im Bugreports-Channel auf WoPs Discord-Server.

Mods

Modifikationen, oder kurz Mods, modifizieren das Gameplay. Manchmal fügen sie neue Spielmodi hinzu, manchmal ersetzen sie Spieler- oder Waffenmodelle. Es gibt zwei Arten von Mods, serverseitige Modifikationen und solche, die auch clientseitigen Code haben. Die erste Art ist einfacher einzurichten, da die Clients den Mod nicht herunterladen müssen. Die zweite Art muss auf dem Computer des Spielers vorhanden sein, da er sie entweder separat oder von deinem Server heruntergeladen hat.

In beiden Fällen solltest du einen separaten Ordner für deine Mod erstellen, der die Dateien und die Serverkonfiguration enthält. Erstellen Sie dazu einfach einen Ordner innerhalb von entweder /usr/local/games/WoP oder ~/.padman. Wenn du deinen Ordner mymod genannt hast, wird er im Spiel als meinemod erscheinen. Um dem Server mitzuteilen, dass du einen Mod verwenden möchtest, musst du +set fs_game meinemod in deinem Startskript angeben.

Serverseitige Mods

Ein serverseitiger Mod besteht normalerweise aus einer Datei namens qagame.qvm. QVM steht für Quake Virtual Machine, ist also plattformunabhängig. Innerhalb des Ordners deines Mods erstellst du einen Unterordner namens vm und kopierst die Datei qagame.qvm innerhalb von vm. Lies die Dokumentation der Mods und vergiss nicht, die Variablen der Mods in deiner Serverkonfiguration zu setzen.

Clientseitige Mods

Clientseitige Mods können einen serverseitigen Mod einschließen. Jeder neue Spielinhalt kann als Mod angesehen werden. Wenn du einen puren Server hast, d.h. sv_pure 1, muss jeder Client genau die gleichen Dateien haben, die der Server benutzt. Daher musst du den Download auf irgendeine Weise verteilen. Der bequemste Weg für die Spieler ist die Aktivierung der automatischen Download-Option auf deinem Server.

Kopiere dazu die PK3-Dateien des Mods innerhalb von ~/.padman/meinemod oder /usr/local/games/WoP/meinemod und lade sie dann irgendwo hoch. Setze sv_allowdownload 1 und verweise sv_dlURL auf deinen Upload-Ordner. Die URL kann entweder http oder ftp sein. Du musst einem bestimmten Schema folgen. Nehmen wir an, du setzt sv_dlURL auf http://meineseite.de/downloads/, dann musst du deine PK3-Dateien innerhalb von meineseite.de/downloads/meinemod ablegen. Ein Client wird automatisch den Namen deiner Mod (um korrekter zu sein; fs_game) an sv_dlURL anhängen. Die Dateien müssen mit anonymem ftp oder als direkter http-Download zugänglich sein.

Vergiss auch hier nicht, die Variablen des Mods in deine Konfiguration aufzunehmen. Natürlich musst du auch nach Updates der Mod suchen und die Dateien auf deinem Server ersetzen und entsprechend hochladen.