SteamKit2
Represents a protobuf backed client message. Only contains the header information.
Gets a value indicating whether this client message is protobuf backed.
Client messages of this type are always protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The network message type.
Gets or sets the session id for this client message.
The session id.
Gets or sets the for this client message.
The .
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Shorthand accessor for the protobuf header.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this client message from.
Serializes this client message instance to a byte array.
This class is for reading Protobuf messages only. If you want to create a protobuf message, use .
Initializes this client message by deserializing the specified data.
The data representing a client message.
Represents a protobuf backed client message.
The body type of this message.
Gets the body structure of this message.
Initializes a new instance of the class.
This is a client send constructor.
The network message type this client message represents.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This a reply constructor.
The network message type this client message represents.
The message that this instance is a reply for.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this client message from.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
Represents a struct backed client message.
The body type of this message.
Gets a value indicating whether this client message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The network message type.
Gets or sets the session id for this client message.
The session id.
Gets or sets the for this client message.
The .
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Gets the body structure of this message.
Initializes a new instance of the class.
This is a client send constructor.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This a reply constructor.
The message that this instance is a reply for.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this client message from.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
Represents a struct backed message without session or client info.
The body type of this message.
Gets a value indicating whether this client message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The network message type.
Gets or sets the session id for this client message.
This type of client message does not support session ids
The session id.
Gets or sets the for this client message.
This type of client message goes not support SteamIDs.
The .
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Gets the structure body of the message.
Initializes a new instance of the class.
This is a client send constructor.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This a reply constructor.
The message that this instance is a reply for.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this client message from.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
Represents a protobuf backed game coordinator message.
The body type of this message.
Gets a value indicating whether this gc message is protobuf backed.
Client messages of this type are always protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this gc message.
The network message type.
Gets or sets the target job id for this gc message.
The target job id.
Gets or sets the source job id for this gc message.
The source job id.
Shorthand accessor for the protobuf header.
Gets the body structure of this message.
Initializes a new instance of the class.
This is a client send constructor.
The network message type this gc message represents.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This a reply constructor.
The network message type this gc message represents.
The message that this instance is a reply for.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this gc message from.
Serializes this gc message instance to a byte array.
Data representing a gc message.
Initializes this gc message by deserializing the specified data.
The data representing a gc message.
Represents a struct backed game coordinator message.
The body type of this message.
Gets a value indicating whether this gc message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this gc message.
The network message type.
Gets or sets the target job id for this gc message.
The target job id.
Gets or sets the source job id for this gc message.
The source job id.
Gets the body structure of this message.
Initializes a new instance of the class.
This is a client send constructor.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This a reply constructor.
The message that this instance is a reply for.
The number of bytes to initialize the payload capacity to.
Initializes a new instance of the class.
This is a recieve constructor.
The packet message to build this gc message from.
Serializes this gc message instance to a byte array.
Data representing a client message.
Initializes this gc message by deserializing the specified data.
The data representing a client message.
Represents a unified interface into client messages.
Gets a value indicating whether this client message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The message type.
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
This is the abstract base class for all available game coordinator messages.
It's used to maintain packet payloads and provide a header for all gc messages.
The header type for this gc message.
Gets a value indicating whether this gc message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this gc message.
The network message type.
Gets or sets the target job id for this gc message.
The target job id.
Gets or sets the source job id for this gc message.
The source job id.
Gets the header for this message type.
Initializes a new instance of the class.
The number of bytes to initialize the payload capacity to.
Serializes this gc message instance to a byte array.
Data representing a gc message.
Initializes this gc message by deserializing the specified data.
The data representing a gc message.
Represents a simple unified interface into game coordinator messages recieved from the network.
This is contrasted with in that this interface is packet body agnostic
and only allows simple access into the header. This interface is also immutable, and the underlying
data cannot be modified.
Gets a value indicating whether this packet message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Gets the underlying data that represents this client message.
The data.
Represents a protobuf backed packet message.
Gets a value indicating whether this packet message is protobuf backed.
This type of message is always protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Initializes a new instance of the class.
The network message type for this packet message.
The data.
Gets the underlying data that represents this client message.
The data.
Represents a packet message with extended header information.
Gets a value indicating whether this packet message is protobuf backed.
This type of message is never protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Initializes a new instance of the class.
The network message type for this packet message.
The data.
Gets the underlying data that represents this packet message.
The data.
This base client handles the underlying connection to a CM server. This class should not be use directly, but through the class.
The configuration for this client.
Bootstrap list of CM servers.
Returns the the local IP of this client.
The local IP.
Gets the universe of this client.
The universe.
Gets a value indicating whether this instance is connected to the remote CM server.
true if this instance is connected; otherwise, false.
Gets the session token assigned to this client from the AM.
Gets the Steam recommended Cell ID of this client. This value is assigned after a logon attempt has succeeded.
This value will be null if the client is logged off of Steam.
Gets the session ID of this client. This value is assigned after a logon attempt has succeeded.
This value will be null if the client is logged off of Steam.
The session ID.
Gets the SteamID of this client. This value is assigned after a logon attempt has succeeded.
This value will be null if the client is logged off of Steam.
The SteamID.
Gets or sets the connection timeout used when connecting to the Steam server.
The connection timeout.
Gets or sets the network listening interface. Use this for debugging only.
For your convenience, you can use class.
Initializes a new instance of the class with a specific configuration.
The configuration to use for this client.
The configuration object is null
Connects this client to a Steam3 server.
This begins the process of connecting and encrypting the data channel between the client and the server.
Results are returned asynchronously in a .
If the server that SteamKit attempts to connect to is down, a
will be posted instead.
SteamKit will not attempt to reconnect to Steam, you must handle this callback and call Connect again
preferrably after a short delay.
The of the CM server to connect to.
If null, SteamKit will randomly select a CM server from its internal list.
Disconnects this client.
Sends the specified client message to the server.
This method automatically assigns the correct SessionID and SteamID of the message.
The client message to send.
Returns the list of servers matching the given type
Server type requested
List of server endpoints
Called when a client message is received from the network.
The packet message.
Called when the client is securely connected to Steam3.
Called when the client is physically disconnected from Steam3.
This is the base class for the utility class.
This is for internal use only, and shouldn't be used directly.
Represents a unified interface into client messages.
Gets a value indicating whether this client message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The message type.
Gets or sets the session id for this client message.
The session id.
Gets or sets the for this client message.
The .
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
This class provides a payload backing to client messages.
Returns a which is the backing stream for client message payload data.
Initializes a new instance of the class.
The number of bytes to initialize the payload capacity to.
Seeks within the payload to the specified offset.
The offset in the payload to seek to.
The origin to seek from.
The new position within the stream, calculated by combining the initial reference point and the offset.
Writes a single unsigned byte to the message payload.
The unsigned byte.
Writes a single signed byte to the message payload.
The signed byte.
Writes the specified byte array to the message payload.
The byte array.
Writes a single 16bit short to the message payload.
The short.
Writes a single unsigned 16bit short to the message payload.
The unsigned short.
Writes a single 32bit integer to the message payload.
The integer.
Writes a single unsigned 32bit integer to the message payload.
The unsigned integer.
Writes a single 64bit long to the message payload.
The long.
Writes a single unsigned 64bit long to the message payload.
The unsigned long.
Writes a single 32bit float to the message payload.
The float.
Writes a single 64bit double to the message payload.
The double.
Writes the specified string to the message payload using default encoding.
This function does not write a terminating null character.
The string to write.
Writes the specified string to the message payload using the specified encoding.
This function does not write a terminating null character.
The string to write.
The encoding to use.
Writes the secified string and a null terminator to the message payload using default encoding.
The string to write.
Writes the specified string and a null terminator to the message payload using the specified encoding.
The string to write.
The encoding to use.
Reads a single signed byte from the message payload.
The signed byte.
Reads a single signed byte from the message payload.
The signed byte.
Reads a single unsigned byte from the message payload.
The unsigned byte.
Reads a single unsigned byte from the message payload.
The unsigned byte.
Reads a number of bytes from the message payload.
The number of bytes to read.
The data.
Reads a single 16bit short from the message payload.
The short.
Reads a single 16bit short from the message payload.
The short.
Reads a single unsigned 16bit short from the message payload.
The unsigned short.
Reads a single unsigned 16bit short from the message payload.
The unsigned short.
Reads a single 32bit integer from the message payload.
The integer.
Reads a single 32bit integer from the message payload.
The integer.
Reads a single unsigned 32bit integer from the message payload.
The unsigned integer.
Reads a single unsigned 32bit integer from the message payload.
The unsigned integer.
Reads a single 64bit long from the message payload.
The long.
Reads a single 64bit long from the message payload.
The long.
Reads a single unsigned 64bit long from the message payload.
The unsigned long.
Reads a single unsigned 64bit long from the message payload.
The unsigned long.
Reads a single 32bit float from the message payload.
The float.
Reads a single 32bit float from the message payload.
The float.
Reads a single 64bit double from the message payload.
The double.
Reads a null terminated string from the message payload with the default encoding.
The string.
Reads a null terminated string from the message payload with the specified encoding.
The encoding to use.
/// The string.
This is the abstract base class for all available client messages.
It's used to maintain packet payloads and provide a header for all client messages.
The header type for this client message.
Gets a value indicating whether this client message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this client message.
The network message type.
Gets or sets the session id for this client message.
The session id.
Gets or sets the for this client message.
The .
Gets or sets the target job id for this client message.
The target job id.
Gets or sets the source job id for this client message.
The source job id.
Gets the header for this message type.
Initializes a new instance of the class.
The number of bytes to initialize the payload capacity to.
Serializes this client message instance to a byte array.
Data representing a client message.
Initializes this client message by deserializing the specified data.
The data representing a client message.
Represents a simple unified interface into client messages recieved from the network.
This is contrasted with in that this interface is packet body agnostic
and only allows simple access into the header. This interface is also immutable, and the underlying
data cannot be modified.
Gets a value indicating whether this packet message is protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Gets the underlying data that represents this client message.
The data.
Represents a protobuf backed packet message.
Gets a value indicating whether this packet message is protobuf backed.
This type of message is always protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Initializes a new instance of the class.
The network message type for this packet message.
The data.
Gets the underlying data that represents this client message.
The data.
Represents a packet message with extended header information.
Gets a value indicating whether this packet message is protobuf backed.
This type of message is never protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Initializes a new instance of the class.
The network message type for this packet message.
The data.
Gets the underlying data that represents this client message.
The data.
Represents a packet message with basic header information.
Gets a value indicating whether this packet message is protobuf backed.
This type of message is never protobuf backed.
true if this instance is protobuf backed; otherwise, false.
Gets the network message type of this packet message.
The message type.
Gets the target job id for this packet message.
The target job id.
Gets the source job id for this packet message.
The source job id.
Initializes a new instance of the class.
The network message type for this packet message.
The data.
Gets the underlying data that represents this client message.
The data.
Occurs when a net message is recieved over the network.
The remote of the current connection.
This is non-null between and , inclusive.
Occurs when the physical connection is established.
Occurs when the physical connection is broken.
Connects to the specified end point.
The end point to connect to.
Timeout in milliseconds
Disconnects this instance.
If true, this disconnection attempt was initated by a consumer.
Sends the specified data packet.
The data packet to send.
Gets the local IP.
The local IP.
The type of communication protocol that this connection uses.
Represents data that has been received over the network.
The type of communications protocol to use when communicating with the Steam backend
TCP
UDP
WebSockets (HTTP / TLS)
All available protocol types
Connects to the specified end point.
The end point to connect to.
Timeout in milliseconds
Nets the loop.
Seconds to wait before sending packets.
Seconds to wait before considering the connection dead.
Maximum number of packets to resend when RESEND_DELAY is exceeded.
Maximum number of packets that we can be waiting on at a time.
Contains information about the state of the connection, used to filter out packets that are
unexpected or not valid given the state of the connection.
The next outgoing sequence number to be used.
The highest sequence number of an outbound packet that has been sent.
The sequence number of the highest packet acknowledged by the server.
The sequence number we plan on acknowledging receiving with the next Ack. All packets below or equal
to inSeq *must* have been received, but not necessarily handled.
The highest sequence number we've acknowledged receiving.
The highest sequence number we've processed.
Connects to the specified CM server.
The endPoint to connect to
Timeout in milliseconds
Disconnects this instance, blocking until the queue of messages is empty or the connection
is otherwise terminated.
Serializes and sends the provided data to the server in as many packets as is necessary.
The data to send to the server
Sends the data sequenced as a single message, splitting it into multiple parts if necessary.
The data to send.
Sends the packet as a sequenced, reliable packet.
The packet.
Sends the packets as one sequenced, reliable net message.
The packets that make up the single net message
Sends a packet immediately.
The packet.
Sends a datagram Ack, used when an Ack needs to be sent but there is no data response to piggy-back on.
Sends or resends sequenced messages, if necessary. Also responsible for throttling
the rate at which they are sent.
Returns the number of message parts in the next message.
Non-zero number of message parts if a message is ready to be handled, 0 otherwise
Dispatches up to one message to the rest of SteamKit
True if a message was dispatched, false otherwise
Processes incoming packets, maintains connection consistency, and oversees outgoing packets.
Receives the packet, performs all sanity checks and then passes it along as necessary.
The packet.
Receives the challenge and responds with a Connect request
The packet.
Receives the notification of an accepted connection and sets the connection id that will be used for the
connection's duration.
The packet.
Receives typical data packets before dispatching them for consumption by the rest of SteamKit
The packet.
Gets a value indicating whether this instance is valid.
true if this instance is valid; otherwise, false.
Initializes a new instance of the class with
information from the memory stream.
Header is populated from the MemoryStream
The stream containing the packet and it's payload data.
Initializes a new instance of the class, with
no payload.
Header must be populated manually.
The type.
Initializes a new instance of the class, of the
specified type containing the specified payload.
Header must be populated manually.
The type.
The payload.
Initializes a new instance of the class, of the
specified type containing the first 'length' bytes of specified payload.
Header must be populated manually.
The type.
The payload.
The length.
Sets the payload
The payload to copy.
Sets the payload.
The payload.
The length.
Serializes the UdpPacket.
The serialized packet.
The CDNClient class is used for downloading game content from the Steam servers.
Represents a single Steam3 'Steampipe' content server.
The protocol used to connect to this server
Server does not advertise HTTPS support, connect over HTTP
Server advertises it supports HTTPS, connection made over HTTPS
Gets the supported connection protocol of the server.
Gets the hostname of the server.
Gets the virtual hostname of the server.
Gets the port of the server.
Gets the type of the server.
Gets the CellID this server belongs to.
Gets the load value associated with this server.
Gets the weighted load.
Gets the number of entries this server is worth.
Performs an implicit conversion from to .
A IPEndPoint to convert into a .
The result of the conversion.
Performs an implicit conversion from to .
A DnsEndPoint to convert into a .
The result of the conversion.
Returns a that represents this server.
A that represents this server.
Represents a single downloaded chunk from a file in a depot.
Gets the depot manifest chunk information associated with this chunk.
Gets a value indicating whether this chunk has been processed. A chunk is processed when the data has been decrypted and decompressed.
true if this chunk has been processed; otherwise, false.
Gets the underlying data for this chunk.
Processes the specified depot key by decrypting the data with the given depot encryption key, and then by decompressing the data.
If the chunk has already been processed, this function does nothing.
The depot decryption key.
Thrown if the processed data does not match the expected checksum given in it's chunk information.
Default timeout to use when making requests
Initializes a new instance of the class.
The this instance will be associated with.
The SteamClient instance must be connected and logged onto Steam.
The optional appticket for the depot that will be downloaded.
This must be present when connected to steam non-anonymously.
Fetches a list of content servers.
The optional Steam3 content server to fetch the list from.
If this parameter is not specified, a random CS server will be selected.
The optional CellID used to specify which regional servers should be returned in the list.
If this parameter is not specified, Steam's GeoIP suggested CellID will be used instead.
The maximum amount of servers to request.
A list of servers.
No Steam CS servers available, or the suggested CellID is unavailable.
Check that the associated with this instance is logged onto Steam.
Connects and initializes a session to the specified content server.
The content server to connect to.
csServer was null.
Authenticate a CDNClient to a depot in the connected session
The id of the depot being accessed.
The optional depot decryption key for the depot that will be downloaded.
This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks.
CDN auth token for CDN content server endpoints.
Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided.
The id of the depot being accessed.
The unique identifier of the manifest to be downloaded.
A instance that contains information about the files present within a depot.
Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided.
The id of the depot being accessed.
The unique identifier of the manifest to be downloaded.
CDN hostname.
CDN auth token for CDN content server endpoints.
The depot decryption key for the depot that will be downloaded.
This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks.
A instance that contains information about the files present within a depot.
Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided.
This function will also validate the length of the downloaded chunk with the value of ,
if it has been assigned a value.
The id of the depot being accessed.
A instance that represents the chunk to download.
This value should come from a manifest downloaded with .
A instance that contains the data for the given chunk.
chunk's was null.
Thrown if the downloaded data does not match the expected length.
Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided.
This function will also validate the length of the downloaded chunk with the value of ,
if it has been assigned a value.
The id of the depot being accessed.
A instance that represents the chunk to download.
This value should come from a manifest downloaded with .
A instance that contains the data for the given chunk.
CDN hostname.
CDN auth token for CDN content server endpoints.
The depot decryption key for the depot that will be downloaded.
This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks.
chunk's was null.
Thrown if the downloaded data does not match the expected length.
Disposes of this object.
A server list provider that uses a file to persist the server list using protobuf
Initialize a new instance of FileStorageServerListProvider
Read the stored list of servers from the file
List of servers if persisted, otherwise an empty list
Writes the supplied list of servers to persistent storage
List of server endpoints
Awaitable task for write completion
An interface for persisting the server list for connection discovery
Ask a provider to fetch any servers that it has available
A list of IPEndPoints representing servers
Update the persistent list of endpoints
List of endpoints
A server list provider that uses IsolatedStorage to persist the server list
Initialize a new instance of IsolatedStorageServerListProvider using
Read the stored list of servers from IsolatedStore
List of servers if persisted, otherwise an empty list
Writes the supplied list of servers to persistent storage
List of server endpoints
Awaitable task for write completion
A server list provider that returns an empty list, for consumers that populate the server list themselves
No-op implementation that returns an empty server list
Empty server list
No-op implementation that does not persist server list
Server list
Completed task
Represents the information needed to connect to a CM server
The endpoint of the server to connect to.
The various protocol types that can be used to communicate with this server.
Gets the host of the associated endpoint. This could be an IP address, or a DNS host name.
The of the associated endpoint.
Gets the port number of the associated endpoint.
The port numer of the associated endpoint.
Creates a server record for a given endpoint.
The host to connect to. This can be an IP address or a DNS name.
The port to connect to.
The protocol types that this server supports.
Creates a Socket server given an IP endpoint.
The IP address and port of the server.
A new instance
Creates a Socket server given an IP endpoint.
The IP address and port of the server, as a string.
A new , if the address was able to be parsed. null otherwise.
true if the address was able to be parsed, false otherwise.
Creates a WebSocket server given an address in the form of "hostname:port".
The name and port of the server
A new instance
Determines whether two objects are equal.
The object on the left-hand side of the equality operator.
The object on the right-hand side of the equality operator.
true if the specified object is equal to the current object; otherwise, false.
Determines whether two objects are not equal.
The object on the left-hand side of the inequality operator.
The object on the right-hand side of the inequality operator.
true if the specified object is not equal to the current object; otherwise, false.
Determines whether the specified object is equal to the current object.
true if the specified object is equal to the current object; otherwise, false.
Hash function
A hash code for the current object.
Currently marked quality of a server. All servers start off as Undetermined.
Known good server.
Known bad server.
Smart list of CM servers.
Initialize SmartCMServerList with a given server list provider
The Steam configuration to use.
The configuration object is null.
Determines how long a server's bad connection state is remembered for.
Resets the scores of all servers which has a last bad connection more than ago.
Replace the list with a new list of servers provided to us by the Steam servers.
The s to use for this .
Explicitly resets the known state of all servers.
Perform the actual score lookup of the server list and return the candidate
IPEndPoint candidate
Get the next server in the list.
The minimum supported of the server to return.
An , or null if the list is empty.
Get the next server in the list.
The minimum supported of the server to return.
An , or null if the list is empty.
Gets the s of all servers in the server list.
An array contains the s of the servers in the list
This class implements the base requirements every message handler should inherit from.
Gets the underlying for use in sending replies.
Gets or sets whether or not the related should imminently expect the server to close the connection.
If this is true when the connection is closed, the 's property
will be set to true.
Initializes a new instance of the class.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for interacting with apps and packages on the Steam network.
This callback is fired during logon, informing the client of it's available licenses.
Represents a granted license (steam3 subscription) for one or more games.
Gets the package ID used to identify the license.
The package ID.
Gets the last change number for this license.
Gets the time the license was created.
The time created.
Gets the next process time for the license.
The next process time.
Gets the minute limit of the license.
The minute limit.
Gets the minutes used of the license.
The minutes used.
Gets the payment method used when the license was created.
The payment method.
Gets the license flags.
The license flags.
Gets the two letter country code where the license was purchased.
The purchase country code.
Gets the type of the license.
The type of the license.
Gets the territory code of the license.
The territory code.
Gets the result of the message.
The result.
Gets the license list.
The license list.
This callback is received in response to calling , informing the client of newly granted packages, if any.
Gets the result of the message.
The result.
Gets the list of granted apps.
List of granted apps.
Gets the list of granted packages.
List of granted packages.
This callback is received in response to calling .
Gets the result of requesting the ticket.
Gets the AppID this ticket is for.
Gets the ticket data.
This callback is recieved in response to calling .
Gets the result of requesting this encryption key.
Gets the DepotID this encryption key is for.
Gets the encryption key for this depot.
This callback is fired when the client receives a list of game connect tokens.
Gets a count of tokens to keep.
Gets the list of tokens.
This callback is fired when the client receives it's VAC banned status.
Gets a list of VAC banned apps the client is banned from.
This callback is fired when the PICS returns access tokens for a list of appids and packageids
Gets a list of denied package tokens
Gets a list of denied app tokens
Dictionary containing requested package tokens
Dictionary containing requested package tokens
This callback is fired when the PICS returns the changes since the last change number
Holds the change data for a single app or package
App or package ID this change data represents
Current change number of this app
Signals if an access token is needed for this request
Supplied change number for the request
Gets the current change number
If this update requires a full update of the information
Dictionary containing requested package tokens
Dictionary containing requested package tokens
This callback is fired when the PICS returns the product information requested
Represents the information for a single app or package
Gets the ID of the app or package
Gets the current change number for the app or package
Gets if an access token was required for the request
Gets the hash of the content
Gets the KeyValue info
For an app request, returns if only the public information was requested
Whether or not to use HTTP to load the KeyValues data.
For an app metadata-only request, returns the Uri for HTTP appinfo requests.
Gets if this response contains only product metadata
Gets if there are more product information responses pending
Gets a list of unknown package ids
Gets a list of unknown app ids
Dictionary containing requested app info
Dictionary containing requested package info
This callback is received when the list of guest passes is updated.
Result of the operation
Number of guest passes to be given out
Number of guest passes to be redeemed
Guest pass list
This callback is received when a CDN auth token is received
Result of the operation
CDN auth token
Token expiration date
This callback is received when a beta password check has been completed
Result of the operation
Map of beta names to their encryption keys
Represents a PICS request used for
Gets or sets the ID of the app or package being requested
The ID
Gets or sets the access token associated with the request
The access token
Requests only public app info
The flag specifying if only public data is requested
Instantiate an empty PICS product info request
Instantiate a PICS product info request for a given app or package id
App or package ID
Instantiate a PICS product info request for a given app or package id and an access token
App or package ID
PICS access token
Get only public info
Requests an app ownership ticket for the specified AppID.
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
The appid to request the ownership ticket of.
The Job ID of the request. This can be used to find the appropriate .
Request the depot decryption key for a specified DepotID.
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
The DepotID to request a decryption key for.
The AppID to request the decryption key for.
The Job ID of the request. This can be used to find the appropriate .
Request PICS access tokens for an app or package.
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
App id to request access token for.
Package id to request access token for.
The Job ID of the request. This can be used to find the appropriate .
Request PICS access tokens for a list of app ids and package ids
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
List of app ids to request access tokens for.
List of package ids to request access tokens for.
The Job ID of the request. This can be used to find the appropriate .
Request changes for apps and packages since a given change number
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
Last change number seen.
Whether to send app changes.
Whether to send package changes.
The Job ID of the request. This can be used to find the appropriate .
Request product information for an app or package
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
App id requested.
Package id requested.
Whether to send only public information.
Whether to send only meta data.
The Job ID of the request. This can be used to find the appropriate .
Request product information for a list of apps or packages
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
List of app ids requested.
List of package ids requested.
Whether to send only public information.
Whether to send only meta data.
The Job ID of the request. This can be used to find the appropriate .
Request product information for a list of apps or packages
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
List of requests for apps.
List of requests for packages.
Whether to send only meta data.
The Job ID of the request. This can be used to find the appropriate .
Request product information for an app or package
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
App id requested.
Depot id requested.
CDN host name being requested.
The Job ID of the request. This can be used to find the appropriate .
Request a free license for given appid, can be used for free on demand apps
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
The app to request a free license for.
The Job ID of the request. This can be used to find the appropriate .
Request a free license for given appids, can be used for free on demand apps
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
The apps to request a free license for.
The Job ID of the request. This can be used to find the appropriate .
Submit a beta password for a given app to retrieve any betas and their encryption keys.
Results are returned in a callback.
The returned can also be awaited to retrieve the callback result.
App id requested.
Password to check.
The Job ID of the request. This can be used to find the appropriate .
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for interacting with remote storage and user generated content.
This callback is recieved in response to calling .
Gets the result of the request.
Gets the App ID the UGC is for.
Gets the SteamID of the UGC's creator.
Gets the URL that the content is located at.
Gets the name of the file.
Gets the size of the file.
This callback is recieved in response to calling .
Gets the result of the request.
Gets the App ID the file is for.
Gets the file name request.
Gets the SHA hash of the file.
Gets the timestamp of the file.
Gets the size of the file.
Gets if the file was explicity deleted by the user.
This callback is recieved in response to calling .
Gets the result of the request.
Gets the resulting UGC handle.
Requests details for a specific item of user generated content from the Steam servers.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The unique user generated content id.
The Job ID of the request. This can be used to find the appropriate .
Requests details for a specific file in the user's Cloud storage.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The app id of the game.
The path to the file being requested.
The Job ID of the request. This can be used to find the appropriate .
Commit a Cloud file at the given path to make its UGC handle publicly visible.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The app id of the game.
The path to the file being requested.
The Job ID of the request. This can be used to find the appropriate .
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler handles all interaction with other users on the Steam3 network.
Represents the details of a user which is a member of a chatroom.
Initializes a new instance of the class.
The KeyValue backing store for this member info.
Initializes a new instance of the class.
Gets the clan permission details of this chat member.
Gets the permissions this user has with the chatroom.
Gets the of this user.
This callback is fired in response to someone changing their friend details over the network.
Gets the status flags. This shows what has changed.
The status flags.
Gets the friend ID.
The friend ID.
Gets the state.
The state.
Gets the state flags.
The state flags.
Gets the game app ID.
The game app ID.
Gets the game ID.
The game ID.
Gets the name of the game.
The name of the game.
Gets the game server IP.
The game server IP.
Gets the game server port.
The game server port.
Gets the query port.
The query port.
Gets the source steam ID.
The source steam ID.
Gets the game data blob.
The game data blob.
Gets the name.
The name.
Gets the avatar hash.
The avatar hash.
Gets the last log off.
The last log off.
Gets the last log on.
The last log on.
Gets the clan rank.
The clan rank.
Gets the clan tag.
The clan tag.
Gets the online session instances.
The online session instances.
Gets the published session ID.
The published session ID.
This callback is posted when a clan's state has been changed.
Represents an event or announcement that was posted by a clan.
Gets the globally unique ID for this specific event.
Gets the event time.
Gets the headline of the event.
Gets the associated with this event, if any.
Gets a value indicating whether this event was just posted.
true if the event was just posted; otherwise, false.
Gets the of the clan that posted this state update.
Gets the account flags.
Gets the privacy of the chat room.
Gets the name of the clan.
The name of the clan.
Gets the SHA-1 avatar hash.
Gets the total number of members in this clan.
Gets the number of members in this clan that are currently online.
Gets the number of members in this clan that are currently chatting.
Gets the number of members in this clan that are currently in-game.
Gets any events associated with this clan state update.
Gets any announcements associated with this clan state update.
This callback is fired when the client receives a list of friends.
Represents a single friend entry in a client's friendlist.
Gets the SteamID of the friend.
The SteamID.
Gets the relationship to this friend.
The relationship.
Gets a value indicating whether this is an incremental update.
true if incremental; otherwise, false.
Gets the friend list.
The friend list.
This callback is fired in response to receiving a message from a friend.
Gets or sets the sender.
The sender.
Gets the chat entry type.
The chat entry type.
Gets a value indicating whether this message is from a limited account.
true if this message is from a limited account; otherwise, false.
Gets the message.
The message.
This callback is fired in response to receiving an echo message from another instance.
Gets or sets the recipient
The recipient.
Gets the chat entry type.
The chat entry type.
Gets a value indicating whether this message is from a limited account.
true if this message is from a limited account; otherwise, false.
Gets the message.
The message.
This callback is fired in response to receiving historical messages.
See also and
.
Gets the result of the request.
Gets the SteamID of the user with whom these messages were exchanged.
The messages exchanged with the user.
Offline messages are marked by having set to true
Represents a single Message sent to or received from a friend
The SteamID of the User that wrote the message
Whether or not the message has been read, i.e., is an offline message.
The actual message
The time (in UTC) when the message was sent
This callback is fired in response to adding a user to your friends list.
Gets the result of the request.
The result.
Gets the SteamID of the friend that was added.
The SteamID.
Gets the persona name of the friend.
The persona name.
This callback is fired in response to attempting to join a chat.
Gets SteamID of the chat room.
Gets the friend ID.
Gets the type of the chat room.
The type of the chat room.
Gets the SteamID of the chat room owner.
Gets clan SteamID that owns this chat room.
Gets the chat flags.
Gets the chat enter response.
Gets the number of users currently in this chat room.
Gets the name of the chat room.
Gets a list of instances for each of the members of this chat room.
This callback is fired when a chat room message arrives.
Gets the SteamID of the chatter.
Gets the SteamID of the chat room.
Gets chat entry type.
Gets the message.
This callback is fired in response to chat member info being recieved.
Represents state change information.
Gets the SteamID of the chatter that was acted on.
Gets the state change for the acted on SteamID.
Gets the SteamID of the chatter that acted on .
Gets the member information for a user that has joined the chat room.
This field is only populated when is .
Gets SteamId of the chat room.
Gets the info type.
Gets the state change info for member info updates.
This callback is fired in response to chat room info being recieved.
Gets SteamId of the chat room.
Gets the info type.
This callback is fired when a chat action has completed.
Gets the SteamID of the chat room the action was performed in.
Gets the SteamID of the chat member the action was performed on.
Gets the chat action that was performed.
Gets the result of the chat action.
This callback is fired when a chat invite is recieved.
Gets the SteamID of the user who was invited to the chat.
Gets the chat room SteamID.
Gets the SteamID of the user who performed the invitation.
Gets the chat room type.
Gets the SteamID of the chat friend.
Gets the name of the chat room.
Gets the GameID associated with this chat room, if it's a game lobby.
This callback is fired in response to an attempt at ignoring a friend.
Gets the result of ignoring a friend.
This callback is fired in response to requesting profile info for a user.
Gets the result of requesting profile info.
Gets the this info belongs to.
Gets the time this account was created.
Gets the real name.
Gets the name of the city.
Gets the name of the state.
Gets the name of the country.
Gets the headline.
Gets the summary.
This callback is fired in response to setting this client's persona name or state
with or .
Gets the result of changing this client's persona information.
Gets the name of this client according to Steam.
Gets the local user's persona name. Will be null before user initialization.
User initialization is performed prior to callback.
The name.
Sets the local user's persona name and broadcasts it over the network.
The name.
Gets the local user's persona state.
The persona state.
Sets the local user's persona state and broadcasts it over the network.
The state.
Gets the friend count of the local user.
The number of friends.
Gets a friend by index.
The index.
A valid steamid of a friend if the index is in range; otherwise a steamid representing 0.
Gets the persona name of a friend.
The steam id.
The name.
Gets the persona state of a friend.
The steam id.
The persona state.
Gets the relationship of a friend.
The steam id.
The relationship of the friend to the local user.
Gets the game name of a friend playing a game.
The steam id.
The game name of a friend playing a game, or null if they haven't been cached yet.
Gets the GameID of a friend playing a game.
The steam id.
The gameid of a friend playing a game, or 0 if they haven't been cached yet.
Gets a SHA-1 hash representing the friend's avatar.
The SteamID of the friend to get the avatar of.
A byte array representing a SHA-1 hash of the friend's avatar.
Gets the count of clans the local user is a member of.
The number of clans this user is a member of.
Gets a clan SteamID by index.
The index.
A valid steamid of a clan if the index is in range; otherwise a steamid representing 0.
Gets the name of a clan.
The clan SteamID.
The name.
Gets the relationship of a clan.
The clan steamid.
The relationship of the clan to the local user.
Gets a SHA-1 hash representing the clan's avatar.
The SteamID of the clan to get the avatar of.
A byte array representing a SHA-1 hash of the clan's avatar, or null if the clan could not be found.
Sends a chat message to a friend.
The target to send to.
The type of message to send.
The message to send.
Sends a friend request to a user.
The account name or email of the user.
Sends a friend request to a user.
The SteamID of the friend to add.
Removes a friend from your friends list.
The SteamID of the friend to remove.
Attempts to join a chat room.
The SteamID of the chat room.
Attempts to leave a chat room.
The SteamID of the chat room.
Sends a message to a chat room.
The SteamID of the chat room.
The message type.
The message.
Invites a user to a chat room.
The results of this action will be available through the callback.
The SteamID of the user to invite.
The SteamID of the chat room to invite the user to.
Kicks the specified chat member from the given chat room.
The SteamID of chat room to kick the member from.
The SteamID of the member to kick from the chat.
Bans the specified chat member from the given chat room.
The SteamID of chat room to ban the member from.
The SteamID of the member to ban from the chat.
Unbans the specified SteamID from the given chat room.
The SteamID of chat room to unban the member from.
The SteamID of the member to unban from the chat.
Requests persona state for a list of specified SteamID.
Results are returned in .
A list of SteamIDs to request the info of.
The requested info flags. If none specified, this uses .
Requests persona state for a specified SteamID.
Results are returned in .
A SteamID to request the info of.
The requested info flags. If none specified, this uses .
Ignores or unignores a friend on Steam.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The SteamID of the friend to ignore or unignore.
if set to true, the friend will be ignored; otherwise, they will be unignored.
The Job ID of the request. This can be used to find the appropriate .
Requests profile information for the given .
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The SteamID of the friend to request the details of.
The Job ID of the request. This can be used to find the appropriate .
Requests the last few chat messages with a friend.
Results are returned in a
SteamID of the friend
Requests all offline messages.
This also marks them as read server side.
Results are returned in a .
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler handles all game coordinator messaging.
This callback is fired when a game coordinator message is recieved from the network.
Gets the game coordinator message type.
Gets the AppID of the game coordinator the message is from.
Gets a value indicating whether this message is protobuf'd.
true if this instance is protobuf'd; otherwise, false.
Gets the actual message.
Sends a game coordinator message for a specific appid.
The GC message to send.
The app id of the game coordinator to send to.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for interacting with the Steam network as a game server.
This callback is fired when the game server receives a status reply.
Gets a value indicating whether this game server is VAC secure.
true if this server is VAC secure; otherwise, false.
This callback is fired when ticket authentication has completed.
Gets the SteamID the ticket auth completed for.
Gets the GameID the ticket was for.
Gets the authentication state.
Gets the auth session response.
Gets the ticket CRC.
Gets the ticket sequence.
Represents the details required to log into Steam3 as a game server.
Gets or sets the authentication token used to log in as a game server.
Gets or sets the AppID this gameserver will serve.
Represents the details of the game server's current status.
Gets or sets the AppID this game server is serving.
Gets or sets the server's basic state as flags.
Gets or sets the directory the game data is in.
Gets or sets the IP address the game server listens on.
Gets or sets the port the game server listens on.
Gets or sets the port the game server responds to queries on.
Gets or sets the current version of the game server.
Logs onto the Steam network as a persistent game server.
The client should already have been connected at this point.
Results are return in a .
The details to use for logging on.
No logon details were provided.
Username or password are not set within .
Logs the client into the Steam3 network as an anonymous game server.
The client should already have been connected at this point.
Results are returned in a .
The AppID served by this game server, or 0 for the default.
Informs the Steam servers that this client wishes to log off from the network.
The Steam server will disconnect the client, and a will be posted.
Sends the server's status to the Steam network.
Results are returned in a callback.
A object containing the server's status.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for requesting server list details from Steam.
This callback is received in response to calling .
Represents a single server.
Gets the IP endpoint of the server.
Gets the number of Steam authenticated players on this server.
Gets the list of servers.
Details used when performing a server list query.
Gets or sets the AppID used when querying servers.
Gets or sets the filter used for querying the master server.
Check https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol for details on how the filter is structured.
Gets or sets the region that servers will be returned from.
Gets or sets the IP address that will be GeoIP located.
This is done to return servers closer to this location.
Gets or sets the maximum number of servers to return.
Requests a list of servers from the Steam game master server.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The details for the request.
The Job ID of the request. This can be used to find the appropriate .
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for initializing Steam trades with other clients.
This callback is fired when this client receives a trade proposal.
Gets the result.
Gets the screenshot ID of the newly added screenshot.
Width of a screenshot thumnail
Represents the details required to add a screenshot
Gets or sets the Steam game ID this screenshot belongs to
The game ID.
Gets or sets the UFS image filepath.
The UFS image filepath.
Gets or sets the UFS thumbnail filepath.
The UFS thumbnail filepath.
Gets or sets the screenshot caption
The screenshot caption.
Gets or sets the screenshot privacy
The screenshot privacy.
Gets or sets the screenshot width
The screenshot width.
Gets or sets the screenshot height
The screenshot height.
Gets or sets the creation time
The creation time.
Gets or sets whether or not the screenshot contains spoilers
Whether or not the screenshot contains spoilers.
Initializes a new instance of the class.
Adds a screenshot to the user's screenshot library. The screenshot image and thumbnail must already exist on the UFS.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The details of the screenshot.
The Job ID of the request. This can be used to find the appropriate .
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for initializing Steam trades with other clients.
This callback is fired when this client receives a trade proposal.
Gets the Trade ID of his proposal, used for replying.
Gets the SteamID of the client that sent the proposal.
This callback is fired when this client receives the response from a trade proposal.
Gets the Trade ID that this result is for.
Gets the response of the trade proposal.
Gets the SteamID of the client that responded to the proposal.
Gets the number of days Steam Guard is required to have been active on this account.
Gets the number of days a new device cannot trade for.
Gets the default number of days one cannot trade for after a password reset.
Gets the number of days one cannot trade for after a password reset.
This callback is fired when a trading session has started.
Gets the SteamID of the client that this the trading session has started with.
Proposes a trade to another client.
The client to trade.
Responds to a trade proposal.
The trade id of the received proposal.
if set to true, the trade will be accepted.
Cancels an already sent trade proposal.
The user.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for interacting with Steamworks unified messaging
This callback is returned in response to a service method sent through .
Gets the result of the message.
Gets the raw binary response.
Gets the name of the Service.
Gets the name of the RPC method.
Gets the full name of the service method.
Deserializes the response into a protobuf object.
Protobuf type of the response message.
The response to the message sent through .
This callback represents a service notification recieved though .
Gets the name of the Service.
Gets the name of the RPC method.
Gets the full name of the service method.
Gets the protobuf notification body.
This wrapper is used for expression-based RPC calls using Steam Unified Messaging.
Sends a message.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The type of the protobuf object which is the response to the RPC call.
RPC call expression, e.g. x => x.SomeMethodCall(message);
Whether this message is a notification or not.
The JobID of the request. This can be used to find the appropriate .
Sends a message.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The type of a protobuf object.
Name of the RPC endpoint. Takes the format ServiceName.RpcName
The message to send.
Whether this message is a notification or not.
The JobID of the request. This can be used to find the appropriate .
Creates a wrapper for expression-based unified messaging.
The type of a service interface.
The wrapper.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler handles Steam user statistic related actions.
This callback is fired in response to .
Gets the result of the request.
Gets the current number of players according to Steam.
This callback is fired in response to and .
Gets the result of the request.
Leaderboard ID.
How many entires there are for requested leaderboard.
Sort method to use for this leaderboard.
Display type for this leaderboard.
This callback is fired in response to .
Represents a single package in this response.
Gets the for this entry.
Gets the global rank for this entry.
Gets the score for this entry.
Gets the attached to this entry.
Extra game-defined information regarding how the user got that score.
Gets the result of the request.
How many entires there are for requested leaderboard.
Gets the list of leaderboard entries this response contains.
Retrieves the number of current players for a given app id.
Results are returned in a .
The app id to request the number of players for.
The Job ID of the request. This can be used to find the appropriate .
Asks the Steam back-end for a leaderboard by name for a given appid.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The AppID to request a leaderboard for.
Name of the leaderboard to request.
The Job ID of the request. This can be used to find the appropriate .
Asks the Steam back-end for a leaderboard by name, and will create it if it's not yet.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The AppID to request a leaderboard for.
Name of the leaderboard to create.
Sort method to use for this leaderboard
Display type for this leaderboard.
The Job ID of the request. This can be used to find the appropriate .
Asks the Steam back-end for a set of rows in the leaderboard.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The AppID to request leaderboard rows for.
ID of the leaderboard to view.
The Job ID of the request. This can be used to find the appropriate .
Range start or 0.
Range end or max leaderboard entries.
Type of request.
Handles a client message. This should not be called directly.
The instance containing the event data.
This handler handles all user log on/log off related actions and callbacks.
This callback is returned in response to an attempt to log on to the Steam3 network through .
Gets the result of the logon.
Gets the extended result of the logon.
Gets the out of game secs per heartbeat value.
This is used internally by SteamKit to initialize heartbeating.
Gets the in game secs per heartbeat value.
This is used internally by SteamKit to initialize heartbeating.
Gets or sets the public IP of the client
Gets the Steam3 server time.
Gets the account flags assigned by the server.
Gets the client steam ID.
Gets the email domain.
Gets the Steam2 CellID.
Gets the Steam2 CellID ping threshold.
Gets the Steam2 ticket.
This is used for authenticated content downloads in Steam2.
This field will only be set when has been set to true.
Gets a value indicating whether the client should use PICS.
Gets the WebAPI authentication user nonce.
Gets the IP country code.
Gets the vanity URL.
Gets the threshold for login failures before Steam wants the client to migrate to a new CM.
Gets the threshold for disconnects before Steam wants the client to migrate to a new CM.
This callback is returned when the client is told to log off by the server.
Gets the result of the log off.
The result.
This callback is returned some time after logging onto the network.
Gets the login key.
The login key.
Gets the unique ID.
The unique ID.
This callback is fired when the client recieves it's unique Steam3 session token. This token is used for authenticated content downloading in Steam2.
Gets the Steam3 session token used for authenticating to various other services.
This callback is received when account information is recieved from the network.
This generally happens after logon.
Gets the last recorded persona name used by this account.
Gets the country this account is connected from.
Gets the count of SteamGuard authenticated computers.
Gets the account flags for this account.
Gets the facebook ID of this account if it is linked with facebook.
Gets the facebook name if this account is linked with facebook.
This callback is received when wallet info is recieved from the network.
Gets a value indicating whether this instance has wallet data.
true if this instance has wallet data; otherwise, false.
Gets the currency code for this wallet.
Gets the balance of the wallet as a 32-bit integer, in cents.
Gets the balance of the wallet as a 64-bit integer, in cents.
This callback is received when the backend wants the client to update it's local machine authentication data.
Represents various one-time-password details.
Gets the OTP type.
Gets the OTP identifier.
Gets the OTP shared secret.
Gets the OTP time drift.
Implicitly converts into .
The details to convert.
Gets the sentry file data that should be written.
Gets the number of bytes to write.
Gets the offset to write to.
Gets the name of the sentry file to write.
Gets the one-time-password details.
This callback is received when requesting a new WebAPI authentication user nonce.
Gets the result of the request.
Gets the authentication nonce.
This callback is fired when the client receives a marketing message update.
Represents a single marketing message.
Gets the unique identifier for this marketing message.
Gets the URL for this marketing message.
Gets the marketing message flags.
Gets the time of this marketing message update.
Gets the messages.
Represents the details required to log into Steam3 as a user.
Gets or sets the username.
The username.
Gets or sets the password.
The password.
Gets or sets the CellID.
The CellID.
Gets or sets the LoginID. This number is used for identifying logon session.
The purpose of this field is to allow multiple sessions to the same steam account from the same machine.
This is because Steam Network doesn't allow more than one session with the same LoginID to access given account at the same time from the same public IP.
If you want to establish more than one active session to given account, you must make sure that every session (to that account) from the same public IP has a unique LoginID.
By default LoginID is automatically generated based on machine's primary bind address, which is the same for all sessions.
Null value will cause this property to be automatically generated based on default behaviour.
If in doubt, set this property to null.
The LoginID.
Gets or sets the Steam Guard auth code used to login. This is the code sent to the user's email.
The auth code.
Gets or sets the 2-factor auth code used to login. This is the code that can be received from the authenticator apps.
The two factor auth code.
Gets or sets the login key used to login. This is a key that has been recieved in a previous Steam sesson by a .
The login key.
Gets or sets the 'Should Remember Password' flag. This is used in combination with the login key and for password-less login.
The 'Should Remember Password' flag.
Gets or sets the sentry file hash for this logon attempt, or null if no sentry file is available.
The sentry file hash.
Gets or sets the account instance. 1 for the PC instance or 2 for the Console (PS3) instance.
The account instance.
Gets or sets the account ID used for connecting clients when using the Console instance.
The account ID.
Gets or sets a value indicating whether to request the Steam2 ticket.
This is an optional request only needed for Steam2 content downloads.
true if the Steam2 ticket should be requested; otherwise, false.
Gets or sets the client operating system type.
The client operating system type.
Gets or sets the client language.
The client language.
Initializes a new instance of the class.
Represents the details required to log into Steam3 as an anonymous user.
Gets or sets the CellID.
The CellID.
Gets or sets the client operating system type.
The client operating system type.
Gets or sets the client language.
The client language.
Initializes a new instance of the class.
Represents details required to complete a machine auth request.
The One-Time-Password details for this response.
Gets or sets the one-time-password type.
Gets or sets the one-time-password identifier.
Gets or sets the one-time-password value.
Gets or sets the target Job ID for the request.
This is provided in the for a .
The Job ID.
Gets or sets the result of updating the machine auth.
The result.
Gets or sets the number of bytes written for the sentry file.
The number of bytes written.
Gets or sets the offset within the sentry file that was written.
The offset.
Gets or sets the filename of the sentry file that was written.
The name of the sentry file.
Gets or sets the size of the sentry file.
/ The size of the sentry file.
Gets or sets the last error that occurred while writing the sentry file, or 0 if no error occurred.
The last error.
Gets or sets the SHA-1 hash of the sentry file.
The sentry file hash.
Gets or sets the one-time-password details.
The one time password details.
Initializes a new instance of the class.
Gets the SteamID of this client. This value is assigned after a logon attempt has succeeded.
The SteamID.
Logs the client into the Steam3 network.
The client should already have been connected at this point.
Results are returned in a .
The details to use for logging on.
No logon details were provided.
Username or password are not set within .
Logs the client into the Steam3 network as an anonymous user.
The client should already have been connected at this point.
Results are returned in a .
Logs the client into the Steam3 network as an anonymous user.
The client should already have been connected at this point.
Results are returned in a .
The details to use for logging on.
Informs the Steam servers that this client wishes to log off from the network.
The Steam server will disconnect the client, and a will be posted.
Sends a machine auth response.
This should normally be used in response to a .
The details pertaining to the response.
Requests a new WebAPI authentication user nonce.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The Job ID of the request. This can be used to find the appropriate .
Accepts the new Login Key provided by a .
The callback containing the new Login Key.
Handles a client message. This should not be called directly.
The packet message that contains the data.
This handler is used for requesting files published on the Steam Workshop.
This callback is received in response to calling .
Represents the details of a single published file.
Gets the file ID.
Gets the number of reports for this file.
Gets the score of this file, based on up and down votes.
Gets the total count of up votes.
Gets the total count of down votes.
Gets the result.
Gets the list of enumerated files.
Gets the count of total results.
This callback is received in response to calling .
Represents the details of a single published file.
Gets the file ID.
Gets the result.
Gets the list of enumerated files.
Gets the count of total results.
This callback is received in response to calling .
Represents the details of a single published file.
Gets the file ID.
Gets the time this file was subscribed to.
Gets the result.
Gets the list of enumerated files.
Gets the count of total results.
This callback is received in response to calling .
Represents the details of a single published file.
Gets the file ID.
Gets the timestamp of this file.
Gets the result.
Gets the list of enumerated files.
Gets the count of total results.
Represents the details of an enumeration request used for the local user's files.
Gets or sets the AppID of the workshop to enumerate.
The AppID.
Gets or sets the sort order.
This value is only used by .
The sort order.
Gets or sets the start index.
The start index.
Gets or sets the user action to filter by.
This value is only used by .
The user action.
Enumerates the list of published files for the current logged in user.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The specific details of the request.
The Job ID of the request. This can be used to find the appropriate .
Enumerates the list of subscribed files for the current logged in user.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The specific details of the request.
The Job ID of the request. This can be used to find the appropriate .
Enumerates the list of published files for the current logged in user based on user action.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The specific details of the request.
The Job ID of the request. This can be used to find the appropriate .
Represents the details of an enumeration request for all published files.
Gets or sets the AppID of the workshop to enumerate.
The AppID.
Gets or sets the type of the enumeration.
The type.
Gets or sets the start index.
The start index.
Gets or sets the days.
The days.
Gets or sets the number of results to return.
The number of results.
Gets the list of tags to enumerate.
Gets the list of user tags to enumerate.
Initializes a new instance of the class.
Enumerates the list of all published files on the Steam workshop.
Results are returned in a .
The returned can also be awaited to retrieve the callback result.
The specific details of the request.
The Job ID of the request. This can be used to find the appropriate .
Handles a client message. This should not be called directly.
The packet message that contains the data.
Tracks a job with this manager.
The asynchronous job to track.
Passes a callback to a pending async job.
If the given callback completes the job, the job is removed from this manager.
The JobID.
The callback.
Extends the lifetime of a job.
The job identifier.
Marks a certain job as remotely failed.
The job identifier.
Cancels and clears all jobs being tracked.
Enables or disables periodic checks for job timeouts.
Whether or not job timeout checks should be enabled.
This is called periodically to cancel and clear out any jobs that have timed out (no response from Steam).
Retrieves a job from this manager, and optionally removes it from tracking.
The JobID.
If set to true, this job is removed from tracking.
Thrown when Steam encounters a remote error with a pending .
Initializes a new instance of the class.
Initializes a new instance of the class.
The message that describes the error.
Initializes a new instance of the class.
The error message that explains the reason for the exception.
The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
This class is a utility for routing callbacks to function calls.
In order to bind callbacks to functions, an instance of this class must be created for the
instance that will be posting callbacks.
Initializes a new instance of the class.
The instance to handle the callbacks of.
Runs a single queued callback.
If no callback is queued, this method will instantly return.
Blocks the current thread to run a single queued callback.
If no callback is queued, the method will block for the given timeout.
The length of time to block.
Blocks the current thread to run all queued callbacks.
If no callback is queued, the method will block for the given timeout.
The length of time to block.
Blocks the current thread to run a single queued callback.
If no callback is queued, the method will block until one is posted.
Registers the provided to receive callbacks of type .
The of the callbacks that should be subscribed to.
If this is , all callbacks of type will be recieved.
The function to invoke with the callback.
The type of callback to subscribe to.
An . Disposing of the return value will unsubscribe the .
Registers the provided to receive callbacks of type .
The function to invoke with the callback.
An . Disposing of the return value will unsubscribe the .
A callback message
The that this callback is associated with. If there is no job associated,
then this will be
Represents the base object all callbacks are based off.
Initializes a new instance of the class.
Gets or sets the job ID this callback refers to. If it is not a job callback, it will be .
Represents a single client that connects to the Steam3 network.
This class is also responsible for handling the registration of client message handlers and callbacks.
This callback is received after attempting to connect to the Steam network.
This callback is received when the steamclient is physically disconnected from the Steam network.
If true, the disconnection was initiated by calling .
If false, the disconnection was the cause of something not user-controlled, such as a network failure or
a forcible disconnection by the remote server.
This callback is received when the client has received the CM list from Steam.
Gets the CM server list.
This callback is fired when the client receives a list of all publically available Steam3 servers.
This callback may be fired multiple times for different server lists.
Gets the server list.
Initializes a new instance of the class with the default configuration.
Initializes a new instance of the class with a specific configuration.
The configuration to use for this client.
The configuration object is null
Adds a new handler to the internal list of message handlers.
The handler to add.
A handler of that type is already registered.
Removes a registered handler by name.
The handler name to remove.
Removes a registered handler.
The handler to remove.
Returns a registered handler.
The type of the handler to cast to. Must derive from ClientMsgHandler.
A registered handler on success, or null if the handler could not be found.
Gets the next callback object in the queue.
This function does not dequeue the callback, you must call FreeLastCallback after processing it.
The next callback in the queue, or null if no callback is waiting.
Gets the next callback object in the queue, and optionally frees it.
if set to true this function also frees the last callback if one existed.
The next callback in the queue, or null if no callback is waiting.
Blocks the calling thread until a callback object is posted to the queue.
This function does not dequeue the callback, you must call FreeLastCallback after processing it.
The callback object from the queue.
Blocks the calling thread until a callback object is posted to the queue, or null after the timeout has elapsed.
This function does not dequeue the callback, you must call FreeLastCallback after processing it.
The length of time to block.
A callback object from the queue if a callback has been posted, or null if the timeout has elapsed.
Blocks the calling thread until a callback object is posted to the queue, and optionally frees it.
if set to true this function also frees the last callback.
The callback object from the queue.
Blocks the calling thread until a callback object is posted to the queue, and optionally frees it.
if set to true this function also frees the last callback.
The length of time to block.
A callback object from the queue if a callback has been posted, or null if the timeout has elapsed.
Blocks the calling thread until the queue contains a callback object. Returns all callbacks, and optionally frees them.
if set to true this function also frees all callbacks.
The length of time to block.
All current callback objects in the queue.
Frees the last callback in the queue.
Posts a callback to the queue. This is normally used directly by client message handlers.
The message.
Returns the next available JobID for job based messages.
This function is thread-safe.
The next available JobID.
Called when a client message is received from the network.
The packet message.
Called when the client is securely connected to Steam3.
Called when the client is physically disconnected from Steam3.
Interface to configure a before it is created.
A reference to the underlying object should not be live beyond the configurator function's scope.
Configures this for a particular Steam cell.
The Steam Cell ID to prioritize when connecting.
A builder with modified configuration.
Configures this with a connection timeout.
The connection timeout used when connecting to Steam serves.
A builder with modified configuration.
Configures this with the default s to request from Steam.
The default persona state flags used when requesting information for a new friend, or
when calling SteamFriends.RequestFriendInfo without specifying flags.
A builder with modified configuration.
Configures this to discover available servers.
Whether or not to use the Steam Directory to discover available servers.
A builder with modified configuration.
Configures this with custom HTTP behaviour.
A function to create and configure a new HttpClient.
A builder with modified configuration.
Configures how this will be used to connect to Steam.
The supported protocol types to use when attempting to connect to Steam.
A builder with modified configuration.
Configures the server list provider for this .
The server list provider to use..
A builder with modified configuration.
Configures the Universe that this belongs to.
The Universe to connect to. This should always be unless
you work at Valve and are using this internally. If this is you, hello there.
A builder with modified configuration.
Configures the Steam Web API address for this .
The base address of the Steam Web API to connect to.
Use of "partner.steam-api.com" requires a Partner API Key.
A builder with modified configuration.
Configures this with a Web API key to attach to requests.
An API key to be used for authorized requests.
Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.
A builder with modified configuration.
Factory function to create a user-configured HttpClient.
The HttpClient will be disposed of after use.
A new to be used to send HTTP requests.
Configuration object to use.
This object should not be mutated after it is passed to one or more objects.
Do not use directly - create a SteamConfiguration object by using a builder or helper method.
Creates a , allowing for configuration.
A method which is used to configure the configuration.
A configuration object.
Whether or not to use the Steam Directory to discover available servers.
The Steam Cell ID to prioritize when connecting.
The connection timeout used when connecting to Steam serves.
The default persona state flags used when requesting information for a new friend, or
when calling SteamFriends.RequestFriendInfo without specifying flags.
Factory function to create a user-configured HttpClient.
The supported protocol types to use when attempting to connect to Steam.
The server list provider to use.
The Universe to connect to. This should always be unless
you work at Valve and are using this internally. If this is you, hello there.
The base address of the Steam Web API to connect to.
Use of "partner.steam-api.com" requires a Partner API key.
An API key to be used for authorized requests.
Keys can be obtained from https://steamcommunity.com/dev or the Steamworks Partner site.
The server list used for this configuration.
If this configuration is used by multiple instances, they all share the server list.
Represents a single client that connects to a UFS server.
This callback is received after attempting to connect to the UFS server.
This callback is received when the client is physically disconnected from the UFS server.
If true, the disconnection was initiated by calling .
If false, the disconnection was the cause of something not user-controlled, such as a network failure or
a forcible disconnection by the remote server.
This callback is returned in response to an attempt to log on to the UFS server through .
Gets the result of the logon
This callback is returned in response to a request to upload a file through .
Gets the result of the upload request
Gets whether or not the file upload should proceed over HTTP
Gets whether or not the file upload should proceed over HTTPS
Gets whether or not the file should be encrypted during upload
Gets the SHA hash of the file to be uploaded
Gets the JobID on the UFS server.
This callback is returned when a file upload through is completed.
Gets the result of the file upload
Gets the SHA hash of the file that was uploaded
Gets the connected universe of this client.
This value will be if the client is not connected to Steam.
The universe.
Gets a value indicating whether this instance is connected to the remote UFS server.
true if this instance is connected; otherwise, false.
Gets or sets the connection timeout used when connecting to the UFS server.
The default value is 5 seconds.
The connection timeout.
Initializes a new instance of the class.
The parent instance that the UFS connection is for.
Callbacks will also be posted through this instance.
Connects this client to a UFS server.
This begins the process of connecting and encrypting the data channel between the client and the UFS server.
Results are returned asynchronously in a .
If the UFS server that this client attempts to connect to is down, a will be posted instead.
will not attempt to reconnect to Steam, you must handle this callback and call again, preferrably after a short delay.
In order to connect to the UFS server, the parent must be connected to the CM server.
The of the UFS server to connect to.
If null, will randomly select a UFS server from the 's list of servers.
Disconnects this client from the UFS server.
a will be posted upon disconnection.
Represents all the information required to upload a file to the UFS server.
Gets or sets the AppID this upload request is for.
The AppID.
Gets or sets the remote name of the file that is being uploaded.
The name of the file.
Gets or sets the physical file data for this upload.
The file data.
Gets or sets the JobID of this file upload. This value should be assigned from .
The job ID.
Attempt to logon to the UFS and authorize the client for the given AppIDs.
The should be connected before this point.
Results are returned in a .
The AppIDs to authorize when connecting to the UFS.
The Job ID of the request. This can be used to find the appropriate .
Begins a request to upload a file to the UFS.
The should be logged on before this point.
Results are returned in a .
The details to use for uploading the file.
The Job ID of the request. This can be used to find the appropriate .
Uploads the actual contents of a file to the UFS.
The should be logged on before this point, and the previous request to upload a file must have completed successfully.
Results are returned in a .
The details to use for uploading the file.
The Job ID of the request. This can be used to find the appropriate .
Sends the specified client message to the UFS server.
This method will automatically assign the correct of the message, as given by the parent .
The client message to send.
Provides helper extensions to make WebAPI interfaces from existing SteamConfiguration.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The configuration to use for this Web API interface.
The interface to retrieve a handler for.
A dynamic object to interact with the Web API.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The configuration to use for this Web API interface.
The interface to retrieve a handler for.
A dynamic object to interact with the Web API.
Helper class to load servers from the Steam Directory Web API.
Load a list of servers from the Steam Directory.
Configuration Object
A with the Result set to an enumerable list of s.
Load a list of servers from the Steam Directory.
Configuration Object
Cancellation Token
A with the Result set to an enumerable list of s.
Load a list of servers from the Steam Directory.
Configuration Object
Max number of servers to return. The API will typically return this number per server type (socket and websocket).
Cancellation Token
A with the Result set to an enumerable list of s.
Utility class for interacting with the Steam Web API.
The default base address used for the Steam Web API.
A different base address can be specified in a object, or
as a function argument where overloads are available.
Represents a single interface that exists within the Web API.
This is a dynamic object that allows function calls to interfaces with minimal code.
Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI.
The timeout value in milliseconds. The default value is 100 seconds.
Manually calls the specified Web API function with the provided details.
The function name to call.
The version of the function to call.
A dictionary of string key value pairs representing arguments to be passed to the API.
A object representing the results of the Web API call.
The function name or request method provided were null.
An network error occurred when performing the request.
A network error occurred when performing the request.
An error occured when parsing the response from the WebAPI.
Manually calls the specified Web API function with the provided details.
The function name to call.
The version of the function to call.
A dictionary of string key value pairs representing arguments to be passed to the API.
The http request method. Either "POST" or "GET".
A object representing the results of the Web API call.
The function name or request method provided were null.
An network error occurred when performing the request.
A network error occurred when performing the request.
An error occured when parsing the response from the WebAPI.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Provides the implementation for operations that invoke a member.
Classes derived from the class can
override this method to specify dynamic behavior for operations such as calling a method.
This method should not be called directly, it is called through dynamic method calls.
Provides information about the dynamic operation.
The binder.Name property provides the name of the member on which the dynamic operation is performed.
For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the
class derived from the class, binder.Name returns "SampleMethod".
The binder.IgnoreCase property specifies whether the member name is case-sensitive.
The arguments that are passed to the object member during the invoke operation. For example,
for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the
class, the first argument to is equal to 100.
The result of the member invocation.
true if the operation is successful; otherwise, false. If this method returns false, the run-time
binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.)
Dynamic method is called with non-named argument.
All parameters must be passed as name arguments to API calls.
- or -
The dynamic method name was not in the correct format.
All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number.
The function version number specified was out of range.
Represents a single interface that exists within the Web API.
This is a dynamic object that allows function calls to interfaces with minimal code.
This version of the class makes use of TPL Tasks to provide an asynchronous API.
Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI.
The timeout value in milliseconds. The default value is 100 seconds.
Manually calls the specified Web API function with the provided details.
The function name to call.
The version of the function to call.
A dictionary of string key value pairs representing arguments to be passed to the API.
The http request method. Either "POST" or "GET".
A that contains a object representing the results of the Web API call.
The function name or request method provided were null.
An network error occurred when performing the request.
A network error occurred when performing the request.
An error occured when parsing the response from the WebAPI.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Provides the implementation for operations that invoke a member.
Classes derived from the class can
override this method to specify dynamic behavior for operations such as calling a method.
This method should not be called directly, it is called through dynamic method calls.
Provides information about the dynamic operation.
The binder.Name property provides the name of the member on which the dynamic operation is performed.
For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the
class derived from the class, binder.Name returns "SampleMethod".
The binder.IgnoreCase property specifies whether the member name is case-sensitive.
The arguments that are passed to the object member during the invoke operation. For example,
for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the
class, the first argument to is equal to 100.
The result of the member invocation.
true if the operation is successful; otherwise, false. If this method returns false, the run-time
binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.)
Dynamic method is called with non-named argument.
All parameters must be passed as name arguments to API calls.
- or -
The dynamic method name was not in the correct format.
All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number.
The function version number specified was out of range.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The base of the Steam Web API.
The interface to retrieve a handler for.
An optional API key to be used for authorized requests.
A dynamic object to interact with the Web API.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The interface to retrieve a handler for.
An optional API key to be used for authorized requests.
A dynamic object to interact with the Web API.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The interface to retrieve a handler for.
An optional API key to be used for authorized requests.
A dynamic object to interact with the Web API.
Retrieves a dynamic handler capable of interacting with the specified interface on the Web API.
The base of the Steam Web API.
The interface to retrieve a handler for.
An optional API key to be used for authorized requests.
A dynamic object to interact with the Web API.
Thrown when WebAPI request fails.
Represents the status code of the HTTP response.
Represents the collection of HTTP response headers.
Initializes a new instance of the class.
The message that describes the error.
HTTP response message including the status code and data.
Represents a Steam3 depot manifest.
Represents a single chunk within a file.
Gets or sets the SHA-1 hash chunk id.
Gets or sets the expected Adler32 checksum of this chunk.
Gets or sets the chunk offset.
Gets or sets the compressed length of this chunk.
Gets or sets the decompressed length of this chunk.
Initializes a new instance of the class.
Represents a single file within a manifest.
Gets the name of the file.
Gets the chunks that this file is composed of.
Gets the file flags
Gets the total size of this file.
Gets the hash of this file.
Gets the list of files within this manifest.
Gets a value indicating whether filenames within this depot are encrypted.
true if the filenames are encrypted; otherwise, false.
Gets the depot id.
Gets the manifest id.
Gets the depot creation time.
Gets the total uncompressed size of all files in this depot.
Gets the total compressed size of all files in this depot.
Attempts to decrypts file names with the given encryption key.
The encryption key.
true if the file names were successfully decrypted; otherwise, false.
This 64bit structure represents an app, mod, shortcut, or p2p file on the Steam network.
Represents various types of games.
A Steam application.
A game modification.
A shortcut to a program.
A peer-to-peer file.
Initializes a new instance of the class.
Initializes a new instance of the class.
The 64bit integer to assign this GameID from.
Initializes a new instance of the class.
The 32bit app id to assign this GameID from.
Initializes a new instance of the class.
The base app id of the mod.
The game folder name of the mod.
Initializes a new instance of the class.
The path to the executable, usually quoted.
The name of the application shortcut.
Sets the various components of this GameID from a 64bit integer form.
The 64bit integer to assign this GameID from.
Converts this GameID into it's 64bit integer form.
A 64bit integer representing this GameID.
Performs an implicit conversion from to .
The GameID to convert..
The result of the conversion.
Performs an implicit conversion from to .
The GameId to convert.
The result of the conversion.
Performs an implicit conversion from to .
The 64bit integer representing a GameID to convert.
The result of the conversion.
Gets or sets the app id.
The app IDid
Gets or sets the type of the app.
The type of the app.
Gets or sets the mod id.
The mod ID.
Gets a value indicating whether this instance is a mod.
true if this instance is a mod; otherwise, false.
Gets a value indicating whether this instance is a shortcut.
true if this instance is a shortcut; otherwise, false.
Gets a value indicating whether this instance is a peer-to-peer file.
true if this instance is a p2p file; otherwise, false.
Gets a value indicating whether this instance is a steam app.
true if this instance is a steam app; otherwise, false.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Implements the operator ==.
The left side GameID.
The right side GameID.
The result of the operator.
Implements the operator !=.
The left side GameID.
The right side GameID.
The result of the operator.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
Returns a that represents this instance.
A that represents this instance.
Represents a globally unique identifier within the Steam network.
Guaranteed to be unique across all racks and servers for a given Steam universe.
Initializes a new instance of the class.
Initializes a new instance of the class.
The GID value.
Performs an implicit conversion from to .
The gid.
The result of the conversion.
Performs an implicit conversion from to .
The gid.
The result of the conversion.
Gets or sets the sequential count for this GID.
The sequential count.
Gets or sets the start time of the server that generated this GID.
The start time.
Gets or sets the process ID of the server that generated this GID.
The process ID.
Gets or sets the box ID of the server that generated this GID.
The box ID.
Gets or sets the entire 64bit value of this GID.
The value.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Implements the operator ==.
The left side GID.
The right side GID.
The result of the operator.
Implements the operator !=.
The left side GID.
The right side GID.
The result of the operator.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
Returns a that represents this instance.
A that represents this instance.
Represents a single unique handle to a piece of User Generated Content.
Initializes a new instance of the class.
Initializes a new instance of the class.
The UGC ID.
Performs an implicit conversion from to .
The UGC handle.
The result of the conversion.
Performs an implicit conversion from to .
The UGC ID.
The result of the conversion.
Represents an identifier of a network task known as a job.
Represents an invalid JobID.
Initializes a new instance of the class.
Initializes a new instance of the class.
The Job ID to initialize this instance with.
Performs an implicit conversion from to .
The Job ID.
The result of the conversion.
Performs an implicit conversion from to .
The Job ID.
The result of the conversion.
Performs an implicit conversion from to .
The asynchronous job.
The result of the conversion.
The base class for awaitable versions of a .
Should not be used or constructed directly, but rather with .
Gets the for this job.
Gets or sets the period of time before this job will be considered timed out and will be canceled. By default this is 10 seconds.
Adds a callback to the async job's result set.
The callback.
true if this result completes the set; otherwise, false.
Sets this job as failed, either remotely or due to a message timeout.
If set to true this job is marked as failed because Steam informed us of a job failure;
otherwise, this job has failed due to a message timeout.
Marks this job as having received a heartbeat and extends the job's timeout.
Represents an awaitable version of a .
Can either be converted to a TPL with or can be awaited directly.
The callback type that will be returned by this async job.
Initializes a new instance of the class.
The that this job will be associated with.
The Job ID value associated with this async job.
Converts this instance into a TPL .
Gets an awaiter used to await this .
An awaiter instance.
This method is intended for compiler use rather than use directly in code.
Adds a callback to the async job's result set. For an , this always completes the set.
The callback.
Always true.
Sets this job as failed, either remotely or due to a message timeout.
If set to true this job is marked as failed because Steam informed us of a job failure;
otherwise, this job has failed due to a message timeout.
Represents an awaitable version of a .
Can either be converted to a TPL with or can be awaited directly.
This type of async job can contain multiple callback results.
The callback type that will be returned by this async job.
The set of callback results for an .
Gets a value indicating whether this is complete and contains every result sent by Steam.
Gets a value indicating whether the parent received an incomplete result set and then encountered a remote failure.
Gets a read only collection of callback results for this async job.
Initializes a new instance of the class.
The that this job will be associated with.
The Job ID value associated with this async job.
The condition that must be fulfilled for the result set to be considered complete.
Converts this instance into a TPL .
Gets an awaiter used to await this .
An awaiter instance.
This method is intended for compiler use rather than use directly in code.
Adds a callback to the async job's result set.
The callback.
true if this result completes the set; otherwise, false.
Sets this job as failed, either remotely or due to a message timeout.
If set to true this job is marked as failed because Steam informed us of a job failure;
otherwise, this job has failed due to a message timeout.
Represents a recursive string key to arbitrary value container.
Initializes a new instance of the class.
The optional name of the root key.
The optional value assigned to the root key.
Represents an invalid given when a searched for child does not exist.
Gets or sets the name of this instance.
Gets or sets the value of this instance.
Gets the children of this instance.
Gets or sets the child with the specified key.
When retrieving by key, if no child with the given key exists, is returned.
Returns the value of this instance as a string.
The value of this instance as a string.
Attempts to convert and return the value of this instance as an unsigned byte.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an unsigned byte.
Attempts to convert and return the value of this instance as an unsigned short.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an unsigned short.
Attempts to convert and return the value of this instance as an integer.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an integer.
Attempts to convert and return the value of this instance as an unsigned integer.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an unsigned integer.
Attempts to convert and return the value of this instance as a long.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as a long.
Attempts to convert and return the value of this instance as an unsigned long.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an unsigned long.
Attempts to convert and return the value of this instance as a float.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as a float.
Attempts to convert and return the value of this instance as a boolean.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as a boolean.
Attempts to convert and return the value of this instance as an enum.
If the conversion is invalid, the default value is returned.
The default value to return if the conversion is invalid.
The value of this instance as an enum.
Returns a that represents this instance.
A that represents this instance.
Attempts to load the given filename as a text .
The path to the file to load.
a instance if the load was successful, or null on failure.
This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions.
Attempts to load the given filename as a binary .
The path to the file to load.
The resulting object if the load was successful, or null if unsuccessful.
true if the load was successful, or false on failure.
Attempts to create an instance of from the given input text.
The input text to load.
a instance if the load was successful, or null on failure.
This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions.
Populate this instance from the given as a text .
The input to read from.
true if the read was successful; otherwise, false.
Opens and reads the given filename as text.
The file to open and read.
true if the read was successful; otherwise, false.
Saves this instance to file.
The file path to save to.
If set to true, saves this instance as binary.
Saves this instance to a given .
The to save to.
If set to true, saves this instance as binary.
Populate this instance from the given as a binary .
The input to read from.
true if the read was successful; otherwise, false.
Represents the binary Steam3 manifest format.
Represents a backed MessageObject structure, which are often sent by the Steam servers.
Gets the inner object.
Initializes a new instance of the class, using the provided KeyValues object.
The KeyValue backing store for this message object.
Initializes a new instance of the class with an empty inner KeyValues.
Populates this MessageObject instance from the data inside the given stream.
The stream to load data from.
true on success; otherwise, false.
Writes this MessageObject instance to the given stream.
The stream to write to.
The base class used for wrapping common ulong types, to introduce type safety and distinguish between common types.
Gets or sets the value.
The value.
Initializes a new instance of the class.
Initializes a new instance of the class.
The value to initialize this handle to.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Returns a that represents this instance.
A that represents this instance.
Indicates whether the current object is equal to another object of the same type.
An object to compare with this object.
true if the current object is equal to the other parameter; otherwise, false.
Represents a handle to a published file on the Steam workshop.
Initializes a new instance of the class.
The file id.
Performs an implicit conversion from to .
The published file.
The result of the conversion.
Performs an implicit conversion from to .
The file id.
The result of the conversion.
Implements the operator ==.
The first published file.
The second published file.
The result of the operator.
Implements the operator !=.
The first published file.
The second published file.
The result of the operator.
This 64-bit structure is used for identifying various objects on the Steam network.
The account instance value when representing all instanced SteamIDs.
The account instance value for a desktop .
The account instance value for a console .
The account instance for mobile or web based SteamIDs.
Masking value used for the account id.
Masking value used for packing chat instance flags into a .
Represents various flags a chat may have, packed into its instance.
This flag is set for clan based chat SteamIDs.
This flag is set for lobby based chat SteamIDs.
This flag is set for matchmaking lobby based chat SteamIDs.
Initializes a new instance of the class.
Initializes a new instance of the class.
The account ID.
The universe.
The account type.
Initializes a new instance of the class.
The account ID.
The instance.
The universe.
The account type.
Initializes a new instance of the class.
The 64bit integer to assign this SteamID from.
Initializes a new instance of the class from a Steam2 "STEAM_" rendered form.
This constructor assumes the rendered SteamID is in the public universe.
A "STEAM_" rendered form of the SteamID.
Initializes a new instance of the class from a Steam2 "STEAM_" rendered form and universe.
A "STEAM_" rendered form of the SteamID.
The universe the SteamID belongs to.
Sets the various components of this SteamID instance.
The account ID.
The universe.
The account type.
Sets the various components of this SteamID instance.
The account ID.
The instance.
The universe.
The account type.
Sets the various components of this SteamID from a Steam2 "STEAM_" rendered form and universe.
A "STEAM_" rendered form of the SteamID.
The universe the SteamID belongs to.
true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format.
Sets the various components of this SteamID from a Steam3 "[X:1:2:3]" rendered form and universe.
A "[X:1:2:3]" rendered form of the SteamID.
true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format.
Sets the various components of this SteamID from a 64bit integer form.
The 64bit integer to assign this SteamID from.
Converts this SteamID into it's 64bit integer form.
A 64bit integer representing this SteamID.
Returns a static account key used for grouping accounts with differing instances.
A 64bit static account key.
Gets a value indicating whether this instance is a blank anonymous account
true if this instance is a blank anon account; otherwise, false.
Gets a value indicating whether this instance is a game server account.
true if this instance is a game server account; otherwise, false.
Gets a value indicating whether this instance is a persistent game server account.
true if this instance is a persistent game server account; otherwise, false.
Gets a value indicating whether this instance is an anonymous game server account.
true if this instance is an anon game server account; otherwise, false.
Gets a value indicating whether this instance is a content server account.
true if this instance is a content server account; otherwise, false.
Gets a value indicating whether this instance is a clan account.
true if this instance is a clan account; otherwise, false.
Gets a value indicating whether this instance is a chat account.
true if this instance is a chat account; otherwise, false.
Gets a value indicating whether this instance is a lobby.
true if this instance is a lobby; otherwise, false.
Gets a value indicating whether this instance is an individual account.
true if this instance is an individual account; otherwise, false.
Gets a value indicating whether this instance is an anonymous account.
true if this instance is an anon account; otherwise, false.
Gets a value indicating whether this instance is an anonymous user account.
true if this instance is an anon user account; otherwise, false.
Gets a value indicating whether this instance is a console user account.
true if this instance is a console user account; otherwise, false.
Gets a value indicating whether this instance is valid.
true if this instance is valid; otherwise, false.
Gets or sets the account id.
The account id.
Gets or sets the account instance.
The account instance.
Gets or sets the account type.
The account type.
Gets or sets the account universe.
The account universe.
Renders this instance into it's Steam2 "STEAM_" or Steam3 representation.
If set to true, the Steam3 rendering will be returned; otherwise, the Steam2 STEAM_ rendering.
A string Steam2 "STEAM_" representation of this SteamID, or a Steam3 representation.
Converts this clan ID to a chat ID.
The Chat ID for this clan's group chat.
This SteamID is not a clan ID.
Converts this chat ID to a clan ID.
This can be used to get the group that a group chat is associated with.
true if this chat ID represents a group chat, false otherwise.\
If the method returned true, then this is the group that this chat is associated with. Otherwise, this is null.
Returns a that represents this instance.
A that represents this instance.
Performs an implicit conversion from to .
The SteamID.
The result of the conversion.
Performs an implicit conversion from to .
A 64bit integer representing the SteamID.
The result of the conversion.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Determines whether the specified is equal to this instance.
The to compare with this instance.
true if the specified is equal to this instance; otherwise, false.
Implements the operator ==.
The left side SteamID.
The right side SteamID.
The result of the operator.
Implements the operator !=.
The left side SteamID.
The right side SteamID.
The result of the operator.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
Handles encrypting and decrypting using the RSA public key encryption
algorithm.
Initializes a new instance of the class.
The public key to encrypt with.
Encrypt the specified input.
The encrypted input.
The input to encrypt.
Disposes of this class.
Provides Crypto functions used in Steam protocols
Performs an SHA1 hash of an input byte array
Encrypts using AES/CBC/PKCS7 an input byte array with a given key and IV
Decrypts an input byte array using AES/CBC/PKCS7 with a given key and IV
Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None
Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None
Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None
Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None
Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None
Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None
Verifies and performs a symmetricdecrypt on the input using the given password as a key
Decrypts using AES/ECB/PKCS7
Performs CRC32 on an input byte array using the CrcStandard.Crc32Bit parameters
Performs an Adler32 on the given input
Generate an array of random bytes given the input length
Interface all debug log listeners must implement in order to register themselves.
Called when the DebugLog wishes to inform listeners of debug spew.
The category of the message.
The message to log.
Represents the root debug logging functionality.
Gets or sets a value indicating whether debug logging is enabled.
true if enabled; otherwise, false.
Initializes the class.
Adds a listener.
The listener.
Adds an action listener.
The listener action.
Removes a listener.
The listener.
Removes a listener.
The previously registered listener action.
Clears all registered listeners from the .
Writes a line to the debug log, informing all listeners.
The category of the message.
A composite format string.
An System.Object array containing zero or more objects to format.
Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack.
This method is equivalent to System.Diagnostics.Debug.Assert, however, it is tailored to spew failed assertions into the SteamKit debug log.
The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed.
The category of the message.
The message to display if the assertion fails.
This is a debug utility, do not use it to implement your business logic.
This interface is used for logging network messages sent to and received from the Steam server that the client is connected to.
Called when a packet is received from the Steam server.
Network message type of this packet message.
Raw packet data that was received.
Called when a packet is about to be sent to the Steam server.
Network message type of this packet message.
Raw packet data that will be sent.
Dump any network messages sent to and received from the Steam server that the client is connected to.
These messages are dumped to file, and can be analyzed further with NetHookAnalyzer, a hex editor, or your own purpose-built tools.
Be careful with this, sensitive data may be written to the disk (such as your Steam password).
Will create a folder in path "%assembly%/nethook/%currenttime%/"
Log to your own folder.
Path to folder.
Called when a packet is received from the Steam server.
Network message type of this packet message.
Raw packet data that was received.
Called when a packet is about to be sent to the Steam server.
Network message type of this packet message.
Raw packet data that will be sent.
Contains the public keys that Steam uses for each of the
types.
Gets the public key for the given universe.
The public key.
The universe.
A debug listener that writes debug output to the system console.
Called when the DebugLog wishes to inform listeners of debug spew.
The category of the message.
The message to log.
Contains various utility functions for dealing with dates.
Converts a given unix timestamp to a DateTime
A unix timestamp expressed as seconds since the unix epoch
DateTime representation
Converts a given DateTime into a unix timestamp representing seconds since the unix epoch.
DateTime to be expressed
64-bit wide representation
Contains various utility functions for handling EMsgs.
Strips off the protobuf message flag and returns an EMsg.
The message number.
The underlying EMsg.
Strips off the protobuf message flag and returns an EMsg.
The message number.
The underlying EMsg.
Strips off the protobuf message flag and returns an EMsg.
The message number.
The underlying EMsg.
Determines whether message is protobuf flagged.
The message.
true if this message is protobuf flagged; otherwise, false.
Determines whether message is protobuf flagged.
The message.
true if this message is protobuf flagged; otherwise, false.
Crafts an EMsg, flagging it if required.
The EMsg to flag.
if set to true, the message is protobuf flagged.
A crafted EMsg, flagged if requested.
Crafts an EMsg, flagging it if required.
The EMsg to flag.
if set to true, the message is protobuf flagged.
A crafted EMsg, flagged if requested.
The exception that is thrown when an error in input stream occurs during decoding.
The exception that is thrown when the value of an argument is outside the allowable range.
Callback progress.
input size. -1 if unknown.
output size. -1 if unknown.
Codes streams.
input Stream.
output Stream.
input Size. -1 if unknown.
output Size. -1 if unknown.
callback progress reference.
if input stream is not valid
Provides the fields that represent properties idenitifiers for compressing.
Specifies default property.
Specifies size of dictionary.
Specifies size of memory for PPM*.
Specifies order for PPM methods.
Specifies Block Size.
Specifies number of postion state bits for LZMA (0 <= x <= 4).
Specifies number of literal context bits for LZMA (0 <= x <= 8).
Specifies number of literal position bits for LZMA (0 <= x <= 4).
Specifies number of fast bytes for LZ*.
Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
Specifies the number of match finder cyckes.
Specifies number of passes.
Specifies number of algorithm.
Specifies the number of threads.
Specifies mode with end marker.