Stand: 2026-05-21 · Branch: master
Diese Datei dokumentiert den Stand der Fork-Erweiterungen für Cursor-Agenten und Entwickler. Fokus: RROx als MP-Client auf fremden Servern, Lok-/Waggon-Cheats, Map-UX — kein zuverlässiges Industrie-Lager am Client.
| Schritt | Aktion |
|---|---|
| Build Map | cd plugins/map && npm run build |
| Build World | cd plugins/world && npm run build |
| Deploy | powershell -File scripts/deploy-plugins.ps1 |
| Deploy-Ziel | %APPDATA%\RailroadsOnline Extended\plugins\@rrox-plugins\{world,map}\dist |
| RROx starten | scripts/start-rrox.ps1 oder _release\RailroadsOnline Extended.exe manuell |
| Log | %APPDATA%\RailroadsOnline Extended\logs\main.log |
Nach Plugin-Deploy: RROx neu starten, dann Home → Attach.
Ausführlich: docs/research/mp-client-capabilities.md
Industrie-RPC-Forschung (abgeschlossen): docs/research/industry-mp-client-cheats.md
| Bereich | Client | Host |
|---|---|---|
| Karte, Teleport, Weichen, Krane | ✅ | ✅ |
| Lok-Steuerung (Control Engines) | ✅ | ✅ |
| Lager-Cheats Lok/Waggon (Wasser, Kohle, Kessel, Bremsluft, Speed, Güter am Zug) | ✅ | ✅ |
| Immer voll (Lok/Tender/Ladung, Kessel-Loops) | ✅ | ✅ |
| Industrie-Lager (Smelter, Mine, …) | ❌ | ✅ |
| Rolling-Stock Reset (Position) | ❌ | ✅ |
Industrie-Lager am Client: Server-authoritativ. ServerRemoveFreight ändert nur lokalen Speicher; Spiel-HUD bleibt beim Server (getestet Smelter #18, Eisenerz 12/1000). RPC-Forschung geschlossen — UI-Buttons entfernt.
- UE5-Erkennung:
determineVersion()→beta-UE5Structs, Fallbackmain-UE4. - Instance-Scan: Industrien/Loks wenn
GameState-Arrays leer (MP-Client). - Cheats (
controller/cheats.ts):- Lager: Add/Max + Immer voll (200 ms Loop, FrameNumber-Stabilisierung).
- Lok: Presets, Kessel/Bremsluft/Speed-Boost, Keep-Loops.
- Spieler: Geld/XP, Fly/Sprint.
- Communicators:
locomotiveCheats.ts,storage.ts(SetStorageKeepFull,ApplyIndustryKeepAll),industryServerRpc.ts(Backend-Forschung, UI entfernt). - ControlsSync (
controlsSync.ts): Gekuppelte Loks — Regler/Reverser/Bremse; Fix Master-Konflikt (niedrigerer Index gewinnt); Interval inthis.intervalgespeichert. - Struct-Health (
structHealth.ts): Log bei fehlenden kritischen Klassen. - Structs UE5: u.a.
ARRPlayerController,SplineActorLive,eunloadside, erweiterteindustry/storage/framecar.
- Map-Labels: Lok-Namen, Industrie-Namen, optional Kessel-Badge (
DR % · H2O %). - Tooltips: Entfernung, Zentrieren, Zu mir, Koordinaten kopieren.
- Client-Shortcuts (
clientMapToolbar.tsx): Meine Lok, Wasserturm/Sandhaus-Teleport, Betriebsbereit, Not-Aus entfernt (war Autopilot). - Cheats-UI:
locomotiveCheatButtons,storageCheatButtons,frameCheatSliders— Nähe-Gate ~120 m (Cheats deaktiviert wenn zu weit). - Session-Badge: Host vs. Client.
- Industrie: Show Info immer; Host-Warnung; Live-Daten in
storageInfo.tsx; Host-only Cheat-Buttons. - Rolling Stock: Tab „In der Nähe“ (sortiert nach Entfernung).
- Hooks:
useMyLocomotive,useLocomotiveAlerts(Kessel/Wasser/Bremsluft),useLocomotiveKeepState. - Teleport-Favoriten: Rechtsklick-Karte → speichern/laden (
teleportFavorites.ts). - Attach-Hinweis:
attachHintBanner.tsxwenn nicht attached.
- KI-Autopilot (Tempomat, Auto-Bremse, Gleis-Route, Weichen-Assist) — wieder entfernt auf Wunsch.
Settings → World → Features
controlEngines,controlSwitches,teleport,cheats,controlCranes— für Client-Nutzung relevant.experimentalIndustryServerRpc— deprecated, unsichtbar, Default aus.- Hinweis-Alert: „Industrie-RPC-Forschung abgeschlossen“.
Settings → Map
- Label-Toggles (Spieler, Loks, Industrien, Kessel-Badge, …).
| Script | Zweck |
|---|---|
deploy-plugins.ps1 |
World + Map nach AppData deployen |
deploy-map-plugin.ps1 |
Nur Map |
start-rrox.ps1 |
RROx starten |
research-dump-struct.ps1 |
Struct-Dump (Spiel an, RROx zu) |
dump-struct.mjs / list-game-structs.mjs |
Low-Level Struct-Tools |
test-inject.mjs |
Injector-Test |
Struct-Dump-Beispiel:
.\scripts\research-dump-struct.ps1 "Class arr.ARRPlayerController"Ergebnisse liegen unter docs/research/dump-*.txt.
Anpassungen für stabilere Attach/Query auf UE5-Builds (Injector, Pipe, Scanner, UObjectArray). Nicht separat deployen — Teil des RROx-Release-Builds.
- RROx starten → Attach → Cheats + Control Engines an.
- Lok markieren: Map → Als Meine Lok.
- Cheats: Open Controls → Lager- & Lok-Cheats (Immer voll für Tender/Kessel).
- Industrie: nur lesen (Show Info); Material normal liefern oder Host mit RROx.
- Attach prüfen,
main.logauf Struct-Warnungen. - Devtools-Plugin oder
research-dump-struct.ps1für geänderte Klassen. plugins/world/src/controller/structs/beta-UE5/aktualisieren.- Build + deploy + RROx-Neustart.
cd plugins/world # oder map
npm run build
cd ../..
powershell -File scripts/deploy-plugins.ps1- Cheats an Lok nur sinnvoll in Nähe (~120 m) — UI blockiert, MP sonst unzuverlässig.
speedMsin UE5 ≈ cm/s (Map teilt durch 44.704 für mph).- Splines-Refresh default 10 s — Autopilot/Route wäre ohnehin veraltet (Autopilot entfernt).
- Geld/XP-Cheats am Client oft nur lokal.
_release/und_release.zipsind Build-Artefakte — nicht committen.
plugins/world/src/controller/
cheats.ts # Keep-full, Lok-Cheats, Presets
controlsSync.ts # Multi-Engine Sync
industryServerRpc.ts # RPC-Forschung (Backend)
structHealth.ts
world.ts # UE5, Instance-Scan, setControls
plugins/map/src/renderer/map/
components/ # Cheats-UI, Toolbars, Badges, Warnings
hooks/ # useMyLocomotive, Alerts, KeepState
utils/distance.ts # NEAR_PLAYER_DISTANCE = 12000 (~120 m)
docs/research/ # MP-Client-Matrix, Industrie-RPC, Struct-Dumps
scripts/ # Deploy, Start, Research
Dieser Fork bündelt Session-Arbeit: MP-Client-World-Loader, Lok-Cheats mit Immer-voll, Map-UX für Client, abgeschlossene Industrie-RPC-Forschung, ControlsSync-Fixes, Entfernung des KI-Autopilot-Experiments.
Bei weiteren Agent-Aufgaben: Industrie am Client nicht erneut als Cheat-Ziel behandeln; Fokus Lok, Karte, Navigation, Host-only Industrie.