SteamID: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (steamid.com is no longer online)
m (Add URL for SteamProfile.co.uk - Profile lookup tool)
Line 2: Line 2:


== Format ==
== Format ==
Steam IDs consist of four components:
* Universe - what Steam system this Steam ID comes from. In almost all cases, this will be Public (see below).
* Account Type - what type of account this is (see below).
* Instance
* Account ID


=== As Represented Textually ===
=== As Represented Textually ===


==== Legacy Format ====
SteamIDs follow a fairly simple format when represented textually: "STEAM_X:Y:Z", where X, Y and Z are integers. In select cases "STEAM_ID_PENDING" or "UNKNOWN" are used (see the section 'Types of Steam Accounts' for more details).
Steam IDs follow a fairly simple format when represented textually: "STEAM_X:Y:Z", where X, Y and Z are integers. In select cases "STEAM_ID_PENDING" or "UNKNOWN" are used in the Source Engine (see the section 'Types of Steam Accounts' for more details).


* X represents the "Universe" the steam account belongs to. If 'X' is 0, then this is Universe 1 (Public).
*X represents the "Universe" the steam account belongs to.
* Y is the lowest bit of the Account ID. Thus, Y is either 0 or 1.
*Y is part of the ID number for the account. Y is either 0 or 1.
* Z is the highest 31 bits of the Account ID.
*Z is the ID number for the account (the "account number").
 
==== Modern Format ====
Steam IDs in the Steam client follow a newer format which takes all of the parameters of the identifier into account, as opposed to the legacy format which discards the instance ID.
 
The textual representation follows the pattern '[C:U:A]' or '[C:U:A:I]' depending on the type of Steam ID.
 
* C is a single character that represents the Account Type, or a combination of the Account Type and Instance ID. See 'Types of Steam Accounts' below).
* U is the Universe.
* A is the Account ID.
* I is the Instance ID. If not present, the default instance ID for that 'C' value is used.


=== As Represented in Computer Programs ===
=== As Represented in Computer Programs ===


When represented internally in computer programs the components (see above)  are all packed into a 64-bit data structure.
When represented internally in computer programs the X, Y and Z components (see the section titled 'As Represented Textually')  are all packed into a 64-bit data structure.


* The low 32 bits comprise the Account ID.
*The low 32 bits represents the ID number for the account (the "account number").
* The next 20 bits comprise the Instance of the account. For Individual accounts, this is usually 1.
*The next 20 bits represents the instance of the account. It is usually set to 1 for user accounts.
* The next 4 bits comprise the Account Type.
*The next 4 bits represents the type of account.
* The next 8 bits comprise the 'Universe' the Steam account belongs to.
*The next 8 bits represents the "Universe" the steam account belongs to.


=== Universes Available for Steam Accounts ===
=== Universes Available for Steam Accounts ===


There are 4 universes of Steam accounts.
There are 8 universes of Steam accounts.


{| {{standard-table}}
{| {{standard-table}}
|-
|-
! Universe ID
! Number
! Type
! Type
|-
|-
| 0
| 0
| Invalid
| Individual / Unspecified
|-
|-
| 1
| 1
Line 59: Line 43:
| 4
| 4
| Dev
| Dev
|-
| 5
| RC
|-
|}
|}


