CLI-Referenz

Dokumentation für Version v0.1.0-beta.3Quelle auf GitHub ansehen

Übersetzung der englischen Originalseite für OmsiLaunch 0.1.0-beta3. Maßgeblich ist die englische Seite: Bei Abweichungen gelten die englische Seite und der Code.

Diese Seite ist die vollständige, normative Referenz für die Befehlszeile von OmsiLaunch 0.1.0-beta3: die drei ausführbaren Dateien, die Argumentgrammatik, die Dispatch-Reihenfolge, jedes Befehlswort, jede hierarchische Route, jedes Flag, die Ausgabe-Envelopes und das Fehlerverhalten jedes Befehls. Sie wird aus tools\OmsiLaunch.Cli\Program.cs (CliProgram.RunAsync, OwnerSession.RunAsync, CliInput.Parse, CliInput.KnownFlags, CliInput.AcceptedNoEffectFlags, CliInput.CommandWordsAccepted, CliInput.HierarchicalRoutes, CliInput.BuildSpecAsync, CliEventWatch), tools\OmsiLaunch.Cli\LaunchSpecJson.cs und den beiden nativen Shims unter tools\OmsiLaunch.Bootstrapper erzeugt. Prozessergebnisse sind unter Exitcodes aufgeführt, Fehlercodes unter Fehler, ausgearbeitete Aufrufe unter CLI-Beispiele.

Ausführbare Dateien#

DateiSubsystemRolleUnterschiede
OmsiLaunch.exeKonsoleNativer Bootstrapper (OmsiLaunch.Bootstrapper.cpp): ermittelt sein eigenes Verzeichnis, zerlegt die Befehlszeile mit CommandLineToArgvW in Token, sucht hostfxr über nethost.dll und führt OmsiLaunch.Controller.dll mit denselben Argumenten aus.Es wird Konsolenausgabe geschrieben; der Exitcode des Prozesses ist der Exitcode des verwalteten Controllers oder ein Shim-Code 100..106, wenn der .NET-Host nicht gestartet werden konnte.
OmsiLaunchW.exeWindows (GUI)Derselbe Shim (OmsiLaunch.WindowsHost.cpp), für das Windows-Subsystem gebaut. Er setzt die Umgebungsvariable OMSILAUNCH_WINDOWS_HOST=1, bevor er den Controller startet.Keine Konsole: Konsolenausgabe wird unterdrückt, sofern nicht --json angegeben ist (WindowsHost.SuppressConsole), Fehler werden als Meldungsfenster angezeigt (WindowsHost.ShowFailure: Meldung, Code: OL_E_... und der Hinweis See .omsilaunch\diagnostics for details.), und ein Shim-Fehler 100..106 wird als OmsiLaunch could not start the .NET host (code N). angezeigt. Vollständiges Verhalten: Referenz zu OmsiLaunchW.exe.
OmsiLaunch.Controller.dllVerwaltet (x64, net6.0-windows, Windows Forms)Der Controller selbst. Er wird von Benutzern nie direkt aufgerufen; beide Shims übergeben den Controller-Pfad als erstes Host-Argument, sodass er nie in der öffentlichen Argumentliste erscheint.Erfordert die x64-.NET-6-Runtime mit Microsoft.WindowsDesktop.App; siehe Installation.

nethost.dll muss neben den Shims liegen. Die Shims lesen selbst keine Argumente; jedes Argument erreicht CliInput.Parse unverändert, daher akzeptieren OmsiLaunch.exe und OmsiLaunchW.exe exakt dieselbe Syntax.

Aufrufmodell#

Argumentgrammatik (CliInput.Parse)#

FormBedeutung
/key:value, /key, -key:value, -keyEin Flag. Beim Schlüssel wird die Groß-/Kleinschreibung nicht beachtet; der Wert ist alles nach dem ersten :. Unbekannte Schlüssel schlagen mit OL_E_INVALID_ARGUMENT (Unknown argument: ...) fehl, Exit 2.
--key=valueEin Runtime-Argument für die ausgewählte Runtime-Operation (zum Beispiel --handle=rv-000001). Jedes ---Token, das = enthält, ist ein Runtime-Argument, niemals ein Flag.
--json, /jsonStrukturierte Ausgabe (siehe Ausgabeformate). --json ist das einzige ---Token ohne =, das eine Bedeutung hat; es wird als das Flag /json geparst.
einzelnes WortWurde noch kein Befehlswort erkannt und ist das Wort eines der Befehlswörter, wird es zum Befehl. Sobald ein Befehlswort vorhanden ist, ist jedes spätere einzelne Wort ein Befehlswort (die Route). Andernfalls ist das erste einzelne Wort das Installationsstammverzeichnis, und jedes spätere einzelne Wort wird an die Route angehängt.

Folgen: Eine hierarchische Route (time get) lässt sich nicht mit einem dahinter angegebenen Installationsargument kombinieren (time get D:\OMSI ist die unbekannte Route time get d:\omsi, Exit 2). D:\OMSI time get wird akzeptiert, ist aber Eigentümermodus (eine neue Sitzung wird gestartet und die Operation läuft einmal darin). Parse-Fehler (ArgumentException, FormatException, InvalidDataException, OverflowException) und Sitzungsprofil-Fehler (SessionProfileException) werden gemeldet, bevor irgendetwas ausgeführt wird, immer mit Exit 2.

Installationsstammverzeichnis#

  • Ein explizites Installationsargument als einzelnes Wort hat Vorrang vor RootPath in einer /spec-Datei (CliInput.BuildSpecAsync).
  • . bezeichnet das Verzeichnis, das die ausführbare Datei enthält (AppContext.BaseDirectory), niemals das Arbeitsverzeichnis des Aufrufers (CliInput.ResolveInstallationRoot). Ein portables Paket verlässt sich darauf.
  • Wird das Argument weggelassen, verwenden auch Operationen im Eigentümermodus (/new, /saved, /spec, /list, /recovery-status, /recover) das Verzeichnis der ausführbaren Datei. Der Pfad wird mit Path.GetFullPath normalisiert.
  • Befehle im Client-Modus nehmen nie ein Installationsargument entgegen: Sie adressieren den lokalen Steuerungsendpunkt der Installation, in der die ausführbare Datei liegt (AppContext.BaseDirectory). Siehe lokale Steuerung.

