Konfiguration
Zwei Grundsätze erklären, wo du was findest:
- Konfiguration lebt in Dateien. Sie gehört zum Modul, wird versioniert und ändert sich mit dem Skript.
- Laufzeitdaten leben in der Datenbank. Wer welches Item besitzt, wem ein Fahrzeug gehört, welche Gang ein Gebiet hält — das steht nie in einer Datei.
Beschriftungen sind grundsätzlich Sprachschlüssel und keine Klartexte in der Konfiguration. Ein Item heißt also nicht in der Item-Liste „Dietrich", sondern trägt dort seinen technischen Namen und wird in der Sprachdatei benannt.
Items
Datei: resources/5mc_inventory/src/shared/items.ts
{ name: 'lockpick', weight: 0.3, stack: 5, type: 'item', image: 'lockpick' }
| Feld | Bedeutung |
|---|---|
name | technischer Name, Schlüssel für alles Weitere |
weight | Gewicht in Kilogramm |
stack | wie viele auf einen Slot passen |
type | Art des Gegenstands |
image | Bilddatei ohne Endung |
wallet | landet im Geldbeutel statt in der Tasche |
noDrop, noUse | nicht ablegbar, nicht benutzbar |
restores | was der Verbrauch auffüllt |
Den Anzeigenamen setzt du in der Sprachdatei des Moduls unter
item.<name>.label.
Ladensortimente
Datei: resources/5mc_shops/src/shared/config.ts
Ein Sortiment bündelt Angebote und die Darstellung auf der Karte:
{
id: 'convenience',
label: 'shop.convenience',
sprite: 52,
offers: [
{ item: 'water', price: 12 },
{ item: 'sandwich', price: 18, buyBack: 6 },
],
}
buyBack ist der Ankaufspreis. Fehlt er, kauft der Laden nichts zurück.
Jobs
Datei: resources/5mc_jobs/src/shared/config.ts
{
name: 'police',
label: 'job.police',
open: false,
dutyOnly: true,
grades: [
{ level: 0, label: 'job.police.cadet', salary: 600 },
{ level: 4, label: 'job.police.chief', salary: 1600, boss: true },
],
}
open steuert, ob sich Spieler selbst anstellen können. boss gibt einem Rang
Zugriff auf das Chef-Menü, also Einstellen, Befördern und Entlassen.
Türen
Türen legst du im Spiel an, nicht in einer Datei. Sie landen direkt in der Datenbank, damit du keine Koordinaten abtippen musst:
/doorcreate lspd_zellen job:police:2 Zellentrakt
/dooradd an eine bestehende Tür ein weiteres Türblatt hängen
/doorrule Bedingung ändern (Job, Item oder Code)
/doors Übersicht
/doordelete entfernen
Zahlenwerte einzelner Module
Jedes Modul mit eigenen Inhalten hat eine src/shared/config.ts. Beispiele:
| Modul | Was dort steht |
|---|---|
5mc_gangwar | Einflusswerte, Dauer der Übernahmefenster, Tributhöhe |
5mc_seatbelt | ab welcher Geschwindigkeit es durch die Scheibe geht, Schadensfaktor |
5mc_banking | Kontoarten, Gebühren, Standorte der Automaten |
5mc_weather | Tag-Nacht-Länge, Wetterwechsel |
5mc_world | Dichte von Passanten, Verkehr und Tieren |
Nach dem Ändern
Ein Modul, dessen Konfiguration du geändert hast, muss neu gebaut werden, weil die Werte im Bundle landen:
node tools/build-resource.mjs resources/5mc_shops
Danach im Server neu starten. Reine Sprachdateien folgen demselben Weg.
