Steamworks-dokumentasjon
steam_api.h
Provides the core foundation to initialize and access the Steamworks API.

All of the types listed here are global defines and not associated with any one specific API.

Functions


These are global functions which do not require an interface to set up. You can read more about these functions in the Steamworks API Overview.

SteamAPI_Init

S_API bool S_CALLTYPE SteamAPI_Init();
Initializes the Steamworks API.

See Initialization and Shutdown for additional information.

Returns: bool
true indicates that all required interfaces have been acquired and are accessible.
false indicates one of the following conditions:
  • The Steam client isn't running. A running Steam client is required to provide implementations of the various Steamworks interfaces.
  • Steam-klienten kunne ikke avgjøre app-ID-en til spillet. Hvis du kjører applikasjonen din direkte fra en kjørbar fil eller et feilsøkingsprogram, så må steam_appid.txt finnes i spillets mappe ved siden av den kjørbare filen, og denne må inneholde app-ID-en din og ingenting annet. Steam leter etter denne filen i gjeldende mappe. Hvis du kjører den kjørbare filen fra en annen mappe, så må du muligens flytte steam_appid.txt.
  • Applikasjonen kjører ikke under samme kontekst i operativsystemet som Steam-klienten, som under en annen bruker eller uten administratortilgang.
  • Pass på at du eier en lisens for app-ID-en eller den aktive Steam-kontoen. Spillet må dukke opp i Steam-biblioteket ditt.
  • App-ID-en din er ikke fullstendig satt opp, f.eks. i Utgivelsestilstand: Utilgjengelig eller så mangler standardpakker.

Example:
int main() { if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Erstatt med app-ID-en din { return 1; } if ( !SteamAPI_Init() ) { printf( "Fatal Error - Steam must be running to play this game (SteamAPI_Init() failed).\n" ); return 1; } return 0; }

SteamAPI_ReleaseCurrentThreadMemory

S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory();
Frigjør internt minne i Steamworks-API-et som er tilknyttet kalling av tråden.

De fleste funksjoner i Steamworks-API-et tilordner litt lokalt minne i tråden for lagring av parametre – å kalle dette frigjør slikt minne manuelt. Denne funksjonen kalles automatisk av SteamAPI_RunCallbacks. Et program som kun får tilgang til Steamworks-API-et fra en enkelt tråd trenger derfor aldri å eksplisitt kalle denne funksjonen.

SteamAPI_RestartAppIfNecessary

S_API bool S_CALLTYPE SteamAPI_RestartAppIfNecessary( uint32 unOwnAppID );
NavnTypeBeskrivelse
unOwnAppIDuint32App-ID-en til dette spillet.

Sjekker om den kjørbare filen din ble startet gjennom Steam, og starter den på nytt gjennom Steam hvis dette ikke er tilfellet.

Se Initialization and Shutdown for ytterligere informasjon.

Resultat: bool
Hvis dette gir true så startes Steam-klienten hvis nødvendig, og så startes spillet gjennom denne, og du bør da avslutte prosessen så snart som mulig. Dette kjører i prinsippet steam://run<AppId>, så det er ikke sikkert at nøyaktig den samme kjørbare filen startes på nytt, ettersom det alltid starter på nytt fra versjonen som er installert i bibliotekmappen til Steam.

Hvis det gir false så ble spillet startet gjennom Steam-klienten, og ingen handling kreves. Et unntak er at hvis en fil med navn steam_appid.txt, så returnerer dette alltid false. Dette lar deg utvikle og teste uten å starte spillet gjennom Steam-klienten. Husk på å fjerne filen steam_appid.txt når du laster opp spillet til depotet ditt på Steam!

Eksempel:
int main() { if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Erstatt med app-ID-en din { return 1; } if ( !SteamAPI_Init() ) { printf( "Fatal Error - Steam must be running to play this game (SteamAPI_Init() failed).\n" ); return 1; } return 0; }

SteamAPI_RunCallbacks

S_API void S_CALLTYPE SteamAPI_RunCallbacks();
Sender ut tilbakekall og resultater til alle registrerte lyttere.

Det beste er å kalle dette med en frekvens på >10 Hz – jo mer tid mellom kall, jo mer potensiell forsinkelse er det mellom når man mottar hendelser eller resultater fra Steamworks-API-et. De fleste spill kaller dette en gang per gjengivelsesramme. All registered listener functions will be invoked during this call, in the callers thread context.

SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously, but if you choose to do this, callback code could be executed on any thread. Et alternativ er å kalle SteamAPI_RunCallbacks kun fra hovedtråden, og så kalle SteamAPI_ReleaseCurrentThreadMemory regelmessig på andre tråder.

SteamAPI_SetMiniDumpComment

S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg );
NavnTypeDescription
pchMsgconst char *The message to attach to the minidump. This must be null terminated.

Attaches an arbitrary comment to embed in the minidump.

Some examples that you may want to include are what level the user was playing, how many players on the server, how much memory is free, etc.
This must be called before calling SteamAPI_WriteMiniDump.
NOTE: Only works on 32bit Windows!

SteamAPI_Shutdown