Eigentümer und Client#

  • Eigentümer: der Prozess, der eine Sitzung plant, startet, überwacht und wiederherstellt (OwnerSession.RunAsync). Er hält die Installations-Lease (Local\OmsiLaunch.Installation.<sha256(root)>) und die Konfigurationstransaktion, stellt den lokalen Steuerungsendpunkt bereit, solange die Sitzung besteht, und zeigt das Tray-Symbol an. Genau ein Eigentümer pro Installation: Beantwortet bereits ein Eigentümer session.status am Steuerungsendpunkt, schlägt ein zweiter Start mit OL_E_SESSION_ALREADY_ACTIVE (Exit 7) fehl.
  • Client: jeder Aufruf ohne Installationsargument, der session status, session stop, events read, events watch oder eine Runtime-Operation sendet. Er wird über die lokale Steuerungs-Pipe weitergeleitet; ohne Eigentümer schlägt er mit OL_E_NO_ACTIVE_SESSION (Exit 4) fehl.

Dispatch-Reihenfolge (CliProgram.RunAsync)#

  1. /silent (wenn nicht bereits unter OmsiLaunchW.exe ausgeführt): startet OmsiLaunchW.exe aus dem Verzeichnis der ausführbaren Datei über ShellExecute (ohne Handle-Vererbung) mit denselben Argumenten ohne /silent/--silent, schreibt das Envelope silent (delegated, host_process_id) und gibt 0 zurück. Der Konsolenprozess wartet nicht auf die Sitzung; siehe OmsiLaunchW.exe. OL_E_WINDOWS_HOST_MISSING / OL_E_WINDOWS_HOST_START_FAILED geben 7 zurück.
  2. /version: Envelope version mit product, version (informative Assembly-Version, aus OmsiLaunch.Version.props gestempelt, 0.1.0-beta3), protocol_version (0.1), supported_family (OMSI_2_3_004_COMMON); Exit 0.
  3. capabilities: Envelope mit jedem Deskriptor PublicStableBeta oder PublicExperimental aus PublicCapabilityRegistry; Exit 0.
  4. help [family]: Envelope help mit usage, product_version, protocol_version, family und den öffentlichen commands (CliRoute, Description, Classification, RuntimeValidation), optional nach Familie gefiltert; Exit 0.
  5. profiles: Envelope mit family und den supported-Varianten der ausführbaren Datei (ALTERNATE_LAA 692EBFBF..., runtime_validated=true; der Steam-LAA-Hash 7DAB063D... mit validation_status=pending_beta_field_validation); Exit 0.
  6. Client-Runtime-Operation (kein Installationsargument und eine Route oder /runtime:): Die Argumente werden gegen PublicCapabilityRegistry.ValidateRuntimeArguments geprüft (OL_E_RUNTIME_OPERATION_UNKNOWN, OL_E_RUNTIME_ARGUMENT_REQUIRED, Exit 2), dann wird runtime.execute mit einem Timeout von 8 s (30 s für road-vehicles.spawn) weitergeleitet.
  7. Client session status (750 ms), session stop (an die ID der aktiven Sitzung gebunden, 750 ms), events read (750 ms), events watch (fragt alle 250 ms ab, bis Ctrl+C).
  8. detect oder überhaupt keine Argumente (keine Installation, kein Befehl, kein /?, kein /spec, kein Startflag, kein Recovery-Flag, kein /list): zählt Omsi-Prozesse auf und prüft den Steuerungsendpunkt (250 ms); Envelope detect; Exit 0.
  9. /? oder /help: gibt den Verwendungstext aus, Exit 0. Jeder andere Aufruf, der ein Befehlswort, aber keine dispatchfähige Route hat (zum Beispiel d3d allein oder session status D:\OMSI), gibt den Verwendungstext aus und endet mit Exit 2.
  10. Eigentümermodus. Voraussetzungen: plugins\OmsiLaunch.Plugin.opl und plugins\OmsiLaunch.Native.x86.dll müssen neben der ausführbaren Datei vorhanden sein (OL_E_RUNTIME_INSTALLATION_INCOMPLETE, Exit 7). release-manifest.json neben der ausführbaren Datei liefert, sofern vorhanden, die erwarteten Plugin-Hashes.
  11. /recovery-status / /recover: RecoverPendingAsync; Envelope recover mit pending, recovered, diagnostics; Exit 8 nur dann, wenn eine Wiederherstellung angefordert wurde und nicht abgeschlossen wurde, andernfalls 0.
  12. /list:<category>: DiscoverAsync; Envelope content.list; Exit 0.
  13. Die LaunchSpec erstellen (BuildSpecAsync), planen (PlanSessionAsync) und den Plan ausgeben. /plan oder /validate: Exit 0, wenn IsRunnable, sonst 1. Ein nicht ausführbarer Plan startet OMSI nie (Exit 1); unter OmsiLaunchW.exe zeigt ein Start mit nicht ausführbarem Plan dessen letzte OL_E_-Diagnose in einem Meldungsfenster an (Dokumentationsaudit BUG-06). Die Planung prüft außerdem die installierte permanente Plugin-Gesamtheit (Closure) gegen release-manifest.json, sodass ein fehlendes oder verändertes Plugin den Plan nicht ausführbar macht (OL_E_PERMANENT_PLUGIN_*).
  14. Prüfung auf einen bereits vorhandenen Eigentümer (OL_E_SESSION_ALREADY_ACTIVE, Exit 7), danach OwnerSession.RunAsync.

Lebenszyklus des Eigentümers (OwnerSession.RunAsync)#

  1. StartSessionAsync(plan). Ab hier erreicht jeder Exit-Pfad CloseAsync in einem finally-Block: Ausnahmen, Ctrl+C (Console.CancelKeyPress), Schließen der Konsole / Abmelden (AppDomain.ProcessExit mit einem Budget von 4 s für Stopp + Wiederherstellung; alles Verbleibende wird beim nächsten Start über das Journal per Recovery wiederhergestellt), Tray „End session“, Pipe session.stop und /observe-seconds.
  2. Das Tray-Symbol wird erstellt, sofern Presentation.SuppressTrayIcon nicht in der Spec gesetzt ist.
  3. Es wird StartupTimeoutSeconds + 5 Sekunden lang auf Running gewartet. Der Status wird ausgegeben. Ist der Zustand nicht Running, Exit 1 (OmsiLaunchW.exe zeigt The OMSI session did not reach gameplay. mit der letzten OL_E_-Diagnose oder OL_E_SESSION_START_FAILED an).
  4. Validierungs-Batches (/runtime-batch, /runtime-write-batch, /d3d-batch) laufen und schreiben ihre Artefakte.
  5. Der lokale Steuerungsendpunkt startet.
  6. /runtime:<operation> läuft einmal (5 s, 15 s für road-vehicles.spawn); das Ergebnis wird nach <root>\.omsilaunch\diagnostics\<sessionId>-runtime-operation.json geschrieben und ausgegeben. Ein fehlschlagender Runtime-Befehl beendet die Sitzung nie (stattdessen wird runtime_error ausgegeben).
  7. Warten: Mit /observe-seconds:n wird die Sitzung nach n Sekunden beendet oder früher bei einem Stopp über Tray/Pipe oder wenn OMSI sich beendet; ohne dieses Flag wartet der Eigentümer, bis OMSI sich beendet oder ein Stopp angefordert wird.
  8. Der abgeschlossene Status wird ausgegeben; Exit 0 bei Completed, sonst 1.

