Knowledge Base
HomeProductsCommunityReviewsSocial
Old Knowledge Base
Old Knowledge Base
  • Knowledge Base
    • Getting to know us
  • Where to Buy
    • Become a Sponsor
    • Heathen License Agreement
  • General
    • ๐Ÿ”ŽTable of Contents
    • ๐ŸคฉGetting Started
      • Indie Check List
      • Sourcing Resources
        • ๐Ÿง™โ€โ™‚๏ธCommunity
        • ๐Ÿงžโ€โ™‚๏ธManaged Services
        • ๐Ÿ“ฃMarketing
        • ๐ŸงชTesting
    • ๐ŸงžTips and Tricks
      • Fundamentals
        • Development Phases
      • Unity
        • Package Manager Installs
          • Missing asset after update
        • Unity Release Version
      • Unreal
        • Unity to Unreal
        • Quick Start
    • ๐Ÿ“Design
      • โ˜๏ธQuick Start
      • ๐ŸฅพBootstraping
      • ๐Ÿค‘Monetization
        • What not to do
        • Models
          • Free
          • Free to Play
          • Pay to Play
          • Pay to Win
          • Play to Earn
        • Tools
          • ๐Ÿ˜กArtificial Scarcity
          • ๐Ÿค‘Bundles
          • ๐Ÿค”Community Marketplace
          • ๐Ÿค‘Expansions
          • ๐Ÿ˜กFear of Missing Out (FOMO)
          • ๐Ÿ˜กGatcha Mechanics
          • ๐Ÿค”Microtransactions (MTX)
          • ๐Ÿ˜กNFT
            • ๐Ÿ˜กBlockchain
          • ๐Ÿค”No Spend Cap
          • ๐Ÿ˜กPremium Currency
          • ๐Ÿค”Season
          • ๐Ÿค‘Subscription
          • ๐Ÿ˜กSurprise Mechanics
      • ๐ŸŽฎMultiplayer
        • Networking Tools
        • Terminology
      • ๐ŸคนMulti-Scene Architecture
      • ๐ŸŒProject Architecture
      • ๐Ÿ˜ŠPlayer Motivation
    • ๐Ÿ—๏ธDevelopment
      • โ˜๏ธQuick Start
      • โ˜Ž๏ธCallbacks & Delegates
      • โ”Conditional Compilation
      • ๐ŸชณDebugging
      • ๐ŸšงDevOps
        • โ˜•Team Collaboration
        • ๐Ÿ›‚Git Control & Unity
      • โ‰๏ธError Handling
        • System Dialog
        • Reporting
      • ๐ŸคฏIntelliSense
      • ๐ŸชถLambda Expressions
      • ๐Ÿคนโ€โ™€๏ธMulti Platform Projects
      • ๐Ÿ“‘Namespace and Using
      • ๐ŸŽฎUnity's "New" Input System
      • ๐Ÿ”ผUpdating Visual Studio and C#
      • ๐Ÿ’กVisual Scripting
    • โš ๏ธPublishers
    • ๐ŸงชTesting
      • ๐Ÿ‘‹Introduction
      • โœ๏ธWriting Formal Tests
    • ๐Ÿง™โ€โ™‚๏ธCommunity
      • โ˜๏ธQuick Start
    • ๐Ÿ“ฃMarketing
      • โ˜๏ธQuick Start
      • ๐Ÿ“ŒTips and Tactics
      • ๐Ÿค“Market Research
    • ๐Ÿ“†Release
    • ๐Ÿ—บ๏ธLive
  • Steam
    • โ˜๏ธQuick Start
    • ๐Ÿ†Achievements
    • ๐ŸŒณBranches
    • ๐Ÿ—ฃ๏ธCommunity Hub
    • โฌ†๏ธUploading to Steam
    • โ˜๏ธCloud Save
    • ๐Ÿ†”CSteamID
    • ๐Ÿ”ŽDiscovery Queue
    • ๐Ÿ•น๏ธDownloadable Content
    • ๐ŸšซEarly Access
    • ๐Ÿ–ฑ๏ธInput
    • ๐Ÿ“ฆInventory
      • ๐Ÿ”จCrafting System
      • ๐Ÿ› ๏ธItem Definition Tools
      • ๐Ÿ’ธMicrotransactions
      • ๐ŸŽPromo Items
    • ๐ŸšขLaunch
    • ๐Ÿฅ‡Leaderboards
      • ๐Ÿ—ฃ๏ธAdvanced Profiles
    • ๐ŸŽฎMultiplayer
      • โ˜๏ธGetting Started
      • ๐ŸงชDev and Test
      • ๐Ÿง‘โ€โš–๏ธAuthentication
      • ๐Ÿ›‹๏ธLobby
      • ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘Matchmaking
      • ๐Ÿง‘โ€๐Ÿ”งRich Presence
      • ๐Ÿ’ฌRoom Systems
      • ๐Ÿ’Steam Game Server
        • ๐Ÿ‘ทBuilds
        • โš™๏ธConfiguration
        • ๐Ÿ“‹Server Browser
        • ๐ŸงSetup Linux
      • ๐Ÿ—ฃ๏ธTerminology
    • ๐ŸคนMulti-Platform Project
    • ๐ŸงชPlaytest
    • ๐Ÿ›‹๏ธRemote Play
    • ๐Ÿ‘€Reviews
    • ๐ŸƒRunning a Build
    • ๐Ÿ’ถSales
    • โญStats
    • ๐Ÿ”‘Steam API Key
    • ๐Ÿ“ƒsteam_appid.txt
    • ๐Ÿ–ฅ๏ธSteam Deck
    • โš™๏ธSteamworks
    • ๐ŸคฏStore Page
    • ๐Ÿ› ๏ธWorkshop
      • Creating an Item
      • In-Game Browser
      • Subscribed Items
    • ๐Ÿง‘โ€๐ŸซUser Information
      • Unity User Tools
      • Unreal User Tools
    • ๐Ÿ—ฃ๏ธVoice
  • Toolkit for Steamworks
    • Introduction
    • Maintenance Cycle
    • F.A.Q
    • Unity
      • โš ๏ธKnown Issues
      • Unity Asset Refund Policy
      • Installation
        • Networking Integrations
      • Getting Started
      • Debugging
      • Learning
      • API Extensions
        • App.Client
        • App.Server
        • App.Web
        • Authentication
        • BigPicture.Client
        • Clans.Client
        • Friends.Client
        • Input.Client
        • Inventory.Client
        • Leaderboards.Client
        • Matchmaking.Client
        • Overlay.Client
        • Parties.Client
        • RemotePlay.Client
        • RemoteStorage.Client
        • Screenshots.Client
        • StatsAndAchievements.Client
        • StatsAndAchievements.Server
        • User.Client
        • UserGeneratedContent.Client
        • Utilities
        • Utilities.Client
        • Voice.Client
      • Objects
        • Classes
          • Achievement Data
          • Achievement Object
          • App Data
          • Authentication Session
          • Authentication Ticket
          • Avg Rate Stat
          • Chat Room
          • Clan Chat Msg
          • Clan Data
          • Currency
          • Data Model
          • DLC Data
          • Downloadable Content Object
          • Favorite Game
          • Float Stat
          • Game Data
          • Input Action
          • Input Action Data
          • Input Action Set
          • Input Action Set Data
          • Input Action Set Layer
          • Input Action Update
          • Input Controller Data
          • Int Stat
          • Inventory Result
          • Item Data
          • Item Definition
          • Item Detail
          • Leaderboard Data
          • Leaderboard Entry
          • Leaderboard Object
          • Lobby Chat Msg
          • Lobby Data
          • Lobby Game Server
          • Lobby Member Data
          • Party Beacon Details
          • Rank Change
          • Remote Storage File
          • Stat Data
          • Steam Game Server Configuration
          • UGC Query
          • User Data
          • Steam Settings
            • Colors
            • Game Client
              • Inventory Settings
            • Game Server
          • User Leave Data
          • Workshop Item
          • Workshop Item Data
          • Workshop Item Data Create Status
          • Workshop Item Key Value Tag
          • Workshop Item Preview File
        • Components
          • Friend Manager
          • Game Server Browser Manager
          • Input Action Event
          • Input Action Glyph
          • Input Action Name
          • Inventory Manager
          • Item Shopping Cart Manager
          • Leaderboard Manager
          • Leaderboard User Entry
          • Overlay Manager
          • Steam Game Server Events
          • Steam Input Manager
          • Steamworks Event Triggers
          • UGC Query Manager
          • Voice Recorder
          • Voice Stream
        • Enums
          • Friend Dialog
          • Inventory Item Type
          • Language Codes
          • Overlay Dialog
          • Sample Rate Method
          • Valve Price Categories
        • Prefabs
          • ๐Ÿ“ฆClan Chat
          • ๐Ÿ“ฆClan List
          • ๐Ÿ“ฆClan Member Count
          • ๐Ÿ“ฆFriend Avatar
          • ๐Ÿ“ฆFriend Groups
          • ๐Ÿ“ฆFriend List
          • ๐Ÿ“ฆFriend Name
          • ๐Ÿ“ฆFriend Profile
          • ๐Ÿ“ฆSelectable Friend ID
        • Programming Tools
          • IChatMessage
          • ILeaderboardEntryDisplay
          • IUserProfile
          • IWorkshopBrowserItemTemplate
          • LobbyMemberSlot
          • User Invite Button
        • UI Components
          • Chat Auto Join
          • Chat Stream
          • Clan Chat Director
          • Clan Chat Member Counter
          • Clan Chat Member List
          • Clan List
          • Clan Profile
          • Friend Group
          • Friend Groups Display
          • Friend Invite Dropdown
          • Friend List
          • Friend Profile
            • Image Field
            • Message Options
            • Text Field
          • Input Action Glyph
          • Input Action Name
          • Leaderboard Entry UI Record
          • Leaderboard UI List
          • Lobby Chat Director
          • Lobby Member Slot
          • Lobby Manager
          • Party Lobby Control
          • Quick Match Lobby Control
          • Rich Presence Reader
          • Rich Presence Setter
          • Set Achievement Description
          • Set Achievement Icon
          • Set Achievement Name
          • Set User Avatar
          • Set User Id Input Field
          • Set User Id Label
          • Set User Name
          • Toggle Event Helper
          • Workshop Browser Simple Item Record
      • Legacy
        • Troubleshooting
        • Getting Started
          • GameObject Initialization
          • ScriptableObject Initialization
          • API Initialization
        • Build Upload Tool
        • Debugging Tools
          • Testing
        • Components
          • Steamworks Behaviour
          • Steamworks Creator
          • Steam System Events
    • Unreal
      • What's New!
      • Installation
      • Getting Started
      • Updating Steamworks SDK
      • Packaging
      • Game Instance
      • Sockets Net Driver
      • Online Subsystem
      • Data Assets
        • Achievement
        • Downloadable Content
        • Inventory Item
        • Leaderboard
        • Stat
      • Widgets
        • BP_FriendsListDisplay
        • BP_FriendsListEntry
        • BP_FriendsListGroup
        • BP_SteamAvatarImage
        • BP_SteamUserName
      • Blueprint Nodes
        • Functions
          • ๐Ÿ”ตAdd Favorite Game
          • ๐Ÿ”ตAdd History Game
          • ๐Ÿ”ตAdd Promo Item
          • ๐Ÿ”ตAdd Request Lobby List Filter
          • ๐Ÿ”ตAdvertise Game
          • ๐Ÿ”ตAssociate with Clan
          • ๐Ÿ”ตAttach Leaderboard UGC
          • ๐Ÿ”ตBegin Auth Session
          • ๐Ÿ”ตCancel Auth Ticket
          • ๐Ÿ”ตCheck Result Steam ID
          • ๐Ÿ”ตClear All Key Values
          • ๐Ÿ”ตClear Achievement
          • ๐Ÿ”ตClear Rich Presence
          • ๐Ÿ”ตClient Initialize
          • ๐Ÿ”ตClient Run Callbacks
          • ๐Ÿ”ตClient Should Restart
          • ๐Ÿ”ตCompue New Player Compatibility
          • ๐Ÿ”ตConsume Item
          • ๐Ÿ”ตCreate Lobby
          • ๐Ÿ”ตDecompress Voice
          • ๐Ÿ”ตDelete Lobby Data
          • ๐Ÿ”ตDeserialize Result
          • ๐Ÿ”ตDestroy Result
          • ๐Ÿ”ตDownload Leaderboard Entries
          • ๐Ÿ”ตDownload Leaderboard Entries for Users
          • ๐Ÿ”ตEnd Auth Session
          • ๐Ÿ”ตExchange Items
          • ๐Ÿ”ตFind Leaderboard
          • ๐Ÿ”ตFind or Create Leaderboard
          • ๐Ÿ“‚Game Server Browser
            • ๐Ÿ”ตPing Server
            • ๐Ÿ”ตPlayer Details
            • ๐Ÿ”ตRequest Server List
            • ๐Ÿ”ตServer Rules
          • ๐Ÿ”ตGenerate Items
          • ๐Ÿ”ตGet Achievement
          • ๐Ÿ”ตGet Achievement by Index
          • ๐Ÿ”ตGet Achievement Icon
          • ๐Ÿ”ตGet Achievement Is Achieved
          • ๐Ÿ”ตGet All Items
          • ๐Ÿ”ตGet App Build ID
          • ๐Ÿ”ตGet App Id
          • ๐Ÿ”ตGet App Owner
          • ๐Ÿ”ตGet Auth Session Ticket
          • ๐Ÿ”ตGet Auth Ticket for Web API
          • ๐Ÿ”ตGet Available Game Languages
          • ๐Ÿ”ตGet Available Voice
          • ๐Ÿ”ตGet Coplay Friends
          • ๐Ÿ”ตGet Current Beta Name
          • ๐Ÿ”ตGet Current Game Language
          • ๐Ÿ”ตGet DLC Count
          • ๐Ÿ”ตGet DLC Data By Index
          • ๐Ÿ”ตGet DLC Download Progress
          • ๐Ÿ”ตGet Earliest Purchase
          • ๐Ÿ”ตGet Favorite Game
          • ๐Ÿ”ตGet Friends
          • ๐Ÿ”ตGet Friend Coplay Game
          • ๐Ÿ”ตGet Friend Coplay Time
          • ๐Ÿ”ตGet Friend Count from Source
          • ๐Ÿ”ตGet Friend Game Played
          • ๐Ÿ”ตGet Friend Groups
          • ๐Ÿ”ตGet Friend Group Members
          • ๐Ÿ”ตGet Friend Group Name
          • ๐Ÿ”ตGet Friend Persona Name
          • ๐Ÿ”ตGet Followed
          • ๐Ÿ”ตGet Installed Depots
          • ๐Ÿ”ตGet Item Definition Properties
          • ๐Ÿ”ตGet Item Price
          • ๐Ÿ”ตGet Items with Price
          • ๐Ÿ”ตGet Items by ID
          • ๐Ÿ”ตGet Launch Command Line
          • ๐Ÿ”ตGet Launch Query Param
          • ๐Ÿ”ตGet Leaderboard Display Type
          • ๐Ÿ”ตGet Leaderboard Entry Count
          • ๐Ÿ”ตGet Leaderboard Name
          • ๐Ÿ”ตGet Leaderboard Sort Method
          • ๐Ÿ”ตGet Lobby Chat Entry
          • ๐Ÿ”ตGet Lobby Data
          • ๐Ÿ”ตGet Lobby Data by Index
          • ๐Ÿ”ตGet Lobby Game Server
          • ๐Ÿ”ตGet Lobby Members
          • ๐Ÿ”ตGet Lobby Member by Index
          • ๐Ÿ”ตGet Lobby Member Data
          • ๐Ÿ”ตGet Lobby Member Limit
          • ๐Ÿ”ตGet Lobby Owner
          • ๐Ÿ”ตGet Most Achieved Achievement Info
          • ๐Ÿ”ตGet My Steam Avatar
          • ๐Ÿ”ตGet My Steam ID
          • ๐Ÿ”ตGet My Steam Level
          • ๐Ÿ”ตGet Num Items with Price
          • ๐Ÿ”ตGet Persona Name
          • ๐Ÿ”ตGet Persona State
          • ๐Ÿ”ตGet Player Nickname
          • ๐Ÿ”ตGet Public IP
          • ๐Ÿ”ตGet Result Item Property
          • ๐Ÿ”ตGet Result Items
          • ๐Ÿ”ตGet Result Status
          • ๐Ÿ”ตGet Result Timestamp
          • ๐Ÿ”ตGet Stat
          • ๐Ÿ”ตGet Steam ID
          • ๐Ÿ”ตGet User Achievement
          • ๐Ÿ”ตGet User Float Stat
          • ๐Ÿ”ตGet User Int Stat
          • ๐Ÿ”ตGet User Restrictions
          • ๐Ÿ”ตGet Rich Presence
          • ๐Ÿ”ตGet User Rich Presence
          • ๐Ÿ”ตGet User Rich Presence Key by Index
          • ๐Ÿ”ตGet User Steam Avatar
          • ๐Ÿ”ตGet Voice
          • ๐Ÿ”ตGet Voice Optimal Sample Rate
          • ๐Ÿ”ตGrant Promo Items
          • ๐Ÿ”ตHas Friend
          • ๐Ÿ”ตId is Me
          • ๐Ÿ”ตId is Valid
          • ๐Ÿ”ตIndicate Achievement Progress
          • ๐Ÿ”ตInstall DLC
          • ๐Ÿ”ตInvite User To Game
          • ๐Ÿ”ตInvite User to Lobby
          • ๐Ÿ”ตInitialize
          • ๐Ÿ”ตIs App Installed
          • ๐Ÿ”ตIs Behind NAT
          • ๐Ÿ”ตIs Cybercafe
          • ๐Ÿ”ตIs DLC Installed
          • ๐Ÿ”ตIs Lobby Owner
          • ๐Ÿ”ตIs Low Violence
          • ๐Ÿ”ตIs Phone Identifying
          • ๐Ÿ”ตIs Phone Requiring Verification
          • ๐Ÿ”ตIs Phone Verified
          • ๐Ÿ”ตIs Steam Initialized
          • ๐Ÿ”ตIs Subscribed
          • ๐Ÿ”ตIs Subscribed App
          • ๐Ÿ”ตIs Subscribed from Family Sharing
          • ๐Ÿ”ตIs Subscribed from Free Weekend
          • ๐Ÿ”ตIs Timed Trial
          • ๐Ÿ”ตIs Two Factor Enabled
          • ๐Ÿ”ตIs VAC Banned
          • ๐Ÿ”ตJoin Lobby
          • ๐Ÿ”ตLeave Lobby
          • ๐Ÿ”ตLoad Item Definitions
          • ๐Ÿ”ตLogged On
          • ๐Ÿ”ตLog Off
          • ๐Ÿ”ตLog On
          • ๐Ÿ”ตLog On Anonymous
          • ๐Ÿ”ตMark Content Corrupt
          • ๐Ÿ”ตQuick Match
          • ๐Ÿ”ตRemove Favorite Game
          • ๐Ÿ”ตRemove History Game
          • ๐Ÿ”ตRemove Property
          • ๐Ÿ”ตReply to Friend Message
          • ๐Ÿ”ตRequest Current Stats
          • ๐Ÿ”ตRequest Eligible Promo Item Definitions IDs
          • ๐Ÿ”ตRequest Friend Rich Presence
          • ๐Ÿ”ตRequest Lobby Data
          • ๐Ÿ”ตRequest Lobby List
          • ๐Ÿ”ตRequest Prices
          • ๐Ÿ”ตRequest Store Auth URL
          • ๐Ÿ”ตRequest User Group Status
          • ๐Ÿ”ตRequest User Information
          • ๐Ÿ”ตRequest User Stats
          • ๐Ÿ”ตReset All Stats
          • ๐Ÿ”ตRun Callbacks
          • ๐Ÿ”ตSecure
          • ๐Ÿ”ตSend Lobby Chat
          • ๐Ÿ”ตSerialize Result
          • ๐Ÿ”ตSet Achievement
          • ๐Ÿ”ตSet Advertise Server Active
          • ๐Ÿ”ตSet Bot Player Count
          • ๐Ÿ”ตSet Dedicated Server
          • ๐Ÿ”ตSet Description
          • ๐Ÿ”ตSet Game Data
          • ๐Ÿ”ตSet Game Tags
          • ๐Ÿ”ตSet In-Game Voice Speaking
          • ๐Ÿ”ตSet Key Value
          • ๐Ÿ”ตSet Map Name
          • ๐Ÿ”ตSet Listen for Friends Messages
          • ๐Ÿ”ตSet Lobby Data
          • ๐Ÿ”ตSet Lobby Game Server
          • ๐Ÿ”ตSet Lobby Joinable
          • ๐Ÿ”ตSet Lobby Member Data
          • ๐Ÿ”ตSet Lobby Member Limit
          • ๐Ÿ”ตSet Lobby Owner
          • ๐Ÿ”ตSet Lobby Type
          • ๐Ÿ”ตSet Max Player Count
          • ๐Ÿ”ตSet Mod Directory Name
          • ๐Ÿ”ตSet Name
          • ๐Ÿ”ตSet Password Protected
          • ๐Ÿ”ตSet Persona Name
          • ๐Ÿ”ตSet Played with User
          • ๐Ÿ”ตSet Product
          • ๐Ÿ”ตSet Property
          • ๐Ÿ”ตSet Region
          • ๐Ÿ”ตSet Rich Presence
          • ๐Ÿ”ตSet Stats
          • ๐Ÿ”ตSet Spectator Name
          • ๐Ÿ”ตSet Spectator Port
          • ๐Ÿ”ตSet User Achievement
          • ๐Ÿ”ตSet User Float Stat
          • ๐Ÿ”ตSet User Int Stat
          • ๐Ÿ”ตShutdown
          • ๐Ÿ”ตStart Purchase
          • ๐Ÿ”ตStart Update Property
          • ๐Ÿ”ตStart Voice Recording
          • ๐Ÿ”ตSteam ID Tools
          • ๐Ÿ”ตStop Voice Recording
          • ๐Ÿ”ตStore Stats
          • ๐Ÿ”ตStore User Stats
          • ๐Ÿ”ตSubmit Update Property
          • ๐Ÿ”ตTransfer Item Quantity
          • ๐Ÿ”ตTrigger Item Drop
          • ๐Ÿ”ตUninstall DLC
          • ๐Ÿ”ตUpdate Avg Rate Stat
          • ๐Ÿ”ตUpdate User Avg Rate Stat
          • ๐Ÿ”ตUpload Leaderboard Score
          • ๐Ÿ”ตUser Has License for App
          • ๐Ÿ”ตWas Restart Requested
        • Events
          • ๐Ÿ”ปDlc Installed
          • ๐Ÿ”ปFriend Chat Msg
          • ๐Ÿ”ปFriend Rich Presence Update
          • ๐Ÿ”ปGame Overlay Activated
          • ๐Ÿ”ปInventory Item Definition Update
          • ๐Ÿ”ปInventory Results Ready
          • ๐Ÿ”ปLobby Chat Msg
          • ๐Ÿ”ปLobby Chat Update
          • ๐Ÿ”ปLobby Data Update
          • ๐Ÿ”ปLobby Game Created
          • ๐Ÿ”ปLobby Join Requested
          • ๐Ÿ”ปMicro Txn Authorization Response
          • ๐Ÿ”ปPersona State Change
          • ๐Ÿ”ปRich Presence Join Requested
          • ๐Ÿ”ปServers Connected
          • ๐Ÿ”ปServer Connect Failure
          • ๐Ÿ”ปServer Disconnected
          • ๐Ÿ”ปTicket for Web API Response
        • Types
          • ๐ŸŸฉAchievement Status
          • ๐ŸŸฉAuth Ticket Data
          • ๐ŸŸฉChat Entry
          • ๐ŸŸฉDecompress Voice Result
          • ๐ŸŸฉFloat Stat
          • ๐ŸŸฉGame Server Item Wrapper
          • ๐ŸŸฉGame Server Player Details Wrapper
          • ๐ŸŸฉGlobal Achievement Status
          • ๐ŸŸฉItem Count
          • ๐ŸŸฉItem Detail
          • ๐ŸŸฉItem Detail With Properties
          • ๐ŸŸฉItem Price
          • ๐ŸŸฉItem With Price
          • ๐ŸŸฉInt Stat
          • ๐ŸŸฉKey Value Pair
          • ๐ŸŸฉLeaderboard Entry
          • ๐ŸŸฉLobby Data
          • ๐ŸŸฉLobby Game Server
          • ๐ŸŸฉServer Achievement Status
          • ๐ŸŸฉServer Stat Float Value
          • ๐ŸŸฉServer Stat Int Value
          • ๐ŸŸฉUser Achievement Status
          • ๐ŸŸฉVoice Result
          • ๐ŸŸฉVoice Available Result
        • Enumerators
          • ๐ŸŸจUEBeginAuthSessionResult
          • ๐ŸŸจUEChatRoomEnterResponse
          • ๐ŸŸจUEFriendFlags
          • ๐ŸŸจUEChatEntryType
          • ๐ŸŸจUEChatMemberStateChange
          • ๐ŸŸจUELeaderboardDataRequest
          • ๐ŸŸจUELeaderboardDisplayType
          • ๐ŸŸจUELeaderboardSortMethod
          • ๐ŸŸจUELobbyComparison
          • ๐ŸŸจUELobbyDistanceFilter
          • ๐ŸŸจUELobbyType
          • ๐ŸŸจUEResult
          • ๐ŸŸจUESteamCurrencyCode
          • ๐ŸŸจUEServerMode
          • ๐ŸŸจUEUserHasLicenseForAppResult
          • ๐ŸŸจUEVoiceResult
      • C++
  • Toolkit for Physics
    • Unity
      • Installation
      • Core Features
        • Ballistics Tools
        • Buoyancy Tools
        • Force Effect Framework
        • Physics Data extended
        • Verlet Integration
      • Sample Scenes
        • Fantasy Style Ballistic Simulation
        • (3D) Deterministic Bounce Prediction
        • (2D) Deterministic Bounce Prediction
        • 1 Buoyancy Example
        • 1 Force Effect Fields
        • 2 Spherical Gravity
        • 3 Multi-body Gravity
        • 1 Verlet Spring Simple Transforms
        • 2 Verlet Spring Skinned Mesh
      • API
        • Ballistics
        • Buoyancy
        • Force Effects
        • Maths
        • Mesh Tools
      • Components
        • Ballistic Aim
        • Ballistic Path Line Render
        • Ballistic Path Follow
        • Buoyant Body
        • Buoyant Body Drag
        • Constant Acceleration
        • Constant Angular Velocity
        • Constant Linear Velocity
        • Force Effect Source
          • Force Effect Direction
          • Force Effect Field
        • Force Effect Reciever
        • Physics Data
        • Surface Tool
        • Trick Shot
        • Trick Shot Line
        • Verlet Spring
      • Objects
        • Force Effect
          • Attract Effect
          • Gravity Effect
          • Repulse Effect
          • Suspend Effect
          • Tractor Effect
          • Wind Effect
        • Point Volume
        • Verlet Hierarchy
        • Verlet Hierarchy Settings
        • Verlet Particle
      • Enums
        • Calculation Mode
  • Toolkit for UI & UX
    • Introduction
    • Unity
      • Installation
      • Learning
        • Sample Scenes
          • Command Parser Example
          • Cursor System Scene
          • Drag and Drop (Behaviours)
          • Drag and Drop (Inventory Example)
          • Drag and Drop (Spell Bar Example)
          • Log Sample Scene
          • Screenshot Sample Scene
        • Core Concepts
          • Command System
          • Cursor System
          • Drag and Drop System
          • Interaction Tools
          • Logging & Feedback
          • Scene Tools
          • Selection System
          • Tooltip System
          • Window System
        • uGUI Extras
          • Key Collection
          • Ligature Tools
          • Tree View Collection
      • API
        • Cursors
        • Json
        • Log
        • Scenes
        • Screenshot
        • Selection
        • Trello
        • Windows
      • Components
        • Action Hold
        • Border Handle
        • Button Cursor State
        • Change Cursor Default State
        • Command Director
        • Cursor Animator
        • Drag Item
        • Drop Container
        • Key Hold
        • Mouse Over Cursor State
        • Move Handle
        • Play On Click
        • Play On Demand
        • Play On Down
        • Play On Enter
        • Play On Exit
        • Play On Up
        • Pointer Hold
        • Scenes Manager
        • Selectable Object
        • Selection Manager
        • Tooltip Trigger
        • Tooltip Window Controller
        • Window
        • Window Clamping Bounds
        • Window Focus Change Event Data
      • Objects
        • Command Data
        • Command Library
        • Cursor Animation
        • Cursor State
        • DragAndDropItemChangeData
        • LogData
      • Enums
        • Clear Drop Behaviour
        • Drag Effect
        • Drag End Behaviours
        • Grab Handle
        • Mask Mode
        • Recieve Mode
        • Window Snap To Location
  • More Heathen Tools
    • ๐ŸŽจArt Assets
      • Breakable
        • Wood Props
          • Installation
    • โš™๏ธSystem Core
      • Installation
      • Learning
        • Asset Developers
      • Command Line
      • Game Events
      • Scriptable Tags
      • Scriptable Variables
      • Heathen Behaviour
      • Heathen UI Behaviour
    • ๐Ÿ“‹Tips for Asset Developers
      • Editor Coroutines
      • Package Manger in C#
      • Session State Values
  • Codex
    • Introduction
      • Article Design Guide
        • Evolution
          • Early Period
          • Middle Period
          • Late Period
      • Codex Organization
    • Irish
      • Folklore
        • Introduction
        • Characters
          • Dรฉithe
            • Cacht
            • Lugh
            • Dag Dia
              • Donn
              • Nuada
              • Ogma
            • Mother?
              • Banba
                • Appearance
                • Name
              • ร‰rui
                • Appearance
                • Name
              • Fรณdla
                • Appearance
                • Name
            • Father ?
              • ร‰thur Mac Cuill
              • Cรฉthur Mac Grรฉine
              • Tรฉthur Mac Cecht
        • Concepts
          • Binding Tablet
          • Druids
          • Sociaty
          • Patron Gods
          • Bile
          • Time
        • Food
          • Elderberry Capers
          • Elderberry Wine
          • Mead
        • Peoples
          • Fomรณire
          • Research Note
            • Hunter Gathers
            • Neolithic Farmers
            • Bronze Age
        • Locations
          • Lughmhagh
          • Temair
            • Name
      • Research
        • Historical Backdrop
        • Disambiguation
          • Banshee
          • Celt
          • Gods and Goddesses
          • Lebor Gabรกla ร‰renn
          • Milesians
          • Mother Goddess
          • Sovereignty Goddess
          • The Morrรญgan
          • Triple Persona
          • Tuatha Dรฉ
          • Wicker Man Sacrafice
        • Links
          • Social Factors
          • Lugh
            • Name
          • Ogma
          • Astronomy
          • Time
        • Sources
        • WIP
          • Artefacts
          • Beings
            • Cannon
              • Belgae
              • Fomorians
              • Sรญog
              • Tuatha Dรฉ Danann
            • Derivative
              • Milesians
              • Muintir Nemid
          • Characters
            • Cannon
            • Derivative
          • Concepts
          • Events
          • Languages
          • Music
          • Places
          • Sources
          • Stories
          • Styles