Line 67: Line 55:
{| {{standard-table}}
{| {{standard-table}}
|-
|-
! Account Type ID
! Number
! Character
! Letter
! Name
! Type
! Can Be Used?
! Can Be Used?
! URL Path (default / custom)
! URL Path (default / custom)
! Default Instance
! SteamID64 Identifier
|-
|-
| 0
| 0
| I
|
| Invalid
| Invalid
| No  
| No  
Line 86: Line 74:
| Yes
| Yes
| profiles / id
| profiles / id
| 1
| style="font-family:monospace"| 0x0110000100000000
|-
|-
| 2
| 2
| M
|
| Multiseat
| Multiseat
| Yes
| Yes
Line 96: Line 84:
|-
|-
| 3
| 3
| G
|  
| GameServer
| GameServer
| Yes
| Yes
|
|
| 1
|
|-
|-
| 4
| 4
| A
|  
| AnonGameServer
| AnonGameServer
| Yes
| Yes
Line 110: Line 98:
|-
|-
| 5
| 5
| P
|  
| Pending
| Pending
| No
| No
Line 117: Line 105:
|-
|-
| 6
| 6
| C
|  
| ContentServer
| ContentServer
| Unknown
| Unknown
Line 127: Line 115:
| Clan
| Clan
| Yes
| Yes
| gid / groups
| groups / gid
| 0
| style="font-family:monospace"| 0x0170000000000000
|-
|-
| 8
| 8
Line 136: Line 124:
|
|
|
|
|-
| 8
| c
| Chat (Clan)
| Yes
|
| 0x00080000
|-
| 8
| L
| Chat (Lobby)
| Yes
|
| 0x00040000
|-
|-
| 9
| 9
Line 159: Line 133:
|-
|-
| 10
| 10
| a
|
| AnonUser
| AnonUser
| Yes
| No
|
|
|
|
|}
|}


In the Source Engine, users of an 'Individual' account are temporarily referred to as having a 'Pending' account which have a textual representation of "STEAM_ID_PENDING" until their account credentials are verified with Steam's authentication servers, a process usually complete by the time a server is fully connected to. Accounts of the type 'Invalid' have a textual representation of "UNKNOWN" and are used for bots and accounts which do not belong to another class.
Users of an 'Individual' account are temporarily referred to as having a 'Pending' account which have a textual representation of "STEAM_ID_PENDING" until their account credentials are verified with Steam's authentication servers, a process usually complete by the time a server is fully connected to. Accounts of the type 'Invalid' have a textual representation of "UNKNOWN" and are used for bots and accounts which do not belong to another class.


== Steam ID as a Steam Community ID ==
==Steam ID as a Steam Community ID==
A Steam ID can be converted to [[Steam Community]] ID for use on the Steam Community website.
A Steam ID can be converted to [[Steam Community]] ID for use on the Steam Community website.


Line 174: Line 148:


There are 2 methods of conversion:
There are 2 methods of conversion:
;Modern Textual Representation
;For 32-bit systems
Given the components of a Steam ID, a Steam ID can be converted to text as follows: <br />
:Using the formula W=Z*2+Y, a SteamID can be converted to the following link:
<tt> [</tt>''character''<tt>:</tt>''universe''<tt>:</tt>''account id''<tt>]</tt>
:<tt>http</tt> ''or'' <tt><nowiki>https</nowiki>://steamcommunity.com/</tt>''path''<tt>/[</tt>''letter''<tt>:1:</tt>''W''<tt>]</tt>
 