session.stop, Tray „End session“, Ctrl+C und CloseAsync fordern alle den kanonischen Stopp an: OMSI wird mit TerminateProcess beendet (die eigene Beendigungsroutine von OMSI läuft nicht und options.cfg wird von OMSI nicht neu geschrieben), danach wird jede Datei, die der Sitzung gehört, wiederhergestellt. Siehe Sitzungslebenszyklus und Transaktionen und Recovery.

Befehlswörter#

Jedes an erster Position akzeptierte Wort (CliInput.CommandWordsAccepted):

WortZweckModusHinweise
capabilitiesÖffentliche Capabilities auflistenLokal, keine SitzungEnvelope capabilities.
profilesUnterstützte Omsi.exe-Varianten auflistenLokal, keine SitzungEnvelope profiles.
detectOmsi.exe-Prozesse und einen aktiven Eigentümer meldenLokal, keine SitzungAuch der Standard, wenn keine Argumente angegeben sind. Zustände: NO_OMSI_FOUND, OMSI_FOUND_UNMANAGED, pro Prozess UNKNOWN_BINARY_FOUND, wenn die Binärdatei nicht untersucht werden kann; active_omsilaunch_instance, managed_session.
helpVerwendung und öffentlicher BefehlskatalogLokal, keine Sitzunghelp <family> filtert nach Capability-Familie (session, time, weather, map, camera, vehicles, player, humans, timetable, scripts, constants, curves, hof, drivers, tickets, d3d, events).
sessionsession status, session stopClientGenau ein folgendes Wort; alles andere gibt den Verwendungstext aus, Exit 2. session plan/session start sind Routennamen der API, keine CLI-Wörter: Verwenden Sie /plan und /new.
eventsevents read, events watchClientread gibt die begrenzte Ereignisliste einmal zurück; watch gibt jedes neue Ereignis (nach Sequence) alle 250 ms als events.watch-Envelope aus, bis Ctrl+C (Exit 0), 4, wenn kein Eigentümer antwortet, 7 bei einem Steuerungsfehler.
timetime get, time setClient-Route
weatherweather get, weather set, weather actual getClient-Route
mapmap getClient-Route
cameracamera get, camera set, camera lock, camera unlockClient-Route
vehiclesvehicles list, vehicles get, vehicles summary, vehicles spawn, vehicles place-randomClient-Route
playerplayer getClient-Route
humanshumans list, humans get, humans summaryClient-Route
timetabletimetable get, timetable <table> list, timetable logs listClient-Route
scriptsscripts variable list|get|set, scripts string list|getClient-Route
constantsconstants list, constants getClient-Route
curvescurves list, curves evaluateClient-Route
hofhof getClient-Route
driversdrivers listClient-Route
ticketstickets getClient-Route
d3dReserviertes FamilienwortKeinerd3d hat keine hierarchische Route: d3d texture ... ist eine unbekannte Route (Exit 2), und d3d allein gibt den Verwendungstext aus (Exit 2). D3D-Operationen werden mit /runtime:d3d.status, /runtime:d3d.texture.create usw. erreicht (siehe Operationen ohne Route).

Hierarchische Routen#

CliInput.HierarchicalRoutes ordnet einer kleingeschriebenen Route eine Runtime-Operations-ID zu. Alle Routen erfordern eine Sitzung im Zustand Running und werden über die Runtime-Mailbox ausgeführt (ExecuteRuntimeAsync). Runtime-Schreibvorgänge ändern nur den Speicherzustand von OMSI: Sie berühren niemals Dateien, sind nicht Teil der Konfigurationstransaktion und werden beim Stopp nicht rückgängig gemacht (OMSI wird beendet). Die Stabilität richtet sich nach PublicCapabilityRegistry und der Validierungsmatrix; Details und Ergebnisfelder finden Sie unter Runtime-Steuerung.