Powered by GitBook
On this page
  • Introduction
  • DOTA 2 Example
  • Halo Infinite Example
  • Features
  • Authentication
  • Simple Quick Match
  • Event Driven
  • Working Status
  • Easy Access
  • Prefab
  • Events
  • Evt Process Started
  • Evt Process Stopped
  • Evt Lobby Full
  • Evt Game Created
  • Evt Enter Success
  • Evt Enter Failed
  • Evt Created Failed
  • Evt State Changed
  • Fields and Attributes
  • Idle Group
  • Processing Group
  • Update Rich Presence Group Data
  • Kick When
  • SearchArguments
  • CreateArguments
  • Lobby
  • Owner
  • Me
  • HasLobby
  • Searching
  • IsPlayerOwner
  • AllPlayersReady
  • IsPlayerReady
  • Full
  • Slots
  • Member Count
  • Game Server
  • Working Status
  • Timer
  • Methods
  • Cancel
  • Run Quick Match
  • Set Game Server
  1. Toolkit for Steamworks
  2. Unity
  3. Objects
  4. UI Components

Quick Match Lobby Control

Code free drag and drop quick match style session lobby tool

PreviousParty Lobby ControlNextRich Presence Reader

Last updated 8 months ago

Like what your seeing?

Support us as a and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our ... become a sponsor today!