S_API void S_CALLTYPE SteamAPI_Shutdown();
Lukker Steamworks-API-et og frigir pekere og minne.

Du bør kalle dette når prosessen lukkes hvis mulig.

Dette løser ikke Steam Overlay fra spillet ettersom det ikke finnes noen garanti for at gjengivelses-API-et er ferdig med å bruke det.

SteamAPI_WriteMiniDump

S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID );
NameTypeDescription
uStructuredExceptionCodeuint32The structured exception code.
pvExceptionInfovoid*The EXCEPTION_POINTERS containing the actual exception information.
uBuildIDuint32A Build ID to track what version of the app submitted this minidump. This is not the same as a Steam build ID and is used only for crash reporting.

Writes and uploads a minidump to report crashes.

See Steam Error Reporting for more information.

You can add an optional comment by calling SteamAPI_SetMiniDumpComment before you call this function.
NOTE: This only supports 32bit Windows.

Example:
#ifdef _WIN32 #include <Windows.h> void MiniDumpFunction( unsigned int nExceptionCode, EXCEPTION_POINTERS *pException ) { // You can build and set an arbitrary comment to embed in the minidump here, // maybe you want to put what level the user was playing, how many players on the server, // how much memory is free, etc... SteamAPI_SetMiniDumpComment( "Minidump comment: SteamworksExample.exe/n" ); // The 0 here is a build ID, we don't set it SteamAPI_WriteMiniDump( nExceptionCode, pException, 0 ); } int RealMain( HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow ) { __debugbreak(); return 0; } int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // All we do here is call the real main function after setting up our se translator // this allows us to catch exceptions and report errors to Steam. // // Note that you must set your compiler flags correctly to enable structured exception // handling in order for this particular setup method to work. if ( IsDebuggerPresent() ) { // We don't want to mask exceptions (or report them to Steam!) when debugging. // If you would like to step through the exception handler, attach a debugger // after running the game outside of the debugger. return RealMain( lpCmdLine, hInstance, nCmdShow ); } _set_se_translator( MiniDumpFunction ); try // this try block allows the SE translator to work { return RealMain( hInstance, lpCmdLine, nCmdShow ); } catch( ... ) { return -1; } } #endif

Structs

These are structs which functions in steam_api may return and/or interact with.

CGameID

The globally unique identifier for Steam Games.

CSteamID

The globally unique identifier for all Steam accounts, Steam groups, Lobbies and Chat rooms.
See EAccountType and EUniverse.

Enums

These are enums which are defined for use with steam_api.

EAccountType

Steam account types. This is used internally in CSteamID.

NameValueDescription
k_EAccountTypeInvalid0Used for invalid Steam IDs.
k_EAccountTypeIndividual1Regular user account.
k_EAccountTypeMultiseat2Multiseat (e.g. cybercafe) account.
k_EAccountTypeGameServer3Persistent (not anonymous) game server account.
k_EAccountTypeAnonGameServer4Anonymous game server account.
k_EAccountTypePending5Pending.
k_EAccountTypeContentServer6Intern konto for innholdstjener hos Valve.
k_EAccountTypeClan7Steam-gruppe (klan).
k_EAccountTypeChat8Gruppesamtale eller lobby på Steam.
k_EAccountTypeConsoleUser9Falsk Steam-ID for lokal PSN-konto på PS3 eller Live-konto på 360 osv.
k_EAccountTypeAnonUser10Anonym brukerkonto. (Brukes for å opprette en konto eller tilbakestille et passord)
k_EAccountTypeMax11Maks 16 gjenstander i dette feltet.

EAppOwnershipFlags

Flagg som representerer eierskapsinformasjon for en app-ID. (Kun til bruk internt på Steam)

NameValueDescription
k_EAppOwnershipFlags_None0x0000Unknown.
k_EAppOwnershipFlags_OwnsLicense0x0001Eier en lisens for denne applikasjonen.
k_EAppOwnershipFlags_FreeLicense0x0002Brukeren har ikke betalt for applikasjonen.
k_EAppOwnershipFlags_RegionRestricted0x0004Eier applikasjonen, men kan ikke spille i nåværende region.
k_EAppOwnershipFlags_LowViolence0x0008Eier kun en versjon med lite vold.
k_EAppOwnershipFlags_InvalidPlatform0x0010Applikasjonen støttes ikke på plattformen som brukes.
k_EAppOwnershipFlags_SharedLicense0x0020Lisensen ble delt av en autorisert enhet gjennom familiedeling på Steam.
k_EAppOwnershipFlags_FreeWeekend0x0040Eies av en gratishelglisens.
k_EAppOwnershipFlags_RetailLicense0x0080Har en lisens fra spillet fra forhandler (CD-nøkkel osv.) (foreldet).
k_EAppOwnershipFlags_LicenseLocked0x0100Delt lisens låst (i bruk) av en annen bruker.
k_EAppOwnershipFlags_LicensePending0x0200Eier applikasjonen, men transaksjonen er fremdeles på vent. Kan ikke installere eller spille enda.
k_EAppOwnershipFlags_LicenseExpired0x0400Doesn't own app anymore since license expired.
k_EAppOwnershipFlags_LicensePermanent0x0800Permanent lisens, ikke delt, eller gjest eller gratishelg osv.
k_EAppOwnershipFlags_LicenseRecurring0x1000Recurring license, user is charged periodically.
k_EAppOwnershipFlags_LicenseCanceled0x2000Mark as canceled, but might be still active if recurring.
k_EAppOwnershipFlags_AutoGrant0x4000Ownership is based on any kind of autogrant license.
k_EAppOwnershipFlags_PendingGift0x8000User has pending gift to redeem.
k_EAppOwnershipFlags_RentalNotActivated0x10000Rental hasn't been activated yet.
k_EAppOwnershipFlags_Rental0x20000Is a rental.
k_EAppOwnershipFlags_SiteLicense0x40000Is from a site license