RouteRuntime-OperationArtErfordert RunningÄndert OMSIBeteiligung an der WiederherstellungStabilitätHinweise
time gettime.readReadJaNeinKeineSTABLE_BETAUhr- und Kalenderfelder.
time settime.setWriteJaJa (Uhr im Speicher)Keine, nicht rückgängig gemachtEXPERIMENTALZum Beispiel --minute=<0..59>; Schreiben, Zurücklesen und Wiederherstellen am 2026-09-20 validiert.
weather getweather.readReadJaNeinKeineSTABLE_BETA
weather setweather.setWriteJaNein (immer abgelehnt)KeineUNAVAILABLEGibt OL_E_RUNTIME_SETTING_NOT_PERSISTENT zurück; OMSI überschreibt den Wert bei seinem nächsten Wetter-Tick.
weather actual getweather.actual.readReadJaNeinKeineEXPERIMENTALZustand des Actual-/ICAO-Controllers.
map getmap.readReadJaNeinKeineSTABLE_BETAKartenname, Datei, Beschreibung, Kachelanzahl, Jahresbereich und Verkehrsseite; auf dem korrigierten Karten-Slot erneut zur Laufzeit validiert.
camera getcamera.readReadJaNeinKeineSTABLE_BETA
camera setcamera.setWriteJaJa (Kamera-Skalare, z. B. --field_of_view=)Keine, nicht rückgängig gemachtEXPERIMENTALSchreiben/Zurücklesen des FOV validiert.
camera lockcamera.lockActionJaJa (sitzungsbezogene Richtlinie)KeineEXPERIMENTALErfordert --family=<0..3> (Fahrer=0, Fahrgast=1, extern=2, Karte=3), optional --preset=<n> (Familie 0 oder 1). Benötigt ein Spielerfahrzeug (zum Beispiel eine gespeicherte Situation). In der Runtime-Closure zur Laufzeit validiert (CAM01); die RuntimeValidation-Zeichenfolge der Registry lautet weiterhin STATICALLY_VALIDATED (siehe Capabilities).
camera unlockcamera.unlockActionJaJaKeineEXPERIMENTALHebt die durch camera lock gesetzte Richtlinie auf (CAM01).
vehicles listroad-vehicles.listReadJaNeinKeineSTABLE_BETAGibt sitzungsbezogene rv-NNNNNN-Handles zurück.
vehicles getroad-vehicle.readReadJaNeinKeineSTABLE_BETAErfordert --handle=. Veraltetes Handle: OL_E_RUNTIME_OBJECT_HANDLE_STALE.
vehicles summaryroad-vehicles.readReadJaNeinKeineSTABLE_BETAAnzahlen und Spielerzustand, keine Handles.
vehicles spawnroad-vehicles.spawnActionJaJa (fügt ein RoadVehicle hinzu)Keine, nicht entferntEXPERIMENTALErfordert --model=Vehicles\...\*.bus. Client-Timeout 30 s, Eigentümer-Timeout 15 s. Weist das Spielerfahrzeug nicht zu. RV-003 RUNTIME_PASS.
vehicles place-randomroad-vehicles.place-randomActionJaJaKeineEXPERIMENTALProfiliertes PlaceRandomBus.
player getplayer-vehicle.readReadJaNeinKeineSTABLE_BETASemantisches Null, wenn kein Spielerfahrzeug vorhanden ist.
humans listhumans.listReadJaNeinKeineEXPERIMENTALGibt hb-NNNNNN-Handles zurück.
humans gethuman.readReadJaNeinKeineEXPERIMENTALErfordert --handle=.
humans summaryhumans.readReadJaNeinKeineEXPERIMENTALNur Anzahlen.
timetable gettimetable.readReadJaNeinKeineSTABLE_BETAZustand des Fahrplanmanagers.
timetable tracks listtimetable.tracks.listReadJaNeinKeineSTABLE_BETATeil der Capability timetable.read; Nachweis per Batch-Lesen vom 2026-09-20.
timetable trips listtimetable.trips.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable lines listtimetable.lines.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable tours listtimetable.tours.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable profiles listtimetable.profiles.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable bus-stops listtimetable.bus-stops.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable station-links listtimetable.station-links.listReadJaNeinKeineSTABLE_BETAWie oben.
timetable logs listtimetable.logs.readReadJaNeinKeineSTABLE_BETAWie oben.
drivers listdrivers.readReadJaNeinKeineEXPERIMENTALFahrerdatensätze.
tickets gettickets.readReadJaNeinKeineEXPERIMENTALDatensätze der Fahrscheinpakete.
hof getvehicle.hofs.readReadJaNeinKeineSTABLE_BETAErfordert --handle=.
constants listvehicle.constants.listReadJaNeinKeineSTABLE_BETAErfordert --handle=.
constants getvehicle.constant.getReadJaNeinKeineSTABLE_BETAErfordert --handle=, --name=.
curves listvehicle.curves.listReadJaNeinKeineSTABLE_BETAErfordert --handle=.
curves evaluatevehicle.curve.evaluateReadJaNeinKeineSTABLE_BETAErfordert --handle=, --name=, --x=.
scripts variable listvehicle.variables.listReadJaNeinKeineEXPERIMENTALErfordert --handle=.
scripts variable getvehicle.variable.getReadJaNeinKeineEXPERIMENTALErfordert --handle=, --name=.
scripts variable setvehicle.variable.setWriteJaJa (Skriptvariable)Keine, nicht rückgängig gemachtEXPERIMENTALErfordert --handle=, --name=, --value= (endliche Zahl).
scripts string listvehicle.string-variables.listReadJaNeinKeineEXPERIMENTALErfordert --handle=.
scripts string getvehicle.string-variable.getReadJaNeinKeineEXPERIMENTALErfordert --handle=, --name=.

Operationen ohne Route#

Diese öffentlichen Operations-IDs (PublicCapabilityRegistry.PublicRuntimeOperationIds) haben keine hierarchische Route und werden mit /runtime:<operation> plus --key=value oder /runtime-arg:key=value aufgerufen: timetable.rv-files.list, timetable.track-entries.list, timetable.tour-entries.list, d3d.status, d3d.texture.create (width, height, format erforderlich; levels optional), d3d.texture.describe (handle; level optional), d3d.texture.update (handle, width, height, pixels_base64 erforderlich; level, x, y optional), d3d.texture.release (handle). D3D-Operationen sind EXPERIMENTAL; der Textur-Lebenszyklus und die Invalidierung beim Geräte-Reset sind zur Laufzeit validiert (Runtime-Closure H02, D01; siehe Capabilities). timetable.track-entries.list und timetable.tour-entries.list sind begrenzte Listen: Ein Ergebnis, das nicht in den Runtime-Slot passt, wird gekürzt (truncated=true). internal.road-vehicles.make-basic ist INTERNAL und wird sowohl von der CLI als auch von der API mit OL_E_RUNTIME_OPERATION_UNKNOWN abgelehnt.

Flags#

Jedes Flag aus CliInput.KnownFlags. „Phase“ ist Startzeit (bestimmt die LaunchSpec/den Plan einer neuen Sitzung), Runtime (wirkt auf eine laufende Sitzung) oder Steuerung (ändert das Verhalten der CLI selbst). Flags, die nur aus Kompatibilitätsgründen geparst werden (CliInput.AcceptedNoEffectFlags), sind in ihrer Zeile gekennzeichnet.

