Fragen & Antworten

Was am häufigsten schiefgeht und woran es liegt.

Sieh zuerst in die Serverkonsole. Steht dort eine rote Zeile mit der Station, fehlt die position. Kommt kein Marker, prüfe Config.Interact und ob marker auf false steht. Steht interact auf false, ist das Absicht: Diese Station geht nur über den Server-Export OpenStation auf. Kommt eine Meldung, dass die Station geschlossen sei, greift maxMedics und es sind gerade genug Sanitäter im Dienst.

Zwei Ursachen. Erstens der Radius: access.radius wird von der Station aus gemessen, nicht vom Sanitäter und liegt ohne Angabe bei zehn Metern. Zweitens der Todeszustand: Dein Ambulance-Script muss ihn irgendwo hinterlegen, damit cs_revivestation ihn findet. QBCore und Qbox über metadata.isdead und metadata.inlaststand, ESX und viele andere über den State Bag, ganz zuletzt zählt die Lebensenergie. Ein Script, das nichts davon setzt und den Spieler am Leben lässt, ist der einzige Fall, in dem du in der framework.lua eingreifen musst.

Dann ist der Zuschlag drin. Der Betrag ist base (oder der Preis der Todesursache) plus perMedic mal Sanitäter im Dienst, alles mal dem Faktor aus SetPriceMultiplier. Wie viele Sanitäter gerade gezählt werden, sagt GetMedicsOnDuty und was eine bestimmte Wiederbelebung kosten würde, GetRevivePrice.

Der Schlüssel in price.causes muss genau so geschrieben sein wie der Name in der deathcauses.lua, nicht wie die Waffe heißt und nicht wie die Übersetzung lautet. Also Pistol, nicht WEAPON_PISTOL und nicht Pistole. Der Config-Check beim Start meldet jeden Namen, den es nicht gibt.

Beide brauchen medicJobs, sonst wird nie ein Sanitäter gezählt. Die Konsole warnt beim Start genau davor und nennt die Station. Steht onDutyOnly auf true, zählen auf QBCore und Qbox außerdem nur eingestempelte Sanitäter; auf ESX gibt es keinen eigenen Dienstzustand, dort zählt jeder mit dem Job.

Das darf nicht passieren und ist abgefangen: Schlägt Config.Revive fehl, wird der Betrag sofort zurückgebucht und der Fehler steht in der Serverkonsole. Bleibt der Spieler trotzdem liegen, obwohl kein Fehler kommt, hat dein Ambulance-Script das Event angenommen und nichts daraus gemacht. Prüfe, welches erkannt wurde, oder setze dein eigenes Event in Config.Revive ein.

Peds werden einen Meter unter der angegebenen Z-Koordinate gesetzt, damit sie auf dem Boden stehen. Nimm die Koordinate so, wie sie beim Stehen ausgegeben wird und ziehe nichts selbst ab.

Config.UseTarget muss true sein, ox_target oder qb-target muss laufen und die Station braucht einen Ped. Fehlt eines davon, fällt die Station auf Marker und Taste zurück, statt unbenutzbar zu werden. Mit Target am Ped verschwindet der Tastenhinweis, damit es nicht zwei Wege gibt, die Unterschiedliches sagen.

Die zweite Hälfte der Überschrift, accent, wird in einer Schreibschrift gesetzt, die keine Umlaute enthält. Schreibe dort ein Wort ohne ä, ö, ü, oder setze es nach label.

So ist es gedacht. Sie wird einmal pro Tod aus Config.UI.bpm gezogen und bleibt dann stehen, damit eine Liste, die sich alle drei Sekunden aktualisiert, nicht flackert. Wer sie gar nicht will, setzt Config.UI.heartbeat auf false.

Prüfe enabled und die URL in der webhook.lua. Es muss die vollständige Webhook-URL von Discord sein, kein Kanal-Link. Ist sie es nicht, sagt das schon der Config-Check beim Start; schlägt das Senden fehl, steht der Status in der Serverkonsole.

Die version in der fxmanifest.lua wurde geändert. Setze sie zurück auf die ausgelieferte Version, sonst wird die Versionsprüfung übersprungen und du erfährst nicht von Updates.

Kommst du damit nicht weiter, öffne ein Ticket im Support und häng die Konsolenausgabe des Serverstarts an. Dort steht bereits, welche Station Probleme macht und welches Framework erkannt wurde.

Frage offen geblieben?

Schreib uns im Discord. Mit Konsolen-Auszug, Framework und Script-Version ist die erste Antwort meistens schon die Lösung.

Zum Support