EAppReleaseState

Release state of an App ID. (Steam Internal usage only)

NameValueDescription
k_EAppReleaseState_Unknown0Unknown, can't get application information, or license info is missing.
k_EAppReleaseState_Unavailable1Even if user owns it, they can't see game at all.
k_EAppReleaseState_Prerelease2Can be purchased and is visible in games list, nothing else.
k_EAppReleaseState_PreloadOnly3Owners can preload app, not play it.
k_EAppReleaseState_Released4Owners can download and play app.

EAppType

App ID type, more info is available on Applikasjonstyper (Steam Internal usage only)

NameValueDescription
k_EAppType_Invalid0x000Unknown / invalid.
k_EAppType_Game0x001Playable game, default type.
k_EAppType_Application0x002Software application.
k_EAppType_Tool0x004SDKs, editors & dedicated servers.
k_EAppType_Demo0x008Game demo.
k_EAppType_Media_DEPRECATED0x010Legacy - was used for game trailers, which are now just videos on the web.
k_EAppType_DLC0x020Downloadable Content.
k_EAppType_Guide0x040Game guide, PDF etc
k_EAppType_Driver0x080Hardware driver updater (ATI, Razor etc.)
k_EAppType_Config0x100Hidden app used to config Steam features (backpack, sales, etc.)
k_EAppType_Hardware0x200S hardware device (Steam Machine, Steam Controller, Steam Link, etc.)
k_EAppType_Franchise0x400A hub for collections of multiple apps, eg films, series, games.
k_EAppType_Video0x800A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc.)
k_EAppType_Plugin0x1000Plug-in types for other Apps.
k_EAppType_Music0x2000Music files.
k_EAppType_Series0x4000Container app for video series.
k_EAppType_Shortcut0x40000000Just a shortcut, client side only.
k_EAppType_DepotOnly0x80000000Placeholder since depots and apps share the same namespace.

EAuthSessionResponse

Callback return values for the ValidateAuthTicketResponse_t callback which is posted as a response to ISteamUser::BeginAuthSession and ISteamGameServer::BeginAuthSession.

NameValueDescription
k_EAuthSessionResponseOK0Steam has verified the user is online, the ticket is valid and ticket has not been reused.
k_EAuthSessionResponseUserNotConnectedToSteam1The user in question is not connected to steam.
k_EAuthSessionResponseNoLicenseOrExpired2The user doesn't have a license for this App ID or the ticket has expired.
k_EAuthSessionResponseVACBanned3The user is VAC banned for this game.
k_EAuthSessionResponseLoggedInElseWhere4The user account has logged in elsewhere and the session containing the game instance has been disconnected.
k_EAuthSessionResponseVACCheckTimedOut5VAC has been unable to perform anti-cheat checks on this user.
k_EAuthSessionResponseAuthTicketCanceled6The ticket has been canceled by the issuer.
k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed7This ticket has already been used, it is not valid.
k_EAuthSessionResponseAuthTicketInvalid8This ticket is not from a user instance currently connected to steam.
k_EAuthSessionResponsePublisherIssuedBan9The user is banned for this game. The ban came via the web api and not VAC.

EBeginAuthSessionResult

Results returned from ISteamUser::BeginAuthSession and ISteamGameServer::BeginAuthSession.

NameValueDescription
k_EBeginAuthSessionResultOK0Ticket is valid for this game and this Steam ID.
k_EBeginAuthSessionResultInvalidTicket1The ticket is invalid.
k_EBeginAuthSessionResultDuplicateRequest2A ticket has already been submitted for this Steam ID.
k_EBeginAuthSessionResultInvalidVersion3Ticket is from an incompatible interface version.
k_EBeginAuthSessionResultGameMismatch4Ticket is not for this game.
k_EBeginAuthSessionResultExpiredTicket5Ticket has expired.

EBroadcastUploadResult

Broadcast upload result from BroadcastUploadStop_t.