Steuerung und Ausgabe#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/?/?ausSteuerungSTABLE_BETAGibt den Verwendungstext aus, Exit 0.
/help/helpausSteuerungSTABLE_BETAWie /?. (Das einzelne Wort help gibt stattdessen den strukturierten Katalog zurück.)
/version/versionausSteuerungSTABLE_BETAEnvelope version, Exit 0. Wird vor jedem anderen Befehl außer /silent ausgewertet.
/json/json oder --jsonausSteuerungSTABLE_BETAGibt JSON-Envelopes aus; erzwingt außerdem Konsolenausgabe auch unter OmsiLaunchW.exe.
/quiet/quietausSteuerungACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTSetzt CliInput.Quiet; nichts liest es aus.
/silent/silent (auch --silent)ausSteuerungEXPERIMENTALDelegiert die gesamte Befehlszeile an OmsiLaunchW.exe und gibt 0 zurück, sobald der Host-Prozess gestartet ist. Das Ergebnis der Sitzung wird von OmsiLaunchW.exe (Meldungsfenster, Tray-Symbol), .omsilaunch\diagnostics und dem lokalen Steuerungsendpunkt gemeldet. Die Delegierung und die Fehlerdialoge sind zur Laufzeit validiert (Runtime-Closure T04); siehe OmsiLaunchW.exe.
/serve/serveausSteuerungACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTSetzt CliInput.Serve; nichts liest es aus. Der Steuerungsendpunkt wird von einem Eigentümer immer gestartet.
/verbose/verboseausStartzeitPARTIALDiagnosticsSpec.Verbose. Die Werte werden in der Spec mitgeführt; ihre Wirkung beschränkt sich auf den Host-Trace unter .omsilaunch\diagnostics.
/log/logan (DiagnosticsSpec.Log ist standardmäßig true)StartzeitPARTIALDiagnosticsSpec.Log. Faktisch immer aktiv.
/logall/logallausStartzeitPARTIALSetzt Verbose, ProcessTrace, PluginTrace und NativeTrace gemeinsam.
/omsi-logall/omsi-logallausStartzeitPARTIALDiagnosticsSpec.OmsiLogAll.
/trace/traceausStartzeitPARTIALAlias von /trace-process.
/trace-process/trace-processausStartzeitPARTIALDiagnosticsSpec.ProcessTrace.
/trace-plugin/trace-pluginausStartzeitPARTIALDiagnosticsSpec.PluginTrace.
/trace-native/trace-nativeausStartzeitPARTIALDiagnosticsSpec.NativeTrace.

Planung, Validierung und Harnesses#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/plan/planausStartzeitSTABLE_BETAErstellt den SessionPlan und gibt ihn aus, startet OMSI nicht. Exit 0 bei IsRunnable, sonst 1. Erfordert eine Startauswahl (/new, /saved, /spec oder ein Installationsargument); /plan allein ohne weitere Angaben führt detect aus.
/validate/validateausStartzeitSTABLE_BETAIn diesem Build identisch mit /plan.
/runtime-batch/runtime-batchausRuntime (Eigentümer)INTERNALValidierungs-Harness: Führt nach Running den Satz von Leseoperationen aus und schreibt <sessionId>-runtime-read-batch.json.
/runtime-write-batch/runtime-write-batchausRuntime (Eigentümer)INTERNALValidierungs-Harness: Lesevorgänge plus time.set, camera.set und vehicle.variable.set mit Wiederherstellung; schreibt <sessionId>-runtime-write-batch.json.
/d3d-batch/d3d-batchausRuntime (Eigentümer)INTERNALValidierungs-Harness für den D3D-Textur-Lebenszyklus; schreibt <sessionId>-d3d-wave-d-batch.json.
/runtime/runtime:<operation>keinerRuntimeSTABLE_BETA (Dispatch)Wählt eine öffentliche Runtime-Operation per ID aus. Client-Modus (kein Installationsargument): wird an den Eigentümer weitergeleitet. Eigentümermodus: wird nach Running einmal ausgeführt. Unbekannte IDs: OL_E_RUNTIME_OPERATION_UNKNOWN, Exit 2.
/runtime-arg/runtime-arg:<key>=<value> (wiederholbar)keinerRuntimeSTABLE_BETA (Dispatch)Runtime-Argument; gleichwertig mit --key=value. Fehlendes =: /runtime-arg requires key=value, Exit 2.

Weltauswahl#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/new/newWorldMode.NewMap ist der Standardmodus, ein Start wird jedoch nur angefordert, wenn eines von /new, /saved, /last, /spec vorhanden istStartzeitSTABLE_BETANEW_MAP. Erfordert /map und /entrypoint-index (ein Plan ohne angegebenen Index des Einstiegspunkts meldet OL_E_ENTRYPOINT_REQUIRED; ohne /map wird keine Karte aufgelöst). /new wählt nie stillschweigend eine Karte aus.
/saved/saved:<file.osn>keinerStartzeitSTABLE_BETASAVED_SITUATION. Karte und Position stammen aus der .osn; /map, /entrypoint, /entrypoint-index werden zusammen mit /saved abgelehnt (Exit 2). Fehlende Situation: OL_E_SITUATION_NOT_FOUND; fehlende Karte der Situation: OL_E_SITUATION_MAP_NOT_FOUND.
/last/lastkeinerStartzeitUNAVAILABLELAST_MAP_STATE. Erzeugt auf diesem Profil immer OL_E_CAPABILITY_UNAVAILABLE (nicht ausführbar, Exit 1); ein zeitstempelbasierter Rückgriff auf eine .osn findet nicht statt.
/map/map:<identity> (zum Beispiel maps\Grundorf\global.cfg)keinerStartzeitSTABLE_BETAKartenidentität für /new oder der Geltungsbereich für /list:Entrypoints. Unbekannt: OL_E_MAP_NOT_FOUND.
/entrypoint/entrypoint:<identity>keinerStartzeitUNAVAILABLEEinstiegspunkt nach Bezeichnung. Durch ein Gate gesperrt: Der Plan erfasst world.entrypoint-identity als RUNTIME_PARTIAL und wird nicht ausführbar (OL_E_CAPABILITY_UNAVAILABLE). Schließt sich gegenseitig mit /entrypoint-index aus (die Identität hat Vorrang und löscht den Index).
/entrypoint-index/entrypoint-index:<n>, 0..2147483647keinerStartzeitSTABLE_BETAIndex des Einstiegspunkts in der angezeigten Liste (1-basiert, wie OMSI ihn anzeigt). Erforderlich für einen ausführbaren NEW_MAP-Plan.

Datum, Uhrzeit und Wetter#

Alle vier werden akzeptiert und in die LaunchSpec übernommen, aber der native Startpfad wendet sie nicht an: Der Planer erfasst sie als STATICALLY_PARTIAL und fügt OL_E_CAPABILITY_UNAVAILABLE hinzu, sodass der Plan NICHT AUSFÜHRBAR ist (Exit 1). Eine /spec-Datei oder ein Sitzungsprofil, das sie setzt, hat dieselbe Wirkung.

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/date/date:<yyyy-mm-dd> oder /date:systemnicht gesetztStartzeitUNAVAILABLEDateSpec explizit/System. Nicht parsbarer Wert: OL_E_INVALID_ARGUMENT, Exit 2.
/time/time:<hh:mm[:ss]> oder /time:systemnicht gesetztStartzeitUNAVAILABLETimeSpec explizit/System.
/year/year:<n> oder /year:systemnicht gesetztStartzeitUNAVAILABLEYearSpec.
/weather/weather:<preset>nicht gesetztStartzeitUNAVAILABLEWeatherMode.Preset.
/weather-icao/weather-icao:<code>nicht gesetztStartzeitUNAVAILABLEWeatherMode.Icao.
/weather-real/weather-realnicht gesetztStartzeitUNAVAILABLEWeatherMode.RealCurrent. Das letzte von /weather, /weather-icao, /weather-real hat Vorrang.

