Jump to content

SimTX API/Packet list

From SimTX Wiki
Revision as of 17:14, 24 October 2026 by Clanker (talk | contribs) (Remove development history and server internals)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page lists every message that can be sent as a frame of the SimTX API game protocol, version 25. Each frame is a ClientFrame (client to server) or a ServerFrame (server to client) with exactly one oneof member set; the member's number identifies the message. The two directions have separate number spaces, allocated in the same blocks: 1 to 9 for the connection, 10 to 29 for receiver and transmitter sessions, 30 to 59 for control and 60 to 79 for moderation. Some numbers mean the same thing in both directions, for example 33 is weather_map both ways.

Every message has its own page, and the wire format is described on SimTX API/Framing.

Framing

varint      length
bytes       ClientFrame or ServerFrame, exactly one member set

A reader skips a frame whose member it does not know and keeps reading. See Unknown frames and fields.

Client to server

# Member Message Session Summary
1 hello ClientHello All roles Opens every game connection.
2 ping Ping All roles Asks the server for a Pong.
3 forwarded_address ForwardedClientAddress Receiver Lets a trusted proxy, such as a web receiver that relays SimTX to browsers, tell the server the real address of the person it serves.
10 receiver_start ReceiverStart Receiver Starts a receiver session.
11 receiver_retune ReceiverRetune Receiver Moves a running receiver to a new centre frequency without reconnecting.
12 transmitter_start TransmitterStart Transmitter Starts a transmitter session.
13 samples SampleBlock Transmitter Carries samples for the server to transmit.
14 tx_update TxUpdate Transmitter Changes transmitter settings while the station is on air, without reconnecting.
15 tx_mode_info TxModeInfo Transmitter Declares a human-readable name and occupied bandwidth for the signal a transmitter is sending.
16 pointing AntennaPointingUpdate Receiver, transmitter Steers the antenna of a running station-bound session, or changes its tracking and Doppler correction, without reconnecting.
30 list_stations ListStations Control, moderation Asks for the list of stations on the server.
31 start_monitor StartMonitor Control, moderation Asks the server to stream the signal of a transmitter back to the client.
32 stop_monitor StopMonitor Control, moderation Ends a monitor stream started with StartMonitor.
33 weather_map WeatherMapRequest Control Asks for a raster of the simulated tropospheric weather over an area.
34 health ServerHealthRequest Control Asks for a ServerHealthReport.
35 coverage_map CoverageMapRequest Control Asks the server to predict where a hypothetical transmitter could be heard.
36 catalog_list CatalogListRequest Control (catalog) Asks for the index of the server's extension catalog.
37 catalog_fetch CatalogFetch Control (catalog) Downloads one entry of the extension catalog, including the contents of all its files.
38 catalog_upload CatalogUpload Control (catalog) Publishes an extension or preset to the server's extension catalog, or a new revision of an entry the account already owns.
39 catalog_delete CatalogDelete Control (catalog) Removes an entry from the extension catalog.
40 ephemeris EphemerisRequest Control Asks the server for the positions of a satellite over a time window.
41 passes PassPredictionRequest Control Asks the server when a satellite will be above an observer's horizon within a time window.
60 kick KickRequest Moderation Disconnects sessions from the server.
61 ip_moderation IpModerationRequest Moderation Bans or unbans a client address.
62 broadcast_banner BroadcastBanner Moderation Sets, replaces or clears the server-wide notice.

Server to client