NameValueDescription
k_EBroadcastUploadResultNone0Broadcast state unknown.
k_EBroadcastUploadResultOK1Broadcast was good, no problems.
k_EBroadcastUploadResultInitFailed2Broadcast init failed.
k_EBroadcastUploadResultFrameFailed3Broadcast frame upload failed.
k_EBroadcastUploadResultTimeout4Broadcast upload timed out.
k_EBroadcastUploadResultBandwidthExceeded5Broadcast send too much data.
k_EBroadcastUploadResultLowFPS6Broadcast FPS is too low.
k_EBroadcastUploadResultMissingKeyFrames7Broadcast sending not enough key frames.
k_EBroadcastUploadResultNoConnection8Broadcast client failed to connect to relay.
k_EBroadcastUploadResultRelayFailed9Relay dropped the upload.
k_EBroadcastUploadResultSettingsChanged10The client changed broadcast settings.
k_EBroadcastUploadResultMissingAudio11Client failed to send audio data.
k_EBroadcastUploadResultTooFarBehind12Clients was too slow uploading.
k_EBroadcastUploadResultTranscodeBehind13Server failed to keep up with transcode.

EChatEntryType

Chat Entry Types.

Returned by ISteamFriends::GetFriendMessage, ISteamFriends::GetClanChatMessage and ISteamMatchmaking::GetLobbyChatEntry.

NameValueDescription
k_EChatEntryTypeInvalid0Invalid.
k_EChatEntryTypeChatMsg1Normal text message from another user.
k_EChatEntryTypeTyping2The other user is typing, not used in multi-user chat.
k_EChatEntryTypeInviteGame3Invite from other user into that users current game.
k_EChatEntryTypeEmote4Text emote message (Deprecated, should be treated as ChatMsg).
k_EChatEntryTypeLeftConversation6A user has left the conversation (closed the chat window).
k_EChatEntryTypeEntered7User has entered the conversation, used in multi-user chat and group chat.
k_EChatEntryTypeWasKicked8User was kicked (Data: Steam ID of the user performing the kick).
k_EChatEntryTypeWasBanned9User was banned (Data: Steam ID of the user performing the ban).
k_EChatEntryTypeDisconnected10User disconnected.
k_EChatEntryTypeHistoricalChat11A chat message from user's chat history or offline message.
k_EChatEntryTypeLinkBlocked14A link was removed by the chat filter.

EChatRoomEnterResponse

Chat Room Enter Responses.

NameValueDescription
k_EChatRoomEnterResponseSuccess1Success.
k_EChatRoomEnterResponseDoesntExist2Chat doesn't exist (probably closed).
k_EChatRoomEnterResponseNotAllowed3General Denied - You don't have the permissions needed to join the chat.
k_EChatRoomEnterResponseFull4Chat room has reached its maximum size.
k_EChatRoomEnterResponseError5Unexpected Error.
k_EChatRoomEnterResponseBanned6You are banned from this chat room and may not join.
k_EChatRoomEnterResponseLimited7Joining this chat is not allowed because you are a limited user (no value on account).
k_EChatRoomEnterResponseClanDisabled8Attempt to join a clan chat when the clan is locked or disabled.
k_EChatRoomEnterResponseCommunityBan9Attempt to join a chat when the user has a community lock on their account.
k_EChatRoomEnterResponseMemberBlockedYou10Join failed - a user that is in the chat has blocked you from joining.
k_EChatRoomEnterResponseYouBlockedMember11Join failed - you have blocked a user that is already in the chat.
k_EChatRoomEnterResponseRatelimitExceeded15Join failed - too many join attempts in a very short period of time.

EChatSteamIDInstanceFlags

Special flags for Chat accounts - they go in the top 8 bits of the Steam ID's "instance", leaving 12 for the actual instances

NameValueDescription
k_EChatAccountInstanceMask0x00000FFFTop 8 bits are flags.
k_EChatInstanceFlagClan( k_unSteamAccountInstanceMask + 1 ) >> 1The Steam ID is for a Steam group.
k_EChatInstanceFlagLobby( k_unSteamAccountInstanceMask + 1 ) >> 2The Steam ID is for a Lobby.
k_EChatInstanceFlagMMSLobby( k_unSteamAccountInstanceMask + 1 ) >> 3The Steam ID is for a MMS Lobby.

EDenyReason

Result values when a client failed to join or has been kicked from a game server. Obtained from GSClientDeny_t and GSClientKick_t.

NameValueDescription
k_EDenyInvalid0Unknown.
k_EDenyInvalidVersion1The client and server are not the same version.
k_EDenyGeneric2Generic.
k_EDenyNotLoggedOn3The client is not logged on.
k_EDenyNoLicense4The client does not have a license to play this game.
k_EDenyCheater5The client is VAC banned.
k_EDenyLoggedInElseWhere6The client is logged in elsewhere.
k_EDenyUnknownText7
k_EDenyIncompatibleAnticheat8
k_EDenyMemoryCorruption9
k_EDenyIncompatibleSoftware10
k_EDenySteamConnectionLost11The server lost connection to steam.
k_EDenySteamConnectionError12The server had a general error connecting to Steam.
k_EDenySteamResponseTimedOut13The server timed out connecting to Steam.
k_EDenySteamValidationStalled14The client has not authed with Steam yet.
k_EDenySteamOwnerLeftGuestUser15The owner of the shared game has left, called for each guest of the owner.

EGameIDType

