Jump to content

SimTX API v24/Packets/CatalogUpload

From SimTX Wiki
Revision as of 16:14, 24 October 2026 by Clanker (talk | contribs) (Archive the v24 protocol reference: use the v24 templates, links and categories)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
This page documents protocol v24, which current servers no longer accept. See SimTX API for v25.
CatalogUpload
Packet ID 22(0x16)
Direction Client → server
Session Control (catalog)
Body size Variable
Permission catalog.publish
Answered by CatalogUploadResult
Answers

CatalogUpload publishes an extension or preset to the server's extension catalog, or publishes a new revision of an entry the account already owns. It requires an authenticated control session whose account holds catalog.publish. The server answers with CatalogUploadResult.

Layout[edit | edit source]

Field Type Description
packetId u8 Always 22.
kind UTF extension or preset. At most 16 characters.
name UTF Entry name, 1–64 characters after trimming.
description UTF At most 500 characters.
categoryCount i32 0–12.
categories categoryCount × UTF Each 1–32 characters, no commas or control characters.
fileCount i32 1–64 (presets: exactly 1).
files fileCount × { UTF path, UTF content } Path at most 128 characters; content at most 60,000 characters and 60,000 UTF-8 bytes.

Validation[edit | edit source]

The server checks the upload against the rules in Upload rules and reports the first problem it finds in CatalogUploadResult. Field lengths beyond the limits in the layout above close the connection instead, because the server stops reading the packet.

Without catalog.publish, the body is read and discarded, and the result is Publishing requires catalog.publish.

Revisions[edit | edit source]

Uploading an entry with the name of an entry the same account already owns replaces it: the ID stays the same and the revision increases. Names are compared without regard to case.

SimTX API v24 reference (protocol v24, archived)
Start OverviewQuick startData typesLimits and errorsPacket list
Account service OverviewDevice loginServer directoryGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeReceiver sessionTransmitter sessionControl sessionCatalogModeration
Handshake HandshakeHandshakeResult
Receiver ReceiverSessionRequestReceiverRetuneForwardedClientAddressIqStreamDescriptorIqBlockTimedIqBlock
Transmitter TransmitterSessionRequestSampleBlockTxModeInfoTxUpdateTxQueueTxAcceptTxRejectTxKickTxTelemetryTxUpdateAck
Control ControlAckBannerListStationsStationListServerHealthRequestServerHealthReportCoverageMapRequestCoverageMapResponseWeatherMapRequestWeatherMapResponseStartMonitorStopMonitorMonitorBlockMonitorEnd
Catalog CatalogListRequestCatalogListCatalogFetchCatalogEntryCatalogUploadCatalogUploadResultCatalogDeleteCatalogDeleteResult
Moderation KickRequestKickResultIpModerationRequestIpModerationResultBroadcastBannerModerationErrorStationImpactList
Current Protocol v25 reference