Skip to content

How-to: Waffen-Modifikation erstellen

Schritte

  1. In WeaponDefinitionFactory.CreateModifications() (Shared/Weapons/WeaponDefinitionFactory.cs) eine WeaponModificationDefinition ergänzen.
  2. Stabile ID mod.<name>, Display/Description, genau einen WeaponModificationSlot, kompatible WeaponIds und/oder Categories, RequiredUnlockId, Tags, Enabled und WeaponBalanceVersion setzen.
  3. WeaponStatModifier verwenden: Add addiert, Multiply multipliziert, Override setzt. Reihenfolge ist pro Stat Add → Multiply → Override; Werte innerhalb einer Operation werden deterministisch sortiert. Ergebnis wird gerundet/geklammert.
  4. Komplexes Verhalten nur als stabile GameplayEffectId (zum Beispiel effect.chain_lightning) deklarieren und in einer deterministischen Effekt-Fabrik implementieren. Diese Fabrik existiert noch nicht; ohne sie ist der Effekt nur Daten.
  5. Unlock in UnlockService.CreateDefaultUnlocks mit identischer ID ergänzen.
  6. Loadout ordnet ModId dem deklarierten Slot zu. Validator prüft Slot, Kompatibilität, Unlock, Allow/Deny und Maximum. Ein Dictionary kann keinen Slot doppelt halten; serverseitig serialisierte Payload trotzdem validieren.
  7. UI-Text/Icon-System ist nicht implementiert; WeaponModificationPanel ist leer. Bei Integration Loading/Error/Locked/Compatibility anzeigen.
  8. Bei Balanceauswirkung WeaponBalanceVersion erhöhen und LoadoutHash-/Stat-Tests anpassen.

Abgrenzung

  • Modifikation: persistente Loadoutwahl, Slot/Unlock/Compatibility.
  • Mastery-Perk: level- und tiergebundene persistente Auswahl, durch RunPolicy aktiv.
  • Power-up: temporärer In-Run-Modifier in Player/WeaponRuntime.
  • Kosmetik: nur Darstellung; darf Stats/Hash nur beeinflussen, wenn Contract dies ausdrücklich versioniert. ReplicatedPlayerWeaponState hat CosmeticModificationIds separat.

Tests

Catalog Unknown Weapon/missing compatibility, falscher Slot, inkompatible Waffe, locked, Allow/Deny, MaxMods, Add/Multiply/Override, Rundung und Hashsensitivität in WeaponsLoadoutsMasteryTests.cs.

Verwandt: Waffe, Mastery, Systemseite.