<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=SimTX_API%2FPackets%2FServerHello</id>
	<title>SimTX API/Packets/ServerHello - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=SimTX_API%2FPackets%2FServerHello"/>
	<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=SimTX_API/Packets/ServerHello&amp;action=history"/>
	<updated>2026-11-05T01:11:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.simtx.net/index.php?title=SimTX_API/Packets/ServerHello&amp;diff=2426&amp;oldid=prev</id>
		<title>Clanker: Remove development history and server internals</title>
		<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=SimTX_API/Packets/ServerHello&amp;diff=2426&amp;oldid=prev"/>
		<updated>2026-10-24T17:16:36Z</updated>

		<summary type="html">&lt;p&gt;Remove development history and server internals&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:16, 24 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l108&quot;&gt;Line 108:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 108:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Reconnect with a fresh ticket shortly before &amp;lt;code&amp;gt;account.lease_expires_at_ms&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Reconnect with a fresh ticket shortly before &amp;lt;code&amp;gt;account.lease_expires_at_ms&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Check &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; before using an optional capability, and rely on revision-gated behaviour only when &amp;lt;code&amp;gt;protocol_revision&amp;lt;/code&amp;gt; is high enough. See [[SimTX API/Compatibility and versioning|Compatibility and versioning]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Check &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; before using an optional capability, and rely on revision-gated behaviour only when &amp;lt;code&amp;gt;protocol_revision&amp;lt;/code&amp;gt; is high enough. See [[SimTX API/Compatibility and versioning|Compatibility and versioning]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* A client that sent preface version 24 does not receive a ServerHello. It receives a v24-format rejection; see [[SimTX API/Connection and handshake#Version 24 clients|Version 24 clients]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Examples ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Examples ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Complete frames, including the varint length prefix&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, from the protocol&#039;s golden test vectors (&amp;lt;code&amp;gt;protocol/simtx/v25/testdata/frames.json&amp;lt;/code&amp;gt;)&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Complete frames, including the varint length prefix.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;hello_result_accepted_account&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (server to client, 130 bytes):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;hello_result_accepted_account&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (server to client, 130 bytes):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Clanker</name></author>
	</entry>
	<entry>
		<id>https://wiki.simtx.net/index.php?title=SimTX_API/Packets/ServerHello&amp;diff=2302&amp;oldid=prev</id>
		<title>Clanker: Protocol v25 reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=SimTX_API/Packets/ServerHello&amp;diff=2302&amp;oldid=prev"/>
		<updated>2026-10-24T16:27:52Z</updated>

		<summary type="html">&lt;p&gt;Protocol v25 reference&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SimTX API navigation}}&lt;br /&gt;
{{SimTX packet&lt;br /&gt;
| name = ServerHello&lt;br /&gt;
| frame = ServerFrame&lt;br /&gt;
| field = 1&lt;br /&gt;
| member = hello_result&lt;br /&gt;
| direction = s2c&lt;br /&gt;
| session = [[SimTX API/Connection and handshake|All roles]]&lt;br /&gt;
| roles = All roles. Always the first server frame.&lt;br /&gt;
| permission = None&lt;br /&gt;
| answers = [[SimTX API/Packets/ClientHello|ClientHello]]&lt;br /&gt;
| group = connection&lt;br /&gt;
| file = frames.proto&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ServerHello&amp;#039;&amp;#039;&amp;#039; answers the [[SimTX API/Packets/ClientHello|ClientHello]]. It accepts the connection, in which case the session continues according to the role, or rejects it, in which case the server closes the connection after sending it. For an authenticated connection it describes the account. It also carries the server&amp;#039;s feature list, protocol revision and clocks.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;protobuf&amp;quot;&amp;gt;&lt;br /&gt;
message ServerHello {&lt;br /&gt;
  HelloStatus status = 1;&lt;br /&gt;
  string message = 2;&lt;br /&gt;
  Account account = 3;          // unset for anonymous sessions&lt;br /&gt;
  repeated string features = 4; // server feature registry (see the top of this file)&lt;br /&gt;
  string server_version = 5;&lt;br /&gt;
  int64 server_time_ms = 6;      // Unix ms&lt;br /&gt;
  int64 simulation_time_ms = 7;  // Unix ms of the simulated world clock&lt;br /&gt;
  int32 protocol_revision = 8;   // highest protocol revision this server implements&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt; || [[SimTX API/Data types#HelloStatus|HelloStatus]] || Result of the hello. Anything other than &amp;lt;code&amp;gt;HELLO_STATUS_ACCEPTED&amp;lt;/code&amp;gt; is followed by the server closing the connection.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;message&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; || Human-readable explanation. Empty on success. Show it to the user on rejection.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;account&amp;lt;/code&amp;gt; || [[#Account|Account]] || The account, for authenticated connections. Unset for anonymous ones.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;repeated string&amp;lt;/code&amp;gt; || Optional server capabilities of this deployment, from the [[SimTX API/Compatibility and versioning#Feature registry|feature registry]]. Ignore names you do not know.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;server_version&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; || Server software version, for display and diagnostics.&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;server_time_ms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;int64&amp;lt;/code&amp;gt; || Server wall clock, Unix ms.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || &amp;lt;code&amp;gt;simulation_time_ms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;int64&amp;lt;/code&amp;gt; || Simulated world clock, Unix ms. Use it, not the local clock, as &amp;quot;now&amp;quot; for satellite positions and pass predictions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || &amp;lt;code&amp;gt;protocol_revision&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;int32&amp;lt;/code&amp;gt; || Highest protocol revision the server implements.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Account ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;protobuf&amp;quot;&amp;gt;&lt;br /&gt;
message Account {&lt;br /&gt;
  bytes account_id = 1;&lt;br /&gt;
  string handle = 2;&lt;br /&gt;
  string display_name = 3;&lt;br /&gt;
  repeated string permissions = 4;&lt;br /&gt;
  int64 authorization_revision = 5;&lt;br /&gt;
  int64 lease_expires_at_ms = 6;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Field !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;account_id&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt; || 16-byte account UUID.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;handle&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; || Account handle.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;display_name&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; || Display name.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;permissions&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;repeated string&amp;lt;/code&amp;gt; || Effective [[SimTX API/Permissions|permissions and numeric capabilities]] on this server, after the credential&amp;#039;s scope, for example &amp;lt;code&amp;gt;game.transmit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tx.pa_limit.400&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;authorization_revision&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;int64&amp;lt;/code&amp;gt; || Revision of the account&amp;#039;s authorisation data. Changes when permissions change.&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;lease_expires_at_ms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;int64&amp;lt;/code&amp;gt; || When the server will close this authenticated connection, Unix ms. About 12 hours after the hello.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status codes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Name !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;HELLO_STATUS_UNSPECIFIED&amp;lt;/code&amp;gt; || Not sent by servers. Treat it, and unknown values, as &amp;lt;code&amp;gt;SERVER_UNAVAILABLE&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;HELLO_STATUS_ACCEPTED&amp;lt;/code&amp;gt; || The session may begin.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;HELLO_STATUS_VERSION_UNSUPPORTED&amp;lt;/code&amp;gt; || The preface version is not 25.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;HELLO_STATUS_AUTHENTICATION_REQUIRED&amp;lt;/code&amp;gt; || The role needs a ticket and none was sent. Typical message: &amp;lt;i&amp;gt;This role requires a SimTX account&amp;lt;/i&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;HELLO_STATUS_CREDENTIAL_INVALID&amp;lt;/code&amp;gt; || The ticket is unknown, expired, used, or minted for another server or role. Typical message: &amp;lt;i&amp;gt;Game ticket is invalid or expired&amp;lt;/i&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;HELLO_STATUS_ACCOUNT_RESTRICTED&amp;lt;/code&amp;gt; || The account is restricted.&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;HELLO_STATUS_ROLE_FORBIDDEN&amp;lt;/code&amp;gt; || The account lacks the permission the role needs. Typical message: &amp;lt;i&amp;gt;Account is not permitted to transmit&amp;lt;/i&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || &amp;lt;code&amp;gt;HELLO_STATUS_SERVER_UNAVAILABLE&amp;lt;/code&amp;gt; || The server cannot verify the ticket or take the connection now. The only status worth retrying unchanged.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || &amp;lt;code&amp;gt;HELLO_STATUS_IP_BANNED&amp;lt;/code&amp;gt; || The client address is banned. The message gives the reason.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On any status other than &amp;lt;code&amp;gt;ACCEPTED&amp;lt;/code&amp;gt; the server closes the connection. Only &amp;lt;code&amp;gt;SERVER_UNAVAILABLE&amp;lt;/code&amp;gt; is worth retrying unchanged; the others need a new ticket, a different role or user action.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
* After &amp;lt;code&amp;gt;ACCEPTED&amp;lt;/code&amp;gt; on a receiver or transmitter connection, send the start frame immediately. A control or moderation session may send requests at once.&lt;br /&gt;
* Show &amp;lt;code&amp;gt;message&amp;lt;/code&amp;gt; to the user on rejection.&lt;br /&gt;
* Use the numeric capabilities in &amp;lt;code&amp;gt;account.permissions&amp;lt;/code&amp;gt;, such as &amp;lt;code&amp;gt;tx.pa_limit.400&amp;lt;/code&amp;gt;, to configure the user interface.&lt;br /&gt;
* Reconnect with a fresh ticket shortly before &amp;lt;code&amp;gt;account.lease_expires_at_ms&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Check &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; before using an optional capability, and rely on revision-gated behaviour only when &amp;lt;code&amp;gt;protocol_revision&amp;lt;/code&amp;gt; is high enough. See [[SimTX API/Compatibility and versioning|Compatibility and versioning]].&lt;br /&gt;
* A client that sent preface version 24 does not receive a ServerHello. It receives a v24-format rejection; see [[SimTX API/Connection and handshake#Version 24 clients|Version 24 clients]].&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Complete frames, including the varint length prefix, from the protocol&amp;#039;s golden test vectors (&amp;lt;code&amp;gt;protocol/simtx/v25/testdata/frames.json&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;hello_result_accepted_account&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (server to client, 130 bytes):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
80 01                                     frame length 128&lt;br /&gt;
0A 7E                                     hello_result (ServerHello), 126 bytes&lt;br /&gt;
  08 01                                   status = 1 (HELLO_STATUS_ACCEPTED)&lt;br /&gt;
  1A 4E                                   account (Account), 78 bytes&lt;br /&gt;
    0A 10 0F 8E 2C 4A …                   account_id = 0f8e2c4a-1b3d-4e5f-8a9b-0c1d2e3f4a5b&lt;br /&gt;
    12 08 6F 70 65 72 61 74 6F 72         handle = &amp;quot;operator&amp;quot;&lt;br /&gt;
    1A 08 4F 70 65 72 61 74 6F 72         display_name = &amp;quot;Operator&amp;quot;&lt;br /&gt;
    22 0D 67 61 6D 65 2E 74 72 61 …       permissions = &amp;quot;game.transmit&amp;quot;&lt;br /&gt;
    22 0E 73 74 61 74 69 6F 6E 2E …       permissions = &amp;quot;station.manage&amp;quot;&lt;br /&gt;
    28 07                                 authorization_revision = 7&lt;br /&gt;
    30 80 F1 DE BA 97 34                  lease_expires_at_ms = 1793003600000&lt;br /&gt;
  22 0B 73 74 61 74 69 6F 6E 73 2E 76 31  features = &amp;quot;stations.v1&amp;quot;&lt;br /&gt;
  22 08 70 6F 69 6E 74 69 6E 67           features = &amp;quot;pointing&amp;quot;&lt;br /&gt;
  2A 05 30 2E 33 2E 35                    server_version = &amp;quot;0.3.5&amp;quot;&lt;br /&gt;
  30 80 94 83 B9 97 34                    server_time_ms = 1793000000000&lt;br /&gt;
  38 F4 97 83 B9 97 34                    simulation_time_ms = 1793000000500&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;hello_result_revision_1&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (server to client, 96 bytes):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
5F                                        frame length 95&lt;br /&gt;
0A 5D                                     hello_result (ServerHello), 93 bytes&lt;br /&gt;
  08 01                                   status = 1 (HELLO_STATUS_ACCEPTED)&lt;br /&gt;
  22 0B 73 74 61 74 69 6F 6E 73 2E 76 31  features = &amp;quot;stations.v1&amp;quot;&lt;br /&gt;
  22 08 70 6F 69 6E 74 69 6E 67           features = &amp;quot;pointing&amp;quot;&lt;br /&gt;
  22 09 65 70 68 65 6D 65 72 69 73        features = &amp;quot;ephemeris&amp;quot;&lt;br /&gt;
  22 06 70 61 73 73 65 73                 features = &amp;quot;passes&amp;quot;&lt;br /&gt;
  22 0A 6B 69 6E 65 6D 61 74 69 63 73     features = &amp;quot;kinematics&amp;quot;&lt;br /&gt;
  2A 13 73 69 6D 74 78 2D 73 65 …         server_version = &amp;quot;simtx-server/25.1.0&amp;quot;&lt;br /&gt;
  30 80 94 83 B9 97 34                    server_time_ms = 1793000000000&lt;br /&gt;
  38 F4 97 83 B9 97 34                    simulation_time_ms = 1793000000500&lt;br /&gt;
  40 01                                   protocol_revision = 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;hello_result_version_unsupported&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (server to client, 55 bytes):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
36                                 frame length 54&lt;br /&gt;
0A 34                              hello_result (ServerHello), 52 bytes&lt;br /&gt;
  08 02                            status = 2 (HELLO_STATUS_VERSION_UNSUPPORTED)&lt;br /&gt;
  12 30 54 68 69 73 20 73 65 72 …  message = &amp;quot;This server speaks protocol v25; client sent v26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[SimTX API/Connection and handshake]]&lt;br /&gt;
* [[SimTX API/Permissions]]&lt;br /&gt;
&lt;br /&gt;
{{SimTX API navbox}}&lt;br /&gt;
[[Category:SimTX API]]&lt;/div&gt;</summary>
		<author><name>Clanker</name></author>
	</entry>
</feed>