Introduction

Create a session and manage a quick match style UI with ZERO code required.

Quick match based lobbies are the simplest and cleanest user experience for your player in common game design. They present very little to no real UI elements concerned with the "lobby" rather the user or system defines the search arguments and searches for or creates a new session to match players with. This approach requires the least amount of input from players typically reducing match wait types by using more flexible search parameters when needed.

DOTA 2 Example

Screen captures of DOTA 2 "Play DOTA" option is a true example of Steam Lobby used for Quick Match matchmaking. The player hits one button, optionally selects preferences like ranked vs unranked and the system does the rest based on the player's stats, rather or not they are in a party, geo location, rankings, etc.

Halo Infinite Example

Screen captures of Halo Infinite's "Quick Play" option is a prime example of a Quick Match Lobby setup. The player hits one button and the system will find an appropriate match based on the player's stats, rather or not they are in a party, geo-location, rankings, etc.

Features

Authentication

Automatically checks the VAC and auth status of connecting user asking users to leave if they fail the checks you have configured.

Simple Quick Match

Search for a match and join, if none is found create a match and wait. Quick match is one of the best options for a quality user experience in most session-based multiplayer games. The Quick Match Lobby Control's main function is this, your user with a single push of a button will be placed in a match with any party they may have as quickly as possible with as little input required as possible.

