• Huhu zusammen,

    auf Wunsch aus diesem Forumsbeitrag habe ich einen Standalone Free SCUM Bot entwickelt.

    Das Tool ist weiterhin ein Community-/Bastelprojekt und noch nicht perfekt durchgetestet, aber inzwischen deutlich weiter als die erste Version.

    Der Bot reagiert auf Chatbefehle von Spielern und kann daraufhin frei definierbare SCUM-Adminbefehle ausführen. Ursprünglich war nur !welcomepack geplant, inzwischen gibt es aber eine kleine Steuerungszentrale im Frontend.



    Aktueller Stand:
    - Spielerbefehle über das Frontend anlegen, z. B. !welcomepack, !vote, !kit
    - Ablaufskripte im .sfb-Format
    - Variablen wie {player}, {steamId}, {args}, {arg1}, {arg2}
    - Spielerposition per {playerlocation} aus #ListPlayers
    - Z-Offset für Spawnpositionen, z. B. {playerlocation+50}
    - Wartezeiten im Skript, z. B. wait 500ms, wait 30s
    - Ausführungsregeln pro Befehl:
    - Einzigartig pro Spieler
    - 1x täglich pro Spieler
    - Zeitbasiert / alle X Stunden
    - Immer
    - Übersicht der ausgeführten Spielerbefehle
    - Timer / Sperren können im Bot zurückgesetzt werden
    - Zufallsblöcke in Skripten mit randomblock, case, endrandomblock
    - Versionsprüfung über meine Homepage
    - Patchnotes-Anzeige
    - Admin-Warnung, falls der Bot nicht als Administrator gestartet wurde

    Wichtig:
    Man benötigt wie bekannt einen zweiten PC oder eine zweite Windows-Session mit extra Steamaccount und SCUM.

    Zusätzlich benötigt ihr:
    - AutoHotkey v2
    - .NET Desktop Runtime

    AutoHotkey:
    https://www.autohotkey.com/

    .NET prüft das Programm beim Start und leitet euch bei Bedarf zur Microsoft-Downloadseite weiter.

    Damit der Bot zuverlässig Tasteneingaben in SCUM senden kann, sollte der Bot als Administrator gestartet werden. Wenn SCUM als Admin läuft und der Bot nicht, kommen die Tastendrücke meist nicht im Spiel an. Das Programm zeigt inzwischen eine Warnung an, wenn es nicht als Administrator läuft.

    Chatlog / Verbindung:
    Möglich ist FTP, SFTP oder lokal. Zuletzt wurde hauptsächlich FTP getestet.

    Der Server-Chatlog-Ordner ist nur bei lokaler Nutzung relevant. Wenn das Tool bei FTP/SFTP wegen diesem Feld meckert, könnt ihr dort irgendeinen vorhandenen Ordner auswählen.

    Start-Reihenfolge:
    1. SCUM starten
    2. In den Videoeinstellungen auf Window Mode stellen
    3. Auf den Server connecten
    4. Chat auf Global stellen
    5. Bot als Administrator starten
    6. Einstellungen prüfen
    7. Bot starten

    Per RDP wird es vermutlich nicht zuverlässig funktionieren, sobald die RDP-Sitzung geschlossen wird. Das liegt daran, dass Windows/SCUM dann keine normalen Tastatureingaben mehr sauber annimmt.

    ---

    Beispiel: einfacher Spielerbefehl

    Im Frontend könnt ihr einen Befehl anlegen:

    Spielerbefehl:
    !welcomepack

    Ablaufskript:
    welcomepack.sfb

    Regel:
    Einzigartig pro Spieler

    Dann wird das Skript nur einmal pro Spieler ausgeführt.

    ---

    Beispiel für ein .sfb-Skript:

    {player} dein Welcomepack ist auf dem Weg, bitte bleib stehen!
    wait 1s

    #teleportto {player}
    wait 30s

    #spawnitem Water_05l 1 Location {playerlocation+50}
    wait 500ms

    #spawnitem BP_Weapon_98k_Kar98 1 Location {playerlocation+50}
    wait 500ms

    #spawnitem BP_Weapon_Magazine_Kar98 2 Location {playerlocation+50}

    {player} dein Welcomepack wurde zugestellt.

    {playerlocation+50} bedeutet:
    Der Bot fragt vorher über #ListPlayers die Position des Spielers ab und erhöht die Z-Koordinate um 50, damit Items nicht im Boden stecken.

    Das Ergebnis wird im SCUM-Format gesendet, z. B.:

    "[-554320 -846077.312 13288.3]"

    ---

    Verfügbare Variablen im Skript:

    {player} Spielername
    {steamId} Steam-ID des Spielers
    {command} Ausgelöster Spielerbefehl
    {args} Alle Argumente nach dem Spielerbefehl
    {arg1} Erstes Argument
    {arg2} Zweites Argument
    {arg3} Drittes Argument
    {now} Aktuelles Datum mit Uhrzeit
    {date} Aktuelles Datum
    {time} Aktuelle Uhrzeit
    {playerlocation} Spielerposition
    {playerlocation+50} Spielerposition mit Z-Offset +50

    ---

    Beispiel für Argumente:

    Spieler schreibt:
    !vote settime 1

    Skript:
    #vote {args}

    Ergebnis:
    #vote settime 1

    Oder mit einzelnen Argumenten:

    #vote {arg1} {arg2}

    Ergebnis:
    #vote settime 1

    ---

    Wartezeiten:

    wait 500ms
    wait 1s
    wait 30s
    wait 2m
    wait 1h

    Damit kann der Admin selbst bestimmen, wie viel Abstand zwischen Befehlen liegt.

    ---

    Randomizer / Zufallsblöcke:

    randomblock
    case 70
    #spawnitem Water_05l 1 Location {playerlocation+50}
    wait 500ms
    #spawnitem Bread 1 Location {playerlocation+50}

    case 20
    #spawnitem Antibiotic_Pill_Single 2 Location {playerlocation+50}

    case 10
    #spawnitem BP_Cash 1000 Location {playerlocation+50}

    endrandomblock

    Pro Ausführung wird genau ein case-Block gewählt.

    Die Werte hinter case sind Gewichtungen. Sie müssen nicht zusammen 100 ergeben.

    Beispiel:

    case 70
    case 20
    case 10

    entspricht ungefähr 70 %, 20 %, 10 %.

    case 20
    case 60

    entspricht 25 % und 75 %.

    Ohne Zahl zählt ein case automatisch als Gewicht 1.

    ---

    Gespeichert werden die Daten im Programmordner unter Data.

    Dort liegen z. B.:
    - Befehlskonfiguration
    - .sfb-Skripte
    - Spielerstatus / ausgeführte Befehle

    Die Spieler-Ausführungen können inzwischen direkt im Bot eingesehen und zurückgesetzt werden. Man muss also nicht mehr zwingend manuell in JSON-Dateien herumeditieren.

    ---

    Hinweis:
    Das Tool sendet SCUM-Befehle über AutoHotkey ins aktive SCUM-Fenster. Es ist also kein Serverplugin und keine direkte RCON-Lösung. Der Bot braucht ein laufendes SCUM-Spiel, einen eingeloggten Adminaccount und ein aktives Chatfenster.

    Für Bastler hängen Rohdaten / Sourcecode mit dran.

    Aktuellster Sourcecode:

    GitHub - LMNT-Gaming/ScumFreeBot: Freier Bot für alle!
    Freier Bot für alle! Contribute to LMNT-Gaming/ScumFreeBot development by creating an account on GitHub.
    github.com

    Feedback, Tests und Verbesserungsvorschläge sind gerne willkommen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer SCUM Community teil!