5MCustoms

Konfiguration

Zwei Grundsätze erklären, wo du was findest:

  1. Konfiguration lebt in Dateien. Sie gehört zum Modul, wird versioniert und ändert sich mit dem Skript.
  2. 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' }
FeldBedeutung
nametechnischer Name, Schlüssel für alles Weitere
weightGewicht in Kilogramm
stackwie viele auf einen Slot passen
typeArt des Gegenstands
imageBilddatei ohne Endung
walletlandet im Geldbeutel statt in der Tasche
noDrop, noUsenicht ablegbar, nicht benutzbar
restoreswas 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:

ModulWas dort steht
5mc_gangwarEinflusswerte, Dauer der Übernahmefenster, Tributhöhe
5mc_seatbeltab welcher Geschwindigkeit es durch die Scheibe geht, Schadensfaktor
5mc_bankingKontoarten, Gebühren, Standorte der Automaten
5mc_weatherTag-Nacht-Länge, Wetterwechsel
5mc_worldDichte 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.