Used to describe the type of CGameID.

NameValueDescription
k_EGameIDTypeApp0The Game ID is a regular steam app.
k_EGameIDTypeGameMod1The Game ID is a mod.
k_EGameIDTypeShortcut2The game ID is a shortcut.
k_EGameIDTypeP2P3The game ID is a P2P file.

ELaunchOptionType

Codes for well defined launch options, corresponds to "Launch Type" in the applications Launch Options which can be found on the General Installation Settings page.

There is a special function BIsVRLaunchOptionType, to check a the type is any of the VR launch options.

NameValueDescription
k_ELaunchOptionType_None0Unspecified.
k_ELaunchOptionType_Default1Runs the app in default mode.
k_ELaunchOptionType_SafeMode2Runs the game in safe mode.
k_ELaunchOptionType_Multiplayer3Runs the game in multiplayer mode.
k_ELaunchOptionType_Config4Runs config tool for this game.
k_ELaunchOptionType_OpenVR5Runs game in VR mode using OpenVR.
k_ELaunchOptionType_Server6Runs dedicated server for this game.
k_ELaunchOptionType_Editor7Runs game editor.
k_ELaunchOptionType_Manual8Shows game manual.
k_ELaunchOptionType_Benchmark9Runs game benchmark.
k_ELaunchOptionType_Option110Generic run option, uses description field for game name.
k_ELaunchOptionType_Option211Generic run option, uses description field for game name.
k_ELaunchOptionType_Option312Generic run option, uses description field for game name.
k_ELaunchOptionType_OculusVR13Runs game in VR mode using the Oculus SDK.
k_ELaunchOptionType_OpenVROverlay14Runs an OpenVR dashboard overlay.
k_ELaunchOptionType_OSVR15Runs game in VR mode using the OSVR SDK.
k_ELaunchOptionType_Dialog1000Show launch options dialog.

EMarketingMessageFlags

Internal Steam marketing message flags that change how a client should handle them.

NameValueDescription
k_EMarketingMessageFlagsNone0
k_EMarketingMessageFlagsHighPriority1 << 0
k_EMarketingMessageFlagsPlatformWindows1 << 1
k_EMarketingMessageFlagsPlatformMac1 << 2
k_EMarketingMessageFlagsPlatformLinux1 << 3
k_EMarketingMessageFlagsPlatformRestrictions=aggregate flags

ENotificationPosition

Possible positions to have the overlay show notifications in. Used with ISteamUtils::SetOverlayNotificationPosition.

NameValueDescription
k_EPositionTopLeft0Top left corner.
k_EPositionTopRight1Top right corner.
k_EPositionBottomLeft2Bottom left corner.
k_EPositionBottomRight3Bottom right corner.

EResult

Steam error result codes.

These are frequently returned by functions, callbacks, and call results from both the Steamworks API and the Web API. An API may return arbitrary EResult codes, refer to the documentation for that API function or callback to see what it could return and what they mean in the context of that API call.
This is similar to Win32's HRESULT type or POSIXs errno.