Spielerfahrzeug#

Wird akzeptiert und gegen die Installation aufgelöst, aber von der Runtime nicht angewendet: Jedes gesetzte Feld ist STATICALLY_PARTIAL und fügt OL_E_CAPABILITY_UNAVAILABLE hinzu (Plan NICHT AUSFÜHRBAR, Exit 1).

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/vehicle/vehicle:<identity> (Vehicles\...\*.bus)nicht gesetztStartzeitUNAVAILABLEWird zuerst aufgelöst (OL_E_VEHICLE_NOT_FOUND, falls unbekannt).
/repaint/repaint:<id>nicht gesetztStartzeitUNAVAILABLEWird nur zusammen mit /vehicle aufgelöst (OL_E_REPAINT_NOT_FOUND).
/hof/hof:<id>nicht gesetztStartzeitUNAVAILABLEOL_E_HOF_NOT_FOUND, falls unbekannt.
/fleet/fleet:<n>nicht gesetztStartzeitUNAVAILABLEFuhrparknummer.
/registration/registration:<text>nicht gesetztStartzeitUNAVAILABLEKennzeichen.
/no-vehicle/no-vehicleausStartzeitSTABLE_BETAEntfernt ein etwaiges Spielerfahrzeug aus der Vorlage (/spec oder Profil). Unbedenklich.

Konfigurations-Overlays#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/set/set:<key>=<value> (wiederholbar; Groß-/Kleinschreibung der Schlüssel wird nicht beachtet)keinerStartzeitSTABLE_BETASemantisches options.cfg-Overlay aus ConfigurationCatalog (zum Beispiel graphics.maxFPS=60, traffic.randomVehicles=150). Unbekannter Schlüssel: OL_E_UNKNOWN_SETTING (Exit 2); schreibgeschützter Schlüssel (advanced.multithreadingCalculate, advanced.multithreadingTextureLoad, graphics.texture, graphics.textureFilter): OL_E_SETTING_NOT_WRITABLE (Exit 2); Wert außerhalb des Bereichs oder fehlerhaft: OL_E_INVALID_SETTING_VALUE, wenn das Overlay erstellt wird. Das Overlay ist eine Sitzungsänderung: als Snapshot gesichert, vor dem Start von OMSI angewendet, beim Stopp Byte für Byte wiederhergestellt (RV-005 RUNTIME_PASS). Konflikte mit einem Schlüssel, der einer Voreinstellung eines ausgewählten Profils gehört: OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT.

Startbild-Darstellung#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/splash/splash:Managed, /splash:Native, /splash:Unset (Groß-/Kleinschreibung wird nicht beachtet)ManagedStartzeitSTABLE_BETAManaged: Die mitgelieferten 24-Bit-BMPs mit 640x480 werden einmalig nach <root>\.omsilaunch\assets\splash kopiert, und GUI\NewSplashscreen_ENG.bmp sowie GUI\NewSplashscreen_<lang>.bmp werden transaktional überlagert und exakt wiederhergestellt (RV-006 RUNTIME_PASS). Native/Unset (Aliase): OMSI-Dateien bleiben unberührt. Fehlender Wert: /splash requires Unset, Native, or Managed, Exit 2.
/splash-language/splash-language:PTB|ENG|DEU|FRA (auch pt-BR, de, fr, en; alles andere fällt auf ENG zurück)[language] aus options.cfg, sonst ENGStartzeitSTABLE_BETAWählt die lokalisierte Zieldatei aus.
/splash-assets/splash-assets:<directory> (relative Pfade werden unterhalb des Installationsstammverzeichnisses aufgelöst)<root>\.omsilaunch\assets\splash, sonst der mitgelieferte SatzStartzeitSTABLE_BETABenutzerdefiniertes Asset-Verzeichnis; muss ENG.bmp und, für eine nicht englische Sprache, <lang>.bmp enthalten. Fehler: OL_E_SPLASH_ASSET_DIRECTORY_MISSING, OL_E_SPLASH_ASSET_MISSING, OL_E_SPLASH_FORMAT_UNSUPPORTED (im Plan als OL_E_SESSION_PRESENTATION_INVALID gemeldet; nicht ausführbar).

Internettexturen#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/internet-textures/internet-textures:Native|Disabled|OverrideNativeStartzeitEXPERIMENTALNative: unberührt. Disabled: Der profilierte prozessinterne Downloader wird unterdrückt. Override: Das angegebene .itx-Profil wird als Texture\standard.itx überlagert; jedes darin aufgeführte HTTP(S)-Ziel sowie Texture\standard.ipr werden zu Sitzungslöschungen (für die Sitzung entfernt, beim Stopp wiederhergestellt). Fehlender Wert: Exit 2.
/internet-textures-profile/internet-textures-profile:<file.itx>keinerStartzeitEXPERIMENTALErforderlich mit Override (OL_E_ITX_PROFILE_REQUIRED, Exit 2). OL_E_ITX_PROFILE_MISSING, OL_E_ITX_PROFILE_INVALID (muss aus Zeilenpaaren aus URL und Ziel mit http/https-URLs bestehen), OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATH (Ziele müssen unter Texture\ aufgelöst werden, ohne absolute Pfade, .. oder Analysepunkte).

