Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.
Ta strona jest normatywną dokumentacją referencyjną rekordu LaunchSpec – rekordu żądania opisującego jedną sesję OmsiLaunch. Opisuje jego kształt w C# (OmsiLaunch.Api), postać pliku JSON wczytywanego przez CLI (/spec:<path>, tools/OmsiLaunch.Cli/LaunchSpecJson.cs), każdą właściwość wraz z typem, wartością domyślną, regułą walidacji i bieżącym działaniem, reguły walidacji, które czynią plan niemożliwym do uruchomienia, oraz pierwszeństwo między flagami CLI, plikami specyfikacji i profilami sesji. Udokumentowano wyłącznie to, co robi bieżący kod.
Integrator tworzy rekord i przekazuje go do PlanSessionAsync.
Flagi CLI
CliInput.BuildSpecAsync zaczyna od wbudowanych wartości domyślnych (NEW_MAP, wszystko nieustawione, wartości domyślne Behavior) i stosuje flagi.
Plik JSON /spec:<path>
Wczytywany przez LaunchSpecJson.LoadAsync, a następnie używany jako punkt wyjścia, który flagi CLI nadpisują (zob. pierwszeństwo).
Profil sesji (/predefined-profile:<id> /predefined-profile-index:<n>)
SessionProfileCompiler.Apply zapisuje w punkcie wyjścia świat, ustawienia, prezentację, tekstury internetowe i zachowanie z profilu oraz rejestruje metadane SessionProfile.
Poniższy kompletny przykład jest zweryfikowany względem kształtu rekordu. Kopia minimalnego przykładu jest dostarczana jako examples/release-session.example.json (oraz .omsilaunch\examples\release-session.example.json w pakiecie wydania).
System.Text.Json z PropertyNameCaseInsensitive = true, ReadCommentHandling = Skip, AllowTrailingCommas = true; nie są zarejestrowane żadne konwertery.
Nazwy właściwości
Nazwy właściwości C# (Installation, RootPath, ...). Przy wczytywaniu dopasowanie nie uwzględnia wielkości liter; CLI zapisuje je w notacji PascalCase.
Wyliczenia
Liczby całkowite (brak konwertera wyliczeń na ciągi znaków). "Mode": 0 jest poprawne; "Mode": "NewMap" jest odrzucane jako źle sformowany JSON. Wartości wymieniono w sekcji Wyliczenia.
OptionalValue<T>
Obiekt { "Presence": 0 | 1, "Value": <T or null> }. Presence 0 = Unset (wartość jest ignorowana), 1 = Set (wartość musi być obecna i różna od null; Set z wartością null nie jest walidowane i zachowuje się jak nieprawidłowa wartość). Pominięty element OptionalValue oznacza Unset. Element tylko do odczytu IsSet pojawia się w danych wyjściowych zapisywanych przez CLI i jest przy wczytywaniu akceptowany oraz ignorowany.
Rekordy opcjonalne
Year, Weather, Input, Diagnostics, Presentation, InternetTextures, SessionProfile mogą mieć wartość null lub zostać pominięte; akcesory Effective* podstawiają wartości domyślne.
Rekordy wymagane
Installation, World, Date, Time, Environment (ze wszystkimi ośmioma słownikami, należy użyć {}), Behavior muszą być obecnymi obiektami. Nie są walidowane: wartość null lub brak rekordu powoduje później błąd odwołania do null, który CLI zgłasza jako OL_E_INTERNAL (kod wyjścia 10) lub OL_E_INVALID_ARGUMENT (kod wyjścia 2).
Nieznane właściwości
Odrzucane przed powiązaniem: OL_E_SPEC_UNKNOWN_PROPERTY: $.Path.Name (ścieżka używa nazw elementów w postaci zapisanej w pliku). Zawartość słowników (Environment.*) nie jest sprawdzana jako właściwości.
Korzeń
Musi być obiektem JSON: OL_E_SPEC_INVALID. Maksymalna głębokość zagnieżdżenia 32.
Komentarze // i /* */ oraz końcowe przecinki są akceptowane.
Źle sformowany JSON
Wyjątek parsera nie jest tłumaczony: CLI zgłasza OL_E_INTERNAL z kodem wyjścia 10.
Kodowanie
UTF-8 (czytnik toleruje BOM). Ukośniki odwrotne w identyfikatorach muszą być poprzedzone znakiem ucieczki ("maps\\Grundorf\\global.cfg"); w identyfikatorach map, sytuacji, pojazdów i plików HOF akceptowane są ukośniki zwykłe.
walidowana; każdy tryb oprócz Unset jest niemożliwy do uruchomienia
PARTIAL
Time
obiekt TimeSpec
tak
brak
walidowana; każdy tryb oprócz Unset jest niemożliwy do uruchomienia
PARTIAL
PlayerVehicle
OptionalValue<PlayerVehicleSpec>
nie
Unset
rozwiązywana na potrzeby komunikatów diagnostycznych; każde ustawione pole jest niemożliwe do uruchomienia
PARTIAL
Environment
obiekt EnvironmentSpec
tak
brak
tak (semantyczna nakładka (overlay) na options.cfg)
STABLE_BETA
Behavior
obiekt LaunchBehaviorSpec
tak
brak
częściowo (zob. rekord)
STABLE_BETA / PARTIAL
Year
obiekt YearSpec lub null
nie
null → EffectiveYear = tryb Unset
każdy tryb oprócz Unset jest niemożliwy do uruchomienia
PARTIAL
Weather
obiekt WeatherSpec lub null
nie
null → EffectiveWeather = tryb Unset
każdy tryb oprócz Unset jest niemożliwy do uruchomienia
PARTIAL
Input
obiekt InputSpec lub null
nie
null → EffectiveInput = oba nieustawione
każdy ustawiony dokument jest niemożliwy do uruchomienia
PARTIAL
Diagnostics
obiekt DiagnosticsSpec lub null
nie
null → EffectiveDiagnostics = wartości domyślne
tylko przenoszona
PARTIAL
Presentation
obiekt SessionPresentationSpec lub null
nie
null → EffectivePresentation = zarządzany ekran startowy, brak języka, brak katalogu niestandardowego, ikona w obszarze powiadomień wyświetlana
tak
STABLE_BETA
InternetTextures
obiekt InternetTexturesSpec lub null
nie
null → EffectiveInternetTextures = Native
tak
STABLE_BETA / EXPERIMENTAL
SessionProfile
obiekt SessionProfileMetadata lub null
nie
null
tylko informacja o pochodzeniu (komunikat diagnostyczny planu session_profile.selected)
STABLE_BETA
Akcesory tylko do odczytu (obecne w danych wyjściowych JSON CLI, ignorowane przy wczytywaniu): EffectiveYear, EffectiveWeather, EffectiveInput, EffectiveDiagnostics, EffectivePresentation, EffectiveInternetTextures.
Dla NewMap: wymagana, w postaci maps\<dir>\global.cfg (bez rozróżniania wielkości liter, / akceptowany, bez ..) i zainstalowana. Ignorowana dla SavedSituation (mapę dostarcza plik .osn).
tak (przekazanie)
STABLE_BETA
SituationIdentity
OptionalValue<string>
Unset
Dla SavedSituation: wymagana, identyfikator zainstalowanego pliku situations\...\<file>.osn (w postaci zwracanej przez DiscoverAsync(Situations) / /list:situations).
tak (przekazanie)
STABLE_BETA
PresentedEntrypointIndex
OptionalValue<int>
Unset
Dla NewMap bez EntrypointIdentity: wymagana, >= 0, indeks na prezentowanej przez OMSI liście punktów wejścia mapy. Gdy nieustawiona, jest wysyłana do wtyczki jako -1.
tak (przekazanie)
STABLE_BETA
EntrypointIdentity
OptionalValue<string>
Unset
Surowa etykieta punktu wejścia lub identyfikator z wykrywania. Jej ustawienie czyni plan niemożliwym do uruchomienia (world.entrypoint-identity, RUNTIME_PARTIAL, OL_E_CAPABILITY_UNAVAILABLE).
przenoszona
PARTIAL
Entrypoint
EntrypointSpec (tylko do odczytu)
obliczana
Mode = Identity, gdy ustawiono EntrypointIdentity, w przeciwnym razie PresentedIndex, gdy ustawiono indeks, w przeciwnym razie Unset; PresentedIndex, Identity odzwierciedlają dane wejściowe.
Explicit/System → wpis unsupported (world.explicit-date, world.explicit-time, world.explicit-year, STATICALLY_PARTIAL) i OL_E_CAPABILITY_UNAVAILABLE. Tryby są też kopiowane do przekazania startowego, które wtyczka odrzuca, gdy nie mają wartości Unset (do czego nigdy nie dochodzi, bo plan jest niemożliwy do uruchomienia).
SemanticDate: Year, Month 1..12, Day 1..31; SemanticTime: Hour 0..23, Minute 0..59, Second 0..59. Musi być ustawiona, gdy Mode ma wartość Explicit (w przeciwnym razie OL_E_DATE_TIME_APPLY_FAILED), i musi być nieustawiona, gdy Mode nie ma wartości Explicit (OL_E_INVALID_ARGUMENT). YearSpec.Value nie jest walidowana.
Identyfikator zainstalowanego pliku Vehicles\...\<file>.bus, w przeciwnym razie OL_E_VEHICLE_NOT_FOUND.
rozwiązywana do ResolvedContent; następnie nieobsługiwana możliwość player-vehicle.model → OL_E_CAPABILITY_UNAVAILABLE
PARTIAL
Repaint
OptionalValue<string>
Unset
Identyfikator malowania dla Model (<cti>#item:<n>), w przeciwnym razie OL_E_REPAINT_NOT_FOUND; sprawdzana tylko, gdy ustawiono Model.
jak wyżej
PARTIAL
Hof
OptionalValue<string>
Unset
Zainstalowany plik Vehicles\...\<file>.hof, w przeciwnym razie OL_E_HOF_NOT_FOUND.
jak wyżej
PARTIAL
FleetNumber
OptionalValue<string>
Unset
Dowolny ciąg znaków.
OL_E_CAPABILITY_UNAVAILABLE
PARTIAL
Registration
OptionalValue<string>
Unset
Dowolny ciąg znaków.
OL_E_CAPABILITY_UNAVAILABLE
PARTIAL
Enabled
bool (tylko do odczytu)
obliczana
true, gdy ustawiono Model. Przekazanie przenosi jako PlayerVehicleEnabled wartość PlayerVehicle.IsSet.
pochodna
PARTIAL
PlayerVehicle z Presence 1 i wszystkimi polami nieustawionymi jest akceptowany i nie ma żadnego efektu. Każde ustawione pole czyni plan w tym buildzie niemożliwym do uruchomienia (STATICALLY_PARTIAL).
General, Advanced, Graphics, AdvancedGraphics, Sound, AiPassengers, Keyboard, Controllers
każda IReadOnlyDictionary<string, OptionalValue<string>>, wymagana ({}, gdy pusta)
brak
tak
STABLE_BETA
Osiem grup jest łączonych; to, w której grupie umieszczono klucz, nie ma znaczenia. Każdy wpis z Presence 1 jest ustawieniem semantycznym z ConfigurationCatalog (src/OmsiLaunch.Configuration/ConfigurationCatalog.cs); klucz wybiera plik docelowy (options.cfg dla każdego obecnego klucza) i token. Planowanie sprawdza, czy klucz istnieje (OL_E_UNKNOWN_SETTING) i czy jest zapisywalny (OL_E_SETTING_NOT_WRITABLE); wartość jest walidowana dopiero przy uruchomieniu (OL_E_INVALID_SETTING_VALUE, zgłaszane jako sesja Failed z OL_E_START_SESSION). Klucze nie rozróżniają wielkości liter. Nieustawione wpisy są ignorowane. Flaga CLI /set:<key>=<value> zapisuje do General; ustawienia settings z profilu sesji również są scalane z General.
Brak odbiorcy: pliki należące do sesji są zawsze dokładnie przywracane.
PARTIAL (przenoszona, obecnie bez efektu)
SuppressStaleClosecheckWarning
bool
true
dowolna
true: plik closecheck istniejący przed sesją jest przy uruchomieniu trwale usuwany (komunikat diagnostyczny closecheck.stale-removed z jego SHA-256; błąd OL_E_CLOSECHECK_REMOVE_FAILED). false: istniejący closecheck pozostaje nietknięty i nie jest traktowany jako usunięcie w ramach sesji. Plik closecheck zapisany przez OMSI w trakcie sesji jest zawsze usuwany podczas przywracania.
STABLE_BETA
StartupTimeoutSeconds
int
180
1..600 (w przeciwnym razie ArgumentOutOfRangeException z StartSessionAsync; flaga CLI /startup-timeout wymusza 1..600; profile wymagają > 0). Budżet czasu od uruchomienia nadzorcy do stanu Running; po jego wyczerpaniu sesja kończy się błędem OL_E_STARTUP_TIMEOUT (wtyczka uruchomiona) lub OL_E_PLUGIN_NOT_LOADED.
tak
STABLE_BETA
ShutdownTimeoutSeconds
int
30
dowolna wartość int (CLI /shutdown-timeout 1..600)
Brak odbiorcy: nadzorca natychmiast kończy OMSI za pomocą TerminateProcess; nie ma kooperacyjnego oczekiwania na zamknięcie.
Ustawiona → nieobsługiwana możliwość input.keyboard (STATICALLY_PARTIAL) i OL_E_CAPABILITY_UNAVAILABLE. Wykonywanie PATCH/REPLACE dla klawiatury nie jest zaimplementowane.
PARTIAL
ControllerDocument
OptionalValue<string>
Unset
Ustawiona → nieobsługiwana możliwość input.controller i OL_E_CAPABILITY_UNAVAILABLE.
Brak odbiorcy w src/. Ślad hosta <root>\.omsilaunch\diagnostics\<sessionId>-host.log jest zapisywany zawsze.
PARTIAL (przenoszona, obecnie bez efektu)
Verbose
bool
false
Brak odbiorcy.
PARTIAL
OmsiLogAll
bool
false
Brak odbiorcy.
PARTIAL
ProcessTrace
bool
false
Brak odbiorcy.
PARTIAL
PluginTrace
bool
false
Brak odbiorcy.
PARTIAL
NativeTrace
bool
false
Brak odbiorcy.
PARTIAL
Flagi CLI /log, /logall, /omsi-logall, /verbose, /trace, /trace-process, /trace-plugin, /trace-native ustawiają te wartości logiczne (/logall ustawia Verbose, ProcessTrace, PluginTrace, NativeTrace); są one łączone operacją OR z wartościami ze specyfikacji.
0Unset (alias Native): własne pliki ekranu startowego OMSI pozostają nietknięte. 1Managed: OmsiLaunch nakłada na czas sesji pliki GUI\NewSplashscreen_ENG.bmp i GUI\NewSplashscreen_<LANG>.bmp (a następnie dokładnie je przywraca).
tak
STABLE_BETA (macierz RV-006)
Language
OptionalValue<string>
Unset
PTB/PT-BR, ENG/EN, DEU/DE, FRA/FR (bez rozróżniania wielkości liter); każda inna wartość jest normalizowana do ENG. Gdy nieustawiona, odczytywana jest wartość [language] z options.cfg i normalizowana w ten sam sposób.
tak (tylko zarządzany ekran startowy)
STABLE_BETA
CustomAssetDirectory
OptionalValue<string>
Unset
Katalog zawierający ENG.bmp i <LANG>.bmp (640×480, 24-bitowy BMP). Zob. reguły ścieżek. Brak katalogu: OL_E_SPLASH_ASSET_DIRECTORY_MISSING; brak pliku: OL_E_SPLASH_ASSET_MISSING; nieprawidłowy format: OL_E_SPLASH_FORMAT_UNSUPPORTED. Gdy nieustawiona, używany jest <root>\.omsilaunch\assets\splash (jednorazowo zasilany z pakietu), a w przeciwnym razie assets\splash z pakietu.
tak (tylko zarządzany ekran startowy)
STABLE_BETA
SuppressTrayIcon
bool
false
true wyłącza samodzielny wskaźnik właściciela CLI w obszarze powiadomień Windows.
Tylko właściciel CLI; API nie ma ikony w obszarze powiadomień. Nie ma flagi CLI; wartość może pochodzić wyłącznie z pliku specyfikacji.
0Native: nic się nie zmienia. 1Disabled: wtyczka blokuje działający w procesie OMSI mechanizm pobierania (telemetria internet-textures.suppressed / internet-textures.suppression.failed). 2Override: profil .itx jest nakładany jako Texture\standard.itx; jego pliki docelowe i Texture\standard.ipr stają się usunięciami w ramach sesji.
Wymagana dla Override (OL_E_ITX_PROFILE_REQUIRED). Plik tekstowy z parami wierszy: bezwzględny adres URL http/https, a następnie ścieżka docelowa względna wobec katalogu głównego instalacji, która zawiera składową Texture\, nie jest zakorzeniona, nie zawiera .., nie zaczyna się od \ i nie przechodzi przez żadne połączenie (junction) ani dowiązanie symboliczne (OL_E_ITX_PROFILE_INVALID, OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATH). Zob. reguły ścieżek.
Rejestrowane w komunikacie diagnostycznym planu session_profile.selected (Data["session_profile.*"]). Poza tym niewykorzystywane; zwykle wypełniane przez kompilator profili sesji, a nie ręcznie.
NewMap = 0, SavedSituation = 1, LastMapState = 2, LastSituation = 2 (przestarzały alias; jest to natywna gałąź ostatniego stanu mapy OMSI, nigdy najnowszy plik .osn)
DateTimeMode
Unset = 0, Explicit = 1, System = 2
WeatherMode
Unset = 0, Preset = 1, Icao = 2, RealCurrent = 3
SplashMode
Unset = 0, Native = 0 (alias), Managed = 1
InternetTexturesMode
Native = 0, Disabled = 1, Override = 2
Presence
Unset = 0, Set = 1
EntrypointMode (tylko do odczytu Entrypoint.Mode)
Unset = 0, PresentedIndex = 1, Identity = 2
Liczby całkowite spoza zadeklarowanego zakresu są zapisywane przez serializator bez zmian i zachowują się jak nieznane wartości (na przykład nieznany WorldMode nie jest ani NEW_MAP, ani SAVED_SITUATION i daje plan bez możliwości świata; wtyczka by go odrzuciła, ale CLI i tak zastępuje tryb – zob. pierwszeństwo).
Reguły walidacji i komunikaty diagnostyczne braku możliwości uruchomienia#
PlanSessionAsync wykonuje LaunchValidation.Validate, a następnie SessionPlanner.PlanAsync. Plan jest możliwy do uruchomienia dokładnie wtedy, gdy żaden kod komunikatu diagnostycznego nie zaczyna się od OL_E_. Pełny zestaw:
Komunikat diagnostyczny
Warunek
Źródło
OL_E_INSTALLATION_NOT_FOUND
Installation.RootPath puste lub zawiera same białe znaki
LaunchValidation
OL_E_DATE_TIME_APPLY_FAILED
Date.Mode = Explicit bez ustawionej wartości lub z miesiącem/dniem spoza zakresu; Time.Mode = Explicit bez ustawionej wartości lub z godziną/minutą/sekundą spoza zakresu
LaunchValidation
OL_E_INVALID_ARGUMENT
Date.Value lub Time.Value ustawione, gdy tryb nie jest Explicit
LaunchValidation
OL_E_MAP_NOT_FOUND
NewMap z nieustawionym MapIdentity lub niemającym postaci maps\...\global.cfg (walidacja); NewMap z identyfikatorem, który nie jest zainstalowany (planista)
oba
OL_E_ENTRYPOINT_NOT_FOUND
NewMap bez EntrypointIdentity i z nieustawionym lub ujemnym PresentedEntrypointIndex
LaunchValidation
OL_E_ENTRYPOINT_REQUIRED
NewMap, mapa zainstalowana, brak EntrypointIdentity, PresentedEntrypointIndex nieustawiony (world.presented-entrypoint niedostępna)
SessionPlanner
OL_E_SITUATION_NOT_FOUND
SavedSituation bez SituationIdentity (walidacja) lub z identyfikatorem, który nie jest zainstalowany (planista)
oba
OL_E_SITUATION_MAP_NOT_FOUND
SavedSituation: mapa wskazana w pliku .osn nie jest zainstalowana
SessionPlanner
OL_E_UNSUPPORTED_OPERATING_SYSTEM
środowisko inne niż Windows 10+ w systemie x64 z procesem hosta x64 (runtime.current-windows-x64)
SessionPlanner
OL_E_INSTALLATION_NOT_WRITABLE
brak katalogu głównego, ustawiony atrybut tylko do odczytu lub brak podkatalogu plugins\ (transaction.exact-restore)
SessionPlanner
OL_E_UNSUPPORTED_BUILD
brak Omsi.exe lub jego rozmiar/SHA-256 nie odpowiada ani odciskowi profilu (692EBFBF..., 8 503 440 bajtów), ani skrótowi z listy dozwolonych (omsi.profile.OMSI23004)
SessionPlanner
OL_E_CAPABILITY_UNAVAILABLE
World.Mode = LastMapState; ustawione EntrypointIdentity; tryb Date/Time/Year inny niż Unset; tryb Weather inny niż Unset; ustawione dowolne pole PlayerVehicle; ustawione Input.KeyboardDocument lub Input.ControllerDocument
PlayerVehicle.Model / Repaint / Hof nie jest zainstalowany (oprócz OL_E_CAPABILITY_UNAVAILABLE)
SessionPlanner
OL_E_UNKNOWN_SETTING, OL_E_SETTING_NOT_WRITABLE
klucz Environment, którego nie ma w katalogu / który nie jest zapisywalny
SessionPlanner
OL_E_SESSION_PRESENTATION_INVALID
budowanie planu ekranu startowego/ITX zgłosiło wyjątek; komunikat zawiera OL_E_SPLASH_ASSET_DIRECTORY_MISSING, OL_E_SPLASH_ASSET_MISSING, OL_E_SPLASH_FORMAT_UNSUPPORTED, OL_E_ITX_PROFILE_REQUIRED, OL_E_ITX_PROFILE_MISSING, OL_E_ITX_PROFILE_INVALID lub OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATH
SessionPlanner
OL_E_RUNTIME_ARTIFACT_MISSING
nie można wczytać odwołania do zestawu plików wtyczki (closure) (OmsiLaunchRuntimePaths) ani manifestu wydania (komunikat może zawierać OL_E_RELEASE_MANIFEST_INVALID)
OmsiLaunchService.PlanSessionAsync
Niewalidowane na etapie planowania (błąd występuje przy uruchomieniu jako sesja Failed z OL_E_START_SESSION): wartości ustawień (OL_E_INVALID_SETTING_VALUE), integralność stałej wtyczki (OL_E_PERMANENT_PLUGIN_*), dostępność dzierżawy instalacji (OL_E_INSTALLATION_BUSY), zakres StartupTimeoutSeconds (wyjątek zgłaszany przez StartSessionAsync).
Informacyjne komunikaty diagnostyczne planu: plugin.integrity.reference (komunikat manifest lub self), session_profile.selected.
Pierwszeństwo: flagi CLI, plik specyfikacji i profil sesji#
CliInput.BuildSpecAsync (tools/OmsiLaunch.Cli/Program.cs) buduje efektywną specyfikację w następującej kolejności:
Punkt wyjścia = wbudowane wartości domyślne lub plik /spec, jeśli go podano.
Katalog główny instalacji = jawny argument instalacji, jeśli podano, w przeciwnym razie RootPath z punktu wyjścia; następnie ./pusta wartość → katalog pliku wykonywalnego, Path.GetFullPath. Jawny argument instalacji zawsze ma pierwszeństwo przed RootPath ze specyfikacji.
Profil sesji (/predefined-profile + /predefined-profile-index): jawne argumenty CLI dotykające pola należącego do profilu są odrzucane z OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT (pola świata tylko w trybie NEW_MAP; klucze /set obecne w ustawieniu wstępnym; flagi ekranu startowego, gdy ustawienie wstępne ma presentation; flagi tekstur internetowych, gdy ma internet-textures; limity czasu, gdy ma behavior). World z punktu wyjścia jest zastępowany nowym (zachowuje się tylko tryb świata z CLI), po czym stosowane są blok new: profilu (tylko NEW_MAP), settings (do General), presentation, internet-textures, behavior oraz metadane SessionProfile. compatibility.maps jest egzekwowane dla NEW_MAP i SAVED_SITUATION.
Świat: tryb świata z CLI zawsze wygrywa (/new domyślnie, /saved:<osn>, /last); World.Mode z pliku specyfikacji jest zastępowany. Aby uruchomić zapisaną sytuację ze specyfikacji, należy przekazać /saved:. /map oraz /entrypoint//entrypoint-index nadpisują punkt wyjścia; identyfikator /entrypoint z CLI czyści indeks; /saved razem z /map lub flagami punktu wejścia daje OL_E_INVALID_ARGUMENT.
/date, /time, /year, /weather* nadpisują punkt wyjścia, gdy zostały podane (system wybiera DateTimeMode.System).
/no-vehicle czyści PlayerVehicle; poszczególne flagi /vehicle, /repaint, /hof, /fleet, /registration nadpisują poszczególne pola pojazdu gracza z punktu wyjścia.
Wpisy /set:<key>=<value> są dodawane do Environment.General (klucz jest sprawdzany, wartość nie); pozostałe siedem grup pochodzi bez zmian z punktu wyjścia.
/startup-timeout i /shutdown-timeout nadpisują punkt wyjścia tylko wtedy, gdy zostały podane; w przeciwnym razie obowiązuje specyfikacja, potem profil, a potem wartości domyślne 180 s / 30 s. ShutdownTimeoutSeconds ma w nadzorcy status ACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECT.
/splash, /splash-language, /splash-assets, /internet-textures, /internet-textures-profile nadpisują punkt wyjścia, gdy zostały podane; SuppressTrayIcon pochodzi wyłącznie z punktu wyjścia.
Flagi diagnostyczne są łączone operacją OR z punktem wyjścia.
Wynik: jawna flaga CLI > profil sesji > plik specyfikacji > wbudowana wartość domyślna, z tym że flaga CLI kolidująca z polem należącym do profilu jest błędem, a nie nadpisaniem.
Używana w podanej postaci: w operacjach na plikach ścieżki względne są rozwiązywane względem katalogu roboczego procesu. Należy przekazywać ścieżkę bezwzględną. Dzierżawa instalacji, dziennik i katalog zawartości normalizują ją za pomocą Path.GetFullPath.
. lub pusta wartość = katalog zawierający OmsiLaunch.exe, nigdy folder roboczy wywołującego; jawny argument instalacji wygrywa ze specyfikacją; wynik jest przekształcany w ścieżkę bezwzględną.
Presentation.CustomAssetDirectory
Bezwzględna lub względna wobec Installation.RootPath. Musi istnieć.
Tak samo (/splash-assets). Ścieżka assets z profilu sesji jest ograniczona do pakietu profilu i zapisywana jako bezwzględna.
InternetTextures.OverrideProfilePath
Rozwiązywana za pomocą Path.GetFullPath, czyli względem katalogu roboczego procesu, a nie katalogu głównego instalacji. Musi istnieć.
Tak samo (/internet-textures-profile). Ścieżka profile z profilu sesji jest ograniczona do pakietu i zapisywana jako bezwzględna.
Wiersze docelowe ITX
Względne wobec katalogu głównego instalacji; muszą zawierać składową Texture\; bez korzenia, bez .., bez początkowego \, bez składowej będącej połączeniem (junction) lub dowiązaniem symbolicznym.