:The account type ''letter'' can be found in the table above. The ''path'' can be found in the same place '''after''' the slash symbol.
Worked Example:
:Example: [http://steamcommunity.com/gid/%5Bg:1:4%5D <nowiki>http://steamcommunity.com/gid/[g:1:4]</nowiki>]
* Universe: Public (1)
;For 64-bit systems
* Account Type: Clan (g)
:Let V be SteamID64 identifier of the account type (can be found in the table above in hexadecimal format).
* Instance: 0
:Using the formula W=Z*2+V+Y, a SteamID can be converted to the following link:
* Account ID: 4
:<tt>http</tt> ''or'' <tt><nowiki>https</nowiki>://steamcommunity.com/</tt>''path''<tt>/</tt>''W''
* '''Textual Representation''': [g:1:4]
:As for the 32-bit method, the ''path'' can be found in the table above, again after the slash.
A URL for the entity represented by this ID can be constructed as follows:
:Example: http://steamcommunity.com/profiles/76561197960287930
<tt>http</tt> ''or'' <tt><nowiki>https</nowiki>://steamcommunity.com/</tt>''path''<tt>/''textual representation''</tt>
===Steam Community ID as a Steam ID===
The account type ''character'' can be found in the table above. The ''path'' can be found in the same place '''before''' the slash symbol.
Using the reverse methods, a Community ID can be converted to a regular SteamID. The value of Z can be retrieved by checking parity of the number W: if it's even, Y is 0, if it's odd, Y is 1 (shortly, Y is the remainder of division of W by 2, or the result of binary AND operation with number 1).
Example: [http://steamcommunity.com/gid/%5Bg:1:4%5D <nowiki>http://steamcommunity.com/gid/[g:1:4]</nowiki>]
 
;As a 64-bit integer
Given the components of a Steam ID, a Steam ID can be converted to it's 64-bit integer form as follows: <br />
<tt>((</tt>''Universe''<tt> << 56) | (</tt>''Account Type''<tt> << 52) | (</tt>''Instance''<tt> << 32) | </tt>''Account ID''<tt>)</tt>
 
Worked Example:
* Universe: Public (1)
* Account Type: Clan (7)
* Instance: 0
* Account ID: 4
* '''64-bit integer value''': 103582791429521412
A URL for the entity represented by this ID can be constructed as follows:
<tt>http</tt> ''or'' <tt><nowiki>https</nowiki>://steamcommunity.com/</tt>''path''<tt>/</tt>''64-bit identifier''
The ''path'' can be found in the table above, before the slash.
Example: http://steamcommunity.com/gid/103582791429521412
=== Steam Community ID as a Steam ID ===
Using the reverse methods, a Steam ID can be converted to it's other representations. The value of Z can be retrieved by checking parity of the number W: if it's even, Y is 0, if it's odd, Y is 1 (shortly, Y is the remainder of division of W by 2, or the result of binary AND operation with number 1).


The SteamID64 (64-bit SteamID) of Steam Community members can be found in several places:
The SteamID64 (64-bit SteamID) of Steam Community members can be found in several places:
*Players:
*Players:
**In <tt>ISteamUser/GetPlayerSummaries</tt> and other Steam Web APIs.
**In profile-&gt;steamID64 element of profile XML schema (can be opened by appending ?xml=1 to profile URL).
**In the Steamworks SDK.
**In the "Add to your friends list" link (not recommended to be used in applications that login with username and password).
**In the "Add to your friends list" link (not recommended to be used in applications that login with username and password).
*Groups: in the "Enter chat room" link.
*Groups: in the "Enter chat room" link.
== Caveat about Cyber Café Accounts ==
Although it would appear sensible for Valve to put all cybercafé account SteamID's in their own universe, this has not been done. Instead, cybercafé accounts got SteamID's in the same universe as user accounts, typically from a large pool of SteamID's where the unique ID part lies within the range 7000000 and 8000000. There are also non cybercafé accounts within this range and cybercafé accounts outside of this range.


== SteamID Uses ==
== SteamID Uses ==


Aside from the obvious elements of identifying (uniquely) an account, its type and the domain (universe) it belongs to, Steam IDs can be used to approximately determine when the user associated with the SteamID first created that Steam account. Lower values of the Account ID indicate an account made further in the past to one with a higher value. For example, a SteamID with the Account ID 1234 would mean that the user signed up for their Steam account a long time before a user with an Account ID such as 12341111.  
Aside from the obvious elements of identifying (uniquely) an account, its type and the domain (universe) it belongs to, SteamIDs can be used to approximately determine when the user associated with the SteamID first created that Steam account. Lower values of 'Z' in the format described above (i.e. the account number) indicate an account made further in the past to one with a higher value. For example, a SteamID like STEAM_0:0:1234 would mean that the user signed up for their Steam account a long time before a user with a SteamID such as STEAM_0:0:12341111.  


=== Source Engine Confusion ===
The value of X is 0 in VALVe's GoldSrc and Source Orange Box Engine games (For example, Counter Strike: Source), but newer Valve games such as Left 4 Dead, Left 4 Dead 2 and Alien Swarm have 1 as a value of X. The value of Y is either 0 or 1 and is part of the Account ID as described above. This bit used to indicate which authentication server was used by that account.
In the Source Engine, the value of the universe in the legacy textual representation is 0 is GoldSrc and some Source Engine games (e.g. Counter-Strike: Source), but is 1 in newer games (e.g. Left 4 Dead, Left 4 Dead 2, Alien Swarm). In all cases, this refers to the Public Universe.


== External links ==
== External links ==
* [https://steamidfinder.ru SteamIdFinder.ru] - Online web service to find Steam ID by inputting anything you know: steamid64, steamid32, steamid, profile url...
* [http://www.steamid.co.uk SteamID.co.uk] - Tools to look up players, items, games ,friends, groups and so much more
* [http://www.steamid.co.uk SteamID.co.uk] - Tools to look up players, TF2 items, games ,game time, friends, groups , Achievements , estimated account worth, how long you’ve been friends for and much more
* [http://www.legit-proof.com Legit-Proof.com] - Search engine to look up players and teams from all steam_id based games and more.
* [http://www.legit-proof.com Legit-Proof.com] - Search engine to look up players and teams from all steam_id based games and more.
* [http://steamidfinder.com SteamIDFinder.com] - Tool to let players quickly look up their SteamID without launching a game.
* [http://markus.kwasniccy.eu/#getsteamid getSteamID] - A standalone tool for Windows to look up all SteamIDs found on a local computer which were used in the past by different users.
* [http://markus.kwasniccy.eu/#getsteamid getSteamID] - A standalone tool for Windows to look up all SteamIDs found on a local computer which were used in the past by different users.
* [http://www.steamid.com SteamID.com] - Search engine to lookup competitive Counter-Strike players by their SteamID.
* [http://www.vacbanned.com VACBanned.com] - Search engine to lookup the VAC status of a SteamID, and add the banned SteamIDs to a database.
* [http://www.vacbanned.com VACBanned.com] - Search engine to lookup the VAC status of a SteamID, and add the banned SteamIDs to a database.
* [https://github.com/xPaw/SteamID.php SteamID.php] - PHP library to work with SteamIDs .
* [http://www.SteamProfile.co.uk SteamProfile.co.uk] - A tool which generates links to lookup profiles on multipole API sites
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/public/steam/steamuniverse.h steamuniverse.h] from the Steamworks SDK.
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/public/steam/steamclientpublic.h#L402 CSteamID] from the Steamworks SDK.
* [http://whatsmysteamid.azurewebsites.net/ What's My Steam ID?] - Online tool to extract all components of your Steam ID. In addition, thorough documentation and operations are included to understand everything about a Steam ID.
[[Category:Steam]]
[[Category:Steam]]

Revision as of 08:21, 4 June 2016

A SteamID is a unique identifier used to identify a Steam account. It is also used to refer to a user's Steam Community profile page.

Format

As Represented Textually

SteamIDs follow a fairly simple format when represented textually: "STEAM_X:Y:Z", where X, Y and Z are integers. In select cases "STEAM_ID_PENDING" or "UNKNOWN" are used (see the section 'Types of Steam Accounts' for more details).

  • X represents the "Universe" the steam account belongs to.
  • Y is part of the ID number for the account. Y is either 0 or 1.
  • Z is the ID number for the account (the "account number").

As Represented in Computer Programs

When represented internally in computer programs the X, Y and Z components (see the section titled 'As Represented Textually') are all packed into a 64-bit data structure.

  • The low 32 bits represents the ID number for the account (the "account number").
  • The next 20 bits represents the instance of the account. It is usually set to 1 for user accounts.
  • The next 4 bits represents the type of account.
  • The next 8 bits represents the "Universe" the steam account belongs to.

Universes Available for Steam Accounts

There are 8 universes of Steam accounts.

Number Type
0 Individual / Unspecified
1 Public
2 Beta
3 Internal
4 Dev
5 RC

Types of Steam Accounts

There are ten known account types for a Steam account, of which only 3 can be created today.

Number Letter Type Can Be Used? URL Path (default / custom) SteamID64 Identifier
0 Invalid No
1 U Individual Yes profiles / id 0x0110000100000000
2 Multiseat Yes
3 GameServer Yes
4 AnonGameServer Yes
5 Pending No
6 ContentServer Unknown
7 g Clan Yes groups / gid 0x0170000000000000
8 T Chat Yes
9 P2P SuperSeeder No
10 AnonUser No

Users of an 'Individual' account are temporarily referred to as having a 'Pending' account which have a textual representation of "STEAM_ID_PENDING" until their account credentials are verified with Steam's authentication servers, a process usually complete by the time a server is fully connected to. Accounts of the type 'Invalid' have a textual representation of "UNKNOWN" and are used for bots and accounts which do not belong to another class.

Steam ID as a Steam Community ID

A Steam ID can be converted to Steam Community ID for use on the Steam Community website.

Let X, Y and Z constants be defined by the SteamID: STEAM_X:Y:Z.

There are 2 methods of conversion:

For 32-bit systems
Using the formula W=Z*2+Y, a SteamID can be converted to the following link:
http or https://steamcommunity.com/path/[letter:1:W]
The account type letter can be found in the table above. The path can be found in the same place after the slash symbol.
Example: http://steamcommunity.com/gid/[g:1:4]
For 64-bit systems
Let V be SteamID64 identifier of the account type (can be found in the table above in hexadecimal format).
Using the formula W=Z*2+V+Y, a SteamID can be converted to the following link:
http or https://steamcommunity.com/path/W
As for the 32-bit method, the path can be found in the table above, again after the slash.
Example: http://steamcommunity.com/profiles/76561197960287930

Steam Community ID as a Steam ID

Using the reverse methods, a Community ID can be converted to a regular SteamID. The value of Z can be retrieved by checking parity of the number W: if it's even, Y is 0, if it's odd, Y is 1 (shortly, Y is the remainder of division of W by 2, or the result of binary AND operation with number 1).

The SteamID64 (64-bit SteamID) of Steam Community members can be found in several places:

  • Players:
    • In profile->steamID64 element of profile XML schema (can be opened by appending ?xml=1 to profile URL).
    • In the "Add to your friends list" link (not recommended to be used in applications that login with username and password).
  • Groups: in the "Enter chat room" link.

Caveat about Cyber Café Accounts

Although it would appear sensible for Valve to put all cybercafé account SteamID's in their own universe, this has not been done. Instead, cybercafé accounts got SteamID's in the same universe as user accounts, typically from a large pool of SteamID's where the unique ID part lies within the range 7000000 and 8000000. There are also non cybercafé accounts within this range and cybercafé accounts outside of this range.

SteamID Uses

Aside from the obvious elements of identifying (uniquely) an account, its type and the domain (universe) it belongs to, SteamIDs can be used to approximately determine when the user associated with the SteamID first created that Steam account. Lower values of 'Z' in the format described above (i.e. the account number) indicate an account made further in the past to one with a higher value. For example, a SteamID like STEAM_0:0:1234 would mean that the user signed up for their Steam account a long time before a user with a SteamID such as STEAM_0:0:12341111.

The value of X is 0 in VALVe's GoldSrc and Source Orange Box Engine games (For example, Counter Strike: Source), but newer Valve games such as Left 4 Dead, Left 4 Dead 2 and Alien Swarm have 1 as a value of X. The value of Y is either 0 or 1 and is part of the Account ID as described above. This bit used to indicate which authentication server was used by that account.

External links

  • SteamID.co.uk - Tools to look up players, items, games ,friends, groups and so much more
  • Legit-Proof.com - Search engine to look up players and teams from all steam_id based games and more.
  • SteamIDFinder.com - Tool to let players quickly look up their SteamID without launching a game.
  • getSteamID - A standalone tool for Windows to look up all SteamIDs found on a local computer which were used in the past by different users.
  • SteamID.com - Search engine to lookup competitive Counter-Strike players by their SteamID.
  • VACBanned.com - Search engine to lookup the VAC status of a SteamID, and add the banned SteamIDs to a database.
  • SteamProfile.co.uk - A tool which generates links to lookup profiles on multipole API sites