Sitzungsprofile#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/predefined-profile/predefined-profile:<id>keinerStartzeitSTABLE_BETA (Kompilierung; offline OmsiLaunch.ProfileTests)Lädt <root>\.omsilaunch\session-profiles\<id>\profile.yaml (siehe Sitzungsprofile). Erfordert /predefined-profile-index (OL_E_SESSION_PROFILE_PRESET_NOT_FOUND, Exit 2). Der Block new: gilt nur mit /new; compatibility.maps wird für /new und /saved erzwungen (OL_E_SESSION_PROFILE_MAP_MISMATCH). Explizite Flags, die mit einem dem Profil gehörenden Feld kollidieren, werden mit OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT abgelehnt (CliInput.RejectProfileConflicts): Karte/Einstiegspunkt/Datum/Uhrzeit/Jahr/Wetter, wenn der Block new: sie besitzt, /set-Schlüssel, die der Voreinstellung gehören, Startbild-Flags, wenn die Voreinstellung presentation enthält, Internettextur-Flags, wenn sie internet-textures enthält, Timeouts, wenn sie behavior enthält.
/predefined-profile-index/predefined-profile-index:<1..5>keinerStartzeitSTABLE_BETAWählt die Voreinstellung über index aus. Außerhalb des Bereichs: Exit 2.

LaunchSpec-Datei#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/spec/spec:<path.json>keinerStartzeitSTABLE_BETA (Loader offline getestet; Sitzungssemantik identisch mit Flags)Lädt eine LaunchSpec-JSON-Datei als Vorlage (siehe LaunchSpec) und kennzeichnet einen Start als angefordert. Regeln (LaunchSpecJson): Die Datei muss existieren (OL_E_SPEC_NOT_FOUND, Exit 6); höchstens 1 MiB (OL_E_SPEC_TOO_LARGE, Exit 2); die Wurzel muss ein Objekt sein (OL_E_SPEC_INVALID); bei Eigenschaftsnamen wird die Groß-/Kleinschreibung nicht beachtet; //-Kommentare und nachgestellte Kommas sind erlaubt; Tiefe höchstens 32; jede unbekannte Eigenschaft wird mit ihrem JSON-Pfad abgelehnt (OL_E_SPEC_UNKNOWN_PROPERTY: $.Presentation.Foo, Exit 2).

Vorrang (CliInput.BuildSpecAsync): Standardwerte → /spec-Datei → /predefined-profile (ersetzt Installation und World, wendet dann das Profil an) → explizite Flags. Ein explizites Installationsargument hat Vorrang vor RootPath in der Spec. /no-vehicle entfernt das Spielerfahrzeug der Spec; /vehicle und die zugehörigen Flags werden Feld für Feld damit zusammengeführt. /set-Schlüssel werden in Environment.General zusammengeführt. /splash, /splash-language, /splash-assets, /internet-textures, /internet-textures-profile überschreiben nur, wenn sie angegeben sind. /startup-timeout und /shutdown-timeout überschreiben nur, wenn sie angegeben sind; Presentation.SuppressTrayIcon stammt ausschließlich aus der Spec (kein Flag). Diagnose-Flags werden mit den Diagnostics der Spec per ODER verknüpft.

Inhaltserkennung#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/list/list:<category>; Kategorien sind die ContentQueryKind-Werte Maps, Situations, Vehicles, Repaints, Hofs, FleetNumbers, Registrations, Addons, Entrypoints (Groß-/Kleinschreibung wird nicht beachtet)keinerlokal, keine SitzungSTABLE_BETADiscoverAsync über die Installation; Envelope content.list mit Einträgen Identity, Kind, DisplayName; Exit 0. Unbekannte Kategorie: Unknown discovery category, Exit 2. Analysepunkte (Junctions/symbolische Verknüpfungen) werden übersprungen, OMSI-Dateien werden als Windows-1252 gelesen.
/vehicle-scope/vehicle-scope:<vehicle identity>keinerlokalSTABLE_BETAGeltungsbereich, der für jede Kategorie außer Entrypoints weitergegeben wird; diese verwendet /map als Geltungsbereich.

Timeouts und Beobachtung#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/startup-timeout/startup-timeout:<1..600> SekundenWert aus Spec/Profil, sonst 180StartzeitSTABLE_BETABehavior.StartupTimeoutSeconds. Der Eigentümer wartet diesen Wert plus 5 s auf Running; OL_E_STARTUP_TIMEOUT beendet die Sitzung mit Exit 1.
/shutdown-timeout/shutdown-timeout:<1..600> SekundenWert aus Spec/Profil, sonst 30StartzeitACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTWird in Behavior.ShutdownTimeoutSeconds übernommen; der Supervisor verwendet ihn in diesem Build nicht (OMSI wird beendet, nicht zum Schließen aufgefordert).
/observe-seconds/observe-seconds:<0..2147483647>keiner (läuft, bis OMSI sich beendet oder ein Stopp angefordert wird)Runtime (Eigentümer)STABLE_BETAObergrenze für die Laufphase: Nach n Sekunden im Zustand Running wird der kanonische Stopp angefordert. Ein Stopp über Tray oder Pipe oder das Beenden von OMSI beendet sie früher. 0 stoppt unmittelbar nach Running.

Recovery#

FlagSyntax und WerteStandardPhaseStabilitätVerhalten
/recovery-status/recovery-statusauslokalSTABLE_BETAMeldet, ob <root>\.omsilaunch\journal.json aussteht (pending), stellt nie wieder her; Exit 0. Übernimmt die Installations-Lease: OL_E_INSTALLATION_BUSY (Exit 7), solange ein Eigentümer sie hält.
/recover/recoverauslokalSTABLE_BETAStellt ein ausstehendes Journal wieder her (Backups werden zuerst gegen den SHA-256 des Snapshots geprüft; OL_E_RECOVERY_BACKUP_CORRUPT, OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCH, OL_W_RESTORE_FOREIGN_FILE_RETAINED werden in diagnostics gemeldet). Exit 0, wenn nichts ausstand oder die Wiederherstellung abgeschlossen wurde; 8, wenn ein Journal ausstand und bestehen bleibt. Wird mit OL_E_INSTALLATION_BUSY verweigert, solange der im Journal erfasste OMSI-Prozess (PID, Erstellungszeit, Pfad der ausführbaren Datei) oder, bei einem Journal nach HandoffCreated ohne PID, irgendein Omsi.exe aus diesem Stammverzeichnis aktiv ist. Jeder Sitzungsstart führt dieselbe Recovery automatisch aus, bevor die Installation gelesen wird.