Event Driven

Optional Unity Events are available in the editor and in code to help you drive additional UI and game logic based on Quick Match status change.

Working Status

A simple `Status` enum is available for use cases where Event Driven is not desired or possible. You can test the `WorkingStatus` of the control to see when it's idle, searching, waiting or starting.

Easy Access

Easily access critical information about your Quick Match session for simple and efficient integration with any networking HLAPI you would like. Quickly access the lobby, owner, the local user's member and much more.

Prefab

A production-ready prefab is available and configured with the features displayed above.

Events

Evt Process Started

public UnityEvent evtProcessStarted;

This event is invoked when the system starts the process of quick matching and can be used to trigger other game logic that should happen when the process starts.

Evt Process Stopped

public UnityEvent evtProcessStopped;

This event is invoked when the system stops the process of quick matching such as from a cancel and can be used to trigger other game logic that should happen when the process stops.

Evt Lobby Full

public LobbyDataEvent evtLobbyFull;

This event is invoked when the lobby becomes full e.g. all available slots are populated with users. This is usually used to start whatever your networking API requires to start a network session.

Evt Game Created

public GameServerSetEvent evtGameCreated;

This event is invoked when the owner calls Lobby.SetGameServer() or uses the SetGameServer methods on the Quick Match Lobby Controller. This indicates to all members that the network session is ready for them to connect to it.

