[/td][/tr] [/table] [code-inline]game_names[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]id[/b][/td][td]uint32[/td][td]ID number of entry; referenced in site info below[/td][/tr] [tr][td][b]name[/b][/td][td]string[/td][td]Game name[/td][/tr] [/table] [code-inline]sites[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]siteid[/b][/td][td]uint64[/td][td]64-bit SiteID of the site[/td][/tr] [tr][td][b]site_name[/b][/td][td]string[/td][td]Site name you have assigned to the site[/td][/tr] [tr][td][b]games[/b][/td][td]see below[/td][td]list of all game titles played[/td][/tr] [/table] [code-inline]games[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]id[/b][/td][td]uint32[/td][td]ID of game in the [code-inline]game_names[/code-inline] section of the response[/td][/tr] [tr][td][b]license_type[/b][/td][td]string[/td][td]Playtime is divided up for each game by the type of license used. …
[/td][/tr] [tr][td][b]playtime_seconds[/b][/td][td]uint32[/td][td]total playtime for this game and license type, in seconds, for the requested period.[/td][/tr] [/table] …
[/td][/tr] [tr=k_EWorkshopFileTypeVideo][td][b]k_EWorkshopFileTypeVideo[/b][/td][td]4[/td][td]External video.[/td][/tr] [tr=k_EWorkshopFileTypeScreenshot][td][b]k_EWorkshopFileTypeScreenshot[/b][/td][td]5[/td][td]Screenshot.…
[/td][/tr] [tr=k_EWorkshopFileTypeConcept][td][b]k_EWorkshopFileTypeConcept[/b][/td][td]8[/td][td]Unused, used to be for Greenlight concepts.[/td][/tr] [tr=k_EWorkshopFileTypeWebGuide][td][b]k_EWorkshopFileTypeWebGuide[/b][/td][td]9[/td][td]Steam web guide.…
[section=RankedByTrend]RankedByTrend[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemSearch/RankedByTrend/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API publisher authentication key.…
[/td][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]SteamID of user[/td][/tr] [tr][td][b]appid[/b][/td][td]uint64[/td][td]✔[/td][td]appID relevant to all subsequent tags[/td][/tr] [tr][td][b]tagcount[/b][/td][td]uint32[/td][td]✔[/td][td]Number of Tags Specified[/td][/tr] [tr][td][b]usertagcount[/b][/td][td]uint32[/td][td]✔[/td][td]Number of User specific tags requested[/td][/tr] [tr][td][b]hasappadminaccess[/b][/td][td]bool[/td][td][/td][td]Whether the user making the request is an admin for the app and can see private files[/td][/tr] [tr][td][b]fileType[/b][/td][td]uint32[/td][td][/td][td]EPublishedFileInfoMatchingFileType, defaults to k_PFI_MatchingFileType_Items[/td][/tr] [tr][td][b]tag[0][/b][/td][td]string[/td][td][/td][td]Tag to filter result set[/td][/tr] [tr][td][b]usertag[0][/b][/td][td]string[/td][td][/td][td]A user specific tag[/td][/tr] [/table] [b]NOTE:[/b] This call requires a publisher API key to use this method. …
int nXinputSlotIndex = 0; InputHandle_t inputHandle = SteamInput()->GetControllerForGamepadIndex( nXinputSlotIndex ); if ( inputHandle == 0 ) { // Valid Input handles are non-zero, this is a normal Xbox controller. } else { // Steam will always return an enum value that was valid for your SDK version. ESteamInputType inputType = SteamInput()->GetInputTypeForHandle( inputHandle ); switch( inputType ) { case k_ESteamInputType_Unknown: printf( "unknown!…
\n" ); break; case k_ESteamInputType_PS3Controller: case k_ESteamInputType_PS4Controller: case k_ESteamInputType_PS5Controller: printf( "PlayStation controller!…
Generator Legendary applies the tag [code-inline]quality:legendary[/code-inline] and creates sword or shield items, while Generator Common applies the tag [code-inline]quality:common[/code-inline] and also creates sword or shield items. [code] itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 101x1;102x9 tags: color:red itemdef: 101 type: generator name: Generator Legendary bundle: 10;11 tags: quality:legendary itemdef: 102 type: generator name: Generator Common bundle: 10;11 tags: quality:common [/code] Another way to assign tags would be to use the [code-inline]tag_generator[/code-inline] item definition type. …
In the end you could end up with "Legendary Red Shield with Flames" or a "Common Red Sword with Lasers." [code] itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 10;11 tags: color:red tag_generators: 101;102 itemdefid: 101 type: tag_generator name: Tag Generator Quality tag_generator_name: quality tag_generator_values: legendary:1;common:9 itemdefid: 102 type: tag_generator name: Tag Generator FX tag_generator_name: fx tag_generator_values: flames;sparks;lasers [/code] The format for the [code-inline]tag_generators[/code-inline] field is a list of all item definition ids of the tag generators you want applied, separated by the ";" character. …
[subsection=SteamPartyBeaconLocation_t]SteamPartyBeaconLocation_t[/subsection] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_eType[/b][/td][td][apitype]ISteamParties::ESteamPartyBeaconLocationType[/apitype][/td][td]The location type.…
[/td][/tr] [tr=k_ESteamPartyBeaconLocationType_ChatGroup][td][b]k_ESteamPartyBeaconLocationType_ChatGroup[/b][/td][td]1[/td][td]A Steam Chat Room Group.[/td][/tr] [tr=k_ESteamPartyBeaconLocationType_Max][td][b]k_ESteamPartyBeaconLocationType_Max[/b][/td][td][/td][td]Value is always one greater than the largest valid location type value.…
[/td][/tr] [tr][td][b]type_filter[/b][/td][td]string[/td][td][/td][td]Optional comma separated list of types to filter on[/td][/tr] [/table] Get a list of appIDs associated with a WebAPI key. Type_filter can used to specify certain app types to be returned. Possible values are "game,application,tool,demo,dlc,music". …
[subsection=CreateLobby]CreateLobby[/subsection] [code=cpp]SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]eLobbyType[/b][/td][td][apitype]ISteamMatchmaking::ELobbyType[/apitype][/td][td]The type and visibility of this lobby. …
[/td][/tr] [tr][td][b]eLobbyType[/b][/td][td][apitype]ISteamMatchmaking::ELobbyType[/apitype][/td][td]The new lobby type to that will be set.[/td][/tr] [/table] Updates what type of lobby this is. …
Attached accessories will be visible in the Inventory view on the community, and will create "Unique" (non-commodity) item listings when they are offered on the Steam Community Market. It's up to you to decide what accessory types to support, and what cosmetic or gameplay effects different accessory types might have. You may also choose to support different types of accessories on different item types in your game. …
", "icon_url":..., "accessory_tag": "sticker", "accessory_limit": 3, "allowed_tags_from_tools": "sticker" } [/code] Each sticker type is created with the "type" set to a "tag_tool". The action of the tag tool will be to apply the accessory tag, with the itemdef of this sticker as the argument. …
" under "Create A New Application" on the Steamworks landing page. [section=types_of_applications]Types of Applications[/section] The following are the different types of applications that you can create on Steam. …
[table] [tr] [td][b]Game[/b][/td] [td]All games, including VR and non-VR titles, will be under this application type.[/td] [/tr] [tr] [td][b]Software[/b][/td] [td]Products such as Audio Production, Design & Illustration, and Photo Editing will be under this application type.…
[/td][/tr] [tr][td][b]eLeaderboardSortMethod[/b][/td][td][apitype]ISteamUserStats::ELeaderboardSortMethod[/apitype][/td][td]The sort order of the new leaderboard if it's created.[/td][/tr] [tr][td][b]eLeaderboardDisplayType[/b][/td][td][apitype]ISteamUserStats::ELeaderboardDisplayType[/apitype][/td][td]The display type (used by the Steam Community web site) of the new leaderboard if it's created.…
[/td][/tr] [/table] Returns the display type of a leaderboard handle. [b]Returns:[/b] [apitype]ISteamUserStats::ELeaderboardDisplayType[/apitype] The display type of the leaderboard. …
[/td][/tr] [tr][td][b]max_members[/b][/td][td]int32[/td][td]✔[/td][td]Maximum number of members for this lobby.[/td][/tr] [tr][td][b]lobby_type[/b][/td][td]int32[/td][td]✔[/td][td][apitype]ISteamMatchmaking::ELobbyType[/apitype] - The type and visibility of this lobby.[/td][/tr] [tr][td][b]lobby_name[/b][/td][td]string[/td][td][/td][td]Unique lobby name if lobby_type = 4. …
[/td][/tr] [/table] Structure of the [code-inline]lobby_metadata[/code-inline] property: [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key_name[/b][/td][td]string[/td][td][/td][td]Key name[/td][/tr] [tr][td][b]key_value[/b][/td][td]string[/td][td][/td][td]Key value[/td][/tr] [/table] When using the CreateLobby WebAPI, you'll probably want to set lobby_type to 4 (k_ELobbyTypePrivateUnique). …
In the case of bundles, we describe the type and quantity of the contained items. In a generator or playtimegenerator, we describe the types of the possible item to be generated, and the relative weight of each type. …
[code] itemdefid: 600 name: Common generator type: generator bundle: 601;602;603;604;605 itemdefid: 700 name: Special generator type: generator bundle: 701;702;703;704;705 itemdefid: 800 name: Master generator type: generator bundle: 600x9;700x1[/code] [/list] Note that - as in the last example - bundle and generator definitions can be chained. …
[subsection=RetrieveMessage]RetrieveMessage[/subsection] [code=cpp]EGCResults RetrieveMessage( uint32 *punMsgType, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]punMsgType[/b][/td][td][apitype]steam_api::uint32[/apitype] *[/td][td][/td][/tr] [tr][td][b]pubDest[/b][/td][td]void *[/td][td][/td][/tr] [tr][td][b]cubDest[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td][/td][/tr] [tr][td][b]pcubMsgSize[/b][/td][td][apitype]steam_api::uint32[/apitype] *[/td][td][/td][/tr] [/table] Fills the provided buffer with the first message in the queue and returns k_EGCResultOK or returns k_EGCResultNoMessage if there is no message waiting. pcubMsgSize is filled with the message size. …
[b]Returns:[/b] [apitype]ISteamGameCoordinator::EGCResults[/apitype] [subsection=SendMessage]SendMessage[/subsection] [code=cpp]EGCResults SendMessage( uint32 unMsgType, const void *pubData, uint32 cubData );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]unMsgType[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td][/td][/tr] [tr][td][b]pubData[/b][/td][td]const void *[/td][td][/td][/tr] [tr][td][b]cubData[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td][/td][/tr] [/table] Sends a message to the Game Coordinator. …
[subsection=GetFriendMessage]GetFriendMessage[/subsection] [code=cpp]int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]steamIDFriend[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam ID of the friend that sent this message.…
[/td][/tr] [tr][td][b]cubData[/b][/td][td]int[/td][td]The size of [code-inline]pvData[/code-inline].[/td][/tr] [tr][td][b]peChatEntryType[/b][/td][td][apitype]steam_api::EChatEntryType[/apitype] *[/td][td]Returns the type of chat entry that was received.[/td][/tr] [/table] Gets the data from a Steam friends message. …
[b]Example:[/b] [code=cpp]P2PSessionState_t p2pSessionState; SteamNetworking()->GetP2PSessionState( steamIDremote, &p2pSessionState );[/code] [subsection=GetSocketConnectionType]GetSocketConnectionType[/subsection] [code=cpp]ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hSocket[/b][/td][td][apitype]ISteamNetworking::SNetSocket_t[/apitype][/td][td][/td][/tr] [/table] Returns true to describe how the socket ended up connecting. …
[/td][/tr] [tr=k_EP2PSessionErrorMax][td][b]k_EP2PSessionErrorMax[/b][/td][td]5[/td][td]Unused.[/td][/tr] [/table] [subsection=ESNetSocketConnectionType]ESNetSocketConnectionType[/subsection] Describes how the socket is currently connected. Only used by the old networking API. [table] [tr][th]Name[/th][th]Value[/th][th]Description[/th][/tr] [tr=k_ESNetSocketConnectionTypeNotConnected][td][b]k_ESNetSocketConnectionTypeNotConnected[/b][/td][td]0[/td][td][/td][/tr] [tr=k_ESNetSocketConnectionTypeUDP][td][b]k_ESNetSocketConnectionTypeUDP[/b][/td][td]1[/td][td][/td][/tr] [tr=k_ESNetSocketConnectionTypeUDPRelay][td][b]k_ESNetSocketConnectionTypeUDPRelay[/b][/td][td]2[/td][td][/td][/tr] [/table] [subsection=ESNetSocketState]ESNetSocketState[/subsection] Connection progress indicators, used by [api]ISteamNetworking::CreateP2PConnectionSocket[/api]. …
[/list] [/list] [b]Example code[/b] [code] curl --request POST \ --header "Content-Type: application/x-www-form-urlencoded" \ --form appid=30400 \ --form 'itemdefs=[{"appid":"30400","itemdefid":"418","type":"item","display_type":"bag","name":"Bag of Stuff","description":"This bag contains stuff.","background_color":"993300","tradable": true,"marketable": true,"commodity": true,"tags":"class:human;type:bag"}, {"appid": "30400","itemdefid":"403","type":"item","display_type":"cat","name":"Cat of Bags","description":"This cat contains multitudes.…
[section=GetAccountList]GetAccountList[/section] [code=http]GET https://api.steampowered.com/IGameServersService/GetAccountList/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
[section=ResetLoginToken]ResetLoginToken[/section] [code=http]POST https://api.steampowered.com/IGameServersService/ResetLoginToken/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
[/td][/tr] [tr][td][b]pszPreviewFile[/b][/td][td]const char *[/td][td]Absolute path to the local image.[/td][/tr] [tr][td][b]type[/b][/td][td][apitype]ISteamUGC::EItemPreviewType[/apitype][/td][td]The type of this preview.[/td][/tr] [/table] Adds an additional preview file for the item. …
[/td][/tr] [tr][td][b]eFileType[/b][/td][td][apitype]ISteamRemoteStorage::EWorkshopFileType[/apitype][/td][td]The type of UGC to create.[/td][/tr] [/table] Creates a new workshop item with no content attached yet. …
[code] itemdefid: 500 type: tag_generator name: Tag Generator Paint tag_generator_name: paint_color tag_generator_values: red:33;blue:33;green:33;gold:1 itemdefid: 100 type: tag_tool name: Random Paint Can tag_generators: 500 tags_to_remove_on_tool_use: paint_color [/code] Then when a user applies the "Random Paint Can" tool to their "Hat" using the [api]ISteamInventory::ExchangeItems[/api] call, they have a 33% chance to get either "red," "green," or "blue" and a 1% chance to get "gold.…
Here's an example of an item that keeps track of kills on a rocket launcher. [code] itemdefid: 100 type: item name: Rocket Launcher itemdefid: 200 type: tag_tool name: Kill Stat Tracker tags: stat_tracker:kills tags_to_remove_on_tool_use: stat_tracker:kills [/code] Using the Steamworks API you can have the client update properties on the Rocket Launcher for the dynamic property "kills.…