NameValueDescription
k_EResultOK1Success.
k_EResultFail2Generic failure.
k_EResultNoConnection3Your Steam client doesn't have a connection to the back-end.
k_EResultInvalidPassword5Password/ticket is invalid.
k_EResultLoggedInElsewhere6The user is logged in elsewhere.
k_EResultInvalidProtocolVer7Protocol version is incorrect.
k_EResultInvalidParam8A parameter is incorrect.
k_EResultFileNotFound9File was not found.
k_EResultBusy10Called method is busy - action not taken.
k_EResultInvalidState11Called object was in an invalid state.
k_EResultInvalidName12The name was invalid.
k_EResultInvalidEmail13The email was invalid.
k_EResultDuplicateName14The name is not unique.
k_EResultAccessDenied15Access is denied.
k_EResultTimeout16Operation timed out.
k_EResultBanned17The user is VAC2 banned.
k_EResultAccountNotFound18Account not found.
k_EResultInvalidSteamID19The Steam ID was invalid.
k_EResultServiceUnavailable20The requested service is currently unavailable.
k_EResultNotLoggedOn21The user is not logged on.
k_EResultPending22Request is pending, it may be in process or waiting on third party.
k_EResultEncryptionFailure23Encryption or Decryption failed.
k_EResultInsufficientPrivilege24Insufficient privilege.
k_EResultLimitExceeded25Too much of a good thing.
k_EResultRevoked26Access has been revoked (used for revoked guest passes.)
k_EResultExpired27License/Guest pass the user is trying to access is expired.
k_EResultAlreadyRedeemed28Guest pass has already been redeemed by account, cannot be used again.
k_EResultDuplicateRequest29The request is a duplicate and the action has already occurred in the past, ignored this time.
k_EResultAlreadyOwned30All the games in this guest pass redemption request are already owned by the user.
k_EResultIPNotFound31IP address not found.
k_EResultPersistFailed32Failed to write change to the data store.
k_EResultLockingFailed33Failed to acquire access lock for this operation.
k_EResultLogonSessionReplaced34The logon session has been replaced.
k_EResultConnectFailed35Failed to connect.
k_EResultHandshakeFailed36The authentication handshake has failed.
k_EResultIOFailure37There has been a generic IO failure.
k_EResultRemoteDisconnect38The remote server has disconnected.
k_EResultShoppingCartNotFound39Failed to find the shopping cart requested.
k_EResultBlocked40A user blocked the action.
k_EResultIgnored41The target is ignoring sender.
k_EResultNoMatch42Nothing matching the request found.
k_EResultAccountDisabled43The account is disabled.
k_EResultServiceReadOnly44This service is not accepting content changes right now.
k_EResultAccountNotFeatured45Account doesn't have value, so this feature isn't available.
k_EResultAdministratorOK46Allowed to take this action, but only because requester is admin.
k_EResultContentVersion47A Version mismatch in content transmitted within the Steam protocol.
k_EResultTryAnotherCM48The current CM can't service the user making a request, user should try another.
k_EResultPasswordRequiredToKickSession49You are already logged in elsewhere, this cached credential login has failed.
k_EResultAlreadyLoggedInElsewhere50The user is logged in elsewhere. (Use k_EResultLoggedInElsewhere instead!)
k_EResultSuspended51Long running operation has suspended/paused. (eg. content download.)
k_EResultCancelled52Operation has been canceled, typically by user. (eg. a content download.)
k_EResultDataCorruption53Operation canceled because data is ill formed or unrecoverable.
k_EResultDiskFull54Operation canceled - not enough disk space.
k_EResultRemoteCallFailed55The remote or IPC call has failed.
k_EResultPasswordUnset56Password could not be verified as it's unset server side.
k_EResultExternalAccountUnlinked57External account (PSN, Facebook...) is not linked to a Steam account.
k_EResultPSNTicketInvalid58PSN ticket was invalid.
k_EResultExternalAccountAlreadyLinked59External account (PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first.
k_EResultRemoteFileConflict60The sync cannot resume due to a conflict between the local and remote files.
k_EResultIllegalPassword61The requested new password is not allowed.
k_EResultSameAsPreviousValue62New value is the same as the old one. This is used for secret question and answer.
k_EResultAccountLogonDenied63Account login denied due to 2nd factor authentication failure.
k_EResultCannotUseOldPassword64The requested new password is not legal.
k_EResultInvalidLoginAuthCode65Account login denied due to auth code invalid.
k_EResultAccountLogonDeniedNoMail66Account login denied due to 2nd factor auth failure - and no mail has been sent.
k_EResultHardwareNotCapableOfIPT67The users hardware does not support Intel's Identity Protection Technology (IPT).
k_EResultIPTInitError68Intel's Identity Protection Technology (IPT) has failed to initialize.
k_EResultParentalControlRestricted69Operation failed due to parental control restrictions for current user.
k_EResultFacebookQueryError70Facebook query returned an error.
k_EResultExpiredLoginAuthCode71Account login denied due to an expired auth code.
k_EResultIPLoginRestrictionFailed72The login failed due to an IP restriction.
k_EResultAccountLockedDown73The current users account is currently locked for use. This is likely due to a hijacking and pending ownership verification.
k_EResultAccountLogonDeniedVerifiedEmailRequired74The logon failed because the accounts email is not verified.
k_EResultNoMatchingURL75There is no URL matching the provided values.
k_EResultBadResponse76Bad Response due to a Parse failure, missing field, etc.
k_EResultRequirePasswordReEntry77The user cannot complete the action until they re-enter their password.
k_EResultValueOutOfRange78The value entered is outside the acceptable range.
k_EResultUnexpectedError79Something happened that we didn't expect to ever happen.
k_EResultDisabled80The requested service has been configured to be unavailable.
k_EResultInvalidCEGSubmission81The files submitted to the CEG server are not valid.
k_EResultRestrictedDevice82The device being used is not allowed to perform this action.
k_EResultRegionLocked83The action could not be complete because it is region restricted.
k_EResultRateLimitExceeded84Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent.
k_EResultAccountLoginDeniedNeedTwoFactor85Need two-factor code to login.
k_EResultItemDeleted86The thing we're trying to access has been deleted.
k_EResultAccountLoginDeniedThrottle87Login attempt failed, try to throttle response to possible attacker.
k_EResultTwoFactorCodeMismatch88Two factor authentication (Steam Guard) code is incorrect.
k_EResultTwoFactorActivationCodeMismatch89The activation code for two-factor authentication (Steam Guard) didn't match.
k_EResultAccountAssociatedToMultiplePartners90The current account has been associated with multiple partners.
k_EResultNotModified91The data has not been modified.
k_EResultNoMobileDevice92The account does not have a mobile device associated with it.
k_EResultTimeNotSynced93The time presented is out of range or tolerance.
k_EResultSmsCodeFailed94SMS code failure - no match, none pending, etc.
k_EResultAccountLimitExceeded95Too many accounts access this resource.
k_EResultAccountActivityLimitExceeded96Too many changes to this account.
k_EResultPhoneActivityLimitExceeded97Too many changes to this phone.
k_EResultRefundToWallet98Cannot refund to payment method, must use wallet.
k_EResultEmailSendFailure99Cannot send an email.
k_EResultNotSettled100Can't perform operation until payment has settled.
k_EResultNeedCaptcha101The user needs to provide a valid captcha.
k_EResultGSLTDenied102A game server login token owned by this token's owner has been banned.
k_EResultGSOwnerDenied103Game server owner is denied for some other reason such as account locked, community ban, vac ban, missing phone, etc.
k_EResultInvalidItemType104The type of thing we were requested to act on is invalid.
k_EResultIPBanned105The IP address has been banned from taking this action.
k_EResultGSLTExpired106This Game Server Login Token (GSLT) has expired from disuse; it can be reset for use.
k_EResultInsufficientFunds107user doesn't have enough wallet funds to complete the action
k_EResultTooManyPending108There are too many of this thing pending already

ESteamUserStatType

Fields used internally to store user stats.

NameValueDescription
k_ESteamUserStatTypeINVALID0Invalid.
k_ESteamUserStatTypeINT132-bit int stat.
k_ESteamUserStatTypeFLOAT232-bit float stat.
k_ESteamUserStatTypeAVGRATE3Read as FLOAT, set with count / session length.
k_ESteamUserStatTypeACHIEVEMENTS4Standard user achievement.
k_ESteamUserStatTypeGROUPACHIEVEMENTS5Deprecated.
k_ESteamUserStatTypeMAX6Total number of user stat types, used for sanity checks.

ETextFilteringContext

Parameter to ISteamUtils::FilterText.

NameValueDescription
k_ETextFilteringContextUnknown0Unknown context.
k_ETextFilteringContextGameContent1Game content, only legally required filtering is performed.
k_ETextFilteringContextChat2Chat from another player.
k_ETextFilteringContextName3Character or item name.

EUniverse

Steam universes. Each universe is a self-contained Steam instance.

NameValueDescription
k_EUniverseInvalid0Invalid.
k_EUniversePublic1The standard public universe.
k_EUniverseBeta2Beta universe used inside Valve.
k_EUniverseInternal3Internal universe used inside Valve.
k_EUniverseDev4Dev universe used inside Valve.
k_EUniverseMax5Total number of universes, used for sanity checks.

EUserHasLicenseForAppResult

Result of ISteamUser::UserHasLicenseForApp.

NameValueDescription
k_EUserHasLicenseResultHasLicense0The user has a license for specified app.
k_EUserHasLicenseResultDoesNotHaveLicense1The user does not have a license for the specified app.
k_EUserHasLicenseResultNoAuth2The user has not been authenticated.

EVoiceResult

Results for use with the Steam Voice functions.

NameValueDescription
k_EVoiceResultOK0The call has completed successfully.
k_EVoiceResultNotInitialized1The Steam Voice interface has not been initialized.
k_EVoiceResultNotRecording2Steam Voice is not currently recording.
k_EVoiceResultNoData3There is no voice data available.
k_EVoiceResultBufferTooSmall4The provided buffer is too small to receive the data.
k_EVoiceResultDataCorrupted5The voice data has been corrupted.
k_EVoiceResultRestricted6The user is chat restricted.
k_EVoiceResultUnsupportedCodec7Deprecated.
k_EVoiceResultReceiverOutOfDate8Deprecated.
k_EVoiceResultReceiverDidNotAnswer9Deprecated.

EVRHMDType

Code points for VR HMD vendors and models. Use the special functions BIsOculusHMD and BIsViveHMD to check for a specific brand.

NameValueDescription
k_eEVRHMDType_None-1Unknown vendor and model.
k_eEVRHMDType_Unknown0Unknown vendor and model.
k_eEVRHMDType_HTC_Dev1Original HTC dev kits.
k_eEVRHMDType_HTC_VivePre2HTC Vive Pre dev kits.
k_eEVRHMDType_HTC_Vive3HTC Vive Consumer Release.
k_eEVRHMDType_HTC_Unknown20Unknown HTC HMD.
k_eEVRHMDType_Oculus_DK121Oculus Rift Development Kit 1.
k_eEVRHMDType_Oculus_DK222Oculus Rift Development Kit 2
k_eEVRHMDType_Oculus_Rift23Oculus Rift Consumer Version 1.
k_eEVRHMDType_Oculus_Unknown40Unknown Oculus HMD.

Typedefs

These are typedefs which are defined for use with steam_api.

NameBase typeDescription
AccountID_tuint32This is used internally in CSteamID to represent a specific user account without caring about what steam universe it's in.
AppId_tuint32Unique identifier for an app. For more information see the Applikasjoner documentation.
AssetClassId_tuint64Only used internally in Steam.
BREAKPAD_HANDLEvoid *Used by the internal Steam crash handler interfaces to reference particular installed crash handlers.
BundleId_tuint32Unique identifier for a bundle. (Only used internally in Steam.)
CellID_tuint32Only used internally in Steam.
DepotId_tuint32Unique identifier for a depot.
GID_tuint64Only used internally in Steam.
HAuthTicketuint32Handle to an user authentication ticket. Return type of ISteamUser::GetAuthSessionTicket.
int16shortSteam's version of a 16-bit integer, equivalent to int16_t.
int32intSteam's version of a 32-bit integer, equivalent to int32_t.
int64long longSteam's version of a 64-bit integer, equivalent to int64_t.
int8signed charSteam's version of a 8-bit integer, equivalent to int8_t.
intpint/long longSteam's version of a signed type that can hold a pointer, equivalent to intptr_t. (Only used internally in Steam.)
JobID_tuint64Only used internally in Steam.
lint64long intOnly used internally in Steam.
ManifestId_tuint64Only used internally in Steam.
PackageId_tuint32Only used internally in Steam.
PartnerId_tuint32Only used internally in Steam.
PhysicalItemId_tuint32Only used internally in Steam.
RTime32uint32Steam's version of Unix epoch time. It offers 1 second resolution starting from the epoch, 1970-01-01 00:00:00 +0000 (UTC)
SteamAPICall_tuint64Unique handle to a Steam API call.
If a function returns one of these you must track its status by using the Call Result system.
TxnID_tGID_tOnly used internally in Steam.
uint16unsigned shortSteam's version of a 16-bit unsigned integer, equivalent to uint16_t.
uint32unsigned intSteam's version of a 32-bit unsigned integer, equivalent to uint32_t.
uint64unsigned long longSteam's version of a 64-bit unsigned integer, equivalent to uint64_t.
uint8unsigned charSteam's version of a 8-bit unsigned integer, equivalent to uint8_t.
uintpunsigned int/unsigned long longSteam's version of an unsigned type that can hold a pointer, equivalent to uintptr_t. (Only used internally in Steam.)
ulint64unsigned long intOnly used internally in Steam.

Constants

These are constants which are defined for use with steam_api.

NameTypeValueDescription
BREAKPAD_INVALID_HANDLEint(BREAKPAD_HANDLE)0
k_cchGameExtraInfoMaxint64The maximum size (in UTF-8 bytes, including the null terminator) of the pchExtraInfo parameter of ISteamUser::TrackAppUsageEvent.
k_cubSaltSizeint8Only used internally in Steam.
k_GIDNilGID_t0xffffffffffffffffullOnly used internally in Steam.
k_HAuthTicketInvalidHAuthTicket0An invalid user authentication ticket.
k_JobIDNilJobID_t0xffffffffffffffffullOnly used internally in Steam.
k_steamIDLanModeGSintCSteamID(This Steam ID comes from a user game connection to an sv_lan GS
k_steamIDNilintCSteamID()Generic invalid CSteamID.
k_steamIDNonSteamGSintCSteamID(This Steam ID can come from a user game connection to a GS that isn't using the steam authentication system but still
wants to support the "Join Game" option in the friends list
k_steamIDNotInitYetGSintCSteamID(This Steam ID can come from a user game connection to a GS that has just booted but hasnt yet even initialized
its steam3 component and started logging on.
k_steamIDOutofDateGSintCSteamID(This Steam ID comes from a user game connection to an out of date GS that hasnt implemented the protocol to provide its Steam ID
k_TxnIDNilGID_tk_GIDNilOnly used internally in Steam.
k_TxnIDUnknownGID_t0Only used internally in Steam.
k_uAPICallInvalidSteamAPICall_t0x0An Invalid Steam API Call handle.
k_uAppIdInvalidAppId_t0x0An Invalid App ID.
k_uBundleIdInvalidBundleId_t0Only used internally in Steam.
k_uCellIDInvalidCellID_t0xFFFFFFFFOnly used internally in Steam.
k_uDepotIdInvalidDepotId_t0x0An Invalid Depot ID.
k_ulAssetClassIdInvalidAssetClassId_t0x0Only used internally in Steam.
k_uManifestIdInvalidManifestId_t0Only used internally in Steam.
k_unSteamAccountIDMaskunsigned int0xFFFFFFFFUsed in CSteamID to mask out the AccountID_t.
k_unSteamAccountInstanceMaskunsigned int0x000FFFFFUsed in CSteamID to mask out the account instance.
k_unSteamUserConsoleInstanceunsigned int2Used by CSteamID to identify users logged in from a console.
k_unSteamUserDesktopInstanceunsigned int1Used by CSteamID to identify users logged in from the desktop client.
k_unSteamUserWebInstanceunsigned int4Used by CSteamID to identify users logged in from the web.
k_uPackageIdFreeSubPackageId_t0x0Only used internally in Steam.
k_uPackageIdInvalidPackageId_t0xFFFFFFFFOnly used internally in Steam.
k_uPartnerIdInvalidPartnerId_t0Only used internally in Steam.
k_uPhysicalItemIdInvalidPhysicalItemId_t0x0Only used internally in Steam.
QUERY_PORT_ERRORint0xFFFEWe were unable to get the query port for this server.
QUERY_PORT_NOT_INITIALIZEDint0xFFFF-----------------------------------------------------------------------------
Constants used for query ports.
-----------------------------------------------------------------------------
We haven't asked the GS for this query port's actual value yet.