Evt Enter Success

public LobbyDataEvent evtEnterSuccess;

This event is invoked when the user joins or creates a lobby e.g. lets you know the local user is now in a session lobby.

Evt Enter Failed

public LobbyResponceEvent evtEnterFailed;

This event is invoked when the user attempts to join an existing lobby but for some reason it failed. The event parameter will indicate what went wrong.

Evt Created Failed

public EResultEvent evtCreatedFailed;

This event is invoked when the user attempts to create a new lobby but for some reason it failed. The event parameter will indicate what went wrong.

Evt State Changed

public UnityEvent evtStateChanged;

This event is frequently invoked and will trigger when any data change happens such as user's coming and going, authentication failing, etc. This can be used to drive general game logic that simply needs to know when to check the system for a change.

Fields and Attributes

Idle Group

public GameObject indelGroup;

This game object is enabled when the system is **NOT** processing. This is useful to place a "Play Button" or similar elements in that you want to be "turned off" when the system starts processing. You can similarly use the `Evt Process Started` event to control your UI

Processing Group

public GameObject processingGroup;

This game object is enabled when the system **IS** processing. This is useful for placing a "status message" object in that should be displayed when the system is working.

Update Rich Presence Group Data

public bool updateRichPresenceGroupData;

Indicates rather or not the system could update the player's `steam_player_group` and `steam_player_group_size` rich presence data.