Ausgabeformate#

  • Erfolgs-Envelope (CliInput.WriteEnvelope, mit --json): {"ok": true, "command": "<name>", "protocol_version": "0.1", "result": <object>}, eingerückt. Weitergeleitete Antworten auf session status und events read enthalten zusätzlich ein Element metadata, wenn ältere Ereignisse ausgelassen wurden, damit die Antwort in den Steuerungs-Frame passt (events_dropped_count, siehe lokale Steuerung). Ohne --json wird nur <object> als eingerücktes JSON ausgegeben, gefolgt von Note: <n> older events were omitted to fit the control frame., wenn Ereignisse verworfen wurden.
  • Fehler-Envelope (CliInput.WriteError, mit --json): {"ok": false, "command": "<name>", "protocol_version": "0.1", "error": {"code": "OL_E_...", "category": "<category>", "message": "..."}}. Ohne --json: OL_E_<CODE>: message in einer Zeile. Kategorien: invalid_argument, unsupported_profile, session, runtime, not_found, transaction, internal. Unter OmsiLaunchW.exe werden derselbe Code und dieselbe Meldung in einem Meldungsfenster angezeigt.
  • Plan und Status (CliInput.Write): Die Datensätze SessionPlan, SessionStatus und RuntimeCommandResult werden als eingerücktes JSON ohne Envelope ausgegeben. Ohne --json wird ein Plan als Plan: READY profile=Omsi23004_692EBFBF oder Plan: NOT RUNNABLE profile=... zusammengefasst; andere Datensätze werden weiterhin als JSON ausgegeben. Enum-Werte werden als Ganzzahlen serialisiert (SessionState.Running ist 14, Completed ist 18, Failed ist 19).
  • In Envelopes verwendete Befehlsnamen: silent, version, capabilities, help, profiles, detect, recover, content.list, session, session.status, session.stop, events.read, events.watch, events watch, installation, cli, session profile sowie die Runtime-Operations-ID bei weitergeleiteten Runtime-Befehlen.
  • Unter OmsiLaunchW.exe (OMSILAUNCH_WINDOWS_HOST=1) wird nichts auf die Konsole geschrieben, sofern nicht --json angegeben ist.

Fehler pro Befehl#

BefehlTypische FehlercodesExit
Jeder Parse-FehlerOL_E_INVALID_ARGUMENT, Sitzungsprofil-Codes (OL_E_SESSION_PROFILE_*)2
/silentOL_E_WINDOWS_HOST_MISSING, OL_E_WINDOWS_HOST_START_FAILED7
Client-Route, /runtime (Client)OL_E_RUNTIME_OPERATION_UNKNOWN, OL_E_RUNTIME_ARGUMENT_REQUIRED (2); OL_E_NO_ACTIVE_SESSION (4); vom Eigentümer zurückgegebene OL_E_CONTROL_*, OL_E_RUNTIME_*, z. B. OL_E_RUNTIME_REQUEST_TIMEOUT, OL_E_RUNTIME_OBJECT_HANDLE_STALE, OL_E_RUNTIME_SETTING_NOT_PERSISTENT, OL_E_RUNTIME_RESPONSE_TOO_LARGE, OL_E_SESSION_NOT_RUNNING (7)2, 4, 7
session status, session stop, events read, events watchOL_E_NO_ACTIVE_SESSION (4); OL_E_CONTROL_SESSION_MISMATCH, OL_E_CONTROL_PROTOCOL, OL_E_CONTROL_FAILED (7)4, 7
Vorabprüfung des EigentümersOL_E_RUNTIME_INSTALLATION_INCOMPLETE, OL_E_SESSION_ALREADY_ACTIVE7
/recovery-status, /recoverOL_E_INSTALLATION_BUSY (7); OL_E_RECOVERY_*, OL_E_RESTORE_FAILED (8); ausstehend, aber nicht wiederhergestellt (8)7, 8
/listunbekannte Kategorie (2); OL_E_INSTALLATION_NOT_FOUND/fehlende Verzeichnisse (6)2, 6
/specOL_E_SPEC_NOT_FOUND (6); OL_E_SPEC_TOO_LARGE, OL_E_SPEC_INVALID, OL_E_SPEC_UNKNOWN_PROPERTY (2)2, 6
/setOL_E_UNKNOWN_SETTING, OL_E_SETTING_NOT_WRITABLE, OL_E_INVALID_SETTING_VALUE2
/plan, /validate, StartPlandiagnosen: OL_E_PERMANENT_PLUGIN_MISSING, OL_E_PERMANENT_PLUGIN_HASH_MISMATCH, OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETE (installierte Plugin-Closure), OL_E_UNSUPPORTED_BUILD, OL_E_UNSUPPORTED_OPERATING_SYSTEM, OL_E_INSTALLATION_NOT_WRITABLE, OL_E_MAP_NOT_FOUND, OL_E_ENTRYPOINT_REQUIRED, OL_E_SITUATION_NOT_FOUND, OL_E_SITUATION_MAP_NOT_FOUND, OL_E_VEHICLE_NOT_FOUND, OL_E_REPAINT_NOT_FOUND, OL_E_HOF_NOT_FOUND, OL_E_CAPABILITY_UNAVAILABLE, OL_E_SESSION_PRESENTATION_INVALID, OL_E_RUNTIME_ARTIFACT_MISSING, plugin.integrity.reference (informativ)1
SitzungsstartOL_E_PLAN_NOT_RUNNABLE (erneute Planung beim Start, 1); OL_E_PERMANENT_PLUGIN_MISSING, OL_E_PERMANENT_PLUGIN_HASH_MISMATCH, OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETE, OL_E_RELEASE_MANIFEST_INVALID (normalerweise von der Planung als Plandiagnose gemeldet, Exit 1; 7 nur, wenn sich die Plugin-Dateien zwischen Planung und Start ändern), OL_E_INSTALLATION_BUSY (7); OL_E_PROCESS_START_FAILED, OL_E_PROCESS_EXITED_EARLY, OL_E_STARTUP_TIMEOUT, OL_E_WORLD_START_FAILED, OL_E_SITUATION_LOAD_FAILED, OL_E_PLUGIN_NOT_LOADED (Sitzung Failed, 1)1, 7
Unbehandelte Ausnahme an beliebiger Stelleklassifiziert durch CliProgram.Classify (siehe Exitcodes)2..10

Umgebung#

VariableGesetzt vonWirkung
OMSILAUNCH_WINDOWS_HOST=1OmsiLaunchW.exeWindowsHost.IsActive: Konsolenausgabe unterdrückt, Fehler als Meldungsfenster, /silent wird nicht erneut delegiert.

Siehe auch#

CLI-Beispiele · OmsiLaunchW.exe · Exitcodes · Fehler · lokale Steuerung · Windows-Tray · Runtime-Steuerung · Capabilities · LaunchSpec · Sitzungsprofile · Paketierung · Kompatibilität · bekannte Einschränkungen · öffentliche API