Intro - steam 0.9.1

April 25, 2020

MIT License

A python module for interacting with various parts of Steam.

Supports Python 2.7+ and 3.4+.

Key features

  • SteamAuthenticator - enable/disable/manage 2FA on account and generate codes
  • SteamClient - communication with the steam network based on gevent
  • SteamID - convert between the various ID representations with ease
  • WebAPI - simple API for Steam’s Web API with automatic population of interfaces
  • WebAuth - authentication for access to store.steampowered.com and steamcommunity.com

Checkout the User guide for examples, or the api/index for details.

For questions, issues, or general curiosity, visit the repo at https://github.com/ValvePython/steam.

Quick install

For details on require system packages, see Full Installation.

Install latest version from PYPI:

pip install -U steam

Install the current dev version from github:

pip install git+https://github.com/ValvePython/steam

Intro - steam 0.9.1

April 25, 2020

MIT License

A python module for interacting with various parts of Steam.

Supports Python 2.7+ and 3.4+.

Key features

  • SteamAuthenticator - enable/disable/manage 2FA on account and generate codes
  • SteamClient - communication with the steam network based on gevent
  • SteamID - convert between the various ID representations with ease
  • WebAPI - simple API for Steam’s Web API with automatic population of interfaces
  • WebAuth - authentication for access to store.steampowered.com and steamcommunity.com

Checkout the User guide for examples, or the api/index for details.

For questions, issues, or general curiosity, visit the repo at https://github.com/ValvePython/steam.

Quick install

For details on require system packages, see Full Installation.

Install latest version from PYPI:

pip install -U steam

Install the current dev version from github:

pip install git+https://github.com/ValvePython/steam

Table of Contents

Full Installation

Linux

Steps assume that python and pip are already installed.

  1. Install dependencies (see sections below)
  2. Run pip install steam

Note

Consider using virtualenv in order to keep you system packages untouched.

Ubuntu/Debian

Replace python-dev with python3-dev for Python 3.

$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev
RHEL-based
$ sudo yum install gcc libffi-devel python-devel openssl-devel

Windows

Cygwin
  1. Download cygwin installer from https://cygwin.com/install.html
  2. During the setup select these additional packages
    • python3
    • python3-devel
    • python3-setuptools
    • gcc-core
    • gcc-g++
    • libffi6
    • libffi-devel
    • openssl-devel
  1. Install pip
    • Open cygwin terminal
    • Run easy_install-3.4 pip
  1. Run pip install steam

Note

Consider using virtualenv in order to keep you system packages untouched.

Note

Installation may take a while as a number of dependecies will be compiled

Native Python
  1. Download & install python 3.5 from https://www.python.org/downloads/windows/

Note

Installing for all users will require administrator rights

  1. Then from cmd run pip install steam

User guide

Welcome to the quick start section. The aim here is to give you a very quick overview of the functionality available in the steam module.

SteamID

SteamID can be used to convert the universal steam id to its’ various representations.

Note

SteamID is immutable as it inherits from int.

Converting between representations
>>> from steam import SteamID

>>> SteamID()
SteamID(id=0, type='Invalid', universe='Invalid', instance=0)

>>> SteamID(12345)  # accountid
>>> SteamID('12345')
>>> SteamID('STEAM_1:1:6172')  # steam2
SteamID(id=12345, type='Individual', universe='Public', instance=1)

>>> SteamID(103582791429521412)  # steam64
>>> SteamID('103582791429521412')
>>> SteamID('[g:1:4]')  # steam3
SteamID(id=4, type='Clan', universe='Public', instance=0)
>>> group = SteamID('[g:1:4]')
>>> group.id  # accountid
4
>>> group.as_32  # accountid
4
>>> group.as_64
103582791429521412
>>> int(group)
103582791429521412
>>> str(group)
'103582791429521412'
>>> group.as_steam2 # only works for 'Individual' accounts
'STEAM_1:0:2'
>>> group.as_steam3
'[g:1:4]'
>>> group.community_url
'https://steamcommunity.com/gid/103582791429521412'
Resolving community urls to SteamID

The steam.steamid submodule provides function to resolve community urls. Here are some examples:

>>> SteamID.from_url('https://steamcommunity.com/id/drunkenf00l')
>>> steam.steamid.from_url('https://steamcommunity.com/id/drunkenf00l')
SteamID(id=8193745, type='Individual', universe='Public', instance=1)

>>> steam.steamid.steam64_from_url('http://steamcommunity.com/profiles/76561197968459473')
'76561197968459473'

WebAPI

WebAPI is a thin Wrapper around Steam Web API. Requires API Key. Upon initialization the instance will fetch all available interfaces and populate the namespace.

Obtaining a key

Any steam user can get a key by visiting http://steamcommunity.com/dev/apikey. The only requirement is that the user has verified their email. Then the key can be used on the public WebAPI. See steam.webapi.APIHost

Note

Interface availability depends on the key. Unless the schema is loaded manually.

Calling an endpoint
>>> from steam import WebAPI
>>> api = WebAPI(key="<your api key>")

# instance.<interface>.<method>
>>> api.ISteamWebAPIUtil.GetServerInfo()
>>> api.call('ISteamWebAPIUtil.GetServerInfo')
{u'servertimestring': u'Sun Jul 05 22:37:25 2015', u'servertime': 1436161045}