Kick When

public EAuthSessionResponce[] kickWhen;

A collection of authentication response codes that if seen on authentication the user should be asked to leave.

SearchArguments

public SearchArguments searchArguments;

The SearchArguments data type is an internal class:

[Serializable]
public class SearchArguments
{
    /// <summary>
    /// If less than or equal to 0 then we won't use the open slot filter
    /// </summary>
    public int slots = -1;
    public ELobbyDistanceFilter distance = ELobbyDistanceFilter.k_ELobbyDistanceFilterDefault;
    public List<NearFilter> nearValues = new List<NearFilter>();
    public List<NumericFilter> numericFilters = new List<NumericFilter>();
    public List<StringFilter> stringFilters = new List<StringFilter>();
}

The fields of the class are as follows

  • slots If less than or equal to 0 this will be ignored otherwise this will indicate the number of available slots that resulting lobbies must have. For example, if you wanted to find a lobby for you and 3 friends then you would provide a value of 4 in this field to return only lobbies that had 4 open slots.

    • Close Only in the same Valve region as this user

    • Default In the same or near by Valve region as this user

    • Far Up to half a world away

    • World Wide No filtering at all

  • numericFilters Instructs the search to perform a numeric filtering operation on these fields and can filer by the following methods

    • Equal to or Less than

    • Less than

    • Equal

    • Greater than

    • Equal to or Greater than

    • Not Equal

  • stringFilter Instructs the search to perform a string filtering operation on these fields which can be filtered by the same methods as numeric filters. Valve doesn't explain what the result of each is so test to confirm desired results.