# Member Message Session Summary
1 hello_result ServerHello All roles Answers the ClientHello.
2 pong Pong All roles Answers a Ping.
3 error Error All roles Reports a failed control or moderation request, a refused live request on a receiver or transmitter session, or a protocol violation of the connection as a whole.
4 banner Banner Control Carries a server-wide notice for the client to display, such as planned maintenance, a performance warning or a ban notice.
10 session_status SessionStatus Receiver, transmitter The server's account of a receiver or transmitter session: once when the start is accepted (BOUND), on every change the session survives (UPDATED), and when it is refused or stopped (REJECTED, ENDED).
11 iq_descriptor IqStreamDescriptor Receiver States the parameters of the IQ stream a receiver is about to get.
12 iq IqBlock Receiver Carries one block of received complex baseband samples.
13 tx_queue TxQueue Transmitter Tells a transmitter client that every transmitter slot on the server is taken and that its start is waiting in line.
14 tx_accept TxAccept Transmitter Tells a transmitter client that its station is on the air.
17 tx_telemetry TxTelemetry Transmitter Reports the state of a transmitter on air: power at each point of the chain, standing-wave ratio, amplifier compression and temperature, and the server's playout buffer.
18 tx_update_ack TxUpdateAck Transmitter Reports the outcome of a TxUpdate, one result per field that was set.
30 station_list StationList Control, moderation Lists the stations on the server: every persistent station with live sessions, every visible satellite (with or without sessions), and every ad-hoc session.
31 monitor_block MonitorBlock Control, moderation Carries a block of a monitored transmitter's signal, as requested with StartMonitor.
32 monitor_end MonitorEnd Control, moderation Tells the client that the server ended a running monitor stream, for example because the transmitter went off the air.
33 weather_map WeatherMapResponse Control Returns the raster requested by a WeatherMapRequest, with a summary of the weather at the centre of the area.
34 health ServerHealthReport Control Describes the load and internal state of a game server: CPU and memory, simulation timing, worker queues, and per-session statistics for every transmitter and receiver.
35 coverage_map CoverageMapResponse Control Returns the predicted received power of a CoverageMapRequest as a global raster.
36 catalog_list CatalogList Control (catalog) The index of the extension catalog: one summary per entry, without file contents.
37 catalog_entry CatalogEntry Control (catalog) Returns the files of one catalog entry requested with CatalogFetch.
38 catalog_upload_result CatalogUploadResult Control (catalog) Confirms a successful CatalogUpload.
39 catalog_delete_result CatalogDeleteResult Control (catalog) Confirms that a CatalogDelete removed the entry.
40 ephemeris EphemerisResponse Control Returns the satellite positions requested by an EphemerisRequest.
41 passes PassPredictionResponse Control Lists the passes found for a PassPredictionRequest.
42 monitor_ack MonitorAck Control, moderation Confirms a StartMonitor (active = true) or a StopMonitor (active = false).
60 kick_result KickResult Moderation Reports how many sessions a KickRequest disconnected.
61 ip_moderation_result IpModerationResult Moderation Reports the outcome of an IpModerationRequest.
63 station_impacts StationImpactList Moderation An interference analysis for moderators.

Member numbers 15, 16 and 62 are reserved; do not use them.

By session

Session Client sends Server sends
All roles hello (first), ping hello_result (first), pong, error
Receiver forwarded_address (proxies only), receiver_start, receiver_retune, pointing session_status, iq_descriptor, iq
Transmitter transmitter_start, samples, tx_update, tx_mode_info, pointing session_status, tx_queue, tx_accept, tx_telemetry, tx_update_ack
Control list_stations, start_monitor, stop_monitor, weather_map, health, coverage_map, catalog_*, ephemeris, passes the matching responses, monitor_ack, monitor_block, monitor_end, banner
Moderation list_stations, kick, ip_moderation, broadcast_banner, start_monitor, stop_monitor station_list, station_impacts, kick_result, ip_moderation_result, monitor frames

A frame that is known but not allowed in the current session is a protocol violation: the server answers Error INVALID_REQUEST and closes the connection.

The packet pages are also grouped in Category:SimTX API packets.

SimTX API reference (protocol v25)
Start OverviewQuick startFramingData typesPacket listSchemaLimits and errorsCompatibility and versioning
Account service OverviewDevice loginServer directoryStation endpointsGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeSession statusReceiver sessionTransmitter sessionControl sessionCatalogModeration
Stations StationsSatellitesTracking and pointing
Connection ClientHelloPingServerHelloPongErrorBanner
Session AntennaPointingUpdateSessionStatus
Receiver ForwardedClientAddressReceiverStartReceiverRetuneIqStreamDescriptorIqBlock
Transmitter TransmitterStartSampleBlockTxUpdateTxModeInfoTxQueueTxAcceptTxTelemetryTxUpdateAck
Control ListStationsStartMonitorStopMonitorWeatherMapRequestServerHealthRequestCoverageMapRequestEphemerisRequestPassPredictionRequestStationListMonitorBlockMonitorEndWeatherMapResponseServerHealthReportCoverageMapResponseEphemerisResponsePassPredictionResponseMonitorAck
Catalog CatalogListRequestCatalogFetchCatalogUploadCatalogDeleteCatalogListCatalogEntryCatalogUploadResultCatalogDeleteResult
Moderation KickRequestIpModerationRequestBroadcastBannerKickResultIpModerationResultStationImpactList
Archive Protocol v24 reference