| IClientAudio |
Sound behaviours a client resource may change for the player at this computer. Everything starts as OMSI does it. A change applies from the next frame and is undone when the resource unloads; when several resources ask for different things, the one furthest from OMSI’s behaviour wins. |
| IClientEvents |
Events as a client resource sends and receives them. Own names may be name or resource-id:name; an event carries at most 16 arguments. Sending is queued and happens on the next frame. |
| IClientHud |
A resource’s text overlays and portable interactive panels. Item ids are local to the resource. Setting an existing id replaces it; items and subscriptions are removed automatically when the resource unloads. |
| IClientInput |
OMSI keyboard.cfg commands, after OMX has resolved physical keys and modifiers. |
| IClientMessages |
Server announcements received by this client. |
| IClientResource |
Infrastructure contract implemented by ClientResource. Resource authors derive from that base class. |
| IClientRuntime |
The client half of a resource: the local player’s own things, and asking the authority for the rest. |
| IClientVehicles |
|
| IClientWorld |
|
| IDriverView |
The local player’s adjustments to the driver view (F1): where their head sits in the cab, the field of view, and the head turning with the steering. The values are the player’s own settings, the same ones the in-game Driver view panel changes, so anything set here is saved with them; IDriverView.ExtraLookDegrees is the exception, for code that steers the view itself (head tracking, for example), and is never saved. |
| IEntity |
A live view of one entity. Reads are safe from any thread and return the state the engine published for the latest frame. Once the entity has gone, IEntity.IsValid is false and the properties keep their last values. Two views of the same entity are equal. |
| IEventSource<out T> |
Something a resource can subscribe to. The handler always runs on the subscribing resource’s own thread, one call at a time and in order, never on the engine thread; an exception it throws is logged against the resource and does not affect other subscribers. Dispose the returned object to stop. All subscriptions end when the resource is unloaded. |
| ILocalVehicle |
The local player’s own bus, which a client resource can drive. Writes are checked when called and applied on the next frame, before the vehicle’s scripts run. |
| IMap |
A read-only snapshot of the real loaded OMSI map and timetable. Static arrays come directly from global.cfg and the timetable manager; loaded tiles and simulation counts update every frame. |
| IMetadata |
An entity’s key/value metadata as one resource sees it. Every resource can read every qualified key; a resource writes only its own namespace. Own keys may be written as either name or modid:name; the host adds the namespace to short names. MetadataScope.Local is this side’s own table and changes immediately. The replicated scopes belong to the authority: a server resource writes them on any entity; a client resource may only ask for a change on its own player or vehicle, and the change appears (and IMetadata.Changed fires) once the authority has accepted it. |
| IPlayer |
|
| IPlayers |
|
| IResourceBus |
|
| IResourceLog |
|
| IResourceRuntime |
What both halves of a resource share. Threading: every member is safe to call from any thread. Reads return the state the engine published for the latest frame. Changes are checked when called (so invalid ones throw right there) and applied by the engine on its next frame. Subscribed handlers run on the resource’s own thread, never the engine’s, so a slow or failing resource cannot stall or crash the game. |
| IResourceScheduler |
|
| IResourceStorage |
|
| IScriptVariables |
A vehicle’s script variables (OMSI’s public variable table and string variables) as the latest frame left them. Names match case-insensitively, as OMSI scripts do. For another player’s bus these are the replicated values, which may lag by one network update. |
| IServerEvents |
Events as a server resource sends and receives them. Names are in the resource’s own resource-id:name namespace. |
| IServerMessages |
Server-authoritative messages displayed in clients’ existing multiplayer chat. |
| IServerResource |
Infrastructure contract implemented by ServerResource. Resource authors derive from that base class. |
| IServerRuntime |
The server half of a resource: the authority over every player, vehicle and the world. |
| IServerVehicles |
|
| IServerWorld |
The world as the authority changes it. Changes are applied on the next frame and reach every client. In multiplayer only the dedicated server’s resources hold this. |
| IVehicle |
|
| IVehicles |
|
| IWorld |
The world as the latest frame left it. Safe to read from any thread. |