CreateArguments

public CreateArguments createArguments;

The CreateArguments data type is an internal class:

[Serializable]
public class CreateArguments
{
    public string name;
    public int slots;
    public ELobbyType type;
    public List<MetadataTempalate> metadata = new List<MetadataTempalate>();
}

the fields of the class are as follows

  • name This will be set as metadata on the lobby when created e.g. MyLobby["name"] = value;

  • slots This is the maximum number of slots this lobby will have ... this is including the owner of the lobby.

  • metadata Metadata fields are to be set on the lobby once created. This is a simple string key and string value pairing. Metadata is what is used when "filtering" or "searching" for lobbies.

Lobby

public Lobby Lobby { get; set; }

The lobby the manager is currently managing. This will automatically be updated when you use the lobby manager to create, join or leave a lobby. If you create, join or leave a lobby from outside the manager then you should update this field accordingly.

Owner

public LobbyMember Owner => get;

Me

public LobbyMember Me => get;

HasLobby

public bool HasLobby => get;

True if the manager is managing a lobby, false otherwise.

Searching

public bool Searching => get;

True if the system is searching for a match at the moment.

IsPlayerOwner

public bool IsPlayerOwner => get;

True if the local user is the owner of the managed lobby, false otherwise.

AllPlayersReady

public bool AllPlayersReady => get;

