For the complete documentation index, see llms.txt. This page is also available as Markdown.

Script

Das TimeCord-Skript erfasst die Zeit automatisch von deinem Gameserver, sodass Spieler keinen Knopf in Discord drücken müssen. Wenn ein Spieler in den Dienst geht, wird sein verknüpfter Discord-Account eingestempelt, und wenn er den Dienst verlässt, wird er ausgestempelt.

Das aktuelle Skript ist in Lua für FiveM geschrieben und unterstützt das ESX-Framework.

Bist du ein guter qbcore-Scripter und möchtest uns helfen, das Skript auf qbcore zu übertragen? Melde dich auf unserem Discord.

So funktioniert es

Das Skript lauscht auf die ESX-Events esx:playerLoaded und esx:playerDropped. Sobald eines ausgelöst wird, liest es den ESX-Job des Spielers, sucht den für diesen Job konfigurierten API-Key und sendet eine HTTP-Anfrage an TimeCord, das den Rest erledigt. TimeCord ordnet den Spieler seinem Discord-Account zu und stempelt ihn ein oder aus. Kurz gesagt: In den Dienst gehen stempelt ein, den Dienst verlassen stempelt aus.

Download

Hol dir das Skript hier: github.com/DanielLogisch/timecord_esx_script

Voraussetzungen

Du brauchst die Node.js-Runtime auf dem Gameserver, um die Abhängigkeiten des Skripts zu installieren.

Installation

Windows

  1. Gehe zu deinem FXServer-resources-Ordner und entpacke das Skript als neuen Ordner.

  2. Führe windows_setup.bat aus, um die benötigten Abhängigkeiten automatisch zu installieren.

  3. Aktiviere den Autostart, indem du dies in deine server.cfg einträgst:

Linux

  1. Gehe zu deinem FXServer-resources-Ordner, erstelle einen neuen Ordner und füge die Skriptquelle dort ein.

  2. Gehe in den Skriptpfad.

  3. Mache das Setup-Skript ausführbar: chmod +x linux_setup.sh

  4. Führe es aus: ./linux_setup.sh

  5. Aktualisiere deine server.cfg, um den Autostart zu aktivieren.

ESX-Objekt importieren

Neuere ESX-Versionen importieren das Shared Object anders. Wenn du eine neuere Version nutzt, passe das Skript entsprechend an:

Konfiguration

TimeCord verknüpft einen API-Key mit jedem Job. Ordne in der Skript-Konfiguration Jobnamen den Keys zu:

Der Key ist der exakte Jobname, wie er in deiner Datenbank steht, damit das Skript prüfen kann, ob ein Spieler diesen Job hat. Der Wert ist der API-Key für den Server, auf dem dein Bot läuft. Erstelle Keys im Dashboard unter Settings -> Script. Du kannst beliebig viele Jobs hinzufügen, und nur die hier gelisteten Jobs werden erfasst.

Eigenes Dienst-Event

Wenn dein Server ein On/Off-Duty-System hat, bei dem Spieler den Dienst umschalten, ohne den Server zu verlassen, nutze das eigene Event, um sie ein- oder auszustempeln. Übergib true zum Einstempeln und false zum Ausstempeln.

Fehlerbehebung

  • esx:playerDropped wird nicht ausgelöst. Manche Server berichten, dass dieses Event nicht richtig funktioniert, wodurch eine Sitzung offen bleiben kann. Es kann von deinem ESX-Setup oder einer anderen Ressource überschrieben werden. Als Workaround entfernst du onNet('esx:playerDropped') aus dem Skript und ersetzt es durch dein eigenes Event, oder du nutzt stattdessen das FiveM-Event playerDropped.

  • Ein Job wird nicht erfasst. Prüfe, ob der Jobname in der Konfiguration exakt mit dem ESX-Jobnamen übereinstimmt und ob der zugehörige API-Key in deinem Dashboard gültig ist.

  • Vergessene Sitzungen. Falls ein Ausstempeln einmal verpasst wird, schließt das automatische Ausstempeln von TimeCord Sitzungen, die zu lange offen bleiben (siehe Statistiken & Zeit).

Brauchst du Hilfe beim Schreiben oder Erweitern eines Skripts? Öffne ein Ticket auf unserem Discord.

Zuletzt aktualisiert