SteamID
From Wikipedia, the free encyclopedia
A SteamID is a unique identifier used to identify a single account on the Steam platform. It is also used to refer to a Steam user's Steam Community profile page[citation needed], but this article does not cover the latter usage.
The SteamID replaces the WonID, previously used when Half-Life CD key checks were done through the WON service. SteamIDs are, at the moment, mainly used by Half-Life and its numerous modifications (such as Counter-Strike), as well as games based on the Source engine (such as Half-Life 2).
Contents |
[edit] The SteamID Format
[edit] As Represented Textually
SteamIDs follow a fairly simple format when represented textually: "STEAM_X:Y:Z", where X, Y and Z are natural numbers. In select cases "STEAM_ID_PENDING" or "UNKNOWN" are used (see the section 'Types of Steam Accounts' for more details).
[edit] 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. Using the format described above:
- X represents the "Universe" the steam account belongs to (which is identified by an unsigned 8-bit value)
- Y represents the type of account and is represented as an unsigned 4-bit value
- Z is the unique ID number for the account (the "account number") identified by a 32-bit unsigned value
The remaining 20 bits are used to represent the 'instance' of this account and only applies for a special type of account called a 'Multiseat' account (an account for which many users can log into at the same time, for instance at Cybercafes).
[edit] 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 |
[edit] Types of Steam Accounts
There are eight known account types for a Steam account, of which only 4 can be created today.
Number | Type | Can Be Used? |
---|---|---|
0 | Invalid / Unspecified | Yes (Default for older accounts) |
1 | Individual | Yes (Steam was attempting to implement as newer but never followed through) |
2 | Multiseat | Yes |
3 | GameServer | Yes |
4 | AnonGameServer | Yes |
5 | Pending | No |
6 | Unknown | Unknown |
7 | Group | No |
Users of an 'Individual' or 'Invalid' (unspecified) 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 the Steam service'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' (reported for NPCs) and accounts which do not belong to another class.
[edit] Caveat about Cyber Café Accounts
Although it would appear sensible for Valve to put all Cyber Café account SteamID's in their own universe, this has not been done. Instead, Cyber Café accounts receive a new SteamID on each authentication with the Steam authentication servers, typically from a large pool of SteamID's where the unique ID part lies within the range 7000000 and 8000000. There may be non Cyber-Café accounts within this range.
[edit] Bugs with the SteamID System
When Steam was first released in 2002 there was a bug with the authentication servers that allowed the same SteamID to be created on more than one authentication server, with only a different type to differentiate between them. For example, it was possible to create two separate accounts with the SteamIDs STEAM_0:0:86 and STEAM_0:1:86 respectively. This problem was promptly fixed and has not resurfaced.
[edit] 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.
[edit] External links
- Legit-Proof.com - Search engine to look up players and teams from all steam_id based games and more.
- MySteamID.com - Tool to let players quickly look up their SteamID without launching a game.
- SteamID.com - Search engine to lookup competitive Counter-Strike players by their SteamID.
[edit] References
Valve's C++ code header files (notably the declararion of the CSteamID class, located in the "~/public/steam/steamclientpublic.h" header file). This is distributed as part of the Source SDK - downloadable via the Steam client which itself can be obtained from http://www.steampowered.com.