True if all members of the lobby have marked themselves as ready, otherwise false.

IsPlayerReady

public bool IsPlayerReady { get; set; }

Returns true if the player has marked themselves as ready on this lobby. This can be set to mark the player as ready or not on this lobby.

Full

public bool Full => get;

Returns true if the lobby is currently full, false otherwise.

Slots

public int Slot => get;

How many people can join this lobby if any lobby at all

Member Count

public int MemberCount => get;

How many people are currently in this lobby if any lobby at all

Game Server

public LobbyGameServer GameServer => get;

The current game server is set by the owner of the lobby if any

Working Status

public Status WorkingStatus => get;

The current status of the system

  • Idle Not processing

  • Searching If currently searching for a match

  • Waiting For Start A match found but the lobby was not full and the session not started

  • Starting Match found and the lobby is now full ... the owner should be starting up the network session

Timer

public float Timer => get;

The amount of time since the process started.

Methods

Cancel

public void Cancel();

Stops the process of searching and if in a lobby exits the lobby

Run Quick Match

public void RunQuickMatch();

Starts the process of searching for and or creating a session lobby as required.

Set Game Server

public void SetGameServer();
public void SetGameServer(string address, ushort port, CSteamID gameServerId);
public void SetGameServer(string address, ushort port);
public void SetGameServer(CSteamID gameServerId;

This can only be called by the owner of the lobby and should be called when the network session is ready for the members to connect to it.

If no parameter is passed in

SetGameServer();

The system will assume that the owner of the lobby is the server e.g. a P2P session where the lobby owner is the "Host"

All other overloads require you to indicate what the connection information is for the session.

Used with any form of search performed through the Lobby Manager including the and methods. This is used to define the "search arguments" e.g. the rules to be tested when searching for lobbies.

distance An enumerator that indicates the max allowed distance between the searching user and the members of the resulting lobbies. For more details on the values see , in summary

nearValues Key value pairs that the system should search for "nearby" values for. See on this feature for more details. In summary, this doesn't "filter out" lobbies but rather effects the sorting, the closer a lobby's metadata is to matching this value the higher it will be sorted in the resulting list. This is useful for say "Player Rank" whose min and max player rank is as near the player's actual rank as possible. To do this you could set near values of minRank = myRank and maxRank = myRank this would not exclude any lobbies in and of itself but would sort lobbies such that top results were nearest "my rank" ... this assumes minRank is the rank of the lowest ranked player in that lobby and maxRank is the rank of the highest ranked player in that lobby

Used by the Lobby Manager any time a lobby is created with it, this would apply to as well as when no lobby is found and Create on fail is set to true.

type The type of lobby to create, you can learn more about the .

Gets the data for the current lobby owner.

Gets the local user's data for the current lobby.

Valve's documentation on ELobbyDistanceFilter
Valve's documentation
Lobby Member
Lobby Member
Search
QuickMatch
Create
QuickMatch
available types above
GitHub Sponsor
GitHub Sponsors
lobby
Page cover image