The Steam API defines a number of enums for use with the API. These enums can help resolve some common identifiers such as types and categories.

steamkit_enum scrapes the enums from the SteamKit C# library while steamkit_node scrapes them from the SteamUser Node.js library. SteamKit bundles the enums in different files and SteamUser organizes each enum in a single file. Thus, steamkit_enum requires a type argument while node_enum does not.

Some enums are pre-defined, either internally or as exported functions. Non-defined enums can be retrieved using steamkit_enum.

steamkit_enum(
  enum = NULL,
  type = c("SteamLanguage", "Enums", "EnumsProductInfo"),
  filter = NULL
)

node_enum(enum = NULL, filter = NULL)

content_descriptors()

universes()

account_types()

EFriendRelationship()

ECurrency()

EPublishedFileQueryType()

user_badges()

Arguments

enum

Name of the enumeration to retrieve. If NULL, returns the names of available enums.

type

Type of enums. Corresponds to a generated file from SteamKit.

filter

If enum is NULL, specifies a keyword to filter the list of available enums by. The keyword is fuzzy-matched using agrepl.

Value

If enum is not NULL, returns a dataframe containing code and descriptions. Otherwise, returns the names of available enums.

Examples

# investigate all enums of SteamLanguage.cs
steamkit_enum(type = "SteamLanguage")
#>  [1] "Msg"                                "Result"                            
#>  [3] "Universe"                           "ChatEntryType"                     
#>  [5] "PersonaState"                       "AccountType"                       
#>  [7] "FriendRelationship"                 "AccountFlags"                      
#>  [9] "ClanPermission"                     "ChatPermission"                    
#> [11] "FriendFlags"                        "PersonaStateFlag"                  
#> [13] "ClientPersonaStateFlag"             "AppUsageEvent"                     
#> [15] "LicenseFlags"                       "LicenseType"                       
#> [17] "PaymentMethod"                      "PurchaseResultDetail"              
#> [19] "IntroducerRouting"                  "ServerFlags"                       
#> [21] "DenyReason"                         "ClanRank"                          
#> [23] "ClanRelationship"                   "AuthSessionResponse"               
#> [25] "ChatRoomEnterResponse"              "ChatRoomType"                      
#> [27] "ChatInfoType"                       "ChatAction"                        
#> [29] "ChatActionResult"                   "AppInfoSection"                    
#> [31] "ContentDownloadSourceType"          "PlatformType"                      
#> [33] "OSType"                             "ServerType"                        
#> [35] "BillingType"                        "PackageStatus"                     
#> [37] "ActivationCodeClass"                "ChatMemberStateChange"             
#> [39] "RegionCode"                         "CurrencyCode"                      
#> [41] "DepotFileFlag"                      "WorkshopEnumerationType"           
#> [43] "PublishedFileVisibility"            "WorkshopFileType"                  
#> [45] "WorkshopFileAction"                 "EconTradeResponse"                 
#> [47] "MarketingMessageFlags"              "NewsUpdateType"                    
#> [49] "SystemIMType"                       "ChatFlags"                         
#> [51] "RemoteStoragePlatform"              "DRMBlobDownloadType"               
#> [53] "DRMBlobDownloadErrorDetail"         "ClientStat"                        
#> [55] "ClientStatAggregateMethod"          "LeaderboardDataRequest"            
#> [57] "LeaderboardSortMethod"              "LeaderboardDisplayType"            
#> [59] "LeaderboardUploadScoreMethod"       "UCMFilePrivacyState"               
#> [61] "PublishedFileQueryType"             "PublishedFileInappropriateProvider"
#> [63] "PublishedFileInappropriateResult"   "DisplayStatus"                     
#> [65] "AppType"                            "ChatRoomGroupType"                 
#> [67] "ChatroomNotificationLevel"          "ChatRoomMemberStateChange"         
#> [69] "ChatRoomServerMsg"                  "ChatRoomGroupRank"                 
#> [71] "ChatRoomGroupPermissions"           "ChatRoomGroupAction"               
#> [73] "ChatRoomJoinState"                  "VoiceCallState"                    
#> [75] "TradeOfferState"                    "TradeOfferConfirmationMethod"      
#> [77] "LobbyType"                          "LobbyFilterType"                   
#> [79] "LobbyComparison"                    "LobbyDistanceFilter"               
#> [81] "SteamIPv6ConnectivityProtocol"      "SteamIPv6ConnectivityState"        
#> [83] "SteamRealm"                         "LauncherType"                      
#> [85] "UIMode"                             "UdpPacketType"                     

# retrieve all code descriptions for SteamRealm
# Steam realms can be passed as arguments in various store endpoints
steamkit_enum("SteamRealm", type = "SteamLanguage")
#> # A tibble: 3 × 2
#>   code  desc       
#>   <chr> <fct>      
#> 1 0     Unknown    
#> 2 1     SteamGlobal
#> 3 2     SteamChina 

# retrieve universe descriptions
# can be useful to interpret output of steamid parsing
steamkit_enum("Universe", type = "SteamLanguage")
#> # A tibble: 5 × 2
#>   code  desc    
#>   <chr> <fct>   
#> 1 0     Invalid 
#> 2 1     Public  
#> 3 2     Beta    
#> 4 3     Internal
#> 5 4     Dev     

# retrieve communty item classes
# useful to decipher the output of functions like query_loyalty_rewards
steamkit_enum("CommunityItemClass", type = "Enums")
#> # A tibble: 18 × 2
#>    code  desc                 
#>    <chr> <fct>                
#>  1 0     Invalid              
#>  2 1     Badge                
#>  3 2     GameCard             
#>  4 3     ProfileBackground    
#>  5 4     Emoticon             
#>  6 5     BoosterPack          
#>  7 6     Consumable           
#>  8 7     GameGoo              
#>  9 8     ProfileModifier      
#> 10 9     Scene                
#> 11 10    SalienItem           
#> 12 11    Sticker              
#> 13 12    ChatEffect           
#> 14 13    MiniProfileBackground
#> 15 14    AvatarFrame          
#> 16 15    AnimatedAvatar       
#> 17 16    SteamDeckKeyboardSkin
#> 18 17    SteamDeckStartupMovie

# show all enums about published files
node_enum(filter = "publishedfile")
#> [1] "PublishedFileForSaleStatus"         "PublishedFileInappropriateProvider"
#> [3] "PublishedFileInappropriateResult"   "PublishedFileQueryType"            
#> [5] "PublishedFileRevision"              "PublishedFileStorageSystem"        
#> [7] "PublishedFileVisibility"           

# node_enum works without specifiying a type
node_enum("FriendFlags")
#> # A tibble: 13 × 2
#>    code  desc                
#>    <chr> <chr>               
#>  1 0     None                
#>  2 1     Blocked             
#>  3 2     FriendshipRequested 
#>  4 4     Immediate           
#>  5 8     ClanMember          
#>  6 16    OnGameServer        
#>  7 128   RequestingFriendship
#>  8 256   RequestingInfo      
#>  9 512   Ignored             
#> 10 1024  IgnoredFriend       
#> 11 2048  Suggested           
#> 12 4096  ChatMember          
#> 13 65535 FlagAll