>>> api.ISteamUser.ResolveVanityURL(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL', vanityurl="valve", url_type=2)
{u'response': {u'steamid': u'103582791429521412', u'success': 1}}

# call a specific version of the method
>>> api.ISteamUser.ResolveVanityURL_v1(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL_v1', vanityurl="valve", url_type=2)

It’s not necessary to provide the key when calling any interface method. key, format, raw, http_timeout parameters can be specified on WebAPI to affect all method calls, or when calling a specific method. Some methods have parameters which need to be a list. Trying to call nonexistent method will raise an AttributeError.

Supported formats by web api are: json (default), vdf, xml The response will be deserialized using the appropriate module unless raw is True.

WebAPI documentation
>>> api.ISteamUser.ResolveVanityURL.__doc__  # method doc
"""
ResolveVanityURL (v0001)

  Parameters:
    key                       string   required
      - access key
    url_type                  int32    optional
      - The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group
    vanityurl                 string   required
      - The vanity URL to get a SteamID for

"""

# or calling doc() will print it
>>> api.ISteamUser.ResolveVanityURL.doc()  # method doc
>>> api.ISteamUser.doc()  # interface and all methods
>>> api.doc()  # all available interfaces

For a more complete list of all available interfaces and methods visit: https://lab.xpaw.me/steam_api_documentation.html

SteamClient

gevent based implementation for interacting with the Steam network. The library comes with some Steam client features implemented, see client for more details.

CLI example

In this example, the user will be prompted for credential and once logged in will the account name. After that we logout.

from steam import SteamClient
from steam.enums.emsg import EMsg

client = SteamClient()

@client.on(EMsg.ClientVACBanStatus)
def print_vac_status(msg):
    print("Number of VAC Bans: %s" % msg.body.numBans)

client.cli_login()

print("Logged on as: %s" % client.user.name)
print("Community profile: %s" % client.steam_id.community_url)
print("Last logon: %s" % client.user.last_logon)
print("Last logoff: %s" % client.user.last_logoff)
print("Number of friends: %d" % len(client.friends))

client.logout()

You can find more examples at https://github.com/ValvePython/steam/tree/master/recipes

Sending a message

Example of sending a protobuf message and handling the response. send_message_and_wait() will send a message and block until the specified event.

from steam.enums import EResult
from steam.core.msg import MsgProto
from steam.enums.emsg import EMsg

message = MsgProto(EMsg.ClientAddFriend)
message.body.steamid_to_add = 76561197960265728

resp = client.send_message_and_wait(message, EMsg.ClientAddFriendResponse)

if resp.eresult == EResult.OK:
    print "Send a friend request to %s (%d)" % (repr(resp.body.persona_name_added),
                                               resp.body.steam_id_added,
                                               )
else:
    print "Error: %s" % EResult(resp.eresult)

Alternatively, a callback can be registered to handle the response event every time.

@client.on(EMsg.ClientAddFriendResponse)
def handle_add_response(msg):
    pass
# OR
client.on(EMsg.ClientAddFriendResponse, handle_add_response)

Web Authentication

There are currently two paths for gaining access to steam websites. Either using WebAuth, or via a SteamClient.get_web_session() instance.

session = client.get_web_session()  # returns requests.Session
session.get('https://store.steampowered.com')

For more details about WebAuth, see steam.webauth

API Reference

client

Implementation of Steam client based on gevent

Note

Additional features are located in separate submodules. All functionality from builtins is inherited by default.

Note

Optional features are available as mixins. This allows the client to remain light yet flexible.

class steam.client.SteamClient

Bases: steam.core.cm.CMClient, steam.client.builtins.BuiltinBase

EVENT_AUTH_CODE_REQUIRED = 'auth_code_required'

When either email or 2FA code is needed for login

EVENT_CHANNEL_SECURED = 'channel_secured'
EVENT_CHAT_MESSAGE = 'chat_message'
EVENT_CONNECTED = 'connected'
EVENT_DISCONNECTED = 'disconnected'
EVENT_EMSG = 0
EVENT_ERROR = 'error'
EVENT_LOGGED_ON = 'logged_on'

After successful login

EVENT_NEW_LOGIN_KEY = 'new_login_key'

After a new login key is accepted

EVENT_RECONNECT = 'reconnect'
PROTOCOL_TCP = 0
PROTOCOL_UDP = 1
anonymous_login()

Login as anonymous user

Returns:logon result, see CMsgClientLogonResponse.eresult
Return type:EResult
change_email(password, email, code='')

Change account’s email address

Parameters:
  • password (str) – current account password
  • email (str) – new email address
  • code (str) – email code
Returns:

result

Return type:

EResult

Note

To change email, first call without code and then with, to finalize the change

change_password(password, new_password, email_code)

Change account’s password

Parameters:
  • password (str) – current account password
  • new_password (str) – new account password
  • email_code (str) – confirmation code from email
Returns:

result

Return type:

EResult

Note

First request change mail via request_password_change_mail() to get the email code

change_status(**kwargs)

Set name, persona state, flags

Note

Changing persona state will also change persona_state

Parameters:
  • persona_state (EPersonaState) – persona state (Online/Offlane/Away/etc)
  • player_name (str) – profile name
  • persona_state_flags (EPersonaStateFlag) – persona state flags
channel_hmac = None
channel_key = None
channel_secured = False
cli_login(username='', password='')

Generates CLI prompts to complete the login process

Parameters:
  • username (str) – optionally provide username
  • password (str) – optionally provide password
Returns:

logon result, see CMsgClientLogonResponse.eresult

Return type:

EResult

Example console output after calling cli_login()

In [5]: client.cli_login()
Steam username: myusername
Password:
Steam is down. Keep retrying? [y/n]: y
Invalid password for 'myusername'. Enter password:
Enter email code: 123
Incorrect code. Enter email code: K6VKF
Out[5]: <EResult.OK: 1>
cm_servers = None
connect(*args, **kwargs)

Attempt to establish connection, see CMClient.connect()

connected = False
count_listeners(event)

Returns a count of how many listeners are registered registed for a specific event

Parameters:event – event identifier
Returns:number of listeners
Return type:int
create_account(account_name, password, email='')

Create a new Steam account

Warning

Disabled by Valve

Parameters:
  • account_name (str) – desired account name
  • password (str) – desired password
  • email (str) – desired email
Returns:

(EResult, SteamID)

Return type:

tuple

credential_location = None

location for sentry

current_games_played = []
current_jobid = 0
current_server_addr = None
disconnect(*args, **kwargs)

Close connection, see CMClient.disconnect()

emit(event, *args)
games_played(app_ids)

Set the apps being played by the user

Parameters:app_ids (list) – a list of application ids

These app ids will be recorded in current_games_played.

get_app_ticket(app_id)

Get app ownership ticket

Parameters:app_id (int) – app id
Returns:CMsgClientGetAppOwnershipTicketResponse
Return type:proto message
get_cdn_auth_token(app_id, hostname)

Get CDN authentication token

Parameters:
  • app_id (int) – app id
  • hostname (str) – cdn hostname
Returns:

CMsgClientGetCDNAuthTokenResponse

Return type:

proto message

get_changes_since(change_number, app_changes=True, package_changes=False)

Get changes since a change number

Parameters:
  • change_number (int) – change number to use as stating point
  • app_changes (bool) – whether to inclued app changes
  • package_changes (bool) – whether to inclued package changes
Returns:

CMsgClientPICSChangesSinceResponse

Return type:

proto message instance, or None on timeout

get_depot_key(depot_id, app_id=0)

Get depot decryption key

Parameters:
  • depot_id (int) – depot id
  • app_id (int) – app id
Returns:

CMsgClientGetDepotDecryptionKeyResponse

Return type:

proto message

get_leaderboard(app_id, name)

New in version 0.8.2.

Find a leaderboard

Parameters:
  • app_id (int) – application id
  • name (str) – leaderboard name
Returns:

leaderboard instance

Return type:

SteamLeaderboard

Raises:

LookupError on message timeout or error

get_player_count(app_id, timeout=5)

Get numbers of players for app id

Parameters:app_id (int) – app id
Returns:number of players
Return type:int, EResult
get_product_access_tokens(app_ids=[], package_ids=[])

Get access tokens

Parameters:
  • app_ids (list) – list of app ids
  • package_ids (list) – list of package ids
Returns:

dict with apps and packages containing their access tokens, see example below

Return type:

dict, None

{'apps':     {123: 'token', ...},
 'packages': {456: 'token', ...}
}
get_product_info(apps=[], packages=[], timeout=15)

Get product info for apps and packages

Parameters:
  • apps (list) – items in the list should be either just app_id, or (app_id, access_token)
  • packages (list) – items in the list should be either just package_id, or (package_id, access_token)
Returns:

dict with apps and packages containing their info, see example below

Return type:

dict, None

{'apps':     {570: {...}, ...},
 'packages': {123: {...}, ...}
}
get_sentry(username)

Returns contents of sentry file for the given username

Note

returns None if credential_location is not set, or file is not found/inaccessible

Parameters:username (str) – username
Returns:sentry file contents, or None
Return type:bytes, None
get_user(steam_id, fetch_persona_state=True)

Get SteamUser instance for steam id

Parameters:
  • steam_id (int, SteamID) – steam id
  • fetch_persona_state (bool) – whether to request person state when necessary
Returns:

SteamUser instance

Return type:

SteamUser

get_web_session(language='english')

Get a requests.Session that is ready for use

See get_web_session_cookies()

Note

Auth cookies will only be send to (help|store).steampowered.com and steamcommunity.com domains

Note

The session is valid only while SteamClient instance is logged on.

Parameters:language (str) – localization language for steam pages
Returns:authenticated Session ready for use
Return type:requests.Session, None
get_web_session_cookies()

Get web authentication cookies via WebAPI’s AuthenticateUser

Note

The cookies are valid only while SteamClient instance is logged on.

Returns:dict with authentication cookies
Return type:dict, None
idle()

Yeild in the current greenlet and let other greenlets run

logged_on = None

indicates logged on status. Listen to logged_on when change to True

login(username, password='', login_key=None, auth_code=None, two_factor_code=None, login_id=None)

Login as a specific user

Parameters:
  • username (str) – username
  • password (str) – password
  • login_key (str) – login key, instead of password
  • auth_code (str) – email authentication code
  • two_factor_code (str) – 2FA authentication code
  • login_id (int) – number used for identifying logon session
Returns:

logon result, see CMsgClientLogonResponse.eresult

Return type:

EResult

Note

Failure to login will result in the server dropping the connection, error event is fired

auth_code_required event is fired when 2FA or Email code is needed. Here is example code of how to handle the situation.

@steamclient.on(steamclient.EVENT_AUTH_CODE_REQUIRED)
def auth_code_prompt(is_2fa, code_mismatch):
    if is_2fa:
        code = input("Enter 2FA Code: ")
        steamclient.login(username, password, two_factor_code=code)
    else:
        code = input("Enter Email Code: ")
        steamclient.login(username, password, auth_code=code)

Codes are required every time a user logins if sentry is not setup. See set_credential_location()

login_key = None

can be used for subsequent logins (no 2FA code will be required)

logout()

Logout from steam. Doesn’t nothing if not logged on.

Note

The server will drop the connection immediatelly upon logout.

on(event, callback=None, once=False)

Registers a callback for the specified event

Parameters:
  • event – event name
  • callback – callback function

Can be as function decorator if only event param is specified.

@instaceOfSomeClass.on("some event")
def handle_event():
    pass

instaceOfSomeClass.on("some event", handle_event)

To listen for any event, use None as event identifier.

once(event, callback=None)

Register a callback, but call it exactly one time

See eventemitter.EventEmitter.on()

persona_state = <EPersonaState.Online: 1>
reconnect(maxdelay=30, retry=0)

Implements explonential backoff delay before attempting to connect. It is otherwise identical to calling CMClient.connect(). The delay is reset upon a successful login.

Parameters:
Returns:

successful connection

Return type:

bool

register_product_key(key)

Register/Redeem a CD-Key

Parameters:key (str) – CD-Key
Returns:format (eresult, result_details, receipt_info)
Return type:tuple

Example receipt_info:

{'BasePrice': 0,
  'CurrencyCode': 0,
  'ErrorHeadline': '',
  'ErrorLinkText': '',
  'ErrorLinkURL': '',
  'ErrorString': '',
  'LineItemCount': 1,
  'PaymentMethod': 1,
  'PurchaseStatus': 1,
  'ResultDetail': 0,
  'Shipping': 0,
  'Tax': 0,
  'TotalDiscount': 0,
  'TransactionID': UINT_64(111111111111111111),
  'TransactionTime': 1473000000,
  'lineitems': {'0': {'ItemDescription': 'Half-Life 3',
    'TransactionID': UINT_64(11111111111111111),
    'packageid': 1234}},
  'packageid': -1}
relogin()

Login without needing credentials, essentially remember password. The login_key is acquired after successful login and it will be automatically acknowledged. Listen for the new_login_key event. After that the client can relogin using this method.

Note

Only works when relogin_available is True.

if client.relogin_available: client.relogin()
else:
    client.login(user, pass)
relogin_available

True when the client has the nessesary data for relogin()

remove_all_listeners(event=None)

Removes all registered callbacks, or all registered callbacks for a specific event

Parameters:event – event identifier
remove_listener(event, callback)

Removes callback for the specified event

Parameters:
  • event – event identifier
  • callback (function, method or gevent.event.AsyncResult) – callback reference
request_password_change_mail(password)

Request password change mail

Parameters:password (str) – current account password
Returns:result
Return type:EResult
request_persona_state(steam_ids, state_flags=863)

Request persona state data

Parameters:
request_validation_mail()

Request validation email

Returns:result
Return type:EResult
run_forever()

Transfer control the gevent event loop

This is useful when the application is setup and ment to run for a long time

send(message, body_params=None)

Changed in version 0.8.4.

Send a message to CM

Parameters:
  • message (Msg, MsgProto) – a message instance
  • body_params (dict) – a dict with params to the body (only MsgProto)
send_job(message, body_params=None)

Changed in version 0.8.4.

Send a message as a job

Note

Not all messages are jobs, you’ll have to find out which are which

Parameters:
  • message (Msg, MsgProto) – a message instance
  • body_params (dict) – a dict with params to the body (only MsgProto)
Returns:

jobid event identifier

Return type:

str

To catch the response just listen for the jobid event.

jobid = steamclient.send_job(my_message)

resp = steamclient.wait_event(jobid, timeout=15)
if resp:
    (message,) = resp
send_job_and_wait(message, body_params=None, timeout=None, raises=False)

Changed in version 0.8.4.

Send a message as a job and wait for the response.

Note

Not all messages are jobs, you’ll have to find out which are which

Parameters:
  • message (Msg, MsgProto) – a message instance
  • body_params (dict) – a dict with params to the body (only MsgProto)
  • timeout (int) – (optional) seconds to wait
  • raises (bool) – (optional) On timeout if False return None, else raise gevent.Timeout
Returns:

response proto message

Return type:

Msg, MsgProto

Raises:

gevent.Timeout

send_message_and_wait(message, response_emsg, body_params=None, timeout=None, raises=False)

Changed in version 0.8.4.

Send a message to CM and wait for a defined answer.

Parameters:
  • message (Msg, MsgProto) – a message instance
  • response_emsg (EMsg,:class:int) – emsg to wait for
  • body_params (dict) – a dict with params to the body (only MsgProto)
  • timeout (int) – (optional) seconds to wait
  • raises (bool) – (optional) On timeout if False return None, else raise gevent.Timeout
Returns:

response proto message

Return type:

Msg, MsgProto

Raises:

gevent.Timeout

session_id = None
set_credential_location(path)

Sets folder location for sentry files

Needs to be set explicitly for sentries to be created.

sleep(seconds)

Yeild and sleep N seconds. Allows other greenlets to run

steam_id = SteamID(id=0, type='Invalid', universe='Invalid', instance=0)
store_sentry(username, sentry_bytes)

Store sentry bytes under a username

Parameters:username (str) – username
Returns:Whenver the operation succeed
Return type:bool
user = None
username = None

username when logged on

verbose_debug = False
wait_event(event, timeout=None, raises=False)

Blocks until an event and returns the results

Parameters:
  • event – event identifier
  • timeout (int) – (optional)(default:None) seconds to wait
  • raises (bool) – (optional)(default:False) On timeout if False return None, else raise gevent.Timeout
Returns:

returns event arguments in tuple

Return type:

None, or tuple

Raises:

gevent.Timeout

Handling timeout

args = ee.wait_event('my event', timeout=5)
if args is None:
    print "Timeout!"
wait_msg(event, timeout=None, raises=None)

Wait for a message, similiar to wait_event()

Parameters:
  • event – :class:`.EMsg’ or job id
  • timeout (int) – seconds to wait before timeout
  • raises (bool) – On timeout when ``False` returns None, else raise gevent.Timeout
Returns:

returns a message or None

Return type:

None, or proto message

Raises:

gevent.Timeout

builtins

All high level features of steam.client.SteamClient are implemented here in separate submodules.

Apps
class steam.client.builtins.apps.Apps(*args, **kwargs)

Bases: object

get_player_count(app_id, timeout=5)

Get numbers of players for app id

Parameters:app_id (int) – app id
Returns:number of players
Return type:int, EResult
get_product_info(apps=[], packages=[], timeout=15)

Get product info for apps and packages

Parameters:
  • apps (list) – items in the list should be either just app_id, or (app_id, access_token)
  • packages (list) – items in the list should be either just package_id, or (package_id, access_token)
Returns:

dict with apps and packages containing their info, see example below

Return type:

dict, None

{'apps':     {570: {...}, ...},
 'packages': {123: {...}, ...}
}
get_changes_since(change_number, app_changes=True, package_changes=False)

Get changes since a change number

Parameters:
  • change_number (int) – change number to use as stating point
  • app_changes (bool) – whether to inclued app changes
  • package_changes (bool) – whether to inclued package changes
Returns:

CMsgClientPICSChangesSinceResponse

Return type:

proto message instance, or None on timeout

get_app_ticket(app_id)

Get app ownership ticket

Parameters:app_id (int) – app id
Returns:CMsgClientGetAppOwnershipTicketResponse
Return type:proto message
get_depot_key(depot_id, app_id=0)

Get depot decryption key

Parameters:
  • depot_id (int) – depot id
  • app_id (int) – app id
Returns:

CMsgClientGetDepotDecryptionKeyResponse

Return type:

proto message

get_cdn_auth_token(app_id, hostname)

Get CDN authentication token

Parameters:
  • app_id (int) – app id
  • hostname (str) – cdn hostname
Returns:

CMsgClientGetCDNAuthTokenResponse

Return type:

proto message

get_product_access_tokens(app_ids=[], package_ids=[])

Get access tokens

Parameters:
  • app_ids (list) – list of app ids
  • package_ids (list) – list of package ids
Returns:

dict with apps and packages containing their access tokens, see example below

Return type:

dict, None

{'apps':     {123: 'token', ...},
 'packages': {456: 'token', ...}
}
register_product_key(key)

Register/Redeem a CD-Key

Parameters:key (str) – CD-Key
Returns:format (eresult, result_details, receipt_info)
Return type:tuple

Example receipt_info:

{'BasePrice': 0,
  'CurrencyCode': 0,
  'ErrorHeadline': '',
  'ErrorLinkText': '',
  'ErrorLinkURL': '',
  'ErrorString': '',
  'LineItemCount': 1,
  'PaymentMethod': 1,
  'PurchaseStatus': 1,
  'ResultDetail': 0,
  'Shipping': 0,
  'Tax': 0,
  'TotalDiscount': 0,
  'TransactionID': UINT_64(111111111111111111),
  'TransactionTime': 1473000000,
  'lineitems': {'0': {'ItemDescription': 'Half-Life 3',
    'TransactionID': UINT_64(11111111111111111),
    'packageid': 1234}},
  'packageid': -1}
Account
class steam.client.builtins.account.Account(*args, **kwargs)

Bases: object

create_account(account_name, password, email='')

Create a new Steam account

Warning

Disabled by Valve

Parameters:
  • account_name (str) – desired account name
  • password (str) – desired password
  • email (str) – desired email
Returns:

(EResult, SteamID)

Return type:

tuple

request_validation_mail()

Request validation email

Returns:result
Return type:EResult
request_password_change_mail(password)

Request password change mail

Parameters:password (str) – current account password
Returns:result
Return type:EResult
change_password(password, new_password, email_code)

Change account’s password

Parameters:
  • password (str) – current account password
  • new_password (str) – new account password
  • email_code (str) – confirmation code from email
Returns:

result

Return type:

EResult

Note

First request change mail via request_password_change_mail() to get the email code

change_email(password, email, code='')

Change account’s email address

Parameters:
  • password (str) – current account password
  • email (str) – new email address
  • code (str) – email code
Returns:

result

Return type:

EResult

Note

To change email, first call without code and then with, to finalize the change

User
class steam.client.builtins.user.User(*args, **kwargs)

Bases: object

EVENT_CHAT_MESSAGE = 'chat_message'

On new private chat message

Parameters:
  • user (SteamUser) – steam user
  • message (str) – message text
persona_state = <EPersonaState.Online: 1>

current persona state

user = None

SteamUser instance once logged on

current_games_played = []

list of app ids currently being played

change_status(**kwargs)

Set name, persona state, flags

Note

Changing persona state will also change persona_state

Parameters:
  • persona_state (EPersonaState) – persona state (Online/Offlane/Away/etc)
  • player_name (str) – profile name
  • persona_state_flags (EPersonaStateFlag) – persona state flags
request_persona_state(steam_ids, state_flags=863)

Request persona state data

Parameters:
get_user(steam_id, fetch_persona_state=True)

Get SteamUser instance for steam id

Parameters:
  • steam_id (int, SteamID) – steam id
  • fetch_persona_state (bool) – whether to request person state when necessary
Returns:

SteamUser instance

Return type:

SteamUser

games_played(app_ids)

Set the apps being played by the user

Parameters:app_ids (list) – a list of application ids

These app ids will be recorded in current_games_played.

Web

Web related features

class steam.client.builtins.web.Web(*args, **kwargs)

Bases: object

get_web_session_cookies()

Get web authentication cookies via WebAPI’s AuthenticateUser

Note

The cookies are valid only while SteamClient instance is logged on.

Returns:dict with authentication cookies
Return type:dict, None
get_web_session(language='english')

Get a requests.Session that is ready for use

See get_web_session_cookies()

Note

Auth cookies will only be send to (help|store).steampowered.com and steamcommunity.com domains

Note

The session is valid only while SteamClient instance is logged on.

Parameters:language (str) – localization language for steam pages
Returns:authenticated Session ready for use
Return type:requests.Session, None
Unified Messages

SteamUnifiedMessages provides a simply API to send and receive unified messages.

Example code:

# the easy way
response = client.unified_messages.send_and_wait('Player.GetGameBadgeLevels#1', {
    'property': 1,
    'something': 'value',
    })

# the other way
jobid = client.unified_message.send('Player.GetGameBadgeLevels#1', {'something': 1})
response, = client.unified_message.wait_event(jobid)

# i know what im doing, alright?
message = client.unified_message.get('Player.GetGameBadgeLevels#1')
message.something = 1
response = client.unified_message.send_and_wait(message)
class steam.client.builtins.unified_messages.UnifiedMessages(*args, **kwargs)

Bases: object

unified_messages = None

instance of SteamUnifiedMessages

class steam.client.builtins.unified_messages.SteamUnifiedMessages(steam, logger_name=None)

Bases: eventemitter.EventEmitter

Simple API for send/recv of unified messages

Incoming messages are emitted as events once with their jobid and once with their method name (e.g. Player.GetGameBadgeLevels#1)

emit(event, *args)
get(method_name)

Get request proto instance for given methed name

Parameters:method_name (str) – name for the method (e.g. Player.GetGameBadgeLevels#1)
Returns:proto message instance, or None if not found
send(message, params=None)

Send service method request

Parameters:
  • message (str, proto message instance) – proto message instance (use SteamUnifiedMessages.get()) or method name (e.g. Player.GetGameBadgeLevels#1)
  • params (dict) – message parameters
Returns:

jobid event identifier

Return type:

str

Listen for jobid on this object to catch the response.

Note

If you listen for jobid on the client instance you will get the encapsulated message

send_and_wait(message, params=None, timeout=None, raises=False)

Send service method request and wait for response

Parameters:
  • message (str, proto message instance) – proto message instance (use SteamUnifiedMessages.get()) or method name (e.g. Player.GetGameBadgeLevels#1)
  • params (dict) – message parameters
  • timeout (int) – (optional) seconds to wait
  • raises (bool) – (optional) On timeout if False return None, else raise gevent.Timeout
Returns:

response proto message instance

Return type:

proto message, None

Raises:

gevent.Timeout

Leaderboards

Reading the leaderboards with SteamLeaderboard is as easy as iterating over a list.

class steam.client.builtins.leaderboards.Leaderboards(*args, **kwargs)

Bases: object

get_leaderboard(app_id, name)

New in version 0.8.2.

Find a leaderboard

Parameters:
  • app_id (int) – application id
  • name (str) – leaderboard name
Returns:

leaderboard instance

Return type:

SteamLeaderboard

Raises:

LookupError on message timeout or error

class steam.client.builtins.leaderboards.SteamLeaderboard(steam, app_id, name, data)

Bases: object

New in version 0.8.2.

Steam leaderboard object. Generated via Leaderboards.get_leaderboard() Works more or less like a list to access entries.

Note

Each slice will produce a message to steam. Steam and protobufs might not like large slices. Avoid accessing individual entries by index and instead use iteration or well sized slices.

Example usage:

lb = client.get_leaderboard(...)

for entry in lb[:100]:  # top 100
    print entry
class ELeaderboardDataRequest

Bases: steam.enums.base.SteamIntEnum

An enumeration.

Friends = <ELeaderboardDataRequest.Friends: 2>
Global = <ELeaderboardDataRequest.Global: 0>
GlobalAroundUser = <ELeaderboardDataRequest.GlobalAroundUser: 1>
Users = <ELeaderboardDataRequest.Users: 3>
class SteamLeaderboard.ELeaderboardSortMethod

Bases: steam.enums.base.SteamIntEnum

An enumeration.

Ascending = <ELeaderboardSortMethod.Ascending: 1>
Descending = <ELeaderboardSortMethod.Descending: 2>
NONE = <ELeaderboardSortMethod.NONE: 0>
class SteamLeaderboard.ELeaderboardDisplayType

Bases: steam.enums.base.SteamIntEnum

An enumeration.

NONE = <ELeaderboardDisplayType.NONE: 0>
Numeric = <ELeaderboardDisplayType.Numeric: 1>
TimeMilliSeconds = <ELeaderboardDisplayType.TimeMilliSeconds: 3>
TimeSeconds = <ELeaderboardDisplayType.TimeSeconds: 2>
SteamLeaderboard.name = ''

leaderboard name

SteamLeaderboard.id = 0

leaderboard id

SteamLeaderboard.entry_count = 0
SteamLeaderboard.data_request = <ELeaderboardDataRequest.Global: 0>

steam.enums.common.ELeaderboardDataRequest

SteamLeaderboard.app_id = 0
SteamLeaderboard.sort_method = <ELeaderboardSortMethod.NONE: 0>

steam.enums.common.ELeaderboardSortMethod

SteamLeaderboard.display_type = <ELeaderboardDisplayType.NONE: 0>

steam.enums.common.ELeaderboardDisplayType

SteamLeaderboard.get_entries(start=0, end=0, data_request=None, steam_ids=None)

Get leaderboard entries.

Parameters:
Returns:

a list of entries, see CMsgClientLBSGetLBEntriesResponse

Return type:

list

Raises:

LookupError on message timeout or error

SteamLeaderboard.get_iter(times, seconds, chunk_size=2000)

Make a iterator over the entries

See steam.util.throttle.ConstantRateLimit for times and seconds parameters.

Parameters:chunk_size (int) – number of entries per request
Returns:generator object
Return type:generator

The iterator essentially buffers chuck_size number of entries, and ensures we are not sending messages too fast. For example, the __iter__ method on this class uses get_iter(1, 1, 2000)

Game Servers

Listing and information about game servers through Steam

Filters

Note

Multiple filters can be joined to together (Eg. \app\730\white\1\empty\1)

Filter code What it does
\nor\[x] A special filter, specifies that servers matching any of the following [x] conditions should not be returned
\nand\[x] A special filter, specifies that servers matching all of the following [x] conditions should not be returned
\dedicated\1 Servers running dedicated
\secure\1 Servers using anti-cheat technology (VAC, but potentially others as well)
\gamedir\[mod] Servers running the specified modification (ex. cstrike)
\map\[map] Servers running the specified map (ex. cs_italy)
\linux\1 Servers running on a Linux platform
\password\0 Servers that are not password protected
\empty\1 Servers that are not empty
\full\1 Servers that are not full
\proxy\1 Servers that are spectator proxies
\appid\[appid] Servers that are running game [appid]
\napp\[appid] Servers that are NOT running game [appid] (This was introduced to block Left 4 Dead games from the Steam Server Browser)
\noplayers\1 Servers that are empty
\white\1 Servers that are whitelisted
\gametype\[tag,...] Servers with all of the given tag(s) in sv_tags
\gamedata\[tag,...] Servers with all of the given tag(s) in their ‘hidden’ tags (L4D2)
\gamedataor\[tag,...] Servers with any of the given tag(s) in their ‘hidden’ tags (L4D2)
\name_match\[hostname] Servers with their hostname matching [hostname] (can use * as a wildcard)
\version_match\[version] Servers running version [version] (can use * as a wildcard)
\collapse_addr_hash\1 Return only one server for each unique IP address matched
\gameaddr\[ip] Return only servers on the specified IP address (port supported and optional)
class steam.client.builtins.gameservers.GameServers(*args, **kwargs)

Bases: object

gameservers = None

instance of SteamGameServers

class steam.client.builtins.gameservers.SteamGameServers(steam)

Bases: object

query(filter_text, max_servers=10, **kwargs)

Query game servers

https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol

Note

When specifying filter_text use raw strings otherwise python won’t treat backslashes as literal characters (e.g. query(r'\appid\730\white\1'))

Parameters:
  • filter_text (str) – filter for servers
  • max_servers (int) – (optional) number of servers to return
  • app_id (int) – (optional) app id
  • geo_location_ip (str) – (optional) ip (e.g. ‘1.2.3.4’)
Returns:

list of servers, see below. (None is returned steam doesn’t respond)

Return type:

list, None

Sample response:

[{'auth_players': 0, 'server_ip': '1.2.3.4', 'server_port': 27015},
 {'auth_players': 6, 'server_ip': '1.2.3.4', 'server_port': 27016},
 ...
]
get_server_list(filter_text, max_servers=10)

Get list of servers. Works similiarly to query(), but the response has more details.

Parameters:
  • filter_text (str) – filter for servers
  • max_servers (int) – (optional) number of servers to return
Returns:

list of servers, see below. (None is returned steam doesn’t respond)

Return type:

list, None

Sample response:

[{'addr': '1.2.3.4:27067',
  'appid': 730,
  'bots': 0,
  'dedicated': True,
  'gamedir': 'csgo',
  'gameport': 27067,
  'gametype': 'valve_ds,empty,secure',
  'map': 'de_dust2',
  'max_players': 10,
  'name': 'Valve CS:GO Asia Server (srcdsXXX.XXX.XXX)',
  'os': 'l',
  'players': 0,
  'product': 'csgo',
  'region': 5,
  'secure': True,
  'steamid': SteamID(id=3279818759, type='AnonGameServer', universe='Public', instance=7011),
  'version': '1.35.4.0'}
]
get_ips_from_steamid(server_steam_ids)

Resolve IPs from SteamIDs

Parameters:server_steam_ids (list) – a list of steamids
Returns:map of ips to steamids
Return type:dict

Sample response:

{SteamID(id=123456, type='AnonGameServer', universe='Public', instance=1234): '1.2.3.4:27060'}
get_steamids_from_ip(server_ips)

Resolve SteamIDs from IPs

Parameters:steam_ids (list) – a list of ips (e.g. ['1.2.3.4:27015',...])
Returns:map of steamids to ips
Return type:dict

Sample response:

{'1.2.3.4:27060': SteamID(id=123456, type='AnonGameServer', universe='Public', instance=1234)}
Friends
class steam.client.builtins.friends.Friends(*args, **kwargs)

Bases: object

friends = None

SteamFriendlist instance

class steam.client.builtins.friends.SteamFriendlist(client, logger_name='SteamFriendList')

Bases: eventemitter.EventEmitter

SteamFriendlist is an object that keeps state of user’s friend list. It’s essentially a list of SteamUser. You can iterate over it, check if it contains a particular steam id, or get SteamUser for a steam id.

EVENT_READY = 'ready'

Friend list is ready for use

EVENT_FRIEND_INVITE = 'friend_invite'

New or existing friend invite

Parameters:user (SteamUser) – steam user instance
EVENT_FRIEND_NEW = 'friend_new'

Friendship established (after being accepted, or accepting)

Parameters:user (SteamUser) – steam user instance
EVENT_FRIEND_REMOVED = 'friend_removed'

No longer a friend (removed by either side)

Parameters:user (SteamUser) – steam user instance
EVENT_FRIEND_ADD_RESULT = 'friend_add_result'

Result response after adding a friend

Parameters:
ready = False

indicates whether friend list is ready for use

emit(event, *args)
add(steamid_or_accountname_or_email)

Add/Accept a steam user to be your friend. When someone sends you an invite, use this method to accept it.

Parameters:steamid_or_accountname_or_email (int, SteamID, SteamUser, str) – steamid, account name, or email

Note

Adding by email doesn’t not work. It’s only mentioned for the sake of completeness.

remove(steamid)

Remove a friend

Parameters:steamid (int, SteamID, SteamUser) – their steamid
mixins

All optional features are available as mixins for steam.client.SteamClient. Using this approach the client can remain light yet flexible. Functionality can be added through inheritance depending on the use case.

Here is quick example of how to use one of the available mixins.

from steam import SteamClient
from stema.client.mixins.somemixing import SomeMixing

class CustomSteamClient(SteamClient, SomeMixing):
    pass

client = CustomSteamClient()

Making custom mixing is just as simple.

Warning

Take care not to override existing methods or properties, otherwise bad things will happen

Note

To avoid name collisions of non-public variables and methods, use Private Variables

class MyMixin(object):
    def __init__(self, *args, **kwargs):
        super(MyMixin, self).__init__(*args, **kwargs)

        self.my_property = 42

    def my_method(self)
        print "Hello!"


class MySteamClient(SteamClient, MyMixin):
    pass

client = MySteamClient()
>>> client.my_property
42
>>> client.my_method()
Hello!
gc

GameCoordinator is used to proxy messages from/to GC. It takes care of the encapsulation details, but on its own is not enough to communicate with a given GC.

Example implementation of Dota 2 GC client with inheritance.

import myDotaModule
from steam import SteamClient
from steam.core.msg import GCMsgHdrProto
from steam.client.gc import GameCoordinator

class ExampleDotaClient(GameCoordinator):
    def __init__(self, steam):
        GameCoordinator.__init__(self, steam, 570)

    def _process_gc_message(self, emsg, header, body):
        if emsg == 4004: # EMsgGCClientWelcome
            message = myDotaModule.gcsdk_gcmessages_pb2.CMsgClientWelcome()
            message.ParseFromString(body)
            print message

    def send_hello(self):
        header = GCMsgHdrProto(4006)  # EMsgGCClientHello
        body = myDotaModule.gcsdk_gcmessages_pb2.CMsgClientHello()
        self.send(header, body.SerializeToString())

client = SteamClient()
dota = ExampleDotaClient(client)

client.login()
client.games_played([570])
dota.send_hello()

The above code assumes that we have a myDotaModule that contains the appropriate protobufs needed to (de)serialize message for communication with GC.

class steam.client.gc.GameCoordinator(steam_client, app_id)

Bases: eventemitter.EventEmitter

GameCoordinator is used to proxy messages from/to GC

Parameters:

Incoming messages are emitted as events using their EMsg as an event identifier.

Parameters:
  • header (steam.core.msg.GCMsgHdr) – message header
  • body (bytes) – raw message body
send(header, body)

Send a message to GC

Parameters:
  • header (steam.core.msg.GCMsgHdr) – message header
  • body (bytes) – serialized body of the message
user
class steam.client.user.SteamUser(steam_id, steam)

Bases: object

Holds various functionality and data related to a steam user

relationship = <EFriendRelationship.NONE: 0>

friendship status

steam_id = SteamID(id=0, type='Invalid', universe='Invalid', instance=0)

steam id

last_logon
Return type:datetime, None
last_logoff
Return type:datetime, None
name

Name of the steam user, or None if it’s not available

Return type:str, None
state

Personsa state (e.g. Online, Offline, Away, Busy, etc)

Return type:EPersonaState
get_avatar_url(size=2)

Get URL to avatar picture

Parameters:size (int) – possible values are 0, 1, or 2 corresponding to small, medium, large
Returns:url to avatar
Return type:str
send_message(message)

Send chat message to this steam user

Parameters:message (str) – message to send

core

cm
class steam.core.cm.CMClient(protocol=0)

Bases: eventemitter.EventEmitter

CMClient provides a secure message channel to Steam CM servers Can be used as mixing or on it’s own.

Incoming messages are parsed and emitted as events using their steam.enums.emsg.EMsg as event identifier

EVENT_CONNECTED = 'connected'

Connection establed to CM server

EVENT_DISCONNECTED = 'disconnected'

Connection closed

EVENT_RECONNECT = 'reconnect'

Delayed connect

Parameters:delay (int) – delay in seconds
EVENT_CHANNEL_SECURED = 'channel_secured'

After successful completion of encryption handshake

EVENT_ERROR = 'error'

When login is denied

Parameters:eresult (EResult) – reason
EVENT_EMSG = 0

All incoming messages are emitted with their EMsg number.

PROTOCOL_TCP = 0

TCP protocol enum

PROTOCOL_UDP = 1

UDP protocol enum

verbose_debug = False

print message connects in debug

current_server_addr = None

(ip, port) tuple

connected = False

True if connected to CM

channel_secured = False

True once secure channel handshake is complete

channel_key = None

channel encryption key

channel_hmac = None

HMAC secret

steam_id = SteamID(id=0, type='Invalid', universe='Invalid', instance=0)

SteamID of the current user

session_id = None

session id when logged in

cm_servers = None

a instance of CMServerList

emit(event, *args)
connect(retry=0, delay=0)

Initiate connection to CM. Blocks until connected unless retry is specified.

Parameters:
  • retry (int) – number of retries before returning. Unlimited when set to None
  • delay (int) – delay in secnds before connection attempt
Returns:

successful connection

Return type:

bool

disconnect()

Close connection

send(message)

Send a message

Parameters:message (steam.core.msg.Msg, steam.core.msg.MsgProto) – a message instance
sleep(seconds)

Yeild and sleep N seconds. Allows other greenlets to run

idle()

Yeild in the current greenlet and let other greenlets run

class steam.core.cm.CMServerList(bad_timespan=300)

Bases: object

Managing object for CM servers

Comes with built in list of CM server to bootstrap a connection

To get a server address from the list simply iterate over it

servers = CMServerList()
for server_addr in servers:
    pass

The good servers are returned first, then bad ones. After failing to connect call mark_bad() with the server addr. When connection succeeds break out of the loop.

Good = 1
Bad = 2
clear()

Clears the server list

bootstrap_from_builtin_list()

Resets the server list to the built in one. This method is called during initialization.

bootstrap_from_webapi(cellid=0)

Fetches CM server list from WebAPI and replaces the current one

Parameters:cellid (int) – cell id (0 = global)
Returns:booststrap success
Return type:bool
reset_all()

Reset status for all servers in the list

mark_good(server_addr)

Mark server address as good

Parameters:server_addr (tuple) – (ip, port) tuple
mark_bad(server_addr)

Mark server address as bad, when unable to connect for example

Parameters:server_addr (tuple) – (ip, port) tuple
merge_list(new_list)

Add new CM servers to the list

Parameters:new_list (list) – a list of (ip, port) tuples
connection
class steam.core.connection.Connection

Bases: object

MAGIC = b'VT01'
FMT = '<I4s'
FMT_SIZE = 8
local_address
connect(server_addr)
disconnect()
put_message(message)
class steam.core.connection.TCPConnection

Bases: steam.core.connection.Connection

class steam.core.connection.UDPConnection

Bases: steam.core.connection.Connection

crypto

All function in this module take and return bytes

class steam.core.crypto.UniverseKey

Public keys for Universes

Public = <cryptography.hazmat.backends.openssl.rsa._RSAPublicKey object>
steam.core.crypto.pad(s)
steam.core.crypto.unpad(s)
steam.core.crypto.generate_session_key(hmac_secret=b'')
Parameters:hmac_secret (bytes) – optional HMAC
Returns:(session_key, encrypted_session_key) tuple
Return type:tuple
steam.core.crypto.symmetric_encrypt(message, key)
steam.core.crypto.symmetric_encrypt_HMAC(message, key, hmac_secret)
steam.core.crypto.symmetric_encrypt_iv(iv, key)
steam.core.crypto.symmetric_encrypt_with_iv(message, key, iv)
steam.core.crypto.symmetric_decrypt(cyphertext, key)
steam.core.crypto.symmetric_decrypt_HMAC(cyphertext, key, hmac_secret)
Raises:RuntimeError when HMAC verification fails
steam.core.crypto.symmetric_decrypt_iv(cyphertext, key)
steam.core.crypto.symmetric_decrypt_with_iv(cyphertext, key, iv)
steam.core.crypto.hmac_sha1(secret, data)
steam.core.crypto.sha1_hash(data)
msg
steam.core.msg.get_cmsg(emsg)

Get protobuf for a given EMsg

Parameters:emsg (steam.enums.emsg.EMsg, int) – EMsg
Returns:protobuf message
class steam.core.msg.Msg(msg, data=None, extended=False)

Bases: object

proto = False
body = '!!! NO BODY !!!'
serialize()
steamID
sessionID
class steam.core.msg.MsgProto(msg, data=None)

Bases: object

proto = True
body = '!!! NO BODY !!!'
serialize()
steamID
sessionID

enums

This module contains various value enumerations.

They are all based on IntEnum, which gives them int properties. They can be compared to int and used in places there int is required. Like for example, protobuf message. They also provide a easy way to resolve a name or value for a specific enum.

>>> EResult.OK
<EResult.OK: 1>
>>> EResult(1)
<EResult.OK: 1>
>>> EResult['OK']
<EResult.OK: 1>
>>> EResult.OK == 1
True

Note

all enums from steam.enum.common can be imported directly from steam.enum

enums.common
class steam.enums.common.EResult

An enumeration.

Invalid = <EResult.Invalid: 0>
OK = <EResult.OK: 1>
Fail = <EResult.Fail: 2>
NoConnection = <EResult.NoConnection: 3>
InvalidPassword = <EResult.InvalidPassword: 5>
LoggedInElsewhere = <EResult.LoggedInElsewhere: 6>
InvalidProtocolVer = <EResult.InvalidProtocolVer: 7>
InvalidParam = <EResult.InvalidParam: 8>
FileNotFound = <EResult.FileNotFound: 9>
Busy = <EResult.Busy: 10>
InvalidState = <EResult.InvalidState: 11>
InvalidName = <EResult.InvalidName: 12>
InvalidEmail = <EResult.InvalidEmail: 13>
DuplicateName = <EResult.DuplicateName: 14>
AccessDenied = <EResult.AccessDenied: 15>
Timeout = <EResult.Timeout: 16>
Banned = <EResult.Banned: 17>
AccountNotFound = <EResult.AccountNotFound: 18>
InvalidSteamID = <EResult.InvalidSteamID: 19>
ServiceUnavailable = <EResult.ServiceUnavailable: 20>
NotLoggedOn = <EResult.NotLoggedOn: 21>
Pending = <EResult.Pending: 22>
EncryptionFailure = <EResult.EncryptionFailure: 23>
InsufficientPrivilege = <EResult.InsufficientPrivilege: 24>
LimitExceeded = <EResult.LimitExceeded: 25>
Revoked = <EResult.Revoked: 26>
Expired = <EResult.Expired: 27>
AlreadyRedeemed = <EResult.AlreadyRedeemed: 28>
DuplicateRequest = <EResult.DuplicateRequest: 29>
AlreadyOwned = <EResult.AlreadyOwned: 30>
IPNotFound = <EResult.IPNotFound: 31>
PersistFailed = <EResult.PersistFailed: 32>
LockingFailed = <EResult.LockingFailed: 33>
LogonSessionReplaced = <EResult.LogonSessionReplaced: 34>
ConnectFailed = <EResult.ConnectFailed: 35>
HandshakeFailed = <EResult.HandshakeFailed: 36>
IOFailure = <EResult.IOFailure: 37>
RemoteDisconnect = <EResult.RemoteDisconnect: 38>
ShoppingCartNotFound = <EResult.ShoppingCartNotFound: 39>
Blocked = <EResult.Blocked: 40>
Ignored = <EResult.Ignored: 41>
NoMatch = <EResult.NoMatch: 42>
AccountDisabled = <EResult.AccountDisabled: 43>
ServiceReadOnly = <EResult.ServiceReadOnly: 44>
AccountNotFeatured = <EResult.AccountNotFeatured: 45>
AdministratorOK = <EResult.AdministratorOK: 46>
ContentVersion = <EResult.ContentVersion: 47>
TryAnotherCM = <EResult.TryAnotherCM: 48>
PasswordRequiredToKickSession = <EResult.PasswordRequiredToKickSession: 49>
AlreadyLoggedInElsewhere = <EResult.AlreadyLoggedInElsewhere: 50>
Suspended = <EResult.Suspended: 51>
Cancelled = <EResult.Cancelled: 52>
DataCorruption = <EResult.DataCorruption: 53>
DiskFull = <EResult.DiskFull: 54>
RemoteCallFailed = <EResult.RemoteCallFailed: 55>
PasswordUnset = <EResult.PasswordUnset: 56>
ExternalAccountUnlinked = <EResult.ExternalAccountUnlinked: 57>
PSNTicketInvalid = <EResult.PSNTicketInvalid: 58>
ExternalAccountAlreadyLinked = <EResult.ExternalAccountAlreadyLinked: 59>
RemoteFileConflict = <EResult.RemoteFileConflict: 60>
IllegalPassword = <EResult.IllegalPassword: 61>
SameAsPreviousValue = <EResult.SameAsPreviousValue: 62>
AccountLogonDenied = <EResult.AccountLogonDenied: 63>
CannotUseOldPassword = <EResult.CannotUseOldPassword: 64>
InvalidLoginAuthCode = <EResult.InvalidLoginAuthCode: 65>
AccountLogonDeniedNoMail = <EResult.AccountLogonDeniedNoMail: 66>
HardwareNotCapableOfIPT = <EResult.HardwareNotCapableOfIPT: 67>
IPTInitError = <EResult.IPTInitError: 68>
ParentalControlRestricted = <EResult.ParentalControlRestricted: 69>
FacebookQueryError = <EResult.FacebookQueryError: 70>
ExpiredLoginAuthCode = <EResult.ExpiredLoginAuthCode: 71>
IPLoginRestrictionFailed = <EResult.IPLoginRestrictionFailed: 72>
AccountLockedDown = <EResult.AccountLockedDown: 73>
AccountLogonDeniedVerifiedEmailRequired = <EResult.AccountLogonDeniedVerifiedEmailRequired: 74>
NoMatchingURL = <EResult.NoMatchingURL: 75>
BadResponse = <EResult.BadResponse: 76>
RequirePasswordReEntry = <EResult.RequirePasswordReEntry: 77>
ValueOutOfRange = <EResult.ValueOutOfRange: 78>
UnexpectedError = <EResult.UnexpectedError: 79>
Disabled = <EResult.Disabled: 80>
InvalidCEGSubmission = <EResult.InvalidCEGSubmission: 81>
RestrictedDevice = <EResult.RestrictedDevice: 82>
RegionLocked = <EResult.RegionLocked: 83>
RateLimitExceeded = <EResult.RateLimitExceeded: 84>
AccountLoginDeniedNeedTwoFactor = <EResult.AccountLoginDeniedNeedTwoFactor: 85>
ItemDeleted = <EResult.ItemDeleted: 86>
AccountLoginDeniedThrottle = <EResult.AccountLoginDeniedThrottle: 87>
TwoFactorCodeMismatch = <EResult.TwoFactorCodeMismatch: 88>
TwoFactorActivationCodeMismatch = <EResult.TwoFactorActivationCodeMismatch: 89>
AccountAssociatedToMultiplePartners = <EResult.AccountAssociatedToMultiplePartners: 90>
NotModified = <EResult.NotModified: 91>
NoMobileDevice = <EResult.NoMobileDevice: 92>
TimeNotSynced = <EResult.TimeNotSynced: 93>
SMSCodeFailed = <EResult.SMSCodeFailed: 94>
AccountLimitExceeded = <EResult.AccountLimitExceeded: 95>
AccountActivityLimitExceeded = <EResult.AccountActivityLimitExceeded: 96>
PhoneActivityLimitExceeded = <EResult.PhoneActivityLimitExceeded: 97>
RefundToWallet = <EResult.RefundToWallet: 98>
EmailSendFailure = <EResult.EmailSendFailure: 99>
NotSettled = <EResult.NotSettled: 100>
NeedCaptcha = <EResult.NeedCaptcha: 101>
GSLTDenied = <EResult.GSLTDenied: 102>
GSOwnerDenied = <EResult.GSOwnerDenied: 103>
InvalidItemType = <EResult.InvalidItemType: 104>
IPBanned = <EResult.IPBanned: 105>
GSLTExpired = <EResult.GSLTExpired: 106>
InsufficientFunds = <EResult.InsufficientFunds: 107>
TooManyPending = <EResult.TooManyPending: 108>
class steam.enums.common.EUniverse

An enumeration.

Invalid = <EUniverse.Invalid: 0>
Public = <EUniverse.Public: 1>
Beta = <EUniverse.Beta: 2>
Internal = <EUniverse.Internal: 3>
Dev = <EUniverse.Dev: 4>
Max = <EUniverse.Max: 5>
class steam.enums.common.EType

An enumeration.

Invalid = <EType.Invalid: 0>
Individual = <EType.Individual: 1>
Multiseat = <EType.Multiseat: 2>
GameServer = <EType.GameServer: 3>
AnonGameServer = <EType.AnonGameServer: 4>
Pending = <EType.Pending: 5>
ContentServer = <EType.ContentServer: 6>
Clan = <EType.Clan: 7>
Chat = <EType.Chat: 8>
ConsoleUser = <EType.ConsoleUser: 9>
AnonUser = <EType.AnonUser: 10>
Max = <EType.Max: 11>
class steam.enums.common.EInstanceFlag

An enumeration.

MMSLobby = <EInstanceFlag.MMSLobby: 131072>
Lobby = <EInstanceFlag.Lobby: 262144>
Clan = <EInstanceFlag.Clan: 524288>
class steam.enums.common.EVanityUrlType

An enumeration.

Individual = <EVanityUrlType.Individual: 1>
Group = <EVanityUrlType.Group: 2>
GameGroup = <EVanityUrlType.GameGroup: 3>
class steam.enums.common.EServerType

An enumeration.

Invalid = <EServerType.Invalid: -1>
First = <EServerType.First: 0>
GM = <EServerType.GM: 1>
BUM = <EServerType.BUM: 2>
AM = <EServerType.AM: 3>
BS = <EServerType.BS: 4>
VS = <EServerType.VS: 5>
ATS = <EServerType.ATS: 6>
CM = <EServerType.CM: 7>
FBS = <EServerType.FBS: 8>
BoxMonitor = <EServerType.BoxMonitor: 9>
SS = <EServerType.SS: 10>
DRMS = <EServerType.DRMS: 11>
HubOBSOLETE = <EServerType.HubOBSOLETE: 12>
Console = <EServerType.Console: 13>
PICS = <EServerType.PICS: 14>
Client = <EServerType.Client: 15>
BootstrapOBSOLETE = <EServerType.BootstrapOBSOLETE: 16>
DP = <EServerType.DP: 17>
WG = <EServerType.WG: 18>
SM = <EServerType.SM: 19>
SLC = <EServerType.SLC: 20>
UFS = <EServerType.UFS: 21>
Util = <EServerType.Util: 23>
DSS = <EServerType.DSS: 24>
P2PRelayOBSOLETE = <EServerType.P2PRelayOBSOLETE: 25>
AppInformation = <EServerType.AppInformation: 26>
Spare = <EServerType.Spare: 27>
FTS = <EServerType.FTS: 28>
EPM = <EServerType.EPM: 29>
PS = <EServerType.PS: 30>
IS = <EServerType.IS: 31>
CCS = <EServerType.CCS: 32>
DFS = <EServerType.DFS: 33>
LBS = <EServerType.LBS: 34>
MDS = <EServerType.MDS: 35>
CS = <EServerType.CS: 36>
GC = <EServerType.GC: 37>
NS = <EServerType.NS: 38>
OGS = <EServerType.OGS: 39>
WebAPI = <EServerType.WebAPI: 40>
UDS = <EServerType.UDS: 41>
MMS = <EServerType.MMS: 42>
GMS = <EServerType.GMS: 43>
KGS = <EServerType.KGS: 44>
UCM = <EServerType.UCM: 45>
RM = <EServerType.RM: 46>
FS = <EServerType.FS: 47>
Econ = <EServerType.Econ: 48>
Backpack = <EServerType.Backpack: 49>
UGS = <EServerType.UGS: 50>
StoreFeature = <EServerType.StoreFeature: 51>
MoneyStats = <EServerType.MoneyStats: 52>
CRE = <EServerType.CRE: 53>
UMQ = <EServerType.UMQ: 54>
Workshop = <EServerType.Workshop: 55>
BRP = <EServerType.BRP: 56>
GCH = <EServerType.GCH: 57>
MPAS = <EServerType.MPAS: 58>
Trade = <EServerType.Trade: 59>
Secrets = <EServerType.Secrets: 60>
Logsink = <EServerType.Logsink: 61>
Market = <EServerType.Market: 62>
Quest = <EServerType.Quest: 63>
WDS = <EServerType.WDS: 64>
ACS = <EServerType.ACS: 65>
PNP = <EServerType.PNP: 66>
TaxForm = <EServerType.TaxForm: 67>
ExternalMonitor = <EServerType.ExternalMonitor: 68>
Parental = <EServerType.Parental: 69>
PartnerUpload = <EServerType.PartnerUpload: 70>
Partner = <EServerType.Partner: 71>
ES = <EServerType.ES: 72>
DepotWebContent = <EServerType.DepotWebContent: 73>
ExternalConfig = <EServerType.ExternalConfig: 74>
GameNotifications = <EServerType.GameNotifications: 75>
MarketRepl = <EServerType.MarketRepl: 76>
MarketSearch = <EServerType.MarketSearch: 77>
Localization = <EServerType.Localization: 78>
Steam2Emulator = <EServerType.Steam2Emulator: 79>
PublicTest = <EServerType.PublicTest: 80>
SolrMgr = <EServerType.SolrMgr: 81>
BroadcastRelay = <EServerType.BroadcastRelay: 82>
BroadcastDirectory = <EServerType.BroadcastDirectory: 83>
VideoManager = <EServerType.VideoManager: 84>
TradeOffer = <EServerType.TradeOffer: 85>
BroadcastChat = <EServerType.BroadcastChat: 86>
Phone = <EServerType.Phone: 87>
AccountScore = <EServerType.AccountScore: 88>
Support = <EServerType.Support: 89>
LogRequest = <EServerType.LogRequest: 90>
LogWorker = <EServerType.LogWorker: 91>
EmailDelivery = <EServerType.EmailDelivery: 92>
InventoryManagement = <EServerType.InventoryManagement: 93>
Auth = <EServerType.Auth: 94>
StoreCatalog = <EServerType.StoreCatalog: 95>
HLTVRelay = <EServerType.HLTVRelay: 96>
Max = <EServerType.Max: 97>
class steam.enums.common.EOSType

An enumeration.

Unknown = <EOSType.Unknown: -1>
IOSUnknown = <EOSType.IOSUnknown: -600>
AndroidUnknown = <EOSType.AndroidUnknown: -500>
UMQ = <EOSType.UMQ: -400>
PS3 = <EOSType.PS3: -300>
MacOSUnknown = <EOSType.MacOSUnknown: -102>
MacOS104 = <EOSType.MacOS104: -101>
MacOS105 = <EOSType.MacOS105: -100>
MacOS1058 = <EOSType.MacOS1058: -99>
MacOS106 = <EOSType.MacOS106: -95>
MacOS1063 = <EOSType.MacOS1063: -94>
MacOS1064_slgu = <EOSType.MacOS1064_slgu: -93>
MacOS1067 = <EOSType.MacOS1067: -92>
MacOS107 = <EOSType.MacOS107: -90>
MacOS108 = <EOSType.MacOS108: -89>
MacOS109 = <EOSType.MacOS109: -88>
MacOS1010 = <EOSType.MacOS1010: -87>
MacOS1011 = <EOSType.MacOS1011: -86>
MacOS1012 = <EOSType.MacOS1012: -85>
LinuxUnknown = <EOSType.LinuxUnknown: -203>
Linux22 = <EOSType.Linux22: -202>
Linux24 = <EOSType.Linux24: -201>
Linux26 = <EOSType.Linux26: -200>
Linux32 = <EOSType.Linux32: -199>
Linux35 = <EOSType.Linux35: -198>
Linux36 = <EOSType.Linux36: -197>
Linux310 = <EOSType.Linux310: -196>
LinuxMax = <EOSType.LinuxMax: -103>
WinUnknown = <EOSType.WinUnknown: 0>
Win311 = <EOSType.Win311: 1>
Win95 = <EOSType.Win95: 2>
Win98 = <EOSType.Win98: 3>
WinME = <EOSType.WinME: 4>
WinNT = <EOSType.WinNT: 5>
Win2000 = <EOSType.Win2000: 6>
WinXP = <EOSType.WinXP: 7>
Win2003 = <EOSType.Win2003: 8>
WinVista = <EOSType.WinVista: 9>
Windows7 = <EOSType.Windows7: 10>
Win2008 = <EOSType.Win2008: 11>
Win2012 = <EOSType.Win2012: 12>
Windows8 = <EOSType.Windows8: 13>
Windows81 = <EOSType.Windows81: 14>
Win2012R2 = <EOSType.Win2012R2: 15>
Windows10 = <EOSType.Windows10: 16>
Max = <EOSType.Max: 26>
class steam.enums.common.EFriendRelationship

An enumeration.

NONE = <EFriendRelationship.NONE: 0>
Blocked = <EFriendRelationship.Blocked: 1>
RequestRecipient = <EFriendRelationship.RequestRecipient: 2>
Friend = <EFriendRelationship.Friend: 3>
RequestInitiator = <EFriendRelationship.RequestInitiator: 4>
Ignored = <EFriendRelationship.Ignored: 5>
IgnoredFriend = <EFriendRelationship.IgnoredFriend: 6>
SuggestedFriend = <EFriendRelationship.SuggestedFriend: 7>
Max = <EFriendRelationship.Max: 8>
class steam.enums.common.EAccountFlags

An enumeration.

NormalUser = <EAccountFlags.NormalUser: 0>
PersonaNameSet = <EAccountFlags.PersonaNameSet: 1>
Unbannable = <EAccountFlags.Unbannable: 2>
PasswordSet = <EAccountFlags.PasswordSet: 4>
Support = <EAccountFlags.Support: 8>
Admin = <EAccountFlags.Admin: 16>
Supervisor = <EAccountFlags.Supervisor: 32>
AppEditor = <EAccountFlags.AppEditor: 64>
HWIDSet = <EAccountFlags.HWIDSet: 128>
PersonalQASet = <EAccountFlags.PersonalQASet: 256>
VacBeta = <EAccountFlags.VacBeta: 512>
Debug = <EAccountFlags.Debug: 1024>
Disabled = <EAccountFlags.Disabled: 2048>
LimitedUser = <EAccountFlags.LimitedUser: 4096>
LimitedUserForce = <EAccountFlags.LimitedUserForce: 8192>
EmailValidated = <EAccountFlags.EmailValidated: 16384>
MarketingTreatment = <EAccountFlags.MarketingTreatment: 32768>
OGGInviteOptOut = <EAccountFlags.OGGInviteOptOut: 65536>
ForcePasswordChange = <EAccountFlags.ForcePasswordChange: 131072>
ForceEmailVerification = <EAccountFlags.ForceEmailVerification: 262144>
LogonExtraSecurity = <EAccountFlags.LogonExtraSecurity: 524288>
LogonExtraSecurityDisabled = <EAccountFlags.LogonExtraSecurityDisabled: 1048576>
Steam2MigrationComplete = <EAccountFlags.Steam2MigrationComplete: 2097152>
NeedLogs = <EAccountFlags.NeedLogs: 4194304>
Lockdown = <EAccountFlags.Lockdown: 8388608>
MasterAppEditor = <EAccountFlags.MasterAppEditor: 16777216>
BannedFromWebAPI = <EAccountFlags.BannedFromWebAPI: 33554432>
ClansOnlyFromFriends = <EAccountFlags.ClansOnlyFromFriends: 67108864>
GlobalModerator = <EAccountFlags.GlobalModerator: 134217728>
ParentalSettings = <EAccountFlags.ParentalSettings: 268435456>
ThirdPartySupport = <EAccountFlags.ThirdPartySupport: 536870912>
NeedsSSANextSteamLogon = <EAccountFlags.NeedsSSANextSteamLogon: 1073741824>
class steam.enums.common.EFriendFlags

An enumeration.

NONE = <EFriendFlags.NONE: 0>
Blocked = <EFriendFlags.Blocked: 1>
FriendshipRequested = <EFriendFlags.FriendshipRequested: 2>
Immediate = <EFriendFlags.Immediate: 4>
ClanMember = <EFriendFlags.ClanMember: 8>
OnGameServer = <EFriendFlags.OnGameServer: 16>
RequestingFriendship = <EFriendFlags.RequestingFriendship: 128>
RequestingInfo = <EFriendFlags.RequestingInfo: 256>
Ignored = <EFriendFlags.Ignored: 512>
IgnoredFriend = <EFriendFlags.IgnoredFriend: 1024>
Suggested = <EFriendFlags.Suggested: 2048>
ChatMember = <EFriendFlags.ChatMember: 4096>
FlagAll = <EFriendFlags.FlagAll: 65535>
class steam.enums.common.EPersonaState

An enumeration.

Offline = <EPersonaState.Offline: 0>
Online = <EPersonaState.Online: 1>
Busy = <EPersonaState.Busy: 2>
Away = <EPersonaState.Away: 3>
Snooze = <EPersonaState.Snooze: 4>
LookingToTrade = <EPersonaState.LookingToTrade: 5>
LookingToPlay = <EPersonaState.LookingToPlay: 6>
Max = <EPersonaState.Max: 7>
class steam.enums.common.EPersonaStateFlag

An enumeration.

HasRichPresence = <EPersonaStateFlag.HasRichPresence: 1>
InJoinableGame = <EPersonaStateFlag.InJoinableGame: 2>
HasGoldenProfile = <EPersonaStateFlag.HasGoldenProfile: 4>
ClientTypeWeb = <EPersonaStateFlag.ClientTypeWeb: 256>
ClientTypeMobile = <EPersonaStateFlag.ClientTypeMobile: 512>
ClientTypeTenfoot = <EPersonaStateFlag.ClientTypeTenfoot: 1024>
ClientTypeVR = <EPersonaStateFlag.ClientTypeVR: 2048>
LaunchTypeGamepad = <EPersonaStateFlag.LaunchTypeGamepad: 4096>
class steam.enums.common.EClientPersonaStateFlag

An enumeration.

Status = <EClientPersonaStateFlag.Status: 1>
PlayerName = <EClientPersonaStateFlag.PlayerName: 2>
QueryPort = <EClientPersonaStateFlag.QueryPort: 4>
SourceID = <EClientPersonaStateFlag.SourceID: 8>
Presence = <EClientPersonaStateFlag.Presence: 16>
Metadata = <EClientPersonaStateFlag.Metadata: 32>
LastSeen = <EClientPersonaStateFlag.LastSeen: 64>
ClanInfo = <EClientPersonaStateFlag.ClanInfo: 128>
GameExtraInfo = <EClientPersonaStateFlag.GameExtraInfo: 256>
GameDataBlob = <EClientPersonaStateFlag.GameDataBlob: 512>
ClanTag = <EClientPersonaStateFlag.ClanTag: 1024>
Facebook = <EClientPersonaStateFlag.Facebook: 2048>
class steam.enums.common.ELeaderboardDataRequest

An enumeration.

Global = <ELeaderboardDataRequest.Global: 0>
GlobalAroundUser = <ELeaderboardDataRequest.GlobalAroundUser: 1>
Friends = <ELeaderboardDataRequest.Friends: 2>
Users = <ELeaderboardDataRequest.Users: 3>
class steam.enums.common.ELeaderboardSortMethod

An enumeration.

NONE = <ELeaderboardSortMethod.NONE: 0>
Ascending = <ELeaderboardSortMethod.Ascending: 1>
Descending = <ELeaderboardSortMethod.Descending: 2>
class steam.enums.common.ELeaderboardDisplayType

An enumeration.

NONE = <ELeaderboardDisplayType.NONE: 0>
Numeric = <ELeaderboardDisplayType.Numeric: 1>
TimeSeconds = <ELeaderboardDisplayType.TimeSeconds: 2>
TimeMilliSeconds = <ELeaderboardDisplayType.TimeMilliSeconds: 3>
class steam.enums.common.ELeaderboardUploadScoreMethod

An enumeration.

NONE = <ELeaderboardUploadScoreMethod.NONE: 0>
KeepBest = <ELeaderboardUploadScoreMethod.KeepBest: 1>
ForceUpdate = <ELeaderboardUploadScoreMethod.ForceUpdate: 2>
class steam.enums.common.ETwoFactorTokenType

An enumeration.

NONE = <ETwoFactorTokenType.NONE: 0>
ValveMobileApp = <ETwoFactorTokenType.ValveMobileApp: 1>
ThirdParty = <ETwoFactorTokenType.ThirdParty: 2>
class steam.enums.common.EChatEntryType

An enumeration.

Invalid = <EChatEntryType.Invalid: 0>
ChatMsg = <EChatEntryType.ChatMsg: 1>
Typing = <EChatEntryType.Typing: 2>
InviteGame = <EChatEntryType.InviteGame: 3>
Emote = <EChatEntryType.Emote: 4>
LobbyGameStart = <EChatEntryType.LobbyGameStart: 5>
LeftConversation = <EChatEntryType.LeftConversation: 6>
Entered = <EChatEntryType.Entered: 7>
WasKicked = <EChatEntryType.WasKicked: 8>
WasBanned = <EChatEntryType.WasBanned: 9>
Disconnected = <EChatEntryType.Disconnected: 10>
HistoricalChat = <EChatEntryType.HistoricalChat: 11>
Reserved1 = <EChatEntryType.Reserved1: 12>
Reserved2 = <EChatEntryType.Reserved2: 13>
LinkBlocked = <EChatEntryType.LinkBlocked: 14>
class steam.enums.common.ECurrencyCode

An enumeration.

Invalid = <ECurrencyCode.Invalid: 0>
USD = <ECurrencyCode.USD: 1>
GBP = <ECurrencyCode.GBP: 2>
EUR = <ECurrencyCode.EUR: 3>
CHF = <ECurrencyCode.CHF: 4>
RUB = <ECurrencyCode.RUB: 5>
PLN = <ECurrencyCode.PLN: 6>
BRL = <ECurrencyCode.BRL: 7>
JPY = <ECurrencyCode.JPY: 8>
NOK = <ECurrencyCode.NOK: 9>
IDR = <ECurrencyCode.IDR: 10>
MYR = <ECurrencyCode.MYR: 11>
PHP = <ECurrencyCode.PHP: 12>
SGD = <ECurrencyCode.SGD: 13>
THB = <ECurrencyCode.THB: 14>
VND = <ECurrencyCode.VND: 15>
KRW = <ECurrencyCode.KRW: 16>
TRY = <ECurrencyCode.TRY: 17>
UAH = <ECurrencyCode.UAH: 18>
MXN = <ECurrencyCode.MXN: 19>
CAD = <ECurrencyCode.CAD: 20>
AUD = <ECurrencyCode.AUD: 21>
NZD = <ECurrencyCode.NZD: 22>
CNY = <ECurrencyCode.CNY: 23>
INR = <ECurrencyCode.INR: 24>
CLP = <ECurrencyCode.CLP: 25>
PEN = <ECurrencyCode.PEN: 26>
COP = <ECurrencyCode.COP: 27>
ZAR = <ECurrencyCode.ZAR: 28>
HKD = <ECurrencyCode.HKD: 29>
TWD = <ECurrencyCode.TWD: 30>
SAR = <ECurrencyCode.SAR: 31>
AED = <ECurrencyCode.AED: 32>
SEK = <ECurrencyCode.SEK: 33>
Max = <ECurrencyCode.Max: 34>
class steam.enums.common.SteamIntEnum

An enumeration.

enums.emsg

The EMsg enum contains many members and takes a bit to load. For this reason it is seperate, and imported only when needed.

class steam.enums.emsg.EMsg

An enumeration.

Invalid = <EMsg.Invalid: 0>
Multi = <EMsg.Multi: 1>
ProtobufWrapped = <EMsg.ProtobufWrapped: 2>
BaseGeneral = <EMsg.BaseGeneral: 100>
DestJobFailed = <EMsg.DestJobFailed: 113>
Alert = <EMsg.Alert: 115>
SCIDRequest = <EMsg.SCIDRequest: 120>
SCIDResponse = <EMsg.SCIDResponse: 121>
JobHeartbeat = <EMsg.JobHeartbeat: 123>
HubConnect = <EMsg.HubConnect: 124>
Subscribe = <EMsg.Subscribe: 126>
RouteMessage = <EMsg.RouteMessage: 127>
RemoteSysID = <EMsg.RemoteSysID: 128>
AMCreateAccountResponse = <EMsg.AMCreateAccountResponse: 129>
WGRequest = <EMsg.WGRequest: 130>
WGResponse = <EMsg.WGResponse: 131>
KeepAlive = <EMsg.KeepAlive: 132>
WebAPIJobRequest = <EMsg.WebAPIJobRequest: 133>
WebAPIJobResponse = <EMsg.WebAPIJobResponse: 134>
ClientSessionStart = <EMsg.ClientSessionStart: 135>
ClientSessionEnd = <EMsg.ClientSessionEnd: 136>
ClientSessionUpdate = <EMsg.ClientSessionUpdate: 137>
StatsDeprecated = <EMsg.StatsDeprecated: 138>
Ping = <EMsg.Ping: 139>
PingResponse = <EMsg.PingResponse: 140>
Stats = <EMsg.Stats: 141>
RequestFullStatsBlock = <EMsg.RequestFullStatsBlock: 142>
LoadDBOCacheItem = <EMsg.LoadDBOCacheItem: 143>
LoadDBOCacheItemResponse = <EMsg.LoadDBOCacheItemResponse: 144>
InvalidateDBOCacheItems = <EMsg.InvalidateDBOCacheItems: 145>
ServiceMethod = <EMsg.ServiceMethod: 146>
ServiceMethodResponse = <EMsg.ServiceMethodResponse: 147>
ClientPackageVersions = <EMsg.ClientPackageVersions: 148>
TimestampRequest = <EMsg.TimestampRequest: 149>
TimestampResponse = <EMsg.TimestampResponse: 150>
BaseShell = <EMsg.BaseShell: 200>
Exit = <EMsg.Exit: 201>
DirRequest = <EMsg.DirRequest: 202>
DirResponse = <EMsg.DirResponse: 203>
ZipRequest = <EMsg.ZipRequest: 204>
ZipResponse = <EMsg.ZipResponse: 205>
UpdateRecordResponse = <EMsg.UpdateRecordResponse: 215>
UpdateCreditCardRequest = <EMsg.UpdateCreditCardRequest: 221>
UpdateUserBanResponse = <EMsg.UpdateUserBanResponse: 225>
PrepareToExit = <EMsg.PrepareToExit: 226>
ContentDescriptionUpdate = <EMsg.ContentDescriptionUpdate: 227>
TestResetServer = <EMsg.TestResetServer: 228>
UniverseChanged = <EMsg.UniverseChanged: 229>
ShellConfigInfoUpdate = <EMsg.ShellConfigInfoUpdate: 230>
RequestWindowsEventLogEntries = <EMsg.RequestWindowsEventLogEntries: 233>
ProvideWindowsEventLogEntries = <EMsg.ProvideWindowsEventLogEntries: 234>
ShellSearchLogs = <EMsg.ShellSearchLogs: 235>
ShellSearchLogsResponse = <EMsg.ShellSearchLogsResponse: 236>
ShellCheckWindowsUpdates = <EMsg.ShellCheckWindowsUpdates: 237>
ShellCheckWindowsUpdatesResponse = <EMsg.ShellCheckWindowsUpdatesResponse: 238>
ShellFlushUserLicenseCache = <EMsg.ShellFlushUserLicenseCache: 239>
BaseGM = <EMsg.BaseGM: 300>
ShellFailed = <EMsg.ShellFailed: 301>
ExitShells = <EMsg.ExitShells: 307>
ExitShell = <EMsg.ExitShell: 308>
GracefulExitShell = <EMsg.GracefulExitShell: 309>
NotifyWatchdog = <EMsg.NotifyWatchdog: 314>
LicenseProcessingComplete = <EMsg.LicenseProcessingComplete: 316>
SetTestFlag = <EMsg.SetTestFlag: 317>
QueuedEmailsComplete = <EMsg.QueuedEmailsComplete: 318>
GMReportPHPError = <EMsg.GMReportPHPError: 319>
GMDRMSync = <EMsg.GMDRMSync: 320>
PhysicalBoxInventory = <EMsg.PhysicalBoxInventory: 321>
UpdateConfigFile = <EMsg.UpdateConfigFile: 322>
TestInitDB = <EMsg.TestInitDB: 323>
GMWriteConfigToSQL = <EMsg.GMWriteConfigToSQL: 324>
GMLoadActivationCodes = <EMsg.GMLoadActivationCodes: 325>
GMQueueForFBS = <EMsg.GMQueueForFBS: 326>
GMSchemaConversionResults = <EMsg.GMSchemaConversionResults: 327>
GMSchemaConversionResultsResponse = <EMsg.GMSchemaConversionResultsResponse: 328>
GMWriteShellFailureToSQL = <EMsg.GMWriteShellFailureToSQL: 329>
GMWriteStatsToSOS = <EMsg.GMWriteStatsToSOS: 330>
GMGetServiceMethodRouting = <EMsg.GMGetServiceMethodRouting: 331>
GMGetServiceMethodRoutingResponse = <EMsg.GMGetServiceMethodRoutingResponse: 332>
GMConvertUserWallets = <EMsg.GMConvertUserWallets: 333>
BaseAIS = <EMsg.BaseAIS: 400>
AISRefreshContentDescription = <EMsg.AISRefreshContentDescription: 401>
AISRequestContentDescription = <EMsg.AISRequestContentDescription: 402>
AISUpdateAppInfo = <EMsg.AISUpdateAppInfo: 403>
AISUpdatePackageCosts = <EMsg.AISUpdatePackageCosts: 404>
AISGetPackageChangeNumber = <EMsg.AISGetPackageChangeNumber: 405>
AISGetPackageChangeNumberResponse = <EMsg.AISGetPackageChangeNumberResponse: 406>
AISAppInfoTableChanged = <EMsg.AISAppInfoTableChanged: 407>
AISUpdatePackageCostsResponse = <EMsg.AISUpdatePackageCostsResponse: 408>
AISCreateMarketingMessage = <EMsg.AISCreateMarketingMessage: 409>
AISCreateMarketingMessageResponse = <EMsg.AISCreateMarketingMessageResponse: 410>
AISGetMarketingMessage = <EMsg.AISGetMarketingMessage: 411>
AISGetMarketingMessageResponse = <EMsg.AISGetMarketingMessageResponse: 412>
AISUpdateMarketingMessage = <EMsg.AISUpdateMarketingMessage: 413>
AISUpdateMarketingMessageResponse = <EMsg.AISUpdateMarketingMessageResponse: 414>
AISRequestMarketingMessageUpdate = <EMsg.AISRequestMarketingMessageUpdate: 415>
AISDeleteMarketingMessage = <EMsg.AISDeleteMarketingMessage: 416>
AISGetMarketingTreatments = <EMsg.AISGetMarketingTreatments: 419>
AISGetMarketingTreatmentsResponse = <EMsg.AISGetMarketingTreatmentsResponse: 420>
AISRequestMarketingTreatmentUpdate = <EMsg.AISRequestMarketingTreatmentUpdate: 421>
AISTestAddPackage = <EMsg.AISTestAddPackage: 422>
AIGetAppGCFlags = <EMsg.AIGetAppGCFlags: 423>
AIGetAppGCFlagsResponse = <EMsg.AIGetAppGCFlagsResponse: 424>
AIGetAppList = <EMsg.AIGetAppList: 425>
AIGetAppListResponse = <EMsg.AIGetAppListResponse: 426>
AIGetAppInfo = <EMsg.AIGetAppInfo: 427>
AIGetAppInfoResponse = <EMsg.AIGetAppInfoResponse: 428>
AISGetCouponDefinition = <EMsg.AISGetCouponDefinition: 429>
AISGetCouponDefinitionResponse = <EMsg.AISGetCouponDefinitionResponse: 430>
AISUpdateSlaveContentDescription = <EMsg.AISUpdateSlaveContentDescription: 431>
AISUpdateSlaveContentDescriptionResponse = <EMsg.AISUpdateSlaveContentDescriptionResponse: 432>
AISTestEnableGC = <EMsg.AISTestEnableGC: 433>
BaseAM = <EMsg.BaseAM: 500>
AMUpdateUserBanRequest = <EMsg.AMUpdateUserBanRequest: 504>
AMAddLicense = <EMsg.AMAddLicense: 505>
AMBeginProcessingLicenses = <EMsg.AMBeginProcessingLicenses: 507>
AMSendSystemIMToUser = <EMsg.AMSendSystemIMToUser: 508>
AMExtendLicense = <EMsg.AMExtendLicense: 509>
AMAddMinutesToLicense = <EMsg.AMAddMinutesToLicense: 510>
AMCancelLicense = <EMsg.AMCancelLicense: 511>
AMInitPurchase = <EMsg.AMInitPurchase: 512>
AMPurchaseResponse = <EMsg.AMPurchaseResponse: 513>
AMGetFinalPrice = <EMsg.AMGetFinalPrice: 514>
AMGetFinalPriceResponse = <EMsg.AMGetFinalPriceResponse: 515>
AMGetLegacyGameKey = <EMsg.AMGetLegacyGameKey: 516>
AMGetLegacyGameKeyResponse = <EMsg.AMGetLegacyGameKeyResponse: 517>
AMFindHungTransactions = <EMsg.AMFindHungTransactions: 518>
AMSetAccountTrustedRequest = <EMsg.AMSetAccountTrustedRequest: 519>
AMCompletePurchase = <EMsg.AMCompletePurchase: 521>
AMCancelPurchase = <EMsg.AMCancelPurchase: 522>
AMNewChallenge = <EMsg.AMNewChallenge: 523>
AMLoadOEMTickets = <EMsg.AMLoadOEMTickets: 524>
AMFixPendingPurchase = <EMsg.AMFixPendingPurchase: 525>
AMFixPendingPurchaseResponse = <EMsg.AMFixPendingPurchaseResponse: 526>
AMIsUserBanned = <EMsg.AMIsUserBanned: 527>
AMRegisterKey = <EMsg.AMRegisterKey: 528>
AMLoadActivationCodes = <EMsg.AMLoadActivationCodes: 529>
AMLoadActivationCodesResponse = <EMsg.AMLoadActivationCodesResponse: 530>
AMLookupKeyResponse = <EMsg.AMLookupKeyResponse: 531>
AMLookupKey = <EMsg.AMLookupKey: 532>
AMChatCleanup = <EMsg.AMChatCleanup: 533>
AMClanCleanup = <EMsg.AMClanCleanup: 534>
AMFixPendingRefund = <EMsg.AMFixPendingRefund: 535>
AMReverseChargeback = <EMsg.AMReverseChargeback: 536>
AMReverseChargebackResponse = <EMsg.AMReverseChargebackResponse: 537>
AMClanCleanupList = <EMsg.AMClanCleanupList: 538>
AMGetLicenses = <EMsg.AMGetLicenses: 539>
AMGetLicensesResponse = <EMsg.AMGetLicensesResponse: 540>
AllowUserToPlayQuery = <EMsg.AllowUserToPlayQuery: 550>
AllowUserToPlayResponse = <EMsg.AllowUserToPlayResponse: 551>
AMVerfiyUser = <EMsg.AMVerfiyUser: 552>
AMClientNotPlaying = <EMsg.AMClientNotPlaying: 553>
ClientRequestFriendship = <EMsg.ClientRequestFriendship: 554>
AMRelayPublishStatus = <EMsg.AMRelayPublishStatus: 555>
AMResetCommunityContent = <EMsg.AMResetCommunityContent: 556>
AMPrimePersonaStateCache = <EMsg.AMPrimePersonaStateCache: 557>
AMAllowUserContentQuery = <EMsg.AMAllowUserContentQuery: 558>
AMAllowUserContentResponse = <EMsg.AMAllowUserContentResponse: 559>
AMInitPurchaseResponse = <EMsg.AMInitPurchaseResponse: 560>
AMRevokePurchaseResponse = <EMsg.AMRevokePurchaseResponse: 561>
AMLockProfile = <EMsg.AMLockProfile: 562>
AMRefreshGuestPasses = <EMsg.AMRefreshGuestPasses: 563>
AMInviteUserToClan = <EMsg.AMInviteUserToClan: 564>
AMAcknowledgeClanInvite = <EMsg.AMAcknowledgeClanInvite: 565>
AMGrantGuestPasses = <EMsg.AMGrantGuestPasses: 566>
AMClanDataUpdated = <EMsg.AMClanDataUpdated: 567>
AMReloadAccount = <EMsg.AMReloadAccount: 568>
AMClientChatMsgRelay = <EMsg.AMClientChatMsgRelay: 569>
AMChatMulti = <EMsg.AMChatMulti: 570>
AMClientChatInviteRelay = <EMsg.AMClientChatInviteRelay: 571>
AMChatInvite = <EMsg.AMChatInvite: 572>
AMClientJoinChatRelay = <EMsg.AMClientJoinChatRelay: 573>
AMClientChatMemberInfoRelay = <EMsg.AMClientChatMemberInfoRelay: 574>
AMPublishChatMemberInfo = <EMsg.AMPublishChatMemberInfo: 575>
AMClientAcceptFriendInvite = <EMsg.AMClientAcceptFriendInvite: 576>
AMChatEnter = <EMsg.AMChatEnter: 577>
AMClientPublishRemovalFromSource = <EMsg.AMClientPublishRemovalFromSource: 578>
AMChatActionResult = <EMsg.AMChatActionResult: 579>
AMFindAccounts = <EMsg.AMFindAccounts: 580>
AMFindAccountsResponse = <EMsg.AMFindAccountsResponse: 581>
AMRequestAccountData = <EMsg.AMRequestAccountData: 582>
AMRequestAccountDataResponse = <EMsg.AMRequestAccountDataResponse: 583>
AMSetAccountFlags = <EMsg.AMSetAccountFlags: 584>
AMCreateClan = <EMsg.AMCreateClan: 586>
AMCreateClanResponse = <EMsg.AMCreateClanResponse: 587>
AMGetClanDetails = <EMsg.AMGetClanDetails: 588>
AMGetClanDetailsResponse = <EMsg.AMGetClanDetailsResponse: 589>
AMSetPersonaName = <EMsg.AMSetPersonaName: 590>
AMSetAvatar = <EMsg.AMSetAvatar: 591>
AMAuthenticateUser = <EMsg.AMAuthenticateUser: 592>
AMAuthenticateUserResponse = <EMsg.AMAuthenticateUserResponse: 593>
AMGetAccountFriendsCount = <EMsg.AMGetAccountFriendsCount: 594>
AMGetAccountFriendsCountResponse = <EMsg.AMGetAccountFriendsCountResponse: 595>
AMP2PIntroducerMessage = <EMsg.AMP2PIntroducerMessage: 596>
ClientChatAction = <EMsg.ClientChatAction: 597>
AMClientChatActionRelay = <EMsg.AMClientChatActionRelay: 598>
BaseVS = <EMsg.BaseVS: 600>
VACResponse = <EMsg.VACResponse: 601>
ReqChallengeTest = <EMsg.ReqChallengeTest: 602>
VSMarkCheat = <EMsg.VSMarkCheat: 604>
VSAddCheat = <EMsg.VSAddCheat: 605>
VSPurgeCodeModDB = <EMsg.VSPurgeCodeModDB: 606>
VSGetChallengeResults = <EMsg.VSGetChallengeResults: 607>
VSChallengeResultText = <EMsg.VSChallengeResultText: 608>
VSReportLingerer = <EMsg.VSReportLingerer: 609>
VSRequestManagedChallenge = <EMsg.VSRequestManagedChallenge: 610>
VSLoadDBFinished = <EMsg.VSLoadDBFinished: 611>
BaseDRMS = <EMsg.BaseDRMS: 625>
DRMBuildBlobRequest = <EMsg.DRMBuildBlobRequest: 628>
DRMBuildBlobResponse = <EMsg.DRMBuildBlobResponse: 629>
DRMResolveGuidRequest = <EMsg.DRMResolveGuidRequest: 630>
DRMResolveGuidResponse = <EMsg.DRMResolveGuidResponse: 631>
DRMVariabilityReport = <EMsg.DRMVariabilityReport: 633>
DRMVariabilityReportResponse = <EMsg.DRMVariabilityReportResponse: 634>
DRMStabilityReport = <EMsg.DRMStabilityReport: 635>
DRMStabilityReportResponse = <EMsg.DRMStabilityReportResponse: 636>
DRMDetailsReportRequest = <EMsg.DRMDetailsReportRequest: 637>
DRMDetailsReportResponse = <EMsg.DRMDetailsReportResponse: 638>
DRMProcessFile = <EMsg.DRMProcessFile: 639>
DRMAdminUpdate = <EMsg.DRMAdminUpdate: 640>
DRMAdminUpdateResponse = <EMsg.DRMAdminUpdateResponse: 641>
DRMSync = <EMsg.DRMSync: 642>
DRMSyncResponse = <EMsg.DRMSyncResponse: 643>
DRMProcessFileResponse = <EMsg.DRMProcessFileResponse: 644>
DRMEmptyGuidCache = <EMsg.DRMEmptyGuidCache: 645>
DRMEmptyGuidCacheResponse = <EMsg.DRMEmptyGuidCacheResponse: 646>
BaseCS = <EMsg.BaseCS: 650>
CSUserContentRequest = <EMsg.CSUserContentRequest: 652>
BaseClient = <EMsg.BaseClient: 700>
ClientLogOn_Deprecated = <EMsg.ClientLogOn_Deprecated: 701>
ClientAnonLogOn_Deprecated = <EMsg.ClientAnonLogOn_Deprecated: 702>
ClientHeartBeat = <EMsg.ClientHeartBeat: 703>
ClientVACResponse = <EMsg.ClientVACResponse: 704>
ClientGamesPlayed_obsolete = <EMsg.ClientGamesPlayed_obsolete: 705>
ClientLogOff = <EMsg.ClientLogOff: 706>
ClientNoUDPConnectivity = <EMsg.ClientNoUDPConnectivity: 707>
ClientInformOfCreateAccount = <EMsg.ClientInformOfCreateAccount: 708>
ClientAckVACBan = <EMsg.ClientAckVACBan: 709>
ClientConnectionStats = <EMsg.ClientConnectionStats: 710>
ClientInitPurchase = <EMsg.ClientInitPurchase: 711>
ClientPingResponse = <EMsg.ClientPingResponse: 712>
ClientRemoveFriend = <EMsg.ClientRemoveFriend: 714>
ClientGamesPlayedNoDataBlob = <EMsg.ClientGamesPlayedNoDataBlob: 715>
ClientChangeStatus = <EMsg.ClientChangeStatus: 716>
ClientVacStatusResponse = <EMsg.ClientVacStatusResponse: 717>
ClientFriendMsg = <EMsg.ClientFriendMsg: 718>
ClientGameConnect_obsolete = <EMsg.ClientGameConnect_obsolete: 719>
ClientGamesPlayed2_obsolete = <EMsg.ClientGamesPlayed2_obsolete: 720>
ClientGameEnded_obsolete = <EMsg.ClientGameEnded_obsolete: 721>
ClientGetFinalPrice = <EMsg.ClientGetFinalPrice: 722>
ClientSystemIM = <EMsg.ClientSystemIM: 726>
ClientSystemIMAck = <EMsg.ClientSystemIMAck: 727>
ClientGetLicenses = <EMsg.ClientGetLicenses: 728>
ClientCancelLicense = <EMsg.ClientCancelLicense: 729>
ClientGetLegacyGameKey = <EMsg.ClientGetLegacyGameKey: 730>
ClientContentServerLogOn_Deprecated = <EMsg.ClientContentServerLogOn_Deprecated: 731>
ClientAckVACBan2 = <EMsg.ClientAckVACBan2: 732>
ClientAckMessageByGID = <EMsg.ClientAckMessageByGID: 735>
ClientGetPurchaseReceipts = <EMsg.ClientGetPurchaseReceipts: 736>
ClientAckPurchaseReceipt = <EMsg.ClientAckPurchaseReceipt: 737>
ClientGamesPlayed3_obsolete = <EMsg.ClientGamesPlayed3_obsolete: 738>
ClientSendGuestPass = <EMsg.ClientSendGuestPass: 739>
ClientAckGuestPass = <EMsg.ClientAckGuestPass: 740>
ClientRedeemGuestPass = <EMsg.ClientRedeemGuestPass: 741>
ClientGamesPlayed = <EMsg.ClientGamesPlayed: 742>
ClientRegisterKey = <EMsg.ClientRegisterKey: 743>
ClientInviteUserToClan = <EMsg.ClientInviteUserToClan: 744>
ClientAcknowledgeClanInvite = <EMsg.ClientAcknowledgeClanInvite: 745>
ClientPurchaseWithMachineID = <EMsg.ClientPurchaseWithMachineID: 746>
ClientAppUsageEvent = <EMsg.ClientAppUsageEvent: 747>
ClientGetGiftTargetList = <EMsg.ClientGetGiftTargetList: 748>
ClientGetGiftTargetListResponse = <EMsg.ClientGetGiftTargetListResponse: 749>
ClientLogOnResponse = <EMsg.ClientLogOnResponse: 751>
ClientVACChallenge = <EMsg.ClientVACChallenge: 753>
ClientSetHeartbeatRate = <EMsg.ClientSetHeartbeatRate: 755>
ClientNotLoggedOnDeprecated = <EMsg.ClientNotLoggedOnDeprecated: 756>
ClientLoggedOff = <EMsg.ClientLoggedOff: 757>
GSApprove = <EMsg.GSApprove: 758>
GSDeny = <EMsg.GSDeny: 759>
GSKick = <EMsg.GSKick: 760>
ClientCreateAcctResponse = <EMsg.ClientCreateAcctResponse: 761>
ClientPurchaseResponse = <EMsg.ClientPurchaseResponse: 763>
ClientPing = <EMsg.ClientPing: 764>
ClientNOP = <EMsg.ClientNOP: 765>
ClientPersonaState = <EMsg.ClientPersonaState: 766>
ClientFriendsList = <EMsg.ClientFriendsList: 767>
ClientAccountInfo = <EMsg.ClientAccountInfo: 768>
ClientVacStatusQuery = <EMsg.ClientVacStatusQuery: 770>
ClientNewsUpdate = <EMsg.ClientNewsUpdate: 771>
ClientGameConnectDeny = <EMsg.ClientGameConnectDeny: 773>
GSStatusReply = <EMsg.GSStatusReply: 774>
ClientGetFinalPriceResponse = <EMsg.ClientGetFinalPriceResponse: 775>
ClientGameConnectTokens = <EMsg.ClientGameConnectTokens: 779>
ClientLicenseList = <EMsg.ClientLicenseList: 780>
ClientCancelLicenseResponse = <EMsg.ClientCancelLicenseResponse: 781>
ClientVACBanStatus = <EMsg.ClientVACBanStatus: 782>
ClientCMList = <EMsg.ClientCMList: 783>
ClientEncryptPct = <EMsg.ClientEncryptPct: 784>
ClientGetLegacyGameKeyResponse = <EMsg.ClientGetLegacyGameKeyResponse: 785>
ClientFavoritesList = <EMsg.ClientFavoritesList: 786>
CSUserContentApprove = <EMsg.CSUserContentApprove: 787>
CSUserContentDeny = <EMsg.CSUserContentDeny: 788>
ClientInitPurchaseResponse = <EMsg.ClientInitPurchaseResponse: 789>
ClientAddFriend = <EMsg.ClientAddFriend: 791>
ClientAddFriendResponse = <EMsg.ClientAddFriendResponse: 792>
ClientInviteFriend = <EMsg.ClientInviteFriend: 793>
ClientInviteFriendResponse = <EMsg.ClientInviteFriendResponse: 794>
ClientSendGuestPassResponse = <EMsg.ClientSendGuestPassResponse: 795>
ClientAckGuestPassResponse = <EMsg.ClientAckGuestPassResponse: 796>
ClientRedeemGuestPassResponse = <EMsg.ClientRedeemGuestPassResponse: 797>
ClientUpdateGuestPassesList = <EMsg.ClientUpdateGuestPassesList: 798>
ClientChatMsg = <EMsg.ClientChatMsg: 799>
ClientChatInvite = <EMsg.ClientChatInvite: 800>
ClientJoinChat = <EMsg.ClientJoinChat: 801>
ClientChatMemberInfo = <EMsg.ClientChatMemberInfo: 802>
ClientLogOnWithCredentials_Deprecated = <EMsg.ClientLogOnWithCredentials_Deprecated: 803>
ClientPasswordChangeResponse = <EMsg.ClientPasswordChangeResponse: 805>
ClientChatEnter = <EMsg.ClientChatEnter: 807>
ClientFriendRemovedFromSource = <EMsg.ClientFriendRemovedFromSource: 808>
ClientCreateChat = <EMsg.ClientCreateChat: 809>
ClientCreateChatResponse = <EMsg.ClientCreateChatResponse: 810>
ClientUpdateChatMetadata = <EMsg.ClientUpdateChatMetadata: 811>
ClientP2PIntroducerMessage = <EMsg.ClientP2PIntroducerMessage: 813>
ClientChatActionResult = <EMsg.ClientChatActionResult: 814>
ClientRequestFriendData = <EMsg.ClientRequestFriendData: 815>
ClientGetUserStats = <EMsg.ClientGetUserStats: 818>
ClientGetUserStatsResponse = <EMsg.ClientGetUserStatsResponse: 819>
ClientStoreUserStats = <EMsg.ClientStoreUserStats: 820>
ClientStoreUserStatsResponse = <EMsg.ClientStoreUserStatsResponse: 821>
ClientClanState = <EMsg.ClientClanState: 822>
ClientServiceModule = <EMsg.ClientServiceModule: 830>
ClientServiceCall = <EMsg.ClientServiceCall: 831>
ClientServiceCallResponse = <EMsg.ClientServiceCallResponse: 832>
ClientPackageInfoRequest = <EMsg.ClientPackageInfoRequest: 833>
ClientPackageInfoResponse = <EMsg.ClientPackageInfoResponse: 834>
ClientNatTraversalStatEvent = <EMsg.ClientNatTraversalStatEvent: 839>
ClientAppInfoRequest = <EMsg.ClientAppInfoRequest: 840>
ClientAppInfoResponse = <EMsg.ClientAppInfoResponse: 841>
ClientSteamUsageEvent = <EMsg.ClientSteamUsageEvent: 842>
ClientCheckPassword = <EMsg.ClientCheckPassword: 845>
ClientResetPassword = <EMsg.ClientResetPassword: 846>
ClientCheckPasswordResponse = <EMsg.ClientCheckPasswordResponse: 848>
ClientResetPasswordResponse = <EMsg.ClientResetPasswordResponse: 849>
ClientSessionToken = <EMsg.ClientSessionToken: 850>
ClientDRMProblemReport = <EMsg.ClientDRMProblemReport: 851>
ClientSetIgnoreFriend = <EMsg.ClientSetIgnoreFriend: 855>
ClientSetIgnoreFriendResponse = <EMsg.ClientSetIgnoreFriendResponse: 856>
ClientGetAppOwnershipTicket = <EMsg.ClientGetAppOwnershipTicket: 857>
ClientGetAppOwnershipTicketResponse = <EMsg.ClientGetAppOwnershipTicketResponse: 858>
ClientGetLobbyListResponse = <EMsg.ClientGetLobbyListResponse: 860>
ClientGetLobbyMetadata = <EMsg.ClientGetLobbyMetadata: 861>
ClientGetLobbyMetadataResponse = <EMsg.ClientGetLobbyMetadataResponse: 862>
ClientVTTCert = <EMsg.ClientVTTCert: 863>
ClientAppInfoUpdate = <EMsg.ClientAppInfoUpdate: 866>
ClientAppInfoChanges = <EMsg.ClientAppInfoChanges: 867>
ClientServerList = <EMsg.ClientServerList: 880>
ClientEmailChangeResponse = <EMsg.ClientEmailChangeResponse: 891>
ClientSecretQAChangeResponse = <EMsg.ClientSecretQAChangeResponse: 892>
ClientDRMBlobRequest = <EMsg.ClientDRMBlobRequest: 896>
ClientDRMBlobResponse = <EMsg.ClientDRMBlobResponse: 897>
ClientLookupKey = <EMsg.ClientLookupKey: 898>
ClientLookupKeyResponse = <EMsg.ClientLookupKeyResponse: 899>
BaseGameServer = <EMsg.BaseGameServer: 900>
GSDisconnectNotice = <EMsg.GSDisconnectNotice: 901>
GSStatus = <EMsg.GSStatus: 903>
GSUserPlaying = <EMsg.GSUserPlaying: 905>
GSStatus2 = <EMsg.GSStatus2: 906>
GSStatusUpdate_Unused = <EMsg.GSStatusUpdate_Unused: 907>
GSServerType = <EMsg.GSServerType: 908>
GSPlayerList = <EMsg.GSPlayerList: 909>
GSGetUserAchievementStatus = <EMsg.GSGetUserAchievementStatus: 910>
GSGetUserAchievementStatusResponse = <EMsg.GSGetUserAchievementStatusResponse: 911>
GSGetPlayStats = <EMsg.GSGetPlayStats: 918>
GSGetPlayStatsResponse = <EMsg.GSGetPlayStatsResponse: 919>
GSGetUserGroupStatus = <EMsg.GSGetUserGroupStatus: 920>
AMGetUserGroupStatus = <EMsg.AMGetUserGroupStatus: 921>
AMGetUserGroupStatusResponse = <EMsg.AMGetUserGroupStatusResponse: 922>
GSGetUserGroupStatusResponse = <EMsg.GSGetUserGroupStatusResponse: 923>
GSGetReputation = <EMsg.GSGetReputation: 936>
GSGetReputationResponse = <EMsg.GSGetReputationResponse: 937>
GSAssociateWithClan = <EMsg.GSAssociateWithClan: 938>
GSAssociateWithClanResponse = <EMsg.GSAssociateWithClanResponse: 939>
GSComputeNewPlayerCompatibility = <EMsg.GSComputeNewPlayerCompatibility: 940>
GSComputeNewPlayerCompatibilityResponse = <EMsg.GSComputeNewPlayerCompatibilityResponse: 941>
BaseAdmin = <EMsg.BaseAdmin: 1000>
AdminCmdResponse = <EMsg.AdminCmdResponse: 1004>
AdminLogListenRequest = <EMsg.AdminLogListenRequest: 1005>
AdminLogEvent = <EMsg.AdminLogEvent: 1006>
LogSearchRequest = <EMsg.LogSearchRequest: 1007>
LogSearchResponse = <EMsg.LogSearchResponse: 1008>
LogSearchCancel = <EMsg.LogSearchCancel: 1009>
UniverseData = <EMsg.UniverseData: 1010>
RequestStatHistory = <EMsg.RequestStatHistory: 1014>
StatHistory = <EMsg.StatHistory: 1015>
AdminPwLogon = <EMsg.AdminPwLogon: 1017>
AdminPwLogonResponse = <EMsg.AdminPwLogonResponse: 1018>
AdminSpew = <EMsg.AdminSpew: 1019>
AdminConsoleTitle = <EMsg.AdminConsoleTitle: 1020>
AdminGCSpew = <EMsg.AdminGCSpew: 1023>
AdminGCCommand = <EMsg.AdminGCCommand: 1024>
AdminGCGetCommandList = <EMsg.AdminGCGetCommandList: 1025>
AdminGCGetCommandListResponse = <EMsg.AdminGCGetCommandListResponse: 1026>
FBSConnectionData = <EMsg.FBSConnectionData: 1027>
AdminMsgSpew = <EMsg.AdminMsgSpew: 1028>
BaseFBS = <EMsg.BaseFBS: 1100>
FBSVersionInfo = <EMsg.FBSVersionInfo: 1101>
FBSForceRefresh = <EMsg.FBSForceRefresh: 1102>
FBSForceBounce = <EMsg.FBSForceBounce: 1103>
FBSDeployPackage = <EMsg.FBSDeployPackage: 1104>
FBSDeployResponse = <EMsg.FBSDeployResponse: 1105>
FBSUpdateBootstrapper = <EMsg.FBSUpdateBootstrapper: 1106>
FBSSetState = <EMsg.FBSSetState: 1107>
FBSApplyOSUpdates = <EMsg.FBSApplyOSUpdates: 1108>
FBSRunCMDScript = <EMsg.FBSRunCMDScript: 1109>
FBSRebootBox = <EMsg.FBSRebootBox: 1110>
FBSSetBigBrotherMode = <EMsg.FBSSetBigBrotherMode: 1111>
FBSMinidumpServer = <EMsg.FBSMinidumpServer: 1112>
FBSSetShellCount_obsolete = <EMsg.FBSSetShellCount_obsolete: 1113>
FBSDeployHotFixPackage = <EMsg.FBSDeployHotFixPackage: 1114>
FBSDeployHotFixResponse = <EMsg.FBSDeployHotFixResponse: 1115>
FBSDownloadHotFix = <EMsg.FBSDownloadHotFix: 1116>
FBSDownloadHotFixResponse = <EMsg.FBSDownloadHotFixResponse: 1117>
FBSUpdateTargetConfigFile = <EMsg.FBSUpdateTargetConfigFile: 1118>
FBSApplyAccountCred = <EMsg.FBSApplyAccountCred: 1119>
FBSApplyAccountCredResponse = <EMsg.FBSApplyAccountCredResponse: 1120>
FBSSetShellCount = <EMsg.FBSSetShellCount: 1121>
FBSTerminateShell = <EMsg.FBSTerminateShell: 1122>
FBSQueryGMForRequest = <EMsg.FBSQueryGMForRequest: 1123>
FBSQueryGMResponse = <EMsg.FBSQueryGMResponse: 1124>
FBSTerminateZombies = <EMsg.FBSTerminateZombies: 1125>
FBSInfoFromBootstrapper = <EMsg.FBSInfoFromBootstrapper: 1126>
FBSRebootBoxResponse = <EMsg.FBSRebootBoxResponse: 1127>
FBSBootstrapperPackageRequest = <EMsg.FBSBootstrapperPackageRequest: 1128>
FBSBootstrapperPackageResponse = <EMsg.FBSBootstrapperPackageResponse: 1129>
FBSBootstrapperGetPackageChunk = <EMsg.FBSBootstrapperGetPackageChunk: 1130>
FBSBootstrapperGetPackageChunkResponse = <EMsg.FBSBootstrapperGetPackageChunkResponse: 1131>
FBSBootstrapperPackageTransferProgress = <EMsg.FBSBootstrapperPackageTransferProgress: 1132>
FBSRestartBootstrapper = <EMsg.FBSRestartBootstrapper: 1133>
BaseFileXfer = <EMsg.BaseFileXfer: 1200>
FileXferResponse = <EMsg.FileXferResponse: 1201>
FileXferData = <EMsg.FileXferData: 1202>
FileXferEnd = <EMsg.FileXferEnd: 1203>
FileXferDataAck = <EMsg.FileXferDataAck: 1204>
BaseChannelAuth = <EMsg.BaseChannelAuth: 1300>
ChannelAuthResponse = <EMsg.ChannelAuthResponse: 1301>
ChannelAuthResult = <EMsg.ChannelAuthResult: 1302>
ChannelEncryptRequest = <EMsg.ChannelEncryptRequest: 1303>
ChannelEncryptResponse = <EMsg.ChannelEncryptResponse: 1304>
ChannelEncryptResult = <EMsg.ChannelEncryptResult: 1305>
BaseBS = <EMsg.BaseBS: 1400>
BSPurchaseStart = <EMsg.BSPurchaseStart: 1401>
BSPurchaseResponse = <EMsg.BSPurchaseResponse: 1402>
BSSettleNOVA = <EMsg.BSSettleNOVA: 1404>
BSSettleComplete = <EMsg.BSSettleComplete: 1406>
BSBannedRequest = <EMsg.BSBannedRequest: 1407>
BSInitPayPalTxn = <EMsg.BSInitPayPalTxn: 1408>
BSInitPayPalTxnResponse = <EMsg.BSInitPayPalTxnResponse: 1409>
BSGetPayPalUserInfo = <EMsg.BSGetPayPalUserInfo: 1410>
BSGetPayPalUserInfoResponse = <EMsg.BSGetPayPalUserInfoResponse: 1411>
BSRefundTxn = <EMsg.BSRefundTxn: 1413>
BSRefundTxnResponse = <EMsg.BSRefundTxnResponse: 1414>
BSGetEvents = <EMsg.BSGetEvents: 1415>
BSChaseRFRRequest = <EMsg.BSChaseRFRRequest: 1416>
BSPaymentInstrBan = <EMsg.BSPaymentInstrBan: 1417>
BSPaymentInstrBanResponse = <EMsg.BSPaymentInstrBanResponse: 1418>
BSProcessGCReports = <EMsg.BSProcessGCReports: 1419>
BSProcessPPReports = <EMsg.BSProcessPPReports: 1420>
BSInitGCBankXferTxn = <EMsg.BSInitGCBankXferTxn: 1421>
BSInitGCBankXferTxnResponse = <EMsg.BSInitGCBankXferTxnResponse: 1422>
BSQueryGCBankXferTxn = <EMsg.BSQueryGCBankXferTxn: 1423>
BSQueryGCBankXferTxnResponse = <EMsg.BSQueryGCBankXferTxnResponse: 1424>
BSCommitGCTxn = <EMsg.BSCommitGCTxn: 1425>
BSQueryTransactionStatus = <EMsg.BSQueryTransactionStatus: 1426>
BSQueryTransactionStatusResponse = <EMsg.BSQueryTransactionStatusResponse: 1427>
BSQueryCBOrderStatus = <EMsg.BSQueryCBOrderStatus: 1428>
BSQueryCBOrderStatusResponse = <EMsg.BSQueryCBOrderStatusResponse: 1429>
BSRunRedFlagReport = <EMsg.BSRunRedFlagReport: 1430>
BSQueryPaymentInstUsage = <EMsg.BSQueryPaymentInstUsage: 1431>
BSQueryPaymentInstResponse = <EMsg.BSQueryPaymentInstResponse: 1432>
BSQueryTxnExtendedInfo = <EMsg.BSQueryTxnExtendedInfo: 1433>
BSQueryTxnExtendedInfoResponse = <EMsg.BSQueryTxnExtendedInfoResponse: 1434>
BSUpdateConversionRates = <EMsg.BSUpdateConversionRates: 1435>
BSProcessUSBankReports = <EMsg.BSProcessUSBankReports: 1436>
BSPurchaseRunFraudChecks = <EMsg.BSPurchaseRunFraudChecks: 1437>
BSPurchaseRunFraudChecksResponse = <EMsg.BSPurchaseRunFraudChecksResponse: 1438>
BSStartShippingJobs = <EMsg.BSStartShippingJobs: 1439>
BSQueryBankInformation = <EMsg.BSQueryBankInformation: 1440>
BSQueryBankInformationResponse = <EMsg.BSQueryBankInformationResponse: 1441>
BSValidateXsollaSignature = <EMsg.BSValidateXsollaSignature: 1445>
BSValidateXsollaSignatureResponse = <EMsg.BSValidateXsollaSignatureResponse: 1446>
BSQiwiWalletInvoice = <EMsg.BSQiwiWalletInvoice: 1448>
BSQiwiWalletInvoiceResponse = <EMsg.BSQiwiWalletInvoiceResponse: 1449>
BSUpdateInventoryFromProPack = <EMsg.BSUpdateInventoryFromProPack: 1450>
BSUpdateInventoryFromProPackResponse = <EMsg.BSUpdateInventoryFromProPackResponse: 1451>
BSSendShippingRequest = <EMsg.BSSendShippingRequest: 1452>
BSSendShippingRequestResponse = <EMsg.BSSendShippingRequestResponse: 1453>
BSGetProPackOrderStatus = <EMsg.BSGetProPackOrderStatus: 1454>
BSGetProPackOrderStatusResponse = <EMsg.BSGetProPackOrderStatusResponse: 1455>
BSCheckJobRunning = <EMsg.BSCheckJobRunning: 1456>
BSCheckJobRunningResponse = <EMsg.BSCheckJobRunningResponse: 1457>
BSResetPackagePurchaseRateLimit = <EMsg.BSResetPackagePurchaseRateLimit: 1458>
BSResetPackagePurchaseRateLimitResponse = <EMsg.BSResetPackagePurchaseRateLimitResponse: 1459>
BSUpdatePaymentData = <EMsg.BSUpdatePaymentData: 1460>
BSUpdatePaymentDataResponse = <EMsg.BSUpdatePaymentDataResponse: 1461>
BSGetBillingAddress = <EMsg.BSGetBillingAddress: 1462>
BSGetBillingAddressResponse = <EMsg.BSGetBillingAddressResponse: 1463>
BSGetCreditCardInfo = <EMsg.BSGetCreditCardInfo: 1464>
BSGetCreditCardInfoResponse = <EMsg.BSGetCreditCardInfoResponse: 1465>
BSRemoveExpiredPaymentData = <EMsg.BSRemoveExpiredPaymentData: 1468>
BSRemoveExpiredPaymentDataResponse = <EMsg.BSRemoveExpiredPaymentDataResponse: 1469>
BSConvertToCurrentKeys = <EMsg.BSConvertToCurrentKeys: 1470>
BSConvertToCurrentKeysResponse = <EMsg.BSConvertToCurrentKeysResponse: 1471>
BSInitPurchase = <EMsg.BSInitPurchase: 1472>
BSInitPurchaseResponse = <EMsg.BSInitPurchaseResponse: 1473>
BSCompletePurchase = <EMsg.BSCompletePurchase: 1474>
BSCompletePurchaseResponse = <EMsg.BSCompletePurchaseResponse: 1475>
BSPruneCardUsageStats = <EMsg.BSPruneCardUsageStats: 1476>
BSPruneCardUsageStatsResponse = <EMsg.BSPruneCardUsageStatsResponse: 1477>
BSStoreBankInformation = <EMsg.BSStoreBankInformation: 1478>
BSStoreBankInformationResponse = <EMsg.BSStoreBankInformationResponse: 1479>
BSVerifyPOSAKey = <EMsg.BSVerifyPOSAKey: 1480>
BSVerifyPOSAKeyResponse = <EMsg.BSVerifyPOSAKeyResponse: 1481>
BSReverseRedeemPOSAKey = <EMsg.BSReverseRedeemPOSAKey: 1482>
BSReverseRedeemPOSAKeyResponse = <EMsg.BSReverseRedeemPOSAKeyResponse: 1483>
BSQueryFindCreditCard = <EMsg.BSQueryFindCreditCard: 1484>
BSQueryFindCreditCardResponse = <EMsg.BSQueryFindCreditCardResponse: 1485>
BSStatusInquiryPOSAKey = <EMsg.BSStatusInquiryPOSAKey: 1486>
BSStatusInquiryPOSAKeyResponse = <EMsg.BSStatusInquiryPOSAKeyResponse: 1487>
BSValidateMoPaySignature = <EMsg.BSValidateMoPaySignature: 1488>
BSValidateMoPaySignatureResponse = <EMsg.BSValidateMoPaySignatureResponse: 1489>
BSMoPayConfirmProductDelivery = <EMsg.BSMoPayConfirmProductDelivery: 1490>
BSMoPayConfirmProductDeliveryResponse = <EMsg.BSMoPayConfirmProductDeliveryResponse: 1491>
BSGenerateMoPayMD5 = <EMsg.BSGenerateMoPayMD5: 1492>
BSGenerateMoPayMD5Response = <EMsg.BSGenerateMoPayMD5Response: 1493>
BSBoaCompraConfirmProductDelivery = <EMsg.BSBoaCompraConfirmProductDelivery: 1494>
BSBoaCompraConfirmProductDeliveryResponse = <EMsg.BSBoaCompraConfirmProductDeliveryResponse: 1495>
BSGenerateBoaCompraMD5 = <EMsg.BSGenerateBoaCompraMD5: 1496>
BSGenerateBoaCompraMD5Response = <EMsg.BSGenerateBoaCompraMD5Response: 1497>
BSCommitWPTxn = <EMsg.BSCommitWPTxn: 1498>
BaseATS = <EMsg.BaseATS: 1500>
ATSStartStressTest = <EMsg.ATSStartStressTest: 1501>
ATSStopStressTest = <EMsg.ATSStopStressTest: 1502>
ATSRunFailServerTest = <EMsg.ATSRunFailServerTest: 1503>
ATSUFSPerfTestTask = <EMsg.ATSUFSPerfTestTask: 1504>
ATSUFSPerfTestResponse = <EMsg.ATSUFSPerfTestResponse: 1505>
ATSCycleTCM = <EMsg.ATSCycleTCM: 1506>
ATSInitDRMSStressTest = <EMsg.ATSInitDRMSStressTest: 1507>
ATSCallTest = <EMsg.ATSCallTest: 1508>
ATSCallTestReply = <EMsg.ATSCallTestReply: 1509>
ATSStartExternalStress = <EMsg.ATSStartExternalStress: 1510>
ATSExternalStressJobStart = <EMsg.ATSExternalStressJobStart: 1511>
ATSExternalStressJobQueued = <EMsg.ATSExternalStressJobQueued: 1512>
ATSExternalStressJobRunning = <EMsg.ATSExternalStressJobRunning: 1513>
ATSExternalStressJobStopped = <EMsg.ATSExternalStressJobStopped: 1514>
ATSExternalStressJobStopAll = <EMsg.ATSExternalStressJobStopAll: 1515>
ATSExternalStressActionResult = <EMsg.ATSExternalStressActionResult: 1516>
ATSStarted = <EMsg.ATSStarted: 1517>
ATSCSPerfTestTask = <EMsg.ATSCSPerfTestTask: 1518>
ATSCSPerfTestResponse = <EMsg.ATSCSPerfTestResponse: 1519>
BaseDP = <EMsg.BaseDP: 1600>
DPSetPublishingState = <EMsg.DPSetPublishingState: 1601>
DPGamePlayedStats = <EMsg.DPGamePlayedStats: 1602>
DPUniquePlayersStat = <EMsg.DPUniquePlayersStat: 1603>
DPStreamingUniquePlayersStat = <EMsg.DPStreamingUniquePlayersStat: 1604>
DPVacInfractionStats = <EMsg.DPVacInfractionStats: 1605>
DPVacBanStats = <EMsg.DPVacBanStats: 1606>
DPBlockingStats = <EMsg.DPBlockingStats: 1607>
DPNatTraversalStats = <EMsg.DPNatTraversalStats: 1608>
DPSteamUsageEvent = <EMsg.DPSteamUsageEvent: 1609>
DPVacCertBanStats = <EMsg.DPVacCertBanStats: 1610>
DPVacCafeBanStats = <EMsg.DPVacCafeBanStats: 1611>
DPCloudStats = <EMsg.DPCloudStats: 1612>
DPAchievementStats = <EMsg.DPAchievementStats: 1613>
DPAccountCreationStats = <EMsg.DPAccountCreationStats: 1614>
DPGetPlayerCount = <EMsg.DPGetPlayerCount: 1615>
DPGetPlayerCountResponse = <EMsg.DPGetPlayerCountResponse: 1616>
DPGameServersPlayersStats = <EMsg.DPGameServersPlayersStats: 1617>
DPDownloadRateStatistics = <EMsg.DPDownloadRateStatistics: 1618>
DPFacebookStatistics = <EMsg.DPFacebookStatistics: 1619>
ClientDPCheckSpecialSurvey = <EMsg.ClientDPCheckSpecialSurvey: 1620>
ClientDPCheckSpecialSurveyResponse = <EMsg.ClientDPCheckSpecialSurveyResponse: 1621>
ClientDPSendSpecialSurveyResponse = <EMsg.ClientDPSendSpecialSurveyResponse: 1622>
ClientDPSendSpecialSurveyResponseReply = <EMsg.ClientDPSendSpecialSurveyResponseReply: 1623>
DPStoreSaleStatistics = <EMsg.DPStoreSaleStatistics: 1624>
ClientDPUpdateAppJobReport = <EMsg.ClientDPUpdateAppJobReport: 1625>
ClientDPSteam2AppStarted = <EMsg.ClientDPSteam2AppStarted: 1627>
DPUpdateContentEvent = <EMsg.DPUpdateContentEvent: 1626>
DPPartnerMicroTxns = <EMsg.DPPartnerMicroTxns: 1628>
DPPartnerMicroTxnsResponse = <EMsg.DPPartnerMicroTxnsResponse: 1629>
ClientDPContentStatsReport = <EMsg.ClientDPContentStatsReport: 1630>
DPVRUniquePlayersStat = <EMsg.DPVRUniquePlayersStat: 1631>
BaseCM = <EMsg.BaseCM: 1700>
CMSetAllowState = <EMsg.CMSetAllowState: 1701>
CMSpewAllowState = <EMsg.CMSpewAllowState: 1702>
CMAppInfoResponseDeprecated = <EMsg.CMAppInfoResponseDeprecated: 1703>
BaseDSS = <EMsg.BaseDSS: 1800>
DSSNewFile = <EMsg.DSSNewFile: 1801>
DSSCurrentFileList = <EMsg.DSSCurrentFileList: 1802>
DSSSynchList = <EMsg.DSSSynchList: 1803>
DSSSynchListResponse = <EMsg.DSSSynchListResponse: 1804>
DSSSynchSubscribe = <EMsg.DSSSynchSubscribe: 1805>
DSSSynchUnsubscribe = <EMsg.DSSSynchUnsubscribe: 1806>
BaseEPM = <EMsg.BaseEPM: 1900>
EPMStartProcess = <EMsg.EPMStartProcess: 1901>
EPMStopProcess = <EMsg.EPMStopProcess: 1902>
EPMRestartProcess = <EMsg.EPMRestartProcess: 1903>
BaseGC = <EMsg.BaseGC: 2200>
AMRelayToGC = <EMsg.AMRelayToGC: 2201>
GCUpdatePlayedState = <EMsg.GCUpdatePlayedState: 2202>
GCCmdRevive = <EMsg.GCCmdRevive: 2203>
GCCmdBounce = <EMsg.GCCmdBounce: 2204>
GCCmdForceBounce = <EMsg.GCCmdForceBounce: 2205>
GCCmdDown = <EMsg.GCCmdDown: 2206>
GCCmdDeploy = <EMsg.GCCmdDeploy: 2207>
GCCmdDeployResponse = <EMsg.GCCmdDeployResponse: 2208>
GCCmdSwitch = <EMsg.GCCmdSwitch: 2209>
AMRefreshSessions = <EMsg.AMRefreshSessions: 2210>
GCUpdateGSState = <EMsg.GCUpdateGSState: 2211>
GCAchievementAwarded = <EMsg.GCAchievementAwarded: 2212>
GCSystemMessage = <EMsg.GCSystemMessage: 2213>
GCValidateSession = <EMsg.GCValidateSession: 2214>
GCValidateSessionResponse = <EMsg.GCValidateSessionResponse: 2215>
GCCmdStatus = <EMsg.GCCmdStatus: 2216>
GCRegisterWebInterfaces = <EMsg.GCRegisterWebInterfaces: 2217>
GCGetAccountDetails = <EMsg.GCGetAccountDetails: 2218>
GCInterAppMessage = <EMsg.GCInterAppMessage: 2219>
GCGetEmailTemplate = <EMsg.GCGetEmailTemplate: 2220>
GCGetEmailTemplateResponse = <EMsg.GCGetEmailTemplateResponse: 2221>
GCHRelay = <EMsg.GCHRelay: 2222>
GCHRelayToClient = <EMsg.GCHRelayToClient: 2223>
GCHUpdateSession = <EMsg.GCHUpdateSession: 2224>
GCHRequestUpdateSession = <EMsg.GCHRequestUpdateSession: 2225>
GCHRequestStatus = <EMsg.GCHRequestStatus: 2226>
GCHRequestStatusResponse = <EMsg.GCHRequestStatusResponse: 2227>
GCHAccountVacStatusChange = <EMsg.GCHAccountVacStatusChange: 2228>
GCHSpawnGC = <EMsg.GCHSpawnGC: 2229>
GCHSpawnGCResponse = <EMsg.GCHSpawnGCResponse: 2230>
GCHKillGC = <EMsg.GCHKillGC: 2231>
GCHKillGCResponse = <EMsg.GCHKillGCResponse: 2232>
GCHAccountTradeBanStatusChange = <EMsg.GCHAccountTradeBanStatusChange: 2233>
GCHAccountLockStatusChange = <EMsg.GCHAccountLockStatusChange: 2234>
GCHVacVerificationChange = <EMsg.GCHVacVerificationChange: 2235>
GCHAccountPhoneNumberChange = <EMsg.GCHAccountPhoneNumberChange: 2236>
GCHAccountTwoFactorChange = <EMsg.GCHAccountTwoFactorChange: 2237>
BaseP2P = <EMsg.BaseP2P: 2500>
P2PIntroducerMessage = <EMsg.P2PIntroducerMessage: 2502>
BaseSM = <EMsg.BaseSM: 2900>
SMExpensiveReport = <EMsg.SMExpensiveReport: 2902>
SMHourlyReport = <EMsg.SMHourlyReport: 2903>
SMFishingReport = <EMsg.SMFishingReport: 2904>
SMPartitionRenames = <EMsg.SMPartitionRenames: 2905>
SMMonitorSpace = <EMsg.SMMonitorSpace: 2906>
SMGetSchemaConversionResults = <EMsg.SMGetSchemaConversionResults: 2907>
SMGetSchemaConversionResultsResponse = <EMsg.SMGetSchemaConversionResultsResponse: 2908>
BaseTest = <EMsg.BaseTest: 3000>
JobHeartbeatTest = <EMsg.JobHeartbeatTest: 3001>
JobHeartbeatTestResponse = <EMsg.JobHeartbeatTestResponse: 3002>
BaseFTSRange = <EMsg.BaseFTSRange: 3100>
FTSGetBrowseCounts = <EMsg.FTSGetBrowseCounts: 3101>
FTSGetBrowseCountsResponse = <EMsg.FTSGetBrowseCountsResponse: 3102>
FTSBrowseClans = <EMsg.FTSBrowseClans: 3103>
FTSBrowseClansResponse = <EMsg.FTSBrowseClansResponse: 3104>
FTSSearchClansByLocation = <EMsg.FTSSearchClansByLocation: 3105>
FTSSearchClansByLocationResponse = <EMsg.FTSSearchClansByLocationResponse: 3106>
FTSSearchPlayersByLocation = <EMsg.FTSSearchPlayersByLocation: 3107>
FTSSearchPlayersByLocationResponse = <EMsg.FTSSearchPlayersByLocationResponse: 3108>
FTSClanDeleted = <EMsg.FTSClanDeleted: 3109>
FTSSearch = <EMsg.FTSSearch: 3110>
FTSSearchResponse = <EMsg.FTSSearchResponse: 3111>
FTSSearchStatus = <EMsg.FTSSearchStatus: 3112>
FTSSearchStatusResponse = <EMsg.FTSSearchStatusResponse: 3113>
FTSGetGSPlayStats = <EMsg.FTSGetGSPlayStats: 3114>
FTSGetGSPlayStatsResponse = <EMsg.FTSGetGSPlayStatsResponse: 3115>
FTSGetGSPlayStatsForServer = <EMsg.FTSGetGSPlayStatsForServer: 3116>
FTSGetGSPlayStatsForServerResponse = <EMsg.FTSGetGSPlayStatsForServerResponse: 3117>
FTSReportIPUpdates = <EMsg.FTSReportIPUpdates: 3118>
BaseCCSRange = <EMsg.BaseCCSRange: 3150>
CCSGetComments = <EMsg.CCSGetComments: 3151>
CCSGetCommentsResponse = <EMsg.CCSGetCommentsResponse: 3152>
CCSAddComment = <EMsg.CCSAddComment: 3153>
CCSAddCommentResponse = <EMsg.CCSAddCommentResponse: 3154>
CCSDeleteComment = <EMsg.CCSDeleteComment: 3155>
CCSDeleteCommentResponse = <EMsg.CCSDeleteCommentResponse: 3156>
CCSPreloadComments = <EMsg.CCSPreloadComments: 3157>
CCSNotifyCommentCount = <EMsg.CCSNotifyCommentCount: 3158>
CCSGetCommentsForNews = <EMsg.CCSGetCommentsForNews: 3159>
CCSGetCommentsForNewsResponse = <EMsg.CCSGetCommentsForNewsResponse: 3160>
CCSDeleteAllCommentsByAuthor = <EMsg.CCSDeleteAllCommentsByAuthor: 3161>
CCSDeleteAllCommentsByAuthorResponse = <EMsg.CCSDeleteAllCommentsByAuthorResponse: 3162>
BaseLBSRange = <EMsg.BaseLBSRange: 3200>
LBSSetScore = <EMsg.LBSSetScore: 3201>
LBSSetScoreResponse = <EMsg.LBSSetScoreResponse: 3202>
LBSFindOrCreateLB = <EMsg.LBSFindOrCreateLB: 3203>
LBSFindOrCreateLBResponse = <EMsg.LBSFindOrCreateLBResponse: 3204>
LBSGetLBEntries = <EMsg.LBSGetLBEntries: 3205>
LBSGetLBEntriesResponse = <EMsg.LBSGetLBEntriesResponse: 3206>
LBSGetLBList = <EMsg.LBSGetLBList: 3207>
LBSGetLBListResponse = <EMsg.LBSGetLBListResponse: 3208>
LBSSetLBDetails = <EMsg.LBSSetLBDetails: 3209>
LBSDeleteLB = <EMsg.LBSDeleteLB: 3210>
LBSDeleteLBEntry = <EMsg.LBSDeleteLBEntry: 3211>
LBSResetLB = <EMsg.LBSResetLB: 3212>
LBSResetLBResponse = <EMsg.LBSResetLBResponse: 3213>
BaseOGS = <EMsg.BaseOGS: 3400>
OGSBeginSession = <EMsg.OGSBeginSession: 3401>
OGSBeginSessionResponse = <EMsg.OGSBeginSessionResponse: 3402>
OGSEndSession = <EMsg.OGSEndSession: 3403>
OGSEndSessionResponse = <EMsg.OGSEndSessionResponse: 3404>
OGSWriteAppSessionRow = <EMsg.OGSWriteAppSessionRow: 3406>
BaseBRP = <EMsg.BaseBRP: 3600>
BRPStartShippingJobs = <EMsg.BRPStartShippingJobs: 3601>
BRPProcessUSBankReports = <EMsg.BRPProcessUSBankReports: 3602>
BRPProcessGCReports = <EMsg.BRPProcessGCReports: 3603>
BRPProcessPPReports = <EMsg.BRPProcessPPReports: 3604>
BRPSettleNOVA = <EMsg.BRPSettleNOVA: 3605>
BRPSettleCB = <EMsg.BRPSettleCB: 3606>
BRPCommitGC = <EMsg.BRPCommitGC: 3607>
BRPCommitGCResponse = <EMsg.BRPCommitGCResponse: 3608>
BRPFindHungTransactions = <EMsg.BRPFindHungTransactions: 3609>
BRPCheckFinanceCloseOutDate = <EMsg.BRPCheckFinanceCloseOutDate: 3610>
BRPProcessLicenses = <EMsg.BRPProcessLicenses: 3611>
BRPProcessLicensesResponse = <EMsg.BRPProcessLicensesResponse: 3612>
BRPRemoveExpiredPaymentData = <EMsg.BRPRemoveExpiredPaymentData: 3613>
BRPRemoveExpiredPaymentDataResponse = <EMsg.BRPRemoveExpiredPaymentDataResponse: 3614>
BRPConvertToCurrentKeys = <EMsg.BRPConvertToCurrentKeys: 3615>
BRPConvertToCurrentKeysResponse = <EMsg.BRPConvertToCurrentKeysResponse: 3616>
BRPPruneCardUsageStats = <EMsg.BRPPruneCardUsageStats: 3617>
BRPPruneCardUsageStatsResponse = <EMsg.BRPPruneCardUsageStatsResponse: 3618>
BRPCheckActivationCodes = <EMsg.BRPCheckActivationCodes: 3619>
BRPCheckActivationCodesResponse = <EMsg.BRPCheckActivationCodesResponse: 3620>
BRPCommitWP = <EMsg.BRPCommitWP: 3621>
BRPCommitWPResponse = <EMsg.BRPCommitWPResponse: 3622>
BRPProcessWPReports = <EMsg.BRPProcessWPReports: 3623>
BRPProcessPaymentRules = <EMsg.BRPProcessPaymentRules: 3624>
BRPProcessPartnerPayments = <EMsg.BRPProcessPartnerPayments: 3625>
BRPCheckSettlementReports = <EMsg.BRPCheckSettlementReports: 3626>
BRPPostTaxToAvalara = <EMsg.BRPPostTaxToAvalara: 3628>
BRPPostTransactionTax = <EMsg.BRPPostTransactionTax: 3629>
BRPPostTransactionTaxResponse = <EMsg.BRPPostTransactionTaxResponse: 3630>
BRPProcessIMReports = <EMsg.BRPProcessIMReports: 3631>
BaseAMRange2 = <EMsg.BaseAMRange2: 4000>
AMCreateChat = <EMsg.AMCreateChat: 4001>
AMCreateChatResponse = <EMsg.AMCreateChatResponse: 4002>
AMUpdateChatMetadata = <EMsg.AMUpdateChatMetadata: 4003>
AMPublishChatMetadata = <EMsg.AMPublishChatMetadata: 4004>
AMSetProfileURL = <EMsg.AMSetProfileURL: 4005>
AMGetAccountEmailAddress = <EMsg.AMGetAccountEmailAddress: 4006>
AMGetAccountEmailAddressResponse = <EMsg.AMGetAccountEmailAddressResponse: 4007>
AMRequestClanData = <EMsg.AMRequestClanData: 4008>
AMRouteToClients = <EMsg.AMRouteToClients: 4009>
AMLeaveClan = <EMsg.AMLeaveClan: 4010>
AMClanPermissions = <EMsg.AMClanPermissions: 4011>
AMClanPermissionsResponse = <EMsg.AMClanPermissionsResponse: 4012>
AMCreateClanEvent = <EMsg.AMCreateClanEvent: 4013>
AMCreateClanEventResponse = <EMsg.AMCreateClanEventResponse: 4014>
AMUpdateClanEvent = <EMsg.AMUpdateClanEvent: 4015>
AMUpdateClanEventResponse = <EMsg.AMUpdateClanEventResponse: 4016>
AMGetClanEvents = <EMsg.AMGetClanEvents: 4017>
AMGetClanEventsResponse = <EMsg.AMGetClanEventsResponse: 4018>
AMDeleteClanEvent = <EMsg.AMDeleteClanEvent: 4019>
AMDeleteClanEventResponse = <EMsg.AMDeleteClanEventResponse: 4020>
AMSetClanPermissionSettings = <EMsg.AMSetClanPermissionSettings: 4021>
AMSetClanPermissionSettingsResponse = <EMsg.AMSetClanPermissionSettingsResponse: 4022>
AMGetClanPermissionSettings = <EMsg.AMGetClanPermissionSettings: 4023>
AMGetClanPermissionSettingsResponse = <EMsg.AMGetClanPermissionSettingsResponse: 4024>
AMPublishChatRoomInfo = <EMsg.AMPublishChatRoomInfo: 4025>
ClientChatRoomInfo = <EMsg.ClientChatRoomInfo: 4026>
AMCreateClanAnnouncement = <EMsg.AMCreateClanAnnouncement: 4027>
AMCreateClanAnnouncementResponse = <EMsg.AMCreateClanAnnouncementResponse: 4028>
AMUpdateClanAnnouncement = <EMsg.AMUpdateClanAnnouncement: 4029>
AMUpdateClanAnnouncementResponse = <EMsg.AMUpdateClanAnnouncementResponse: 4030>
AMGetClanAnnouncementsCount = <EMsg.AMGetClanAnnouncementsCount: 4031>
AMGetClanAnnouncementsCountResponse = <EMsg.AMGetClanAnnouncementsCountResponse: 4032>
AMGetClanAnnouncements = <EMsg.AMGetClanAnnouncements: 4033>
AMGetClanAnnouncementsResponse = <EMsg.AMGetClanAnnouncementsResponse: 4034>
AMDeleteClanAnnouncement = <EMsg.AMDeleteClanAnnouncement: 4035>
AMDeleteClanAnnouncementResponse = <EMsg.AMDeleteClanAnnouncementResponse: 4036>
AMGetSingleClanAnnouncement = <EMsg.AMGetSingleClanAnnouncement: 4037>
AMGetSingleClanAnnouncementResponse = <EMsg.AMGetSingleClanAnnouncementResponse: 4038>
AMGetClanHistory = <EMsg.AMGetClanHistory: 4039>
AMGetClanHistoryResponse = <EMsg.AMGetClanHistoryResponse: 4040>
AMGetClanPermissionBits = <EMsg.AMGetClanPermissionBits: 4041>
AMGetClanPermissionBitsResponse = <EMsg.AMGetClanPermissionBitsResponse: 4042>
AMSetClanPermissionBits = <EMsg.AMSetClanPermissionBits: 4043>
AMSetClanPermissionBitsResponse = <EMsg.AMSetClanPermissionBitsResponse: 4044>
AMSessionInfoRequest = <EMsg.AMSessionInfoRequest: 4045>
AMSessionInfoResponse = <EMsg.AMSessionInfoResponse: 4046>
AMValidateWGToken = <EMsg.AMValidateWGToken: 4047>
AMGetSingleClanEvent = <EMsg.AMGetSingleClanEvent: 4048>
AMGetSingleClanEventResponse = <EMsg.AMGetSingleClanEventResponse: 4049>
AMGetClanRank = <EMsg.AMGetClanRank: 4050>
AMGetClanRankResponse = <EMsg.AMGetClanRankResponse: 4051>
AMSetClanRank = <EMsg.AMSetClanRank: 4052>
AMSetClanRankResponse = <EMsg.AMSetClanRankResponse: 4053>
AMGetClanPOTW = <EMsg.AMGetClanPOTW: 4054>
AMGetClanPOTWResponse = <EMsg.AMGetClanPOTWResponse: 4055>
AMSetClanPOTW = <EMsg.AMSetClanPOTW: 4056>
AMSetClanPOTWResponse = <EMsg.AMSetClanPOTWResponse: 4057>
AMRequestChatMetadata = <EMsg.AMRequestChatMetadata: 4058>
AMDumpUser = <EMsg.AMDumpUser: 4059>
AMKickUserFromClan = <EMsg.AMKickUserFromClan: 4060>
AMAddFounderToClan = <EMsg.AMAddFounderToClan: 4061>
AMValidateWGTokenResponse = <EMsg.AMValidateWGTokenResponse: 4062>
AMSetCommunityState = <EMsg.AMSetCommunityState: 4063>
AMSetAccountDetails = <EMsg.AMSetAccountDetails: 4064>
AMGetChatBanList = <EMsg.AMGetChatBanList: 4065>
AMGetChatBanListResponse = <EMsg.AMGetChatBanListResponse: 4066>
AMUnBanFromChat = <EMsg.AMUnBanFromChat: 4067>
AMSetClanDetails = <EMsg.AMSetClanDetails: 4068>
AMGetAccountLinksResponse = <EMsg.AMGetAccountLinksResponse: 4070>
AMSetAccountLinksResponse = <EMsg.AMSetAccountLinksResponse: 4072>
AMGetUserGameStats = <EMsg.AMGetUserGameStats: 4073>
AMGetUserGameStatsResponse = <EMsg.AMGetUserGameStatsResponse: 4074>
AMCheckClanMembership = <EMsg.AMCheckClanMembership: 4075>
AMGetClanMembers = <EMsg.AMGetClanMembers: 4076>
AMGetClanMembersResponse = <EMsg.AMGetClanMembersResponse: 4077>
AMJoinPublicClan = <EMsg.AMJoinPublicClan: 4078>
AMNotifyChatOfClanChange = <EMsg.AMNotifyChatOfClanChange: 4079>
AMResubmitPurchase = <EMsg.AMResubmitPurchase: 4080>
AMAddFriend = <EMsg.AMAddFriend: 4081>
AMAddFriendResponse = <EMsg.AMAddFriendResponse: 4082>
AMRemoveFriend = <EMsg.AMRemoveFriend: 4083>
AMDumpClan = <EMsg.AMDumpClan: 4084>
AMChangeClanOwner = <EMsg.AMChangeClanOwner: 4085>
AMCancelEasyCollect = <EMsg.AMCancelEasyCollect: 4086>
AMCancelEasyCollectResponse = <EMsg.AMCancelEasyCollectResponse: 4087>
AMGetClanMembershipList = <EMsg.AMGetClanMembershipList: 4088>
AMGetClanMembershipListResponse = <EMsg.AMGetClanMembershipListResponse: 4089>
AMClansInCommon = <EMsg.AMClansInCommon: 4090>
AMClansInCommonResponse = <EMsg.AMClansInCommonResponse: 4091>
AMIsValidAccountID = <EMsg.AMIsValidAccountID: 4092>
AMConvertClan = <EMsg.AMConvertClan: 4093>
AMGetGiftTargetListRelay = <EMsg.AMGetGiftTargetListRelay: 4094>
AMWipeFriendsList = <EMsg.AMWipeFriendsList: 4095>
AMSetIgnored = <EMsg.AMSetIgnored: 4096>
AMClansInCommonCountResponse = <EMsg.AMClansInCommonCountResponse: 4097>
AMFriendsList = <EMsg.AMFriendsList: 4098>
AMFriendsListResponse = <EMsg.AMFriendsListResponse: 4099>
AMFriendsInCommon = <EMsg.AMFriendsInCommon: 4100>
AMFriendsInCommonResponse = <EMsg.AMFriendsInCommonResponse: 4101>
AMFriendsInCommonCountResponse = <EMsg.AMFriendsInCommonCountResponse: 4102>
AMClansInCommonCount = <EMsg.AMClansInCommonCount: 4103>
AMChallengeVerdict = <EMsg.AMChallengeVerdict: 4104>
AMChallengeNotification = <EMsg.AMChallengeNotification: 4105>
AMFindGSByIP = <EMsg.AMFindGSByIP: 4106>
AMFoundGSByIP = <EMsg.AMFoundGSByIP: 4107>
AMGiftRevoked = <EMsg.AMGiftRevoked: 4108>
AMCreateAccountRecord = <EMsg.AMCreateAccountRecord: 4109>
AMUserClanList = <EMsg.AMUserClanList: 4110>
AMUserClanListResponse = <EMsg.AMUserClanListResponse: 4111>
AMGetAccountDetails2 = <EMsg.AMGetAccountDetails2: 4112>
AMGetAccountDetailsResponse2 = <EMsg.AMGetAccountDetailsResponse2: 4113>
AMSetCommunityProfileSettings = <EMsg.AMSetCommunityProfileSettings: 4114>
AMSetCommunityProfileSettingsResponse = <EMsg.AMSetCommunityProfileSettingsResponse: 4115>
AMGetCommunityPrivacyState = <EMsg.AMGetCommunityPrivacyState: 4116>
AMGetCommunityPrivacyStateResponse = <EMsg.AMGetCommunityPrivacyStateResponse: 4117>
AMCheckClanInviteRateLimiting = <EMsg.AMCheckClanInviteRateLimiting: 4118>
AMGetUserAchievementStatus = <EMsg.AMGetUserAchievementStatus: 4119>
AMGetIgnored = <EMsg.AMGetIgnored: 4120>
AMGetIgnoredResponse = <EMsg.AMGetIgnoredResponse: 4121>
AMSetIgnoredResponse = <EMsg.AMSetIgnoredResponse: 4122>
AMSetFriendRelationshipNone = <EMsg.AMSetFriendRelationshipNone: 4123>
AMGetFriendRelationship = <EMsg.AMGetFriendRelationship: 4124>
AMGetFriendRelationshipResponse = <EMsg.AMGetFriendRelationshipResponse: 4125>
AMServiceModulesCache = <EMsg.AMServiceModulesCache: 4126>
AMServiceModulesCall = <EMsg.AMServiceModulesCall: 4127>
AMServiceModulesCallResponse = <EMsg.AMServiceModulesCallResponse: 4128>
AMGetCaptchaDataForIP = <EMsg.AMGetCaptchaDataForIP: 4129>
AMGetCaptchaDataForIPResponse = <EMsg.AMGetCaptchaDataForIPResponse: 4130>
AMValidateCaptchaDataForIP = <EMsg.AMValidateCaptchaDataForIP: 4131>
AMValidateCaptchaDataForIPResponse = <EMsg.AMValidateCaptchaDataForIPResponse: 4132>
AMTrackFailedAuthByIP = <EMsg.AMTrackFailedAuthByIP: 4133>
AMGetCaptchaDataByGID = <EMsg.AMGetCaptchaDataByGID: 4134>
AMGetCaptchaDataByGIDResponse = <EMsg.AMGetCaptchaDataByGIDResponse: 4135>
AMGetLobbyList = <EMsg.AMGetLobbyList: 4136>
AMGetLobbyListResponse = <EMsg.AMGetLobbyListResponse: 4137>
AMGetLobbyMetadata = <EMsg.AMGetLobbyMetadata: 4138>
AMGetLobbyMetadataResponse = <EMsg.AMGetLobbyMetadataResponse: 4139>
CommunityAddFriendNews = <EMsg.CommunityAddFriendNews: 4140>
AMAddClanNews = <EMsg.AMAddClanNews: 4141>
AMWriteNews = <EMsg.AMWriteNews: 4142>
AMFindClanUser = <EMsg.AMFindClanUser: 4143>
AMFindClanUserResponse = <EMsg.AMFindClanUserResponse: 4144>
AMBanFromChat = <EMsg.AMBanFromChat: 4145>
AMGetUserHistoryResponse = <EMsg.AMGetUserHistoryResponse: 4146>
AMGetUserNewsSubscriptions = <EMsg.AMGetUserNewsSubscriptions: 4147>
AMGetUserNewsSubscriptionsResponse = <EMsg.AMGetUserNewsSubscriptionsResponse: 4148>
AMSetUserNewsSubscriptions = <EMsg.AMSetUserNewsSubscriptions: 4149>
AMGetUserNews = <EMsg.AMGetUserNews: 4150>
AMGetUserNewsResponse = <EMsg.AMGetUserNewsResponse: 4151>
AMSendQueuedEmails = <EMsg.AMSendQueuedEmails: 4152>
AMSetLicenseFlags = <EMsg.AMSetLicenseFlags: 4153>
AMGetUserHistory = <EMsg.AMGetUserHistory: 4154>
CommunityDeleteUserNews = <EMsg.CommunityDeleteUserNews: 4155>
AMAllowUserFilesRequest = <EMsg.AMAllowUserFilesRequest: 4156>
AMAllowUserFilesResponse = <EMsg.AMAllowUserFilesResponse: 4157>
AMGetAccountStatus = <EMsg.AMGetAccountStatus: 4158>
AMGetAccountStatusResponse = <EMsg.AMGetAccountStatusResponse: 4159>
AMEditBanReason = <EMsg.AMEditBanReason: 4160>
AMCheckClanMembershipResponse = <EMsg.AMCheckClanMembershipResponse: 4161>
AMProbeClanMembershipList = <EMsg.AMProbeClanMembershipList: 4162>
AMProbeClanMembershipListResponse = <EMsg.AMProbeClanMembershipListResponse: 4163>
AMGetFriendsLobbies = <EMsg.AMGetFriendsLobbies: 4165>
AMGetFriendsLobbiesResponse = <EMsg.AMGetFriendsLobbiesResponse: 4166>
AMGetUserFriendNewsResponse = <EMsg.AMGetUserFriendNewsResponse: 4172>
CommunityGetUserFriendNews = <EMsg.CommunityGetUserFriendNews: 4173>
AMGetUserClansNewsResponse = <EMsg.AMGetUserClansNewsResponse: 4174>
AMGetUserClansNews = <EMsg.AMGetUserClansNews: 4175>
AMStoreInitPurchase = <EMsg.AMStoreInitPurchase: 4176>
AMStoreInitPurchaseResponse = <EMsg.AMStoreInitPurchaseResponse: 4177>
AMStoreGetFinalPrice = <EMsg.AMStoreGetFinalPrice: 4178>
AMStoreGetFinalPriceResponse = <EMsg.AMStoreGetFinalPriceResponse: 4179>
AMStoreCompletePurchase = <EMsg.AMStoreCompletePurchase: 4180>
AMStoreCancelPurchase = <EMsg.AMStoreCancelPurchase: 4181>
AMStorePurchaseResponse = <EMsg.AMStorePurchaseResponse: 4182>
AMCreateAccountRecordInSteam3 = <EMsg.AMCreateAccountRecordInSteam3: 4183>
AMGetPreviousCBAccount = <EMsg.AMGetPreviousCBAccount: 4184>
AMGetPreviousCBAccountResponse = <EMsg.AMGetPreviousCBAccountResponse: 4185>
AMUpdateBillingAddress = <EMsg.AMUpdateBillingAddress: 4186>
AMUpdateBillingAddressResponse = <EMsg.AMUpdateBillingAddressResponse: 4187>
AMGetBillingAddress = <EMsg.AMGetBillingAddress: 4188>
AMGetBillingAddressResponse = <EMsg.AMGetBillingAddressResponse: 4189>
AMGetUserLicenseHistory = <EMsg.AMGetUserLicenseHistory: 4190>
AMGetUserLicenseHistoryResponse = <EMsg.AMGetUserLicenseHistoryResponse: 4191>
AMSupportChangePassword = <EMsg.AMSupportChangePassword: 4194>
AMSupportChangeEmail = <EMsg.AMSupportChangeEmail: 4195>
AMSupportChangeSecretQA = <EMsg.AMSupportChangeSecretQA: 4196>
AMResetUserVerificationGSByIP = <EMsg.AMResetUserVerificationGSByIP: 4197>
AMUpdateGSPlayStats = <EMsg.AMUpdateGSPlayStats: 4198>
AMSupportEnableOrDisable = <EMsg.AMSupportEnableOrDisable: 4199>
AMGetComments = <EMsg.AMGetComments: 4200>
AMGetCommentsResponse = <EMsg.AMGetCommentsResponse: 4201>
AMAddComment = <EMsg.AMAddComment: 4202>
AMAddCommentResponse = <EMsg.AMAddCommentResponse: 4203>
AMDeleteComment = <EMsg.AMDeleteComment: 4204>
AMDeleteCommentResponse = <EMsg.AMDeleteCommentResponse: 4205>
AMGetPurchaseStatus = <EMsg.AMGetPurchaseStatus: 4206>
AMSupportIsAccountEnabled = <EMsg.AMSupportIsAccountEnabled: 4209>
AMSupportIsAccountEnabledResponse = <EMsg.AMSupportIsAccountEnabledResponse: 4210>
AMGetUserStats = <EMsg.AMGetUserStats: 4211>
AMSupportKickSession = <EMsg.AMSupportKickSession: 4212>
AMGSSearch = <EMsg.AMGSSearch: 4213>
MarketingMessageUpdate = <EMsg.MarketingMessageUpdate: 4216>
AMRouteFriendMsg = <EMsg.AMRouteFriendMsg: 4219>
AMTicketAuthRequestOrResponse = <EMsg.AMTicketAuthRequestOrResponse: 4220>
AMVerifyDepotManagementRights = <EMsg.AMVerifyDepotManagementRights: 4222>
AMVerifyDepotManagementRightsResponse = <EMsg.AMVerifyDepotManagementRightsResponse: 4223>
AMAddFreeLicense = <EMsg.AMAddFreeLicense: 4224>
AMGetUserFriendsMinutesPlayed = <EMsg.AMGetUserFriendsMinutesPlayed: 4225>
AMGetUserFriendsMinutesPlayedResponse = <EMsg.AMGetUserFriendsMinutesPlayedResponse: 4226>
AMGetUserMinutesPlayed = <EMsg.AMGetUserMinutesPlayed: 4227>
AMGetUserMinutesPlayedResponse = <EMsg.AMGetUserMinutesPlayedResponse: 4228>
AMValidateEmailLinkResponse = <EMsg.AMValidateEmailLinkResponse: 4232>
AMAddUsersToMarketingTreatment = <EMsg.AMAddUsersToMarketingTreatment: 4234>
AMStoreUserStats = <EMsg.AMStoreUserStats: 4236>
AMGetUserGameplayInfo = <EMsg.AMGetUserGameplayInfo: 4237>
AMGetUserGameplayInfoResponse = <EMsg.AMGetUserGameplayInfoResponse: 4238>
AMGetCardList = <EMsg.AMGetCardList: 4239>
AMGetCardListResponse = <EMsg.AMGetCardListResponse: 4240>
AMDeleteStoredCard = <EMsg.AMDeleteStoredCard: 4241>
AMRevokeLegacyGameKeys = <EMsg.AMRevokeLegacyGameKeys: 4242>
AMGetWalletDetails = <EMsg.AMGetWalletDetails: 4244>
AMGetWalletDetailsResponse = <EMsg.AMGetWalletDetailsResponse: 4245>
AMDeleteStoredPaymentInfo = <EMsg.AMDeleteStoredPaymentInfo: 4246>
AMGetStoredPaymentSummary = <EMsg.AMGetStoredPaymentSummary: 4247>
AMGetStoredPaymentSummaryResponse = <EMsg.AMGetStoredPaymentSummaryResponse: 4248>
AMGetWalletConversionRate = <EMsg.AMGetWalletConversionRate: 4249>
AMGetWalletConversionRateResponse = <EMsg.AMGetWalletConversionRateResponse: 4250>
AMConvertWallet = <EMsg.AMConvertWallet: 4251>
AMConvertWalletResponse = <EMsg.AMConvertWalletResponse: 4252>
AMRelayGetFriendsWhoPlayGame = <EMsg.AMRelayGetFriendsWhoPlayGame: 4253>
AMRelayGetFriendsWhoPlayGameResponse = <EMsg.AMRelayGetFriendsWhoPlayGameResponse: 4254>
AMSetPreApproval = <EMsg.AMSetPreApproval: 4255>
AMSetPreApprovalResponse = <EMsg.AMSetPreApprovalResponse: 4256>
AMMarketingTreatmentUpdate = <EMsg.AMMarketingTreatmentUpdate: 4257>
AMCreateRefund = <EMsg.AMCreateRefund: 4258>
AMCreateRefundResponse = <EMsg.AMCreateRefundResponse: 4259>
AMCreateChargeback = <EMsg.AMCreateChargeback: 4260>
AMCreateChargebackResponse = <EMsg.AMCreateChargebackResponse: 4261>
AMCreateDispute = <EMsg.AMCreateDispute: 4262>
AMCreateDisputeResponse = <EMsg.AMCreateDisputeResponse: 4263>
AMClearDispute = <EMsg.AMClearDispute: 4264>
AMClearDisputeResponse = <EMsg.AMClearDisputeResponse: 4265>
AMPlayerNicknameList = <EMsg.AMPlayerNicknameList: 4266>
AMPlayerNicknameListResponse = <EMsg.AMPlayerNicknameListResponse: 4267>
AMSetDRMTestConfig = <EMsg.AMSetDRMTestConfig: 4268>
AMGetUserCurrentGameInfo = <EMsg.AMGetUserCurrentGameInfo: 4269>
AMGetUserCurrentGameInfoResponse = <EMsg.AMGetUserCurrentGameInfoResponse: 4270>
AMGetGSPlayerList = <EMsg.AMGetGSPlayerList: 4271>
AMGetGSPlayerListResponse = <EMsg.AMGetGSPlayerListResponse: 4272>
AMUpdatePersonaStateCache = <EMsg.AMUpdatePersonaStateCache: 4275>
AMGetGameMembers = <EMsg.AMGetGameMembers: 4276>
AMGetGameMembersResponse = <EMsg.AMGetGameMembersResponse: 4277>
AMGetSteamIDForMicroTxn = <EMsg.AMGetSteamIDForMicroTxn: 4278>
AMGetSteamIDForMicroTxnResponse = <EMsg.AMGetSteamIDForMicroTxnResponse: 4279>
AMAddPublisherUser = <EMsg.AMAddPublisherUser: 4280>
AMRemovePublisherUser = <EMsg.AMRemovePublisherUser: 4281>
AMGetUserLicenseList = <EMsg.AMGetUserLicenseList: 4282>
AMGetUserLicenseListResponse = <EMsg.AMGetUserLicenseListResponse: 4283>
AMReloadGameGroupPolicy = <EMsg.AMReloadGameGroupPolicy: 4284>
AMAddFreeLicenseResponse = <EMsg.AMAddFreeLicenseResponse: 4285>
AMVACStatusUpdate = <EMsg.AMVACStatusUpdate: 4286>
AMGetAccountDetails = <EMsg.AMGetAccountDetails: 4287>
AMGetAccountDetailsResponse = <EMsg.AMGetAccountDetailsResponse: 4288>
AMGetPlayerLinkDetails = <EMsg.AMGetPlayerLinkDetails: 4289>
AMGetPlayerLinkDetailsResponse = <EMsg.AMGetPlayerLinkDetailsResponse: 4290>
AMSubscribeToPersonaFeed = <EMsg.AMSubscribeToPersonaFeed: 4291>
AMGetUserVacBanList = <EMsg.AMGetUserVacBanList: 4292>
AMGetUserVacBanListResponse = <EMsg.AMGetUserVacBanListResponse: 4293>
AMGetAccountFlagsForWGSpoofing = <EMsg.AMGetAccountFlagsForWGSpoofing: 4294>
AMGetAccountFlagsForWGSpoofingResponse = <EMsg.AMGetAccountFlagsForWGSpoofingResponse: 4295>
AMGetFriendsWishlistInfo = <EMsg.AMGetFriendsWishlistInfo: 4296>
AMGetFriendsWishlistInfoResponse = <EMsg.AMGetFriendsWishlistInfoResponse: 4297>
AMGetClanOfficers = <EMsg.AMGetClanOfficers: 4298>
AMGetClanOfficersResponse = <EMsg.AMGetClanOfficersResponse: 4299>
AMNameChange = <EMsg.AMNameChange: 4300>
AMGetNameHistory = <EMsg.AMGetNameHistory: 4301>
AMGetNameHistoryResponse = <EMsg.AMGetNameHistoryResponse: 4302>
AMUpdateProviderStatus = <EMsg.AMUpdateProviderStatus: 4305>
AMClearPersonaMetadataBlob = <EMsg.AMClearPersonaMetadataBlob: 4306>
AMSupportRemoveAccountSecurity = <EMsg.AMSupportRemoveAccountSecurity: 4307>
AMIsAccountInCaptchaGracePeriod = <EMsg.AMIsAccountInCaptchaGracePeriod: 4308>
AMIsAccountInCaptchaGracePeriodResponse = <EMsg.AMIsAccountInCaptchaGracePeriodResponse: 4309>
AMAccountPS3UnlinkResponse = <EMsg.AMAccountPS3UnlinkResponse: 4311>
AMStoreUserStatsResponse = <EMsg.AMStoreUserStatsResponse: 4312>
AMGetAccountPSNInfo = <EMsg.AMGetAccountPSNInfo: 4313>
AMGetAccountPSNInfoResponse = <EMsg.AMGetAccountPSNInfoResponse: 4314>
AMAuthenticatedPlayerList = <EMsg.AMAuthenticatedPlayerList: 4315>
AMGetUserGifts = <EMsg.AMGetUserGifts: 4316>
AMGetUserGiftsResponse = <EMsg.AMGetUserGiftsResponse: 4317>
AMTransferLockedGifts = <EMsg.AMTransferLockedGifts: 4320>
AMTransferLockedGiftsResponse = <EMsg.AMTransferLockedGiftsResponse: 4321>
AMPlayerHostedOnGameServer = <EMsg.AMPlayerHostedOnGameServer: 4322>
AMGetAccountBanInfo = <EMsg.AMGetAccountBanInfo: 4323>
AMGetAccountBanInfoResponse = <EMsg.AMGetAccountBanInfoResponse: 4324>
AMRecordBanEnforcement = <EMsg.AMRecordBanEnforcement: 4325>
AMRollbackGiftTransfer = <EMsg.AMRollbackGiftTransfer: 4326>
AMRollbackGiftTransferResponse = <EMsg.AMRollbackGiftTransferResponse: 4327>
AMHandlePendingTransaction = <EMsg.AMHandlePendingTransaction: 4328>
AMRequestClanDetails = <EMsg.AMRequestClanDetails: 4329>
AMDeleteStoredPaypalAgreement = <EMsg.AMDeleteStoredPaypalAgreement: 4330>
AMGameServerUpdate = <EMsg.AMGameServerUpdate: 4331>
AMGameServerRemove = <EMsg.AMGameServerRemove: 4332>
AMGetPaypalAgreements = <EMsg.AMGetPaypalAgreements: 4333>
AMGetPaypalAgreementsResponse = <EMsg.AMGetPaypalAgreementsResponse: 4334>
AMGameServerPlayerCompatibilityCheck = <EMsg.AMGameServerPlayerCompatibilityCheck: 4335>
AMGameServerPlayerCompatibilityCheckResponse = <EMsg.AMGameServerPlayerCompatibilityCheckResponse: 4336>
AMRenewLicense = <EMsg.AMRenewLicense: 4337>
AMGetAccountCommunityBanInfo = <EMsg.AMGetAccountCommunityBanInfo: 4338>
AMGetAccountCommunityBanInfoResponse = <EMsg.AMGetAccountCommunityBanInfoResponse: 4339>
AMGameServerAccountChangePassword = <EMsg.AMGameServerAccountChangePassword: 4340>
AMGameServerAccountDeleteAccount = <EMsg.AMGameServerAccountDeleteAccount: 4341>
AMRenewAgreement = <EMsg.AMRenewAgreement: 4342>
AMSendEmail = <EMsg.AMSendEmail: 4343>
AMXsollaPayment = <EMsg.AMXsollaPayment: 4344>
AMXsollaPaymentResponse = <EMsg.AMXsollaPaymentResponse: 4345>
AMAcctAllowedToPurchase = <EMsg.AMAcctAllowedToPurchase: 4346>
AMAcctAllowedToPurchaseResponse = <EMsg.AMAcctAllowedToPurchaseResponse: 4347>
AMSwapKioskDeposit = <EMsg.AMSwapKioskDeposit: 4348>
AMSwapKioskDepositResponse = <EMsg.AMSwapKioskDepositResponse: 4349>
AMSetUserGiftUnowned = <EMsg.AMSetUserGiftUnowned: 4350>
AMSetUserGiftUnownedResponse = <EMsg.AMSetUserGiftUnownedResponse: 4351>
AMClaimUnownedUserGift = <EMsg.AMClaimUnownedUserGift: 4352>
AMClaimUnownedUserGiftResponse = <EMsg.AMClaimUnownedUserGiftResponse: 4353>
AMSetClanName = <EMsg.AMSetClanName: 4354>
AMSetClanNameResponse = <EMsg.AMSetClanNameResponse: 4355>
AMGrantCoupon = <EMsg.AMGrantCoupon: 4356>
AMGrantCouponResponse = <EMsg.AMGrantCouponResponse: 4357>
AMIsPackageRestrictedInUserCountry = <EMsg.AMIsPackageRestrictedInUserCountry: 4358>
AMIsPackageRestrictedInUserCountryResponse = <EMsg.AMIsPackageRestrictedInUserCountryResponse: 4359>
AMHandlePendingTransactionResponse = <EMsg.AMHandlePendingTransactionResponse: 4360>
AMGrantGuestPasses2 = <EMsg.AMGrantGuestPasses2: 4361>
AMGrantGuestPasses2Response = <EMsg.AMGrantGuestPasses2Response: 4362>
AMSessionQuery = <EMsg.AMSessionQuery: 4363>
AMSessionQueryResponse = <EMsg.AMSessionQueryResponse: 4364>
AMGetPlayerBanDetails = <EMsg.AMGetPlayerBanDetails: 4365>
AMGetPlayerBanDetailsResponse = <EMsg.AMGetPlayerBanDetailsResponse: 4366>
AMFinalizePurchase = <EMsg.AMFinalizePurchase: 4367>
AMFinalizePurchaseResponse = <EMsg.AMFinalizePurchaseResponse: 4368>
AMPersonaChangeResponse = <EMsg.AMPersonaChangeResponse: 4372>
AMGetClanDetailsForForumCreation = <EMsg.AMGetClanDetailsForForumCreation: 4373>
AMGetClanDetailsForForumCreationResponse = <EMsg.AMGetClanDetailsForForumCreationResponse: 4374>
AMGetPendingNotificationCount = <EMsg.AMGetPendingNotificationCount: 4375>
AMGetPendingNotificationCountResponse = <EMsg.AMGetPendingNotificationCountResponse: 4376>
AMPasswordHashUpgrade = <EMsg.AMPasswordHashUpgrade: 4377>
AMMoPayPayment = <EMsg.AMMoPayPayment: 4378>
AMMoPayPaymentResponse = <EMsg.AMMoPayPaymentResponse: 4379>
AMBoaCompraPayment = <EMsg.AMBoaCompraPayment: 4380>
AMBoaCompraPaymentResponse = <EMsg.AMBoaCompraPaymentResponse: 4381>
AMExpireCaptchaByGID = <EMsg.AMExpireCaptchaByGID: 4382>
AMCompleteExternalPurchase = <EMsg.AMCompleteExternalPurchase: 4383>
AMCompleteExternalPurchaseResponse = <EMsg.AMCompleteExternalPurchaseResponse: 4384>
AMResolveNegativeWalletCredits = <EMsg.AMResolveNegativeWalletCredits: 4385>
AMResolveNegativeWalletCreditsResponse = <EMsg.AMResolveNegativeWalletCreditsResponse: 4386>
AMPayelpPayment = <EMsg.AMPayelpPayment: 4387>
AMPayelpPaymentResponse = <EMsg.AMPayelpPaymentResponse: 4388>
AMPlayerGetClanBasicDetails = <EMsg.AMPlayerGetClanBasicDetails: 4389>
AMPlayerGetClanBasicDetailsResponse = <EMsg.AMPlayerGetClanBasicDetailsResponse: 4390>
AMMOLPayment = <EMsg.AMMOLPayment: 4391>
AMMOLPaymentResponse = <EMsg.AMMOLPaymentResponse: 4392>
GetUserIPCountry = <EMsg.GetUserIPCountry: 4393>
GetUserIPCountryResponse = <EMsg.GetUserIPCountryResponse: 4394>
NotificationOfSuspiciousActivity = <EMsg.NotificationOfSuspiciousActivity: 4395>
AMDegicaPayment = <EMsg.AMDegicaPayment: 4396>
AMDegicaPaymentResponse = <EMsg.AMDegicaPaymentResponse: 4397>
AMEClubPayment = <EMsg.AMEClubPayment: 4398>
AMEClubPaymentResponse = <EMsg.AMEClubPaymentResponse: 4399>
AMPayPalPaymentsHubPayment = <EMsg.AMPayPalPaymentsHubPayment: 4400>
AMPayPalPaymentsHubPaymentResponse = <EMsg.AMPayPalPaymentsHubPaymentResponse: 4401>
AMTwoFactorRecoverAuthenticatorRequest = <EMsg.AMTwoFactorRecoverAuthenticatorRequest: 4402>
AMTwoFactorRecoverAuthenticatorResponse = <EMsg.AMTwoFactorRecoverAuthenticatorResponse: 4403>
AMSmart2PayPayment = <EMsg.AMSmart2PayPayment: 4404>
AMSmart2PayPaymentResponse = <EMsg.AMSmart2PayPaymentResponse: 4405>
AMValidatePasswordResetCodeAndSendSmsRequest = <EMsg.AMValidatePasswordResetCodeAndSendSmsRequest: 4406>
AMValidatePasswordResetCodeAndSendSmsResponse = <EMsg.AMValidatePasswordResetCodeAndSendSmsResponse: 4407>
AMGetAccountResetDetailsRequest = <EMsg.AMGetAccountResetDetailsRequest: 4408>
AMGetAccountResetDetailsResponse = <EMsg.AMGetAccountResetDetailsResponse: 4409>
AMBitPayPayment = <EMsg.AMBitPayPayment: 4410>
AMBitPayPaymentResponse = <EMsg.AMBitPayPaymentResponse: 4411>
AMSendAccountInfoUpdate = <EMsg.AMSendAccountInfoUpdate: 4412>
BasePSRange = <EMsg.BasePSRange: 5000>
PSCreateShoppingCart = <EMsg.PSCreateShoppingCart: 5001>
PSCreateShoppingCartResponse = <EMsg.PSCreateShoppingCartResponse: 5002>
PSIsValidShoppingCart = <EMsg.PSIsValidShoppingCart: 5003>
PSIsValidShoppingCartResponse = <EMsg.PSIsValidShoppingCartResponse: 5004>
PSAddPackageToShoppingCart = <EMsg.PSAddPackageToShoppingCart: 5005>
PSAddPackageToShoppingCartResponse = <EMsg.PSAddPackageToShoppingCartResponse: 5006>
PSRemoveLineItemFromShoppingCart = <EMsg.PSRemoveLineItemFromShoppingCart: 5007>
PSRemoveLineItemFromShoppingCartResponse = <EMsg.PSRemoveLineItemFromShoppingCartResponse: 5008>
PSGetShoppingCartContents = <EMsg.PSGetShoppingCartContents: 5009>
PSGetShoppingCartContentsResponse = <EMsg.PSGetShoppingCartContentsResponse: 5010>
PSAddWalletCreditToShoppingCart = <EMsg.PSAddWalletCreditToShoppingCart: 5011>
PSAddWalletCreditToShoppingCartResponse = <EMsg.PSAddWalletCreditToShoppingCartResponse: 5012>
BaseUFSRange = <EMsg.BaseUFSRange: 5200>
ClientUFSUploadFileRequest = <EMsg.ClientUFSUploadFileRequest: 5202>
ClientUFSUploadFileResponse = <EMsg.ClientUFSUploadFileResponse: 5203>
ClientUFSUploadFileChunk = <EMsg.ClientUFSUploadFileChunk: 5204>
ClientUFSUploadFileFinished = <EMsg.ClientUFSUploadFileFinished: 5205>
ClientUFSGetFileListForApp = <EMsg.ClientUFSGetFileListForApp: 5206>
ClientUFSGetFileListForAppResponse = <EMsg.ClientUFSGetFileListForAppResponse: 5207>
ClientUFSDownloadRequest = <EMsg.ClientUFSDownloadRequest: 5210>
ClientUFSDownloadResponse = <EMsg.ClientUFSDownloadResponse: 5211>
ClientUFSDownloadChunk = <EMsg.ClientUFSDownloadChunk: 5212>
ClientUFSLoginRequest = <EMsg.ClientUFSLoginRequest: 5213>
ClientUFSLoginResponse = <EMsg.ClientUFSLoginResponse: 5214>
UFSReloadPartitionInfo = <EMsg.UFSReloadPartitionInfo: 5215>
ClientUFSTransferHeartbeat = <EMsg.ClientUFSTransferHeartbeat: 5216>
UFSSynchronizeFile = <EMsg.UFSSynchronizeFile: 5217>
UFSSynchronizeFileResponse = <EMsg.UFSSynchronizeFileResponse: 5218>
ClientUFSDeleteFileRequest = <EMsg.ClientUFSDeleteFileRequest: 5219>
ClientUFSDeleteFileResponse = <EMsg.ClientUFSDeleteFileResponse: 5220>
UFSDownloadRequest = <EMsg.UFSDownloadRequest: 5221>
UFSDownloadResponse = <EMsg.UFSDownloadResponse: 5222>
UFSDownloadChunk = <EMsg.UFSDownloadChunk: 5223>
ClientUFSGetUGCDetails = <EMsg.ClientUFSGetUGCDetails: 5226>
ClientUFSGetUGCDetailsResponse = <EMsg.ClientUFSGetUGCDetailsResponse: 5227>
UFSUpdateFileFlags = <EMsg.UFSUpdateFileFlags: 5228>
UFSUpdateFileFlagsResponse = <EMsg.UFSUpdateFileFlagsResponse: 5229>
ClientUFSGetSingleFileInfo = <EMsg.ClientUFSGetSingleFileInfo: 5230>
ClientUFSGetSingleFileInfoResponse = <EMsg.ClientUFSGetSingleFileInfoResponse: 5231>
ClientUFSShareFile = <EMsg.ClientUFSShareFile: 5232>
ClientUFSShareFileResponse = <EMsg.ClientUFSShareFileResponse: 5233>
UFSReloadAccount = <EMsg.UFSReloadAccount: 5234>
UFSReloadAccountResponse = <EMsg.UFSReloadAccountResponse: 5235>
UFSUpdateRecordBatched = <EMsg.UFSUpdateRecordBatched: 5236>
UFSUpdateRecordBatchedResponse = <EMsg.UFSUpdateRecordBatchedResponse: 5237>
UFSMigrateFile = <EMsg.UFSMigrateFile: 5238>
UFSMigrateFileResponse = <EMsg.UFSMigrateFileResponse: 5239>
UFSGetUGCURLs = <EMsg.UFSGetUGCURLs: 5240>
UFSGetUGCURLsResponse = <EMsg.UFSGetUGCURLsResponse: 5241>
UFSHttpUploadFileFinishRequest = <EMsg.UFSHttpUploadFileFinishRequest: 5242>
UFSHttpUploadFileFinishResponse = <EMsg.UFSHttpUploadFileFinishResponse: 5243>
UFSDownloadStartRequest = <EMsg.UFSDownloadStartRequest: 5244>
UFSDownloadStartResponse = <EMsg.UFSDownloadStartResponse: 5245>
UFSDownloadChunkRequest = <EMsg.UFSDownloadChunkRequest: 5246>
UFSDownloadChunkResponse = <EMsg.UFSDownloadChunkResponse: 5247>
UFSDownloadFinishRequest = <EMsg.UFSDownloadFinishRequest: 5248>
UFSDownloadFinishResponse = <EMsg.UFSDownloadFinishResponse: 5249>
UFSFlushURLCache = <EMsg.UFSFlushURLCache: 5250>
UFSUploadCommit = <EMsg.UFSUploadCommit: 5251>
UFSUploadCommitResponse = <EMsg.UFSUploadCommitResponse: 5252>
UFSMigrateFileAppID = <EMsg.UFSMigrateFileAppID: 5253>
UFSMigrateFileAppIDResponse = <EMsg.UFSMigrateFileAppIDResponse: 5254>
BaseClient2 = <EMsg.BaseClient2: 5400>
ClientRequestForgottenPasswordEmail = <EMsg.ClientRequestForgottenPasswordEmail: 5401>
ClientRequestForgottenPasswordEmailResponse = <EMsg.ClientRequestForgottenPasswordEmailResponse: 5402>
ClientCreateAccountResponse = <EMsg.ClientCreateAccountResponse: 5403>
ClientResetForgottenPassword = <EMsg.ClientResetForgottenPassword: 5404>
ClientResetForgottenPasswordResponse = <EMsg.ClientResetForgottenPasswordResponse: 5405>
ClientCreateAccount2 = <EMsg.ClientCreateAccount2: 5406>
ClientInformOfResetForgottenPassword = <EMsg.ClientInformOfResetForgottenPassword: 5407>
ClientInformOfResetForgottenPasswordResponse = <EMsg.ClientInformOfResetForgottenPasswordResponse: 5408>
ClientAnonUserLogOn_Deprecated = <EMsg.ClientAnonUserLogOn_Deprecated: 5409>
ClientGamesPlayedWithDataBlob = <EMsg.ClientGamesPlayedWithDataBlob: 5410>
ClientUpdateUserGameInfo = <EMsg.ClientUpdateUserGameInfo: 5411>
ClientFileToDownload = <EMsg.ClientFileToDownload: 5412>
ClientFileToDownloadResponse = <EMsg.ClientFileToDownloadResponse: 5413>
ClientLBSSetScore = <EMsg.ClientLBSSetScore: 5414>
ClientLBSSetScoreResponse = <EMsg.ClientLBSSetScoreResponse: 5415>
ClientLBSFindOrCreateLB = <EMsg.ClientLBSFindOrCreateLB: 5416>
ClientLBSFindOrCreateLBResponse = <EMsg.ClientLBSFindOrCreateLBResponse: 5417>
ClientLBSGetLBEntries = <EMsg.ClientLBSGetLBEntries: 5418>
ClientLBSGetLBEntriesResponse = <EMsg.ClientLBSGetLBEntriesResponse: 5419>
ClientMarketingMessageUpdate = <EMsg.ClientMarketingMessageUpdate: 5420>
ClientChatDeclined = <EMsg.ClientChatDeclined: 5426>
ClientFriendMsgIncoming = <EMsg.ClientFriendMsgIncoming: 5427>
ClientAuthList_Deprecated = <EMsg.ClientAuthList_Deprecated: 5428>
ClientTicketAuthComplete = <EMsg.ClientTicketAuthComplete: 5429>
ClientIsLimitedAccount = <EMsg.ClientIsLimitedAccount: 5430>
ClientRequestAuthList = <EMsg.ClientRequestAuthList: 5431>
ClientAuthList = <EMsg.ClientAuthList: 5432>
ClientStat = <EMsg.ClientStat: 5433>
ClientP2PConnectionInfo = <EMsg.ClientP2PConnectionInfo: 5434>
ClientP2PConnectionFailInfo = <EMsg.ClientP2PConnectionFailInfo: 5435>
ClientGetNumberOfCurrentPlayers = <EMsg.ClientGetNumberOfCurrentPlayers: 5436>
ClientGetNumberOfCurrentPlayersResponse = <EMsg.ClientGetNumberOfCurrentPlayersResponse: 5437>
ClientGetDepotDecryptionKey = <EMsg.ClientGetDepotDecryptionKey: 5438>
ClientGetDepotDecryptionKeyResponse = <EMsg.ClientGetDepotDecryptionKeyResponse: 5439>
GSPerformHardwareSurvey = <EMsg.GSPerformHardwareSurvey: 5440>
ClientGetAppBetaPasswords = <EMsg.ClientGetAppBetaPasswords: 5441>
ClientGetAppBetaPasswordsResponse = <EMsg.ClientGetAppBetaPasswordsResponse: 5442>
ClientEnableTestLicense = <EMsg.ClientEnableTestLicense: 5443>
ClientEnableTestLicenseResponse = <EMsg.ClientEnableTestLicenseResponse: 5444>
ClientDisableTestLicense = <EMsg.ClientDisableTestLicense: 5445>
ClientDisableTestLicenseResponse = <EMsg.ClientDisableTestLicenseResponse: 5446>
ClientRequestValidationMail = <EMsg.ClientRequestValidationMail: 5448>
ClientRequestValidationMailResponse = <EMsg.ClientRequestValidationMailResponse: 5449>
ClientCheckAppBetaPassword = <EMsg.ClientCheckAppBetaPassword: 5450>
ClientCheckAppBetaPasswordResponse = <EMsg.ClientCheckAppBetaPasswordResponse: 5451>
ClientToGC = <EMsg.ClientToGC: 5452>
ClientFromGC = <EMsg.ClientFromGC: 5453>
ClientRequestChangeMail = <EMsg.ClientRequestChangeMail: 5454>
ClientRequestChangeMailResponse = <EMsg.ClientRequestChangeMailResponse: 5455>
ClientEmailAddrInfo = <EMsg.ClientEmailAddrInfo: 5456>
ClientPasswordChange3 = <EMsg.ClientPasswordChange3: 5457>
ClientEmailChange3 = <EMsg.ClientEmailChange3: 5458>
ClientPersonalQAChange3 = <EMsg.ClientPersonalQAChange3: 5459>
ClientResetForgottenPassword3 = <EMsg.ClientResetForgottenPassword3: 5460>
ClientRequestForgottenPasswordEmail3 = <EMsg.ClientRequestForgottenPasswordEmail3: 5461>
ClientCreateAccount3 = <EMsg.ClientCreateAccount3: 5462>
ClientNewLoginKey = <EMsg.ClientNewLoginKey: 5463>
ClientNewLoginKeyAccepted = <EMsg.ClientNewLoginKeyAccepted: 5464>
ClientLogOnWithHash_Deprecated = <EMsg.ClientLogOnWithHash_Deprecated: 5465>
ClientStoreUserStats2 = <EMsg.ClientStoreUserStats2: 5466>
ClientStatsUpdated = <EMsg.ClientStatsUpdated: 5467>
ClientActivateOEMLicense = <EMsg.ClientActivateOEMLicense: 5468>
ClientRegisterOEMMachine = <EMsg.ClientRegisterOEMMachine: 5469>
ClientRegisterOEMMachineResponse = <EMsg.ClientRegisterOEMMachineResponse: 5470>
ClientRequestedClientStats = <EMsg.ClientRequestedClientStats: 5480>
ClientStat2Int32 = <EMsg.ClientStat2Int32: 5481>
ClientStat2 = <EMsg.ClientStat2: 5482>
ClientVerifyPassword = <EMsg.ClientVerifyPassword: 5483>
ClientVerifyPasswordResponse = <EMsg.ClientVerifyPasswordResponse: 5484>
ClientDRMDownloadRequest = <EMsg.ClientDRMDownloadRequest: 5485>
ClientDRMDownloadResponse = <EMsg.ClientDRMDownloadResponse: 5486>
ClientDRMFinalResult = <EMsg.ClientDRMFinalResult: 5487>
ClientGetFriendsWhoPlayGame = <EMsg.ClientGetFriendsWhoPlayGame: 5488>
ClientGetFriendsWhoPlayGameResponse = <EMsg.ClientGetFriendsWhoPlayGameResponse: 5489>
ClientOGSBeginSession = <EMsg.ClientOGSBeginSession: 5490>
ClientOGSBeginSessionResponse = <EMsg.ClientOGSBeginSessionResponse: 5491>
ClientOGSEndSession = <EMsg.ClientOGSEndSession: 5492>
ClientOGSEndSessionResponse = <EMsg.ClientOGSEndSessionResponse: 5493>
ClientOGSWriteRow = <EMsg.ClientOGSWriteRow: 5494>
ClientDRMTest = <EMsg.ClientDRMTest: 5495>
ClientDRMTestResult = <EMsg.ClientDRMTestResult: 5496>
ClientServerUnavailable = <EMsg.ClientServerUnavailable: 5500>
ClientServersAvailable = <EMsg.ClientServersAvailable: 5501>
ClientRegisterAuthTicketWithCM = <EMsg.ClientRegisterAuthTicketWithCM: 5502>
ClientGCMsgFailed = <EMsg.ClientGCMsgFailed: 5503>
ClientMicroTxnAuthRequest = <EMsg.ClientMicroTxnAuthRequest: 5504>
ClientMicroTxnAuthorize = <EMsg.ClientMicroTxnAuthorize: 5505>
ClientMicroTxnAuthorizeResponse = <EMsg.ClientMicroTxnAuthorizeResponse: 5506>
ClientAppMinutesPlayedData = <EMsg.ClientAppMinutesPlayedData: 5507>
ClientGetMicroTxnInfo = <EMsg.ClientGetMicroTxnInfo: 5508>
ClientGetMicroTxnInfoResponse = <EMsg.ClientGetMicroTxnInfoResponse: 5509>
ClientMarketingMessageUpdate2 = <EMsg.ClientMarketingMessageUpdate2: 5510>
ClientDeregisterWithServer = <EMsg.ClientDeregisterWithServer: 5511>
ClientSubscribeToPersonaFeed = <EMsg.ClientSubscribeToPersonaFeed: 5512>
ClientLogon = <EMsg.ClientLogon: 5514>
ClientGetClientDetails = <EMsg.ClientGetClientDetails: 5515>
ClientGetClientDetailsResponse = <EMsg.ClientGetClientDetailsResponse: 5516>
ClientReportOverlayDetourFailure = <EMsg.ClientReportOverlayDetourFailure: 5517>
ClientGetClientAppList = <EMsg.ClientGetClientAppList: 5518>
ClientGetClientAppListResponse = <EMsg.ClientGetClientAppListResponse: 5519>
ClientInstallClientApp = <EMsg.ClientInstallClientApp: 5520>
ClientInstallClientAppResponse = <EMsg.ClientInstallClientAppResponse: 5521>
ClientUninstallClientApp = <EMsg.ClientUninstallClientApp: 5522>
ClientUninstallClientAppResponse = <EMsg.ClientUninstallClientAppResponse: 5523>
ClientSetClientAppUpdateState = <EMsg.ClientSetClientAppUpdateState: 5524>
ClientSetClientAppUpdateStateResponse = <EMsg.ClientSetClientAppUpdateStateResponse: 5525>
ClientRequestEncryptedAppTicket = <EMsg.ClientRequestEncryptedAppTicket: 5526>
ClientRequestEncryptedAppTicketResponse = <EMsg.ClientRequestEncryptedAppTicketResponse: 5527>
ClientWalletInfoUpdate = <EMsg.ClientWalletInfoUpdate: 5528>
ClientLBSSetUGC = <EMsg.ClientLBSSetUGC: 5529>
ClientLBSSetUGCResponse = <EMsg.ClientLBSSetUGCResponse: 5530>
ClientAMGetClanOfficers = <EMsg.ClientAMGetClanOfficers: 5531>
ClientAMGetClanOfficersResponse = <EMsg.ClientAMGetClanOfficersResponse: 5532>
ClientCheckFileSignature = <EMsg.ClientCheckFileSignature: 5533>
ClientCheckFileSignatureResponse = <EMsg.ClientCheckFileSignatureResponse: 5534>
ClientFriendProfileInfo = <EMsg.ClientFriendProfileInfo: 5535>
ClientFriendProfileInfoResponse = <EMsg.ClientFriendProfileInfoResponse: 5536>
ClientUpdateMachineAuth = <EMsg.ClientUpdateMachineAuth: 5537>
ClientUpdateMachineAuthResponse = <EMsg.ClientUpdateMachineAuthResponse: 5538>
ClientReadMachineAuth = <EMsg.ClientReadMachineAuth: 5539>
ClientReadMachineAuthResponse = <EMsg.ClientReadMachineAuthResponse: 5540>
ClientRequestMachineAuth = <EMsg.ClientRequestMachineAuth: 5541>
ClientRequestMachineAuthResponse = <EMsg.ClientRequestMachineAuthResponse: 5542>
ClientScreenshotsChanged = <EMsg.ClientScreenshotsChanged: 5543>
ClientEmailChange4 = <EMsg.ClientEmailChange4: 5544>
ClientEmailChangeResponse4 = <EMsg.ClientEmailChangeResponse4: 5545>
ClientGetCDNAuthToken = <EMsg.ClientGetCDNAuthToken: 5546>
ClientGetCDNAuthTokenResponse = <EMsg.ClientGetCDNAuthTokenResponse: 5547>
ClientDownloadRateStatistics = <EMsg.ClientDownloadRateStatistics: 5548>
ClientRequestAccountData = <EMsg.ClientRequestAccountData: 5549>
ClientRequestAccountDataResponse = <EMsg.ClientRequestAccountDataResponse: 5550>
ClientResetForgottenPassword4 = <EMsg.ClientResetForgottenPassword4: 5551>
ClientHideFriend = <EMsg.ClientHideFriend: 5552>
ClientFriendsGroupsList = <EMsg.ClientFriendsGroupsList: 5553>
ClientGetClanActivityCounts = <EMsg.ClientGetClanActivityCounts: 5554>
ClientGetClanActivityCountsResponse = <EMsg.ClientGetClanActivityCountsResponse: 5555>
ClientOGSReportString = <EMsg.ClientOGSReportString: 5556>
ClientOGSReportBug = <EMsg.ClientOGSReportBug: 5557>
ClientSentLogs = <EMsg.ClientSentLogs: 5558>
ClientLogonGameServer = <EMsg.ClientLogonGameServer: 5559>
AMClientCreateFriendsGroup = <EMsg.AMClientCreateFriendsGroup: 5560>
AMClientCreateFriendsGroupResponse = <EMsg.AMClientCreateFriendsGroupResponse: 5561>
AMClientDeleteFriendsGroup = <EMsg.AMClientDeleteFriendsGroup: 5562>
AMClientDeleteFriendsGroupResponse = <EMsg.AMClientDeleteFriendsGroupResponse: 5563>
AMClientRenameFriendsGroup = <EMsg.AMClientRenameFriendsGroup: 5564>
AMClientRenameFriendsGroupResponse = <EMsg.AMClientRenameFriendsGroupResponse: 5565>
AMClientAddFriendToGroup = <EMsg.AMClientAddFriendToGroup: 5566>
AMClientAddFriendToGroupResponse = <EMsg.AMClientAddFriendToGroupResponse: 5567>
AMClientRemoveFriendFromGroup = <EMsg.AMClientRemoveFriendFromGroup: 5568>
AMClientRemoveFriendFromGroupResponse = <EMsg.AMClientRemoveFriendFromGroupResponse: 5569>
ClientAMGetPersonaNameHistory = <EMsg.ClientAMGetPersonaNameHistory: 5570>
ClientAMGetPersonaNameHistoryResponse = <EMsg.ClientAMGetPersonaNameHistoryResponse: 5571>
ClientRequestFreeLicense = <EMsg.ClientRequestFreeLicense: 5572>
ClientRequestFreeLicenseResponse = <EMsg.ClientRequestFreeLicenseResponse: 5573>
ClientDRMDownloadRequestWithCrashData = <EMsg.ClientDRMDownloadRequestWithCrashData: 5574>
ClientAuthListAck = <EMsg.ClientAuthListAck: 5575>
ClientItemAnnouncements = <EMsg.ClientItemAnnouncements: 5576>
ClientRequestItemAnnouncements = <EMsg.ClientRequestItemAnnouncements: 5577>
ClientFriendMsgEchoToSender = <EMsg.ClientFriendMsgEchoToSender: 5578>
ClientChangeSteamGuardOptions = <EMsg.ClientChangeSteamGuardOptions: 5579>
ClientChangeSteamGuardOptionsResponse = <EMsg.ClientChangeSteamGuardOptionsResponse: 5580>
ClientOGSGameServerPingSample = <EMsg.ClientOGSGameServerPingSample: 5581>
ClientCommentNotifications = <EMsg.ClientCommentNotifications: 5582>
ClientRequestCommentNotifications = <EMsg.ClientRequestCommentNotifications: 5583>
ClientPersonaChangeResponse = <EMsg.ClientPersonaChangeResponse: 5584>
ClientRequestWebAPIAuthenticateUserNonce = <EMsg.ClientRequestWebAPIAuthenticateUserNonce: 5585>
ClientRequestWebAPIAuthenticateUserNonceResponse = <EMsg.ClientRequestWebAPIAuthenticateUserNonceResponse: 5586>
ClientPlayerNicknameList = <EMsg.ClientPlayerNicknameList: 5587>
AMClientSetPlayerNickname = <EMsg.AMClientSetPlayerNickname: 5588>
AMClientSetPlayerNicknameResponse = <EMsg.AMClientSetPlayerNicknameResponse: 5589>
ClientCreateAccountProto = <EMsg.ClientCreateAccountProto: 5590>
ClientCreateAccountProtoResponse = <EMsg.ClientCreateAccountProtoResponse: 5591>
ClientGetNumberOfCurrentPlayersDP = <EMsg.ClientGetNumberOfCurrentPlayersDP: 5592>
ClientGetNumberOfCurrentPlayersDPResponse = <EMsg.ClientGetNumberOfCurrentPlayersDPResponse: 5593>
ClientServiceMethod = <EMsg.ClientServiceMethod: 5594>
ClientServiceMethodResponse = <EMsg.ClientServiceMethodResponse: 5595>
ClientFriendUserStatusPublished = <EMsg.ClientFriendUserStatusPublished: 5596>
ClientCurrentUIMode = <EMsg.ClientCurrentUIMode: 5597>
ClientVanityURLChangedNotification = <EMsg.ClientVanityURLChangedNotification: 5598>
ClientUserNotifications = <EMsg.ClientUserNotifications: 5599>
BaseDFS = <EMsg.BaseDFS: 5600>
DFSGetFile = <EMsg.DFSGetFile: 5601>
DFSInstallLocalFile = <EMsg.DFSInstallLocalFile: 5602>
DFSConnection = <EMsg.DFSConnection: 5603>
DFSConnectionReply = <EMsg.DFSConnectionReply: 5604>
ClientDFSAuthenticateRequest = <EMsg.ClientDFSAuthenticateRequest: 5605>
ClientDFSAuthenticateResponse = <EMsg.ClientDFSAuthenticateResponse: 5606>
ClientDFSEndSession = <EMsg.ClientDFSEndSession: 5607>
DFSPurgeFile = <EMsg.DFSPurgeFile: 5608>
DFSRouteFile = <EMsg.DFSRouteFile: 5609>
DFSGetFileFromServer = <EMsg.DFSGetFileFromServer: 5610>
DFSAcceptedResponse = <EMsg.DFSAcceptedResponse: 5611>
DFSRequestPingback = <EMsg.DFSRequestPingback: 5612>
DFSRecvTransmitFile = <EMsg.DFSRecvTransmitFile: 5613>
DFSSendTransmitFile = <EMsg.DFSSendTransmitFile: 5614>
DFSRequestPingback2 = <EMsg.DFSRequestPingback2: 5615>
DFSResponsePingback2 = <EMsg.DFSResponsePingback2: 5616>
ClientDFSDownloadStatus = <EMsg.ClientDFSDownloadStatus: 5617>
DFSStartTransfer = <EMsg.DFSStartTransfer: 5618>
DFSTransferComplete = <EMsg.DFSTransferComplete: 5619>
DFSRouteFileResponse = <EMsg.DFSRouteFileResponse: 5620>
BaseMDS = <EMsg.BaseMDS: 5800>
ClientMDSLoginRequest = <EMsg.ClientMDSLoginRequest: 5801>
ClientMDSLoginResponse = <EMsg.ClientMDSLoginResponse: 5802>
ClientMDSUploadManifestRequest = <EMsg.ClientMDSUploadManifestRequest: 5803>
ClientMDSUploadManifestResponse = <EMsg.ClientMDSUploadManifestResponse: 5804>
ClientMDSTransmitManifestDataChunk = <EMsg.ClientMDSTransmitManifestDataChunk: 5805>
ClientMDSHeartbeat = <EMsg.ClientMDSHeartbeat: 5806>
ClientMDSUploadDepotChunks = <EMsg.ClientMDSUploadDepotChunks: 5807>
ClientMDSUploadDepotChunksResponse = <EMsg.ClientMDSUploadDepotChunksResponse: 5808>
ClientMDSInitDepotBuildRequest = <EMsg.ClientMDSInitDepotBuildRequest: 5809>
ClientMDSInitDepotBuildResponse = <EMsg.ClientMDSInitDepotBuildResponse: 5810>
AMToMDSGetDepotDecryptionKey = <EMsg.AMToMDSGetDepotDecryptionKey: 5812>
MDSToAMGetDepotDecryptionKeyResponse = <EMsg.MDSToAMGetDepotDecryptionKeyResponse: 5813>
MDSGetVersionsForDepot = <EMsg.MDSGetVersionsForDepot: 5814>
MDSGetVersionsForDepotResponse = <EMsg.MDSGetVersionsForDepotResponse: 5815>
ClientMDSInitWorkshopBuildRequest = <EMsg.ClientMDSInitWorkshopBuildRequest: 5816>
ClientMDSInitWorkshopBuildResponse = <EMsg.ClientMDSInitWorkshopBuildResponse: 5817>
ClientMDSGetDepotManifest = <EMsg.ClientMDSGetDepotManifest: 5818>
ClientMDSGetDepotManifestResponse = <EMsg.ClientMDSGetDepotManifestResponse: 5819>
ClientMDSGetDepotManifestChunk = <EMsg.ClientMDSGetDepotManifestChunk: 5820>
ClientMDSUploadRateTest = <EMsg.ClientMDSUploadRateTest: 5823>
ClientMDSUploadRateTestResponse = <EMsg.ClientMDSUploadRateTestResponse: 5824>
MDSDownloadDepotChunksAck = <EMsg.MDSDownloadDepotChunksAck: 5825>
MDSContentServerStatsBroadcast = <EMsg.MDSContentServerStatsBroadcast: 5826>
MDSContentServerConfigRequest = <EMsg.MDSContentServerConfigRequest: 5827>
MDSContentServerConfig = <EMsg.MDSContentServerConfig: 5828>
MDSGetDepotManifest = <EMsg.MDSGetDepotManifest: 5829>
MDSGetDepotManifestResponse = <EMsg.MDSGetDepotManifestResponse: 5830>
MDSGetDepotManifestChunk = <EMsg.MDSGetDepotManifestChunk: 5831>
MDSGetDepotChunk = <EMsg.MDSGetDepotChunk: 5832>
MDSGetDepotChunkResponse = <EMsg.MDSGetDepotChunkResponse: 5833>
MDSGetDepotChunkChunk = <EMsg.MDSGetDepotChunkChunk: 5834>
MDSUpdateContentServerConfig = <EMsg.MDSUpdateContentServerConfig: 5835>
MDSGetServerListForUser = <EMsg.MDSGetServerListForUser: 5836>
MDSGetServerListForUserResponse = <EMsg.MDSGetServerListForUserResponse: 5837>
ClientMDSRegisterAppBuild = <EMsg.ClientMDSRegisterAppBuild: 5838>
ClientMDSRegisterAppBuildResponse = <EMsg.ClientMDSRegisterAppBuildResponse: 5839>
ClientMDSSetAppBuildLive = <EMsg.ClientMDSSetAppBuildLive: 5840>
ClientMDSSetAppBuildLiveResponse = <EMsg.ClientMDSSetAppBuildLiveResponse: 5841>
ClientMDSGetPrevDepotBuild = <EMsg.ClientMDSGetPrevDepotBuild: 5842>
ClientMDSGetPrevDepotBuildResponse = <EMsg.ClientMDSGetPrevDepotBuildResponse: 5843>
MDSToCSFlushChunk = <EMsg.MDSToCSFlushChunk: 5844>
ClientMDSSignInstallScript = <EMsg.ClientMDSSignInstallScript: 5845>
ClientMDSSignInstallScriptResponse = <EMsg.ClientMDSSignInstallScriptResponse: 5846>
MDSMigrateChunk = <EMsg.MDSMigrateChunk: 5847>
MDSMigrateChunkResponse = <EMsg.MDSMigrateChunkResponse: 5848>
CSBase = <EMsg.CSBase: 6200>
CSPing = <EMsg.CSPing: 6201>
CSPingResponse = <EMsg.CSPingResponse: 6202>
GMSBase = <EMsg.GMSBase: 6400>
GMSGameServerReplicate = <EMsg.GMSGameServerReplicate: 6401>
ClientGMSServerQuery = <EMsg.ClientGMSServerQuery: 6403>
GMSClientServerQueryResponse = <EMsg.GMSClientServerQueryResponse: 6404>
AMGMSGameServerUpdate = <EMsg.AMGMSGameServerUpdate: 6405>
AMGMSGameServerRemove = <EMsg.AMGMSGameServerRemove: 6406>
GameServerOutOfDate = <EMsg.GameServerOutOfDate: 6407>
DeviceAuthorizationBase = <EMsg.DeviceAuthorizationBase: 6500>
ClientAuthorizeLocalDeviceRequest = <EMsg.ClientAuthorizeLocalDeviceRequest: 6501>
ClientAuthorizeLocalDevice = <EMsg.ClientAuthorizeLocalDevice: 6502>
ClientDeauthorizeDeviceRequest = <EMsg.ClientDeauthorizeDeviceRequest: 6503>
ClientDeauthorizeDevice = <EMsg.ClientDeauthorizeDevice: 6504>
ClientUseLocalDeviceAuthorizations = <EMsg.ClientUseLocalDeviceAuthorizations: 6505>
ClientGetAuthorizedDevices = <EMsg.ClientGetAuthorizedDevices: 6506>
ClientGetAuthorizedDevicesResponse = <EMsg.ClientGetAuthorizedDevicesResponse: 6507>
AMNotifySessionDeviceAuthorized = <EMsg.AMNotifySessionDeviceAuthorized: 6508>
MMSBase = <EMsg.MMSBase: 6600>
ClientMMSCreateLobby = <EMsg.ClientMMSCreateLobby: 6601>
ClientMMSCreateLobbyResponse = <EMsg.ClientMMSCreateLobbyResponse: 6602>
ClientMMSJoinLobby = <EMsg.ClientMMSJoinLobby: 6603>
ClientMMSJoinLobbyResponse = <EMsg.ClientMMSJoinLobbyResponse: 6604>
ClientMMSLeaveLobby = <EMsg.ClientMMSLeaveLobby: 6605>
ClientMMSLeaveLobbyResponse = <EMsg.ClientMMSLeaveLobbyResponse: 6606>
ClientMMSGetLobbyList = <EMsg.ClientMMSGetLobbyList: 6607>
ClientMMSGetLobbyListResponse = <EMsg.ClientMMSGetLobbyListResponse: 6608>
ClientMMSSetLobbyData = <EMsg.ClientMMSSetLobbyData: 6609>
ClientMMSSetLobbyDataResponse = <EMsg.ClientMMSSetLobbyDataResponse: 6610>
ClientMMSGetLobbyData = <EMsg.ClientMMSGetLobbyData: 6611>
ClientMMSLobbyData = <EMsg.ClientMMSLobbyData: 6612>
ClientMMSSendLobbyChatMsg = <EMsg.ClientMMSSendLobbyChatMsg: 6613>
ClientMMSLobbyChatMsg = <EMsg.ClientMMSLobbyChatMsg: 6614>
ClientMMSSetLobbyOwner = <EMsg.ClientMMSSetLobbyOwner: 6615>
ClientMMSSetLobbyOwnerResponse = <EMsg.ClientMMSSetLobbyOwnerResponse: 6616>
ClientMMSSetLobbyGameServer = <EMsg.ClientMMSSetLobbyGameServer: 6617>
ClientMMSLobbyGameServerSet = <EMsg.ClientMMSLobbyGameServerSet: 6618>
ClientMMSUserJoinedLobby = <EMsg.ClientMMSUserJoinedLobby: 6619>
ClientMMSUserLeftLobby = <EMsg.ClientMMSUserLeftLobby: 6620>
ClientMMSInviteToLobby = <EMsg.ClientMMSInviteToLobby: 6621>
ClientMMSFlushFrenemyListCache = <EMsg.ClientMMSFlushFrenemyListCache: 6622>
ClientMMSFlushFrenemyListCacheResponse = <EMsg.ClientMMSFlushFrenemyListCacheResponse: 6623>
ClientMMSSetLobbyLinked = <EMsg.ClientMMSSetLobbyLinked: 6624>
NonStdMsgBase = <EMsg.NonStdMsgBase: 6800>
NonStdMsgMemcached = <EMsg.NonStdMsgMemcached: 6801>
NonStdMsgHTTPServer = <EMsg.NonStdMsgHTTPServer: 6802>
NonStdMsgHTTPClient = <EMsg.NonStdMsgHTTPClient: 6803>
NonStdMsgWGResponse = <EMsg.NonStdMsgWGResponse: 6804>
NonStdMsgPHPSimulator = <EMsg.NonStdMsgPHPSimulator: 6805>
NonStdMsgChase = <EMsg.NonStdMsgChase: 6806>
NonStdMsgDFSTransfer = <EMsg.NonStdMsgDFSTransfer: 6807>
NonStdMsgTests = <EMsg.NonStdMsgTests: 6808>
NonStdMsgUMQpipeAAPL = <EMsg.NonStdMsgUMQpipeAAPL: 6809>
NonStdMsgSyslog = <EMsg.NonStdMsgSyslog: 6810>
NonStdMsgLogsink = <EMsg.NonStdMsgLogsink: 6811>
NonStdMsgSteam2Emulator = <EMsg.NonStdMsgSteam2Emulator: 6812>
NonStdMsgRTMPServer = <EMsg.NonStdMsgRTMPServer: 6813>
UDSBase = <EMsg.UDSBase: 7000>
ClientUDSP2PSessionStarted = <EMsg.ClientUDSP2PSessionStarted: 7001>
ClientUDSP2PSessionEnded = <EMsg.ClientUDSP2PSessionEnded: 7002>
UDSRenderUserAuth = <EMsg.UDSRenderUserAuth: 7003>
UDSRenderUserAuthResponse = <EMsg.UDSRenderUserAuthResponse: 7004>
ClientUDSInviteToGame = <EMsg.ClientUDSInviteToGame: 7005>
UDSHasSession = <EMsg.UDSHasSession: 7006>
UDSHasSessionResponse = <EMsg.UDSHasSessionResponse: 7007>
MPASBase = <EMsg.MPASBase: 7100>
MPASVacBanReset = <EMsg.MPASVacBanReset: 7101>
KGSBase = <EMsg.KGSBase: 7200>
KGSAllocateKeyRange = <EMsg.KGSAllocateKeyRange: 7201>
KGSAllocateKeyRangeResponse = <EMsg.KGSAllocateKeyRangeResponse: 7202>
KGSGenerateKeys = <EMsg.KGSGenerateKeys: 7203>
KGSGenerateKeysResponse = <EMsg.KGSGenerateKeysResponse: 7204>
KGSRemapKeys = <EMsg.KGSRemapKeys: 7205>
KGSRemapKeysResponse = <EMsg.KGSRemapKeysResponse: 7206>
KGSGenerateGameStopWCKeys = <EMsg.KGSGenerateGameStopWCKeys: 7207>
KGSGenerateGameStopWCKeysResponse = <EMsg.KGSGenerateGameStopWCKeysResponse: 7208>
UCMBase = <EMsg.UCMBase: 7300>
ClientUCMAddScreenshot = <EMsg.ClientUCMAddScreenshot: 7301>
ClientUCMAddScreenshotResponse = <EMsg.ClientUCMAddScreenshotResponse: 7302>
UCMValidateObjectExists = <EMsg.UCMValidateObjectExists: 7303>
UCMValidateObjectExistsResponse = <EMsg.UCMValidateObjectExistsResponse: 7304>
UCMResetCommunityContent = <EMsg.UCMResetCommunityContent: 7307>
UCMResetCommunityContentResponse = <EMsg.UCMResetCommunityContentResponse: 7308>
ClientUCMDeleteScreenshot = <EMsg.ClientUCMDeleteScreenshot: 7309>
ClientUCMDeleteScreenshotResponse = <EMsg.ClientUCMDeleteScreenshotResponse: 7310>
ClientUCMPublishFile = <EMsg.ClientUCMPublishFile: 7311>
ClientUCMPublishFileResponse = <EMsg.ClientUCMPublishFileResponse: 7312>
ClientUCMGetPublishedFileDetails = <EMsg.ClientUCMGetPublishedFileDetails: 7313>
ClientUCMGetPublishedFileDetailsResponse = <EMsg.ClientUCMGetPublishedFileDetailsResponse: 7314>
ClientUCMDeletePublishedFile = <EMsg.ClientUCMDeletePublishedFile: 7315>
ClientUCMDeletePublishedFileResponse = <EMsg.ClientUCMDeletePublishedFileResponse: 7316>
ClientUCMEnumerateUserPublishedFiles = <EMsg.ClientUCMEnumerateUserPublishedFiles: 7317>
ClientUCMEnumerateUserPublishedFilesResponse = <EMsg.ClientUCMEnumerateUserPublishedFilesResponse: 7318>
ClientUCMSubscribePublishedFile = <EMsg.ClientUCMSubscribePublishedFile: 7319>
ClientUCMSubscribePublishedFileResponse = <EMsg.ClientUCMSubscribePublishedFileResponse: 7320>
ClientUCMEnumerateUserSubscribedFiles = <EMsg.ClientUCMEnumerateUserSubscribedFiles: 7321>
ClientUCMEnumerateUserSubscribedFilesResponse = <EMsg.ClientUCMEnumerateUserSubscribedFilesResponse: 7322>
ClientUCMUnsubscribePublishedFile = <EMsg.ClientUCMUnsubscribePublishedFile: 7323>
ClientUCMUnsubscribePublishedFileResponse = <EMsg.ClientUCMUnsubscribePublishedFileResponse: 7324>
ClientUCMUpdatePublishedFile = <EMsg.ClientUCMUpdatePublishedFile: 7325>
ClientUCMUpdatePublishedFileResponse = <EMsg.ClientUCMUpdatePublishedFileResponse: 7326>
UCMUpdatePublishedFile = <EMsg.UCMUpdatePublishedFile: 7327>
UCMUpdatePublishedFileResponse = <EMsg.UCMUpdatePublishedFileResponse: 7328>
UCMDeletePublishedFile = <EMsg.UCMDeletePublishedFile: 7329>
UCMDeletePublishedFileResponse = <EMsg.UCMDeletePublishedFileResponse: 7330>
UCMUpdatePublishedFileStat = <EMsg.UCMUpdatePublishedFileStat: 7331>
UCMUpdatePublishedFileBan = <EMsg.UCMUpdatePublishedFileBan: 7332>
UCMUpdatePublishedFileBanResponse = <EMsg.UCMUpdatePublishedFileBanResponse: 7333>
UCMUpdateTaggedScreenshot = <EMsg.UCMUpdateTaggedScreenshot: 7334>
UCMAddTaggedScreenshot = <EMsg.UCMAddTaggedScreenshot: 7335>
UCMRemoveTaggedScreenshot = <EMsg.UCMRemoveTaggedScreenshot: 7336>
UCMReloadPublishedFile = <EMsg.UCMReloadPublishedFile: 7337>
UCMReloadUserFileListCaches = <EMsg.UCMReloadUserFileListCaches: 7338>
UCMPublishedFileReported = <EMsg.UCMPublishedFileReported: 7339>
UCMUpdatePublishedFileIncompatibleStatus = <EMsg.UCMUpdatePublishedFileIncompatibleStatus: 7340>
UCMPublishedFilePreviewAdd = <EMsg.UCMPublishedFilePreviewAdd: 7341>
UCMPublishedFilePreviewAddResponse = <EMsg.UCMPublishedFilePreviewAddResponse: 7342>
UCMPublishedFilePreviewRemove = <EMsg.UCMPublishedFilePreviewRemove: 7343>
UCMPublishedFilePreviewRemoveResponse = <EMsg.UCMPublishedFilePreviewRemoveResponse: 7344>
UCMPublishedFilePreviewChangeSortOrder = <EMsg.UCMPublishedFilePreviewChangeSortOrder: 7345>
UCMPublishedFilePreviewChangeSortOrderResponse = <EMsg.UCMPublishedFilePreviewChangeSortOrderResponse: 7346>
ClientUCMPublishedFileSubscribed = <EMsg.ClientUCMPublishedFileSubscribed: 7347>
ClientUCMPublishedFileUnsubscribed = <EMsg.ClientUCMPublishedFileUnsubscribed: 7348>
UCMPublishedFileSubscribed = <EMsg.UCMPublishedFileSubscribed: 7349>
UCMPublishedFileUnsubscribed = <EMsg.UCMPublishedFileUnsubscribed: 7350>
UCMPublishFile = <EMsg.UCMPublishFile: 7351>
UCMPublishFileResponse = <EMsg.UCMPublishFileResponse: 7352>
UCMPublishedFileChildAdd = <EMsg.UCMPublishedFileChildAdd: 7353>
UCMPublishedFileChildAddResponse = <EMsg.UCMPublishedFileChildAddResponse: 7354>
UCMPublishedFileChildRemove = <EMsg.UCMPublishedFileChildRemove: 7355>
UCMPublishedFileChildRemoveResponse = <EMsg.UCMPublishedFileChildRemoveResponse: 7356>
UCMPublishedFileChildChangeSortOrder = <EMsg.UCMPublishedFileChildChangeSortOrder: 7357>
UCMPublishedFileChildChangeSortOrderResponse = <EMsg.UCMPublishedFileChildChangeSortOrderResponse: 7358>
UCMPublishedFileParentChanged = <EMsg.UCMPublishedFileParentChanged: 7359>
ClientUCMGetPublishedFilesForUser = <EMsg.ClientUCMGetPublishedFilesForUser: 7360>
ClientUCMGetPublishedFilesForUserResponse = <EMsg.ClientUCMGetPublishedFilesForUserResponse: 7361>
UCMGetPublishedFilesForUser = <EMsg.UCMGetPublishedFilesForUser: 7362>
UCMGetPublishedFilesForUserResponse = <EMsg.UCMGetPublishedFilesForUserResponse: 7363>
ClientUCMSetUserPublishedFileAction = <EMsg.ClientUCMSetUserPublishedFileAction: 7364>
ClientUCMSetUserPublishedFileActionResponse = <EMsg.ClientUCMSetUserPublishedFileActionResponse: 7365>
ClientUCMEnumeratePublishedFilesByUserAction = <EMsg.ClientUCMEnumeratePublishedFilesByUserAction: 7366>
ClientUCMEnumeratePublishedFilesByUserActionResponse = <EMsg.ClientUCMEnumeratePublishedFilesByUserActionResponse: 7367>
ClientUCMPublishedFileDeleted = <EMsg.ClientUCMPublishedFileDeleted: 7368>
UCMGetUserSubscribedFiles = <EMsg.UCMGetUserSubscribedFiles: 7369>
UCMGetUserSubscribedFilesResponse = <EMsg.UCMGetUserSubscribedFilesResponse: 7370>
UCMFixStatsPublishedFile = <EMsg.UCMFixStatsPublishedFile: 7371>
UCMDeleteOldScreenshot = <EMsg.UCMDeleteOldScreenshot: 7372>
UCMDeleteOldScreenshotResponse = <EMsg.UCMDeleteOldScreenshotResponse: 7373>
UCMDeleteOldVideo = <EMsg.UCMDeleteOldVideo: 7374>
UCMDeleteOldVideoResponse = <EMsg.UCMDeleteOldVideoResponse: 7375>
UCMUpdateOldScreenshotPrivacy = <EMsg.UCMUpdateOldScreenshotPrivacy: 7376>
UCMUpdateOldScreenshotPrivacyResponse = <EMsg.UCMUpdateOldScreenshotPrivacyResponse: 7377>
ClientUCMEnumerateUserSubscribedFilesWithUpdates = <EMsg.ClientUCMEnumerateUserSubscribedFilesWithUpdates: 7378>
ClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = <EMsg.ClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse: 7379>
UCMPublishedFileContentUpdated = <EMsg.UCMPublishedFileContentUpdated: 7380>
UCMPublishedFileUpdated = <EMsg.UCMPublishedFileUpdated: 7381>
ClientWorkshopItemChangesRequest = <EMsg.ClientWorkshopItemChangesRequest: 7382>
ClientWorkshopItemChangesResponse = <EMsg.ClientWorkshopItemChangesResponse: 7383>
ClientWorkshopItemInfoRequest = <EMsg.ClientWorkshopItemInfoRequest: 7384>
ClientWorkshopItemInfoResponse = <EMsg.ClientWorkshopItemInfoResponse: 7385>
FSBase = <EMsg.FSBase: 7500>
ClientRichPresenceUpload = <EMsg.ClientRichPresenceUpload: 7501>
ClientRichPresenceRequest = <EMsg.ClientRichPresenceRequest: 7502>
ClientRichPresenceInfo = <EMsg.ClientRichPresenceInfo: 7503>
FSRichPresenceRequest = <EMsg.FSRichPresenceRequest: 7504>
FSRichPresenceResponse = <EMsg.FSRichPresenceResponse: 7505>
FSComputeFrenematrix = <EMsg.FSComputeFrenematrix: 7506>
FSComputeFrenematrixResponse = <EMsg.FSComputeFrenematrixResponse: 7507>
FSPlayStatusNotification = <EMsg.FSPlayStatusNotification: 7508>
FSPublishPersonaStatus = <EMsg.FSPublishPersonaStatus: 7509>
FSAddOrRemoveFollower = <EMsg.FSAddOrRemoveFollower: 7510>
FSAddOrRemoveFollowerResponse = <EMsg.FSAddOrRemoveFollowerResponse: 7511>
FSUpdateFollowingList = <EMsg.FSUpdateFollowingList: 7512>
FSCommentNotification = <EMsg.FSCommentNotification: 7513>
FSCommentNotificationViewed = <EMsg.FSCommentNotificationViewed: 7514>
ClientFSGetFollowerCount = <EMsg.ClientFSGetFollowerCount: 7515>
ClientFSGetFollowerCountResponse = <EMsg.ClientFSGetFollowerCountResponse: 7516>
ClientFSGetIsFollowing = <EMsg.ClientFSGetIsFollowing: 7517>
ClientFSGetIsFollowingResponse = <EMsg.ClientFSGetIsFollowingResponse: 7518>
ClientFSEnumerateFollowingList = <EMsg.ClientFSEnumerateFollowingList: 7519>
ClientFSEnumerateFollowingListResponse = <EMsg.ClientFSEnumerateFollowingListResponse: 7520>
FSGetPendingNotificationCount = <EMsg.FSGetPendingNotificationCount: 7521>
FSGetPendingNotificationCountResponse = <EMsg.FSGetPendingNotificationCountResponse: 7522>
ClientFSOfflineMessageNotification = <EMsg.ClientFSOfflineMessageNotification: 7523>
ClientFSRequestOfflineMessageCount = <EMsg.ClientFSRequestOfflineMessageCount: 7524>
ClientFSGetFriendMessageHistory = <EMsg.ClientFSGetFriendMessageHistory: 7525>
ClientFSGetFriendMessageHistoryResponse = <EMsg.ClientFSGetFriendMessageHistoryResponse: 7526>
ClientFSGetFriendMessageHistoryForOfflineMessages = <EMsg.ClientFSGetFriendMessageHistoryForOfflineMessages: 7527>
ClientFSGetFriendsSteamLevels = <EMsg.ClientFSGetFriendsSteamLevels: 7528>
ClientFSGetFriendsSteamLevelsResponse = <EMsg.ClientFSGetFriendsSteamLevelsResponse: 7529>
FSRequestFriendData = <EMsg.FSRequestFriendData: 7530>
DRMRange2 = <EMsg.DRMRange2: 7600>
CEGVersionSetEnableDisableResponse = <EMsg.CEGVersionSetEnableDisableResponse: 7601>
CEGPropStatusDRMSRequest = <EMsg.CEGPropStatusDRMSRequest: 7602>
CEGPropStatusDRMSResponse = <EMsg.CEGPropStatusDRMSResponse: 7603>
CEGWhackFailureReportRequest = <EMsg.CEGWhackFailureReportRequest: 7604>
CEGWhackFailureReportResponse = <EMsg.CEGWhackFailureReportResponse: 7605>
DRMSFetchVersionSet = <EMsg.DRMSFetchVersionSet: 7606>
DRMSFetchVersionSetResponse = <EMsg.DRMSFetchVersionSetResponse: 7607>
EconBase = <EMsg.EconBase: 7700>
EconTrading_InitiateTradeRequest = <EMsg.EconTrading_InitiateTradeRequest: 7701>
EconTrading_InitiateTradeProposed = <EMsg.EconTrading_InitiateTradeProposed: 7702>
EconTrading_InitiateTradeResponse = <EMsg.EconTrading_InitiateTradeResponse: 7703>
EconTrading_InitiateTradeResult = <EMsg.EconTrading_InitiateTradeResult: 7704>
EconTrading_StartSession = <EMsg.EconTrading_StartSession: 7705>
EconTrading_CancelTradeRequest = <EMsg.EconTrading_CancelTradeRequest: 7706>
EconFlushInventoryCache = <EMsg.EconFlushInventoryCache: 7707>
EconFlushInventoryCacheResponse = <EMsg.EconFlushInventoryCacheResponse: 7708>
EconCDKeyProcessTransaction = <EMsg.EconCDKeyProcessTransaction: 7711>
EconCDKeyProcessTransactionResponse = <EMsg.EconCDKeyProcessTransactionResponse: 7712>
EconGetErrorLogs = <EMsg.EconGetErrorLogs: 7713>
EconGetErrorLogsResponse = <EMsg.EconGetErrorLogsResponse: 7714>
RMRange = <EMsg.RMRange: 7800>
RMTestVerisignOTPResponse = <EMsg.RMTestVerisignOTPResponse: 7801>
RMDeleteMemcachedKeys = <EMsg.RMDeleteMemcachedKeys: 7803>
RMRemoteInvoke = <EMsg.RMRemoteInvoke: 7804>
BadLoginIPList = <EMsg.BadLoginIPList: 7805>
RMMsgTraceAddTrigger = <EMsg.RMMsgTraceAddTrigger: 7806>
RMMsgTraceRemoveTrigger = <EMsg.RMMsgTraceRemoveTrigger: 7807>
RMMsgTraceEvent = <EMsg.RMMsgTraceEvent: 7808>
UGSBase = <EMsg.UGSBase: 7900>
ClientUGSGetGlobalStats = <EMsg.ClientUGSGetGlobalStats: 7901>
ClientUGSGetGlobalStatsResponse = <EMsg.ClientUGSGetGlobalStatsResponse: 7902>
StoreBase = <EMsg.StoreBase: 8000>
UMQBase = <EMsg.UMQBase: 8100>
UMQLogonResponse = <EMsg.UMQLogonResponse: 8101>
UMQLogoffRequest = <EMsg.UMQLogoffRequest: 8102>
UMQLogoffResponse = <EMsg.UMQLogoffResponse: 8103>
UMQSendChatMessage = <EMsg.UMQSendChatMessage: 8104>
UMQIncomingChatMessage = <EMsg.UMQIncomingChatMessage: 8105>
UMQPoll = <EMsg.UMQPoll: 8106>
UMQPollResults = <EMsg.UMQPollResults: 8107>
UMQ2AM_ClientMsgBatch = <EMsg.UMQ2AM_ClientMsgBatch: 8108>
UMQEnqueueMobileSalePromotions = <EMsg.UMQEnqueueMobileSalePromotions: 8109>
UMQEnqueueMobileAnnouncements = <EMsg.UMQEnqueueMobileAnnouncements: 8110>
WorkshopBase = <EMsg.WorkshopBase: 8200>
WorkshopAcceptTOSResponse = <EMsg.WorkshopAcceptTOSResponse: 8201>
WebAPIBase = <EMsg.WebAPIBase: 8300>
WebAPIValidateOAuth2TokenResponse = <EMsg.WebAPIValidateOAuth2TokenResponse: 8301>
WebAPIInvalidateTokensForAccount = <EMsg.WebAPIInvalidateTokensForAccount: 8302>
WebAPIRegisterGCInterfaces = <EMsg.WebAPIRegisterGCInterfaces: 8303>
WebAPIInvalidateOAuthClientCache = <EMsg.WebAPIInvalidateOAuthClientCache: 8304>
WebAPIInvalidateOAuthTokenCache = <EMsg.WebAPIInvalidateOAuthTokenCache: 8305>
WebAPISetSecrets = <EMsg.WebAPISetSecrets: 8306>
BackpackBase = <EMsg.BackpackBase: 8400>
BackpackAddToCurrency = <EMsg.BackpackAddToCurrency: 8401>
BackpackAddToCurrencyResponse = <EMsg.BackpackAddToCurrencyResponse: 8402>
CREBase = <EMsg.CREBase: 8500>
CRERankByTrend = <EMsg.CRERankByTrend: 8501>
CRERankByTrendResponse = <EMsg.CRERankByTrendResponse: 8502>
CREItemVoteSummary = <EMsg.CREItemVoteSummary: 8503>
CREItemVoteSummaryResponse = <EMsg.CREItemVoteSummaryResponse: 8504>
CRERankByVote = <EMsg.CRERankByVote: 8505>
CRERankByVoteResponse = <EMsg.CRERankByVoteResponse: 8506>
CREUpdateUserPublishedItemVote = <EMsg.CREUpdateUserPublishedItemVote: 8507>
CREUpdateUserPublishedItemVoteResponse = <EMsg.CREUpdateUserPublishedItemVoteResponse: 8508>
CREGetUserPublishedItemVoteDetails = <EMsg.CREGetUserPublishedItemVoteDetails: 8509>
CREGetUserPublishedItemVoteDetailsResponse = <EMsg.CREGetUserPublishedItemVoteDetailsResponse: 8510>
CREEnumeratePublishedFiles = <EMsg.CREEnumeratePublishedFiles: 8511>
CREEnumeratePublishedFilesResponse = <EMsg.CREEnumeratePublishedFilesResponse: 8512>
CREPublishedFileVoteAdded = <EMsg.CREPublishedFileVoteAdded: 8513>
SecretsBase = <EMsg.SecretsBase: 8600>
SecretsCredentialPairResponse = <EMsg.SecretsCredentialPairResponse: 8601>
SecretsRequestServerIdentity = <EMsg.SecretsRequestServerIdentity: 8602>
SecretsServerIdentityResponse = <EMsg.SecretsServerIdentityResponse: 8603>
SecretsUpdateServerIdentities = <EMsg.SecretsUpdateServerIdentities: 8604>
BoxMonitorBase = <EMsg.BoxMonitorBase: 8700>
BoxMonitorReportResponse = <EMsg.BoxMonitorReportResponse: 8701>
LogsinkBase = <EMsg.LogsinkBase: 8800>
PICSBase = <EMsg.PICSBase: 8900>
ClientPICSChangesSinceRequest = <EMsg.ClientPICSChangesSinceRequest: 8901>
ClientPICSChangesSinceResponse = <EMsg.ClientPICSChangesSinceResponse: 8902>
ClientPICSProductInfoRequest = <EMsg.ClientPICSProductInfoRequest: 8903>
ClientPICSProductInfoResponse = <EMsg.ClientPICSProductInfoResponse: 8904>
ClientPICSAccessTokenRequest = <EMsg.ClientPICSAccessTokenRequest: 8905>
ClientPICSAccessTokenResponse = <EMsg.ClientPICSAccessTokenResponse: 8906>
WorkerProcess = <EMsg.WorkerProcess: 9000>
WorkerProcessPingResponse = <EMsg.WorkerProcessPingResponse: 9001>
WorkerProcessShutdown = <EMsg.WorkerProcessShutdown: 9002>
DRMWorkerProcess = <EMsg.DRMWorkerProcess: 9100>
DRMWorkerProcessDRMAndSignResponse = <EMsg.DRMWorkerProcessDRMAndSignResponse: 9101>
DRMWorkerProcessSteamworksInfoRequest = <EMsg.DRMWorkerProcessSteamworksInfoRequest: 9102>
DRMWorkerProcessSteamworksInfoResponse = <EMsg.DRMWorkerProcessSteamworksInfoResponse: 9103>
DRMWorkerProcessInstallDRMDLLRequest = <EMsg.DRMWorkerProcessInstallDRMDLLRequest: 9104>
DRMWorkerProcessInstallDRMDLLResponse = <EMsg.DRMWorkerProcessInstallDRMDLLResponse: 9105>
DRMWorkerProcessSecretIdStringRequest = <EMsg.DRMWorkerProcessSecretIdStringRequest: 9106>
DRMWorkerProcessSecretIdStringResponse = <EMsg.DRMWorkerProcessSecretIdStringResponse: 9107>
DRMWorkerProcessGetDRMGuidsFromFileRequest = <EMsg.DRMWorkerProcessGetDRMGuidsFromFileRequest: 9108>
DRMWorkerProcessGetDRMGuidsFromFileResponse = <EMsg.DRMWorkerProcessGetDRMGuidsFromFileResponse: 9109>
DRMWorkerProcessInstallProcessedFilesRequest = <EMsg.DRMWorkerProcessInstallProcessedFilesRequest: 9110>
DRMWorkerProcessInstallProcessedFilesResponse = <EMsg.DRMWorkerProcessInstallProcessedFilesResponse: 9111>
DRMWorkerProcessExamineBlobRequest = <EMsg.DRMWorkerProcessExamineBlobRequest: 9112>
DRMWorkerProcessExamineBlobResponse = <EMsg.DRMWorkerProcessExamineBlobResponse: 9113>
DRMWorkerProcessDescribeSecretRequest = <EMsg.DRMWorkerProcessDescribeSecretRequest: 9114>
DRMWorkerProcessDescribeSecretResponse = <EMsg.DRMWorkerProcessDescribeSecretResponse: 9115>
DRMWorkerProcessBackfillOriginalRequest = <EMsg.DRMWorkerProcessBackfillOriginalRequest: 9116>
DRMWorkerProcessBackfillOriginalResponse = <EMsg.DRMWorkerProcessBackfillOriginalResponse: 9117>
DRMWorkerProcessValidateDRMDLLRequest = <EMsg.DRMWorkerProcessValidateDRMDLLRequest: 9118>
DRMWorkerProcessValidateDRMDLLResponse = <EMsg.DRMWorkerProcessValidateDRMDLLResponse: 9119>
DRMWorkerProcessValidateFileRequest = <EMsg.DRMWorkerProcessValidateFileRequest: 9120>
DRMWorkerProcessValidateFileResponse = <EMsg.DRMWorkerProcessValidateFileResponse: 9121>
DRMWorkerProcessSplitAndInstallRequest = <EMsg.DRMWorkerProcessSplitAndInstallRequest: 9122>
DRMWorkerProcessSplitAndInstallResponse = <EMsg.DRMWorkerProcessSplitAndInstallResponse: 9123>
DRMWorkerProcessGetBlobRequest = <EMsg.DRMWorkerProcessGetBlobRequest: 9124>
DRMWorkerProcessGetBlobResponse = <EMsg.DRMWorkerProcessGetBlobResponse: 9125>
DRMWorkerProcessEvaluateCrashRequest = <EMsg.DRMWorkerProcessEvaluateCrashRequest: 9126>
DRMWorkerProcessEvaluateCrashResponse = <EMsg.DRMWorkerProcessEvaluateCrashResponse: 9127>
DRMWorkerProcessAnalyzeFileRequest = <EMsg.DRMWorkerProcessAnalyzeFileRequest: 9128>
DRMWorkerProcessAnalyzeFileResponse = <EMsg.DRMWorkerProcessAnalyzeFileResponse: 9129>
DRMWorkerProcessUnpackBlobRequest = <EMsg.DRMWorkerProcessUnpackBlobRequest: 9130>
DRMWorkerProcessUnpackBlobResponse = <EMsg.DRMWorkerProcessUnpackBlobResponse: 9131>
DRMWorkerProcessInstallAllRequest = <EMsg.DRMWorkerProcessInstallAllRequest: 9132>
DRMWorkerProcessInstallAllResponse = <EMsg.DRMWorkerProcessInstallAllResponse: 9133>
TestWorkerProcess = <EMsg.TestWorkerProcess: 9200>
TestWorkerProcessLoadUnloadModuleResponse = <EMsg.TestWorkerProcessLoadUnloadModuleResponse: 9201>
TestWorkerProcessServiceModuleCallRequest = <EMsg.TestWorkerProcessServiceModuleCallRequest: 9202>
TestWorkerProcessServiceModuleCallResponse = <EMsg.TestWorkerProcessServiceModuleCallResponse: 9203>
QuestServerBase = <EMsg.QuestServerBase: 9300>
ClientGetEmoticonList = <EMsg.ClientGetEmoticonList: 9330>
ClientEmoticonList = <EMsg.ClientEmoticonList: 9331>
SLCBase = <EMsg.SLCBase: 9400>
SLCRequestUserSessionStatus = <EMsg.SLCRequestUserSessionStatus: 9401>
SLCSharedLicensesLockStatus = <EMsg.SLCSharedLicensesLockStatus: 9402>
ClientSharedLicensesLockStatus = <EMsg.ClientSharedLicensesLockStatus: 9403>
ClientSharedLicensesStopPlaying = <EMsg.ClientSharedLicensesStopPlaying: 9404>
ClientSharedLibraryLockStatus = <EMsg.ClientSharedLibraryLockStatus: 9405>
ClientSharedLibraryStopPlaying = <EMsg.ClientSharedLibraryStopPlaying: 9406>
SLCOwnerLibraryChanged = <EMsg.SLCOwnerLibraryChanged: 9407>
SLCSharedLibraryChanged = <EMsg.SLCSharedLibraryChanged: 9408>
RemoteClientBase = <EMsg.RemoteClientBase: 9500>
RemoteClientAuthResponse = <EMsg.RemoteClientAuthResponse: 9501>
RemoteClientAppStatus = <EMsg.RemoteClientAppStatus: 9502>
RemoteClientStartStream = <EMsg.RemoteClientStartStream: 9503>
RemoteClientStartStreamResponse = <EMsg.RemoteClientStartStreamResponse: 9504>
RemoteClientPing = <EMsg.RemoteClientPing: 9505>
RemoteClientPingResponse = <EMsg.RemoteClientPingResponse: 9506>
ClientUnlockStreaming = <EMsg.ClientUnlockStreaming: 9507>
ClientUnlockStreamingResponse = <EMsg.ClientUnlockStreamingResponse: 9508>
RemoteClientAcceptEULA = <EMsg.RemoteClientAcceptEULA: 9509>
RemoteClientGetControllerConfig = <EMsg.RemoteClientGetControllerConfig: 9510>
RemoteClientGetControllerConfigResposne = <EMsg.RemoteClientGetControllerConfigResposne: 9511>
RemoteClientStreamingEnabled = <EMsg.RemoteClientStreamingEnabled: 9512>
ClientPlayingSessionState = <EMsg.ClientPlayingSessionState: 9600>
ClientKickPlayingSession = <EMsg.ClientKickPlayingSession: 9601>
ClientBroadcastBase = <EMsg.ClientBroadcastBase: 9700>
ClientBroadcastFrames = <EMsg.ClientBroadcastFrames: 9701>
ClientBroadcastDisconnect = <EMsg.ClientBroadcastDisconnect: 9702>
ClientBroadcastScreenshot = <EMsg.ClientBroadcastScreenshot: 9703>
ClientBroadcastUploadConfig = <EMsg.ClientBroadcastUploadConfig: 9704>
BaseClient3 = <EMsg.BaseClient3: 9800>
ClientVoiceCallPreAuthorizeResponse = <EMsg.ClientVoiceCallPreAuthorizeResponse: 9801>

game_servers

Master Server Query Protocol

This module implements the legacy Steam master server protocol.

https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol

Nowadays games query servers through Steam. See steam.client.builtins.gameservers

Filters

Note

Multiple filters can be joined to together (Eg. \app\730\white\1\empty\1)

Filter code What it does
\nor\[x] A special filter, specifies that servers matching any of the following [x] conditions should not be returned
\nand\[x] A special filter, specifies that servers matching all of the following [x] conditions should not be returned
\dedicated\1 Servers running dedicated
\secure\1 Servers using anti-cheat technology (VAC, but potentially others as well)
\gamedir\[mod] Servers running the specified modification (ex. cstrike)
\map\[map] Servers running the specified map (ex. cs_italy)
\linux\1 Servers running on a Linux platform
\password\0 Servers that are not password protected
\empty\1 Servers that are not empty
\full\1 Servers that are not full
\proxy\1 Servers that are spectator proxies
\appid\[appid] Servers that are running game [appid]
\napp\[appid] Servers that are NOT running game [appid] (This was introduced to block Left 4 Dead games from the Steam Server Browser)
\noplayers\1 Servers that are empty
\white\1 Servers that are whitelisted
\gametype\[tag,...] Servers with all of the given tag(s) in sv_tags
\gamedata\[tag,...] Servers with all of the given tag(s) in their ‘hidden’ tags (L4D2)
\gamedataor\[tag,...] Servers with any of the given tag(s) in their ‘hidden’ tags (L4D2)
\name_match\[hostname] Servers with their hostname matching [hostname] (can use * as a wildcard)
\version_match\[version] Servers running version [version] (can use * as a wildcard)
\collapse_addr_hash\1 Return only one server for each unique IP address matched
\gameaddr\[ip] Return only servers on the specified IP address (port supported and optional)
Examples

Query HL Master

>>> for server_addr in gs.query_master(r'\appid\730\white\1', max_servers=3):
...     print(server_addr)
...
('146.66.152.197', 27073)
('146.66.153.124', 27057)
('146.66.152.56', 27053)

Team Fortress 2 (Source)

>>> from steam import game_servers as gs
>>> server_addr = next(gs.query_master(r'\appid\40\empty\1\secure\1'))  # single TF2 Server
>>> gs.a2s_ping(server_addr)
68.60899925231934
>>> gs.a2s_info(server_addr)
{'_ping': 74.61714744567871,
 '_type': 'source',
 'app_id': 40,
 'bots': 0,
 'environment': 'l',
 'folder': u'dmc',
 'game': u'DMC\t\t\t\t\t\t\t\t1',
 'map': u'crossfire',
 'max_players': 32,
 'name': u'\t\t\u2605\t\t All Guns party \u2605\t \tCrossfire 24/7\t\t',
 'players': 21,
 'protocol': 48,
 'server_type': 'd',
 'vac': 1,
 'visibility': 0}
>>> gs.a2s_players(server_addr)
[{'duration': 192.3097381591797, 'index': 0, 'name': '(2)Player', 'score': 4},
 {'duration': 131.6618194580078, 'index': 1, 'name': 'BOLT', 'score': 2},
 {'duration': 16.548809051513672, 'index': 2, 'name': 'Alpha', 'score': 0},
 {'duration': 1083.1539306640625, 'index': 3, 'name': 'Player', 'score': 29},
 {'duration': 446.7716064453125, 'index': 4, 'name': '(1)Player', 'score': 11},
 {'duration': 790.9588012695312, 'index': 5, 'name': 'ИВАНГАЙ', 'score': 11}]
>>> gs.a2s_rules(server_addr)
{'amx_client_languages': 1,
 'amx_nextmap': 'crossfire',
 'amx_timeleft': '00:00',
 'amxmodx_version': '1.8.2',
 ....

Ricohet (GoldSrc)

>>> from steam import game_servers as gs
>>> server_addr = next(gs.query_master(r'\appid\60'))  # get a single ip from hl2 master
>>> gs.a2s_info(server_addr, force_goldsrc=True)       # only accept goldsrc response
{'_ping': 26.59320831298828,
 '_type': 'goldsrc',
 'address': '127.0.0.1:27050',
 'bots': 0,
 'ddl': 0,
 'download_link': '',
 'environment': 'w',
 'folder': 'ricochet',
 'game': 'Ricochet',
 'link': '',
 'map': 'rc_deathmatch2',
 'max_players': 32,
 'mod': 1,
 'name': 'Anitalink.com Ricochet',
 'players': 1,
 'protocol': 47,
 'server_type': 'd',
 'size': 0,
 'type': 1,
 'vac': 1,
 'version': 1,
 'visibility': 0}
API
steam.game_servers.query_master(filter_text='\\napp\\500', max_servers=20, region=<MSRegion.World: 255>, master=('hl2master.steampowered.com', 27011), timeout=2)

Generator that returns (IP,port) pairs of servers

Warning

Valve’s master servers seem to be heavily rate limited. Queries that return a large numbers IPs will timeout before returning everything. There is no way to resume the query. Use SteamClient to access game servers in a reliable way.

Note

When specifying filter_text use raw strings otherwise python won’t treat backslashes as literal characters (e.g. query(r'\appid\730\white\1'))

Parameters:
  • filter_text (str) – filter for servers
  • region (MSRegion) – (optional) region code
  • master ((str, int)) – (optional) master server to query
Raises:

RuntimeError, socket.timeout

Returns:

a generator yielding (ip, port) pairs

Return type:

generator

steam.game_servers.a2s_info(server_addr, timeout=2, force_goldsrc=False)

Get information from a server

Note

All GoldSrc games have been updated to reply in Source format. GoldSrc format is essentially DEPRECATED. By default the function will prefer to return Source format, and will automatically fallback to GoldSrc if available.

Parameters:
  • server_addr (tuple) – (ip, port) for the server
  • force_goldsrc (bool) – (optional) only accept GoldSrc response format
  • timeout (float) – (optional) timeout in seconds
Raises:

RuntimeError, socket.timeout

Returns:

a dict with information or None on timeout

Return type:

dict

steam.game_servers.a2s_players(server_addr, timeout=2, challenge=0)

Get list of players and their info

Parameters:
  • server_addr (tuple) – (ip, port) for the server
  • timeout (float) – (optional) timeout in seconds
  • challenge (int) – (optional) challenge number
Raises:

RuntimeError, socket.timeout

Returns:

a list of players

Return type:

list

steam.game_servers.a2s_rules(server_addr, timeout=2, challenge=0)

Get rules from server

Parameters:
  • server_addr (tuple) – (ip, port) for the server
  • timeout (float) – (optional) timeout in seconds
  • challenge (int) – (optional) challenge number
Raises:

RuntimeError, socket.timeout

Returns:

a list of players

Return type:

list

steam.game_servers.a2s_ping(server_addr, timeout=2)

Ping a server

Warning

This method for pinging is considered deprecated and may not work on certian servers. Use a2s_info() instead.

Parameters:
  • server_addr (tuple) – (ip, port) for the server
  • timeout (float) – (optional) timeout in seconds
Raises:

RuntimeError, socket.timeout

Returns:

ping response in milliseconds or None for timeout

Return type:

float

globalid

class steam.globalid.GlobalID(*args, **kwargs)

Bases: int

Represents a globally unique identifier within the Steam network. Guaranteed to be unique across all racks and servers for a given Steam universe.

static new(sequence_count, start_time, process_id, box_id)

Make new GlobalID

Parameters:
  • sequence_count (int) – sequence count
  • start_time (str, datetime) – start date time of server (must be after 2005-01-01)
  • process_id (int) – process id
  • box_id (int) – box id
Returns:

Global ID integer

Return type:

int

sequence_count
Returns:sequence count for GID
Return type:int
start_time_seconds
Returns:seconds since 2005-01-01
Return type:int
start_time
Returns:start time of the server that generated this GID
Return type:datetime
process_id
Returns:process id of server
Return type:int
box_id
Returns:box id of server
Return type:int

guard

This submodule contains various functionality related to Steam Guard.

SteamAuthenticator provides methods for genereating codes and enabling 2FA on a Steam account. Operations managing the authenticator on an account require an instance of either MobileWebAuth or SteamClient. The instance needs to be logged in.

Adding an authenticator

sa = SteamAuthenticator(medium=medium)
sa.add()    # SMS code will be send to account's phone number
sa.secrets  # dict with authenticator secrets, make sure you save them

sa.finalize('SMS CODE')  # activate the authenticator

sa.get_code()  # generate 2FA code for login

sa.remove()  # removes the authenticator from the account

Warning

Before you finalize the authenticator, make sure to save your secrets. Otherwise you will lose access to the account.

Once authenticator is enabled all you need is the secrets to generate codes.

sa = SteamAuthenticator(secrets)
sa.get_code()

You can obtain the authenticator secrets from an Android device using extract_secrets_from_android_rooted(). See the function docstring for details on what is required for it to work.

class steam.guard.SteamAuthenticator(secrets=None, medium=None)

Add/Remove authenticator from an account. Generate 2FA and confirmation codes.

Parameters:
  • secret (dict) – a dict of authenticator secrets
  • medium – logged on session for steam user
steam_time_offset = None

offset from steam server time

align_time_every = 0

how often to align time with Steam (0 never, otherwise interval in seconds)

secrets = None

dict with authenticator secrets

medium = None

instance of MobileWebAuth or SteamClient

get_time()
Returns:Steam aligned timestamp
Return type:int
get_code(timestamp=None)
Parameters:timestamp (int) – time to use for code generation
Returns:two factor code
Return type:str
get_confirmation_key(tag='', timestamp=None)
Parameters:
Returns:

trade confirmation key

Return type:

str

add()

Add authenticator to an account. The account’s phone number will receive a SMS code required for finalize().

Raises:SteamAuthenticatorError
finalize(activation_code)

Finalize authenticator with received SMS code

Parameters:activation_code (str) – SMS code
Raises:SteamAuthenticatorError
remove()

Remove authenticator

Note

After removing authenticator Steam Guard will be set to email codes

Warning

Doesn’t work via SteamClient. Disabled by Valve

Raises:SteamAuthenticatorError
status(medium=None)

Fetch authenticator status for the account

Raises:SteamAuthenticatorError
Returns:dict with status parameters
Return type:dict
create_emergency_codes(code=None)

Generate emergency codes

Parameters:code (str) – SMS code
Raises:SteamAuthenticatorError
Returns:list of codes
Return type:list

Note

A confirmation code is required to generate emergency codes and this method needs to be called twice as shown below.

sa.create_emergency_codes()              # request a SMS code
sa.create_emergency_codes(code='12345')  # creates emergency codes
destroy_emergency_codes()

Destroy all emergency codes

Raises:SteamAuthenticatorError
add_phone_number(phone_number)

Add phone number to account

Then confirm it via confirm_phone_number()

Parameters:phone_number (str) – phone number with country code
Returns:success (returns False on request fail/timeout)
Return type:bool
confirm_phone_number(sms_code)

Confirm phone number with the recieved SMS code

Parameters:sms_code (str) – sms code
Returns:success (returns False on request fail/timeout)
Return type:bool
has_phone_number()

Check whether the account has a verified phone number

Returns:result
Return type:bool or None

Note

Retruns None if the web requests fails for any reason

validate_phone_number(phone_number)

Test whether phone number is valid for Steam

Parameters:phone_number (str) – phone number with country code
Returns:see example output below
Return type:dict
{'is_fixed': False,
 'is_valid': False,
 'is_voip': True,
 'number': '+1 123-555-1111',
 'success': True}
steam.guard.generate_twofactor_code(shared_secret)

Generate Steam 2FA code for login with current time

Parameters:shared_secret (bytes) – authenticator shared shared_secret
Returns:steam two factor code
Return type:str
steam.guard.generate_twofactor_code_for_time(shared_secret, timestamp)

Generate Steam 2FA code for timestamp

Parameters:
  • shared_secret (bytes) – authenticator shared secret
  • timestamp (int) – timestamp to use, if left out uses current time
Returns:

steam two factor code

Return type:

str

steam.guard.generate_confirmation_key(identity_secret, tag, timestamp)

Generate confirmation key for trades. Can only be used once.

Parameters:
  • identity_secret (bytes) – authenticator identity secret
  • tag (str) – tag identifies what the request, see list below
  • timestamp (int) – timestamp to use for generating key
Returns:

confirmation key

Return type:

bytes

Tag choices:

  • conf to load the confirmations page
  • details to load details about a trade
  • allow to confirm a trade
  • cancel to cancel a trade
steam.guard.get_time_offset()

Get time offset from steam server time via WebAPI

Returns:time offset (None when Steam WebAPI fails to respond)
Return type:int, None
steam.guard.generate_device_id(steamid)

Generate Android device id

Parameters:steamid (SteamID, int) – Steam ID
Returns:android device id
Return type:str
steam.guard.extract_secrets_from_android_rooted(adb_path='adb')

Extract Steam Authenticator secrets from a rooted Android device

Prerequisite for this to work:

  • rooted android device
  • adb binary
  • device in debug mode, connected and paired

Note

If you know how to make this work, without requiring the device to be rooted, please open a issue on github. Thanks

Parameters:adb_path (str) – path to adb binary
Raises:When there is any problem
Returns:all secrets from the device, steamid as key
Return type:dict

steamid

class steam.steamid.SteamID(*args, **kwargs)

Bases: int

Object for converting steamID to its’ various representations

SteamID()  # invalid steamid
SteamID(12345)  # accountid
SteamID('12345')
SteamID(id=12345, type='Invalid', universe='Invalid', instance=0)
SteamID(103582791429521412)  # steam64
SteamID('103582791429521412')
SteamID('STEAM_1:0:2')  # steam2
SteamID('[g:1:4]')  # steam3
class EType

Bases: steam.enums.base.SteamIntEnum

reference to EType

AnonGameServer = <EType.AnonGameServer: 4>
AnonUser = <EType.AnonUser: 10>
Chat = <EType.Chat: 8>
Clan = <EType.Clan: 7>
ConsoleUser = <EType.ConsoleUser: 9>
ContentServer = <EType.ContentServer: 6>
GameServer = <EType.GameServer: 3>
Individual = <EType.Individual: 1>
Invalid = <EType.Invalid: 0>
Max = <EType.Max: 11>
Multiseat = <EType.Multiseat: 2>
Pending = <EType.Pending: 5>
class SteamID.EUniverse

Bases: steam.enums.base.SteamIntEnum

reference to EUniverse

Beta = <EUniverse.Beta: 2>
Dev = <EUniverse.Dev: 4>
Internal = <EUniverse.Internal: 3>
Invalid = <EUniverse.Invalid: 0>
Max = <EUniverse.Max: 5>
Public = <EUniverse.Public: 1>
class SteamID.EInstanceFlag

Bases: steam.enums.base.SteamIntEnum

reference to EInstanceFlag

Clan = <EInstanceFlag.Clan: 524288>
Lobby = <EInstanceFlag.Lobby: 262144>
MMSLobby = <EInstanceFlag.MMSLobby: 131072>
SteamID.id
Returns:account id
Return type:int
SteamID.instance
Return type:int
SteamID.type
Return type:steam.enum.EType
SteamID.universe
Return type:steam.enum.EUniverse
SteamID.as_32
Returns:account id
Return type:int
SteamID.as_64
Returns:steam64 format
Return type:int
SteamID.as_steam2
Returns:steam2 format (e.g STEAM_1:0:1234)
Return type:str

Note

STEAM_X:Y:Z. The value of X should represent the universe, or 1 for Public. However, there was a bug in GoldSrc and Orange Box games and X was 0. If you need that format use SteamID.as_steam2_zero

SteamID.as_steam2_zero

For GoldSrc and Orange Box games. See SteamID.as_steam2

Returns:steam2 format (e.g STEAM_0:0:1234)
Return type:str
SteamID.as_steam3
Returns:steam3 format (e.g [U:1:1234])
Return type:str
SteamID.community_url
Returns:e.g https://steamcommunity.com/profiles/123456789
Return type:str
SteamID.is_valid()

Check whether this SteamID is valid

Return type:bool
static SteamID.from_url(url, http_timeout=30)

Takes Steam community url and returns a SteamID instance or None

See steam64_from_url() for details

Parameters:
  • url (str) – steam community url
  • http_timeout (int) – how long to wait on http request before turning None
Returns:

SteamID instance

Return type:

steam.SteamID or None

steam.steamid.steam2_to_tuple(value)
Parameters:value (str) – steam2 (e.g. STEAM_1:0:1234)
Returns:(accountid, type, universe, instance)
Return type:tuple or None

Note

The universe will be always set to 1. See SteamID.as_steam2

steam.steamid.steam3_to_tuple(value)
Parameters:value (str) – steam3 (e.g. [U:1:1234])
Returns:(accountid, type, universe, instance)
Return type:tuple or None
steam.steamid.steam64_from_url(url, http_timeout=30)

Takes a Steam Community url and returns steam64 or None

Note

Each call makes a http request to steamcommunity.com

Note

For a reliable resolving of vanity urls use ISteamUser.ResolveVanityURL web api

Parameters:
  • url (str) – steam community url
  • http_timeout (int) – how long to wait on http request before turning None
Returns:

steam64, or None if steamcommunity.com is down

Return type:

int or None

Example URLs:

https://steamcommunity.com/gid/[g:1:4]
https://steamcommunity.com/gid/103582791429521412
https://steamcommunity.com/groups/Valve
https://steamcommunity.com/profiles/[U:1:12]
https://steamcommunity.com/profiles/76561197960265740
https://steamcommunity.com/id/johnc
steam.steamid.from_url(url, http_timeout=30)

Takes Steam community url and returns a SteamID instance or None

See steam64_from_url() for details

Parameters:
  • url (str) – steam community url
  • http_timeout (int) – how long to wait on http request before turning None
Returns:

SteamID instance

Return type:

steam.SteamID or None

webapi

WebAPI provides a thin wrapper over Steam’s Web API

It is very fiendly to exploration and prototyping when using ipython, notebooks or similar. The key will determine what WebAPI interfaces and methods are available.

Note

Some endpoints don’t require a key

Currently the WebAPI can be accessed via one of two API hosts. See APIHost.

Example code:

>>> api = WebAPI(key)
>>> api.call('ISteamUser.ResolveVanityURL', vanityurl="valve", url_type=2)
>>> api.ISteamUser.ResolveVanityURL(vanityurl="valve", url_type=2)
>>> api.ISteamUser.ResolveVanityURL_v1(vanityurl="valve", url_type=2)
{'response': {'steamid': '103582791429521412', 'success': 1}}

All globals params (key, https, format, raw) can be specified on per call basis.

>>> print a.ISteamUser.ResolveVanityURL(format='vdf', raw=True, vanityurl="valve", url_type=2)
"response"
{
        "steamid"       "103582791429521412"
        "success"       "1"
}
class steam.webapi.APIHost

Enum of currently available API hosts.

Public = 'api.steampowered.com'

available over HTTP (port 80) and HTTPS (port 443)

Partner = 'partner.steam-api.com'

available over HTTPS (port 443) only

Note

Key is required for every request. If not supplied you will get HTTP 403.

class steam.webapi.WebAPI(key, format='json', raw=False, https=True, http_timeout=30, apihost='api.steampowered.com', auto_load_interfaces=True)

Steam WebAPI wrapper

Note

Interfaces and methods are populated automatically from Steam WebAPI.

Parameters:
  • key (str) – api key from https://steamcommunity.com/dev/apikey
  • format (str) – response format, either (json, vdf, or xml) only when raw=False
  • raw (class:bool) – return raw response
  • https (bool) – use https
  • http_timeout (int) – HTTP timeout in seconds
  • apihost (str) – api hostname, see APIHost
  • auto_load_interfaces (bool) – load interfaces from the Steam WebAPI

These can be specified per method call for one off calls

key = None

api key

format = 'json'

format (json, vdf, or xml)

raw = False

return raw reponse or parse

https = True

use https or not

http_timeout = 30

HTTP timeout in seconds

apihost = 'api.steampowered.com'

..versionadded:: 0.8.3 apihost hostname

interfaces = []

list of all interfaces

session = None

requests.Session from make_requests_session()

fetch_interfaces()

Returns a dict with the response from GetSupportedAPIList

Returns:dict of all interfaces and methods

The returned value can passed to load_interfaces()

load_interfaces(interfaces_dict)

Populates the namespace under the instance

call(method_path, **kwargs)

Make an API call for specific method

Parameters:
  • method_path (str) – format Interface.Method (e.g. ISteamWebAPIUtil.GetServerInfo)
  • kwargs – keyword arguments for the specific method
Returns:

response

Return type:

dict, lxml.etree.Element or str

doc()
Returns:Documentation for all interfaces and their methods
Return type:str
class steam.webapi.WebAPIInterface(interface_dict, parent)
doc()
Returns:Documentation for all methods on this interface
Return type:str
class steam.webapi.WebAPIMethod(method_dict, parent)
doc()
Returns:Documentation for this method
Return type:str
steam.webapi.webapi_request(url, method='GET', caller=None, session=None, params=None)

Low level function for calling Steam’s WebAPI

Changed in version 0.8.3.

Parameters:
  • url (str) – request url (e.g. https://api.steampowered.com/A/B/v001/)
  • method (str) – HTTP method (GET or POST)
  • caller – caller reference, caller.last_response is set to the last response
  • params (dict) – dict of WebAPI and endpoint specific params
  • session (requests.Session) – an instance requests session, or one is created per call
Returns:

response based on paramers

Return type:

dict, lxml.etree.Element, str

steam.webapi.get(interface, method, version=1, apihost='api.steampowered.com', https=True, caller=None, session=None, params=None)

Send GET request to an API endpoint

New in version 0.8.3.

Parameters:
  • interface (str) – interface name
  • method (str) – method name
  • version (int) – method version
  • apihost (str) – API hostname
  • https (bool) – whether to use HTTPS
  • params (dict) – parameters for endpoint
Returns:

endpoint response

Return type:

dict, lxml.etree.Element, str

steam.webapi.post(interface, method, version=1, apihost='api.steampowered.com', https=True, caller=None, session=None, params=None)

Send POST request to an API endpoint

New in version 0.8.3.

Parameters:
  • interface (str) – interface name
  • method (str) – method name
  • version (int) – method version
  • apihost (str) – API hostname
  • https (bool) – whether to use HTTPS
  • params (dict) – parameters for endpoint
Returns:

endpoint response

Return type:

dict, lxml.etree.Element, str

webauth

This module simplifies the process of obtaining an authenticated session for steam websites. After authentication is complete, a requests.Session is created containing the auth cookies. The session can be used to access steamcommunity.com, store.steampowered.com, and help.steampowered.com.

Warning

A web session may expire randomly, or when you login from different IP address. Some pages will return status code 401 when that happens. Keep in mind if you are trying to write robust code.

Note

If you are using SteamClient take a look at get_web_session()

Note

If you need to authenticate as a mobile device for things like trading confirmations use MobileWebAuth instead. The login process is identical, and in addition you will get oauth_token.

Example usage:

import steam.webauth as wa

user = wa.WebAuth('username', 'password')

try:
    user.login()
except wa.CaptchaRequired:
    print user.captcha_url
    # ask a human to solve captcha
    user.login(captcha='ABC123')
except wa.EmailCodeRequired:
    user.login(email_code='ZXC123')
except wa.TwoFactorCodeRequired:
    user.login(twofactor_code='ZXC123')

user.session.get('https://store.steampowered.com/account/history/')
# OR
session = user.login()
session.get('https://store.steampowered.com/account/history')

Alternatively, if Steam Guard is not enabled on the account:

try:
    session = wa.WebAuth('username', 'password').login()
except wa.HTTPError:
    pass

The WebAuth instance should be discarded once a session is obtained as it is not reusable.

class steam.webauth.WebAuth(username, password)

Bases: object

key = None
complete = False

whether authentication has been completed successfully

session_id = None

str, session id string

captcha_gid = -1
steam_id = None

SteamID (after auth is complete)

session = None

requests.Session (with auth cookies after auth is complete)

captcha_url

If a captch is required this property will return url to the image, or None

get_rsa_key(username)

Get rsa key for a given username

Parameters:username (str) – username
Returns:json response
Return type:dict
Raises:HTTPError – any problem with http request, timeouts, 5xx, 4xx etc
login(captcha='', email_code='', twofactor_code='', language='english')

Attempts web login and returns on a session with cookies set

Parameters:
  • captcha (str) – text reponse for captcha challenge
  • email_code (str) – email code for steam guard
  • twofactor_code (str) – 2FA code for steam guard
  • language (str) – select language for steam web pages (sets language cookie)
Returns:

a session on success and None otherwise

Return type:

requests.Session, None

Raises:
  • HTTPError – any problem with http request, timeouts, 5xx, 4xx etc
  • CaptchaRequired – when captcha is needed
  • EmailCodeRequired – when email is needed
  • TwoFactorCodeRequired – when 2FA is needed
  • LoginIncorrect – wrong username or password
class steam.webauth.MobileWebAuth(username, password)

Bases: steam.webauth.WebAuth

Identical to WebAuth, except it authenticates as a mobile device.

oauth_token = None

holds oauth_token after successful login

exception steam.webauth.WebAuthException

Bases: Exception

exception steam.webauth.HTTPError

Bases: steam.webauth.WebAuthException

exception steam.webauth.LoginIncorrect

Bases: steam.webauth.WebAuthException

exception steam.webauth.CaptchaRequired

Bases: steam.webauth.WebAuthException

exception steam.webauth.EmailCodeRequired

Bases: steam.webauth.WebAuthException

exception steam.webauth.TwoFactorCodeRequired

Bases: steam.webauth.WebAuthException

util

Utility package with various useful functions

steam.util.ip_from_int(ip)

Convert IP to int

Parameters:ip (str) – IP in dot-decimal notation
Return type:int
steam.util.ip_to_int(ip)

Convert int to IP

Parameters:ip (int) – int representing an IP
Returns:IP in dot-decimal notation
Return type:str
steam.util.is_proto(emsg)
Parameters:emsg (int) – emsg number
Returns:True or False
Return type:bool
steam.util.set_proto_bit(emsg)
Parameters:emsg (int) – emsg number
Returns:emsg with proto bit set
Return type:int
steam.util.clear_proto_bit(emsg)
Parameters:emsg (int) – emsg number
Returns:emsg with proto bit removed
Return type:int
steam.util.proto_to_dict(message)

Converts protobuf message instance to dict

Parameters:message – protobuf message instance
Returns:parameters and their values
Return type:dict
Raises:TypeError if message is not a proto message
steam.util.proto_fill_from_dict(message, data, clear=True)

Fills protobuf message parameters inplace from a dict

Parameters:
  • message – protobuf message instance
  • data (dict) – parameters and values
  • clear (bool) – whether clear exisiting values
Returns:

value of message paramater

Raises:

incorrect types or values will raise

steam.util.chunks(arr, size)

Splits a list into chunks

Parameters:
  • arr (list) – list to split
  • size (int) – number of elements in each chunk
Returns:

generator object

Return type:

generator

class steam.util.WeakRefKeyDict

Bases: object

Pretends to be a dictionary. Use any object (even unhashable) as key and store a value. Once the object is garbage collected, the entry is destroyed automatically.

class steam.util.WeakRefCallback(refs, key)

Bases: object

util.binary
class steam.util.binary.StructReader(data)

Bases: object

Simplifies parsing of struct data from bytes

Parameters:data (bytes) – data bytes
rlen()

Number of remaining bytes that can be read

Returns:number of remaining bytes
Return type:int
read(n=1)

Return n bytes

Parameters:n (int) – number of bytes to return
Returns:bytes
Return type:bytes
read_cstring(terminator=b'\x00')

Reads a single null termianted string

Returns:string without bytes
Return type:bytes
unpack(format_text)

Unpack bytes using struct modules format

Parameters:format_text (str) – struct’s module format
Return data:result from struct.unpack_from()
Return type:tuple
skip(n)

Skips the next n bytes

Parameters:n (int) – number of bytes to skip
util.throttle
class steam.util.throttle.ConstantRateLimit(times, seconds, exit_wait=False, sleep_func=<built-in function sleep>)

Bases: object

Context manager for enforcing constant rate on code inside the block .

rate = seconds / times

Parameters:
  • times (int) – times to execute per...
  • seconds (int) – ...seconds
  • exit_wait (bool) – whether to automatically call wait() before exiting the block
  • sleep_func (bool) – Sleep function in seconds. Default: time.sleep()

Example:

with RateLimiter(1, 5) as r:
    # code taking 1s
    r.wait()  # blocks for 4s
    # code taking 7s
    r.wait()  # doesn't block
    # code taking 1s
    r.wait()  # blocks for 4s
wait()

Blocks until the rate is met

util.web
steam.util.web.make_requests_session()
Returns:requests session
Return type:requests.Session
steam.util.web.generate_session_id()
Returns:session id
Return type:str