Class SteamManager
The core of Multiplayer Engine for Steam handling initialization, networking, matchmaking, and events. This class is a singleton with all functions and callbacks being static for ease of referencing and binding. The singleton will ensure there is only one instance by destroying any additional instances, so you can safely add one to all of your scenes.
Inheritance
Namespace: KaijuSolutions.SteamMultiplayerEngine
Syntax
public sealed class SteamManager : MonoBehaviour
Fields
BannedKeyStart
Special key to use which starts banned lists. Unlike other keys which cannot be an exact match, you cannot start any lobby data with this prefix.
Declaration
public const string BannedKeyStart = "_b_"
Field Value
| Type | Description |
|---|---|
| System.String |
ChatEncoding
The encoding to use for chat messages.
Declaration
public static readonly Encoding ChatEncoding
Field Value
| Type | Description |
|---|---|
| Encoding |
FollowKey
Special key to use for lobby data which allows for a lobby of users to matchmake together into another lobby.
Declaration
public const string FollowKey = "_f"
Field Value
| Type | Description |
|---|---|
| System.String |
GameServerIpKey
Default Steam key for the game server IP, which is not used directly with Multiplayer Engine for Steam.
Declaration
public const string GameServerIpKey = "__gameserverIP"
Field Value
| Type | Description |
|---|---|
| System.String |
GameServerPortKey
Default Steam key for the game server port, which is not used directly with Multiplayer Engine for Steam.
Declaration
public const string GameServerPortKey = "__gameserverPort"
Field Value
| Type | Description |
|---|---|
| System.String |
GameServerSteamIdKey
Default Steam key for the game Steam ID of the owner.
Declaration
public const string GameServerSteamIdKey = "__gameserverSteamID"
Field Value
| Type | Description |
|---|---|
| System.String |
MessageCapacity
Chat message capacity in bytes.
Declaration
public const int MessageCapacity = 4096
Field Value
| Type | Description |
|---|---|
| System.Int32 |
ModeKey
Special key to use for lobby data which allows for getting the lobby mode of the lobby. Do not manually set this key in the metadata.
Declaration
public const string ModeKey = "_m"
Field Value
| Type | Description |
|---|---|
| System.String |
OpenKey
Special key to use for lobby data which allows for getting if the lobby is open. Do not manually set this key in the metadata.
Declaration
public const string OpenKey = "_o"
Field Value
| Type | Description |
|---|---|
| System.String |
ReliableCapacity
The maximum size a reliable packet can be.
Declaration
public const int ReliableCapacity = default(int)
Field Value
| Type | Description |
|---|---|
| System.Int32 |
RichPresenceConnect
The built-in Steam rich presence key for connecting.
Declaration
public const string RichPresenceConnect = "connect"
Field Value
| Type | Description |
|---|---|
| System.String |
RichPresenceDisplay
The built-in Steam rich presence key that will be displayed in the viewing user's selected language in the Steam client UI.
Declaration
public const string RichPresenceDisplay = "steam_display"
Field Value
| Type | Description |
|---|---|
| System.String |
RichPresencePlayerGroup
The built-in Steam rich presence key for player grouping.
Declaration
public const string RichPresencePlayerGroup = "steam_player_group"
Field Value
| Type | Description |
|---|---|
| System.String |
RichPresencePlayerGroupSize
The built-in Steam rich presence key for player group size.
Declaration
public const string RichPresencePlayerGroupSize = "steam_player_group_size"
Field Value
| Type | Description |
|---|---|
| System.String |
RichPresenceStatus
The built-in Steam rich presence key to display when someone views your game's info.
Declaration
public const string RichPresenceStatus = "status"
Field Value
| Type | Description |
|---|---|
| System.String |
VersionKey
Special key to use for lobby data which ensures we only match lobbies of the current game version. Do not manually set this key in the metadata.
Declaration
public const string VersionKey = "_v"
Field Value
| Type | Description |
|---|---|
| System.String |
Properties
App
The Steam app ID.
Declaration
public static uint App { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt32 |
AutoGroup
If all members of the lobby should automatically be grouped in Steam friends. If you have teams for instance, you may want to disable this and implement a custom behaviour.
Declaration
public static bool AutoGroup { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
AutoMaximum
How many lobbies at most to search for when automatically trying to find a match. This is a separate field as you may want it higher given you're not interested in displaying auto matchmaking in a UI. If set to zero, will only try to join friends before trying to host a lobby. If looking for matches for a group, at minimum at least one public match will be searched for regardless of this value, as friend matches are excluded since they may not be joinable by everyone in thr group.
Declaration
public static int AutoMaximum { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
AutoPreferFriends
When automatically finding a lobby to join, should joining friends be prioritized over public lobbies? If enabled and a friend can be joined, this will join them. Otherwise, the games friends are in will still be considered alongside public matches. This is ignored if automatically matchmaking as a group, as there would otherwise be no guarantees all members of the party are friends with the owner of this lobby which could prevent them from joining.
Declaration
public static bool AutoPreferFriends { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
ControlSteamFriendsVoice
If enabled, when talking in game, any voice chat the user is doing through the Steam friends UI will be muted so they can focus on the game voice chat.
Declaration
public static bool ControlSteamFriendsVoice { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
CurrentMembers
The number of players currently in the lobby.
Declaration
public static int CurrentMembers { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Data
Get the data for the current lobby we are in.
Declaration
public static Dictionary<string, string> Data { get; }
Property Value
| Type | Description |
|---|---|
| Dictionary<System.String, System.String> |
Display
Our rich presence localization token that will be displayed in a user's selected language in the Steam client UI.
Declaration
public static string Display { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Distance
How far to search for lobbies.
Close - Only lobbies in the same immediate region will be returned.
Default - Only lobbies in the same region or nearby regions will be returned.
Far - For games that don't have many latency requirements, will return lobbies about half-way around the globe.
Worldwide - No filtering, will match lobbies as far as India to NY (not recommended, expect multiple seconds of latency between the clients).
Declaration
public static SteamDistance Distance { get; set; }
Property Value
| Type | Description |
|---|---|
| SteamDistance |
Group
Our rich presence group.
Declaration
public static string Group { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
GroupSize
Our your rich presence group size.
Declaration
public static int GroupSize { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Id
The ID of the local user.
Declaration
public static ulong Id { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt64 |
IdValid
Check if the local ID is valid.
Declaration
public static bool IdValid { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Initialized
If Steam has been initialized or not. Accessing will attempt to initialize if needed.
Declaration
public static bool Initialized { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
InitializedCached
Cached initialized instance. Accessing will not attempt to initialize.
Declaration
public static bool InitializedCached { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
InLobby
If we are currently in a lobby.
Declaration
public static bool InLobby { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Instance
The singleton instance. Accessing will attempt to connect to Steam if needed.
Declaration
public static SteamManager Instance { get; }
Property Value
| Type | Description |
|---|---|
| SteamManager |
IsOwner
If the local user owns the lobby.
Declaration
public static bool IsOwner { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Level
Get your level.
Declaration
public static int Level { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
LobbyId
The connected lobby ID.
Declaration
public static ulong LobbyId { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt64 |
Maximum
How many lobbies at most to search for. Unless your game has a lot of users, you likely don't need to set this for performance reasons. However, you likely want to limit it for your UI, whether through here or other handling of the results. If set to zero, searching for all lobbies is the same as just getting friends lobbies. If looking for matches for a group, at minimum at least one public match will be searched for regardless of this value, as friend matches are excluded since they may not be joinable by everyone in thr group.
Declaration
public static int Maximum { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
MaxMembers
The max members that can join the lobby. If in a game, only the owner can set this.
Declaration
public static int MaxMembers { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
MemberIds
Get the IDs of the users in the lobby.
Declaration
public static IEnumerable<ulong> MemberIds { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<System.UInt64> |
MicEnabled
If our microphone is currently enabled.
Declaration
public static bool MicEnabled { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Migrating
Check if we are currently migrating to a different lobby.
Declaration
public static bool Migrating { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
MigrationDestination
Get the lobby we are migrating to. Zero indicates there is no lobby to migrate to.
Declaration
public static ulong MigrationDestination { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt64 |
Mode
The mode of the lobby which controls what players can join. Regardless of the mode set, no players can join if there is no space left or the lobby is not set to be open.
Invite Only - Only players invited by current lobby members can join. Does not show up in searches.
Invite and Friends - Friends of lobby members or players invited by current lobby members can join. Does not show up in searches.
Public - Anyone may join, and your friends can see you are in a lobby. Shows up in searches.
Invisible - Anyone can join, but not visible to your friends. Shows up in searches.
Declaration
public static SteamLobbyMode Mode { get; set; }
Property Value
| Type | Description |
|---|---|
| SteamLobbyMode |
Name
Get your name.
Declaration
public static string Name { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Open
If players can join the lobby or not. If in a game, only the owner can set this.
Declaration
public static bool Open { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
OwnerId
Get the ID of the lobby owner.
Declaration
public static ulong OwnerId { get; }
Property Value
| Type | Description |
|---|---|
| System.UInt64 |
Parameters
What parameters we want to use to search for lobbies with. If we create a lobby, these will be applied.
Declaration
public static SteamSearchParameters Parameters { get; set; }
Property Value
| Type | Description |
|---|---|
| SteamSearchParameters |
ParametersKeys
Get the search parameter keys.
Declaration
public static string[] ParametersKeys { get; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
ParametersNearKeys
Get the search parameter near keys.
Declaration
public static string[] ParametersNearKeys { get; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
ParametersNumberKeys
Get the search parameter number keys.
Declaration
public static string[] ParametersNumberKeys { get; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
ParametersStringKeys
Get the search parameter string keys.
Declaration
public static string[] ParametersStringKeys { get; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
Players
How to handle sorting lobbies based on player counts.
Most Players - Sort by highest current player count and then by highest capacity.
None - Don't sort by player count.
Least Players - Sort by lowest current player count and then by lowest capacity.
Declaration
public static SteamPopulationMode Players { get; set; }
Property Value
| Type | Description |
|---|---|
| SteamPopulationMode |
RichPresence
Get all your rich presence.
Declaration
public static Dictionary<string, string> RichPresence { get; }
Property Value
| Type | Description |
|---|---|
| Dictionary<System.String, System.String> |
ServerValid
Get if the server is properly configured to match the host.
Declaration
public static bool ServerValid { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
State
Get your state.
Offline - Not currently logged on.
Online - Logged on.
Busy - Logged on, but set to "Do not disturb."
Away - Auto-away feature.
Snooze - Auto-away for a long time.
Trading - Online, trading.
Looking to Play - Online, wanting to play.
Declaration
public static SteamState State { get; }
Property Value
| Type | Description |
|---|---|
| SteamState |
Status
Our rich presence status to display when someone views your game info.
Declaration
public static string Status { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
UseVoice
If you want to use the Multiplayer Engine for Steam voice system. No other voice settings will have any impact if this is disabled. If you are using a custom or third-party voice system, you can disable this.
Declaration
public static bool UseVoice { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Version
The version string to match for lobby data.
Declaration
public static string Version { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
VoiceChannel
The channel to send voice data over. Note that it is your responsibility to ensure you do not send any other data manually over this channel. It is recommended to not dynamically modify this as all users need the same channel to send and receive voice data.
Declaration
public static int VoiceChannel { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
VoiceMode
How to handle automatically enabling voices for users when their ID is set. This does not stop you from manually assigning other voice recipients manually.
None - Do not automatically enable any voices.
Others - Automatically enable voices for other players.
Self - Automatically enable voice for yourself.
All - Automatically enable voices for other players and yourself.
Declaration
public static SteamVoiceAssignment VoiceMode { get; set; }
Property Value
| Type | Description |
|---|---|
| SteamVoiceAssignment |
VoiceRate
The rate at which to decompress voice audio at from 11,025 to 48,000. If lower than 11,025, Steam will automatically get an optimal sample rate for performance but audio quality may be poorer. If greater than 48,000, the sample rate will be that of which the application is currently outputting at.
Declaration
public static uint VoiceRate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.UInt32 |
VoiceRecipients
Who we have configured to get our voice, with NULL being everyone.
Declaration
public static IEnumerable<ulong> VoiceRecipients { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<System.UInt64> |
Methods
AutoGroupCallback(ChangeEvent<Boolean>)
Callback to set if auto grouping is enabled.
Declaration
public static void AutoGroupCallback(ChangeEvent<bool> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Boolean> | evt | The change event. |
AutoMaximumCallback(ChangeEvent<Int32>)
Callback to set the maximum lobbies to search for when automatically finding a match.
Declaration
public static void AutoMaximumCallback(ChangeEvent<int> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Int32> | evt | The change event. |
AutoPreferFriendsCallback(ChangeEvent<Boolean>)
Callback to set if we prefer joining friends when automatically finding a match.
Declaration
public static void AutoPreferFriendsCallback(ChangeEvent<bool> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Boolean> | evt | The change event. |
Ban(UInt64)
Ban a player from the lobby if we are the owner. Note this applies to the lobby, not your Steam account bans.
Declaration
public static bool Ban(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the player to ban. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the request to ban was sent. |
Banned(Boolean)
All users banned from our current lobby.
Declaration
public static IEnumerable<ulong> Banned(bool sort = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | sort | If the users should be sorted as given in SortUsers(IEnumerable<UInt64>). |
Returns
| Type | Description |
|---|---|
| IEnumerable<System.UInt64> | The users banned from our current lobby. |
Banned(UInt64)
Get if a user is banned from our lobby.
Declaration
public static bool Banned(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the player. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is banned from our lobby. |
Banned(UInt64, UInt64)
Get if a user is banned from a lobby. This assumes we have the metadata for this lobby already.
Declaration
public static bool Banned(ulong user, ulong lobby)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | user | The ID of the user. |
| System.UInt64 | lobby | The ID of the lobby. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is banned from the lobby. |
BannedFrom(UInt64)
Get if we are banned from a lobby. This assumes we have the metadata for this lobby already.
Declaration
public static bool BannedFrom(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the lobby to check. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If we are banned from the lobby. |
ChangedTextFilter(SteamTextFilter)
Indicate a text filter has changed.
Declaration
public static void ChangedTextFilter(SteamTextFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamTextFilter | filter | The text filter. |
ChangedVoiceFilter(SteamVoiceFilter)
Indicate a voice filter has changed.
Declaration
public static void ChangedVoiceFilter(SteamVoiceFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamVoiceFilter | filter | The voice filter. |
Chat(String)
Send a chat message to all members in the lobby.
Declaration
public static bool Chat(string message)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | message | The message to send. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the chat message was sent. |
ClearData()
Delete all lobby data if we are the owner. This automatically skips special keys required by this framework. Note that this will clear any searching parameters from the lobby, but not the values in the local field.
Declaration
public static bool ClearData()
Returns
| Type | Description |
|---|---|
| System.Boolean | If all data was successfully deleted. |
ClearDataBindable()
Delete all lobby data if we are the owner. This automatically skips special keys required by this framework. Note that this will clear any searching parameters from the lobby, but not the values in the local field.
Declaration
public static void ClearDataBindable()
ClearNearParameters()
Clear all near values from the assigned search parameters. See SteamSearchParameters.
Declaration
public static void ClearNearParameters()
ClearNumberParameters()
Clear all number values from the assigned search parameters. See SteamSearchParameters.
Declaration
public static void ClearNumberParameters()
ClearParameters()
Clear all values from the assigned search parameters. See SteamSearchParameters.
Declaration
public static void ClearParameters()
ClearRichPresence()
Clear all rich presence.
Declaration
public static bool ClearRichPresence()
Returns
| Type | Description |
|---|---|
| System.Boolean | If the rich presence was cleared or not. |
ClearRichPresenceBindable()
Clear all rich presence.
Declaration
public static void ClearRichPresenceBindable()
ClearStringParameters()
Clear all string values from the assigned search parameters. See SteamSearchParameters.
Declaration
public static void ClearStringParameters()
Connect(UInt64)
Connect to a lobby or friend.
Declaration
public static bool Connect(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The lobby or friend ID to connect to. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If successfully started the connection. |
ControlSteamFriendsVoiceCallback(ChangeEvent<Boolean>)
Callback to set if the Steam friends UI voice is controlled from the game.
Declaration
public static void ControlSteamFriendsVoiceCallback(ChangeEvent<bool> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Boolean> | evt | The change event. |
DeleteNearParameter(String)
Delete a near value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static bool DeleteNearParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it was deleted. |
DeleteNumberParameter(String)
Delete a number value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static bool DeleteNumberParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it was deleted. |
DeleteParameter(String)
Delete a value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static bool DeleteParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it was deleted. |
DeleteStringParameter(String)
Delete a string value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static bool DeleteStringParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it was deleted. |
DisableAutoGroup()
Disable auto grouping.
Declaration
public static void DisableAutoGroup()
DisableAutoPreferFriends()
Disable that we prefer joining friends when automatically finding a match.
Declaration
public static void DisableAutoPreferFriends()
DisableControlSteamFriendsVoice()
Disable controlling the Steam friends UI voice from the game.
Declaration
public static void DisableControlSteamFriendsVoice()
DisableMic()
Disable the mic.
Declaration
public static void DisableMic()
DistanceCallback(ChangeEvent<Enum>)
Callback to set the search distance.
Declaration
public static void DistanceCallback(ChangeEvent<Enum> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<Enum> | evt | The change event. Must be a SteamDistance. |
EnableAutoGroup()
Enable auto grouping.
Declaration
public static void EnableAutoGroup()
EnableAutoPreferFriends()
Enable that we prefer joining friends when automatically finding a match.
Declaration
public static void EnableAutoPreferFriends()
EnableControlSteamFriendsVoice()
Enable controlling the Steam friends UI voice from the game.
Declaration
public static void EnableControlSteamFriendsVoice()
EnableMic()
Enable the mic.
Declaration
public static void EnableMic()
EnsureExists()
Ensure an instance exists and attempt to connect to Steam if needed.
Declaration
public static SteamManager EnsureExists()
Returns
| Type | Description |
|---|---|
| SteamManager | The Steam manager instance. |
EnsureExistsBindable()
Ensure an instance exists and attempt to connect to Steam if needed.
Declaration
public static void EnsureExistsBindable()
FindLobby()
Start a search to automatically join or create a lobby.
Declaration
public static bool FindLobby()
Returns
| Type | Description |
|---|---|
| System.Boolean | If the search to join a lobby was successfully initialized. |
FindLobbyBindable()
Start a search to automatically join or create a lobby.
Declaration
public static void FindLobbyBindable()
Flush()
Flush all connections in the lobby.
Declaration
public static void Flush()
Flush(Int32)
Flush all connections in the lobby on a given channel.
Declaration
public static void Flush(int channel)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | channel | The channel to flush. |
Flush(UInt64)
Manually close a connection with another user.
Declaration
public static void Flush(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to close the connection with. |
Flush(UInt64, Int32)
Manually close a connection with another user on a channel.
Declaration
public static void Flush(ulong id, int channel)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to close the connection with. |
| System.Int32 | channel | The channel to flush. |
FriendsLobbies()
Starts to request data for friends lobbies. Follows the search parameters assigned to the manager. Excludes our own lobby if we are in one with friends. You should listen for the OnSearchResults callback to get the results of this.
Declaration
public static bool FriendsLobbies()
Returns
| Type | Description |
|---|---|
| System.Boolean | If the search was started. |
FriendsLobbiesBindable()
Starts to request data for friends lobbies. Follows the search parameters assigned to the manager. Excludes our own lobby if we are in one with friends. You should listen for the OnSearchResults callback to get the results of this.
Declaration
public static void FriendsLobbiesBindable()
GetData(String)
Get the data value from our lobby.
Declaration
public static string GetData(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The value to get. |
Returns
| Type | Description |
|---|---|
| System.String | The given value. Will return an empty string if we are not in a lobby, the data did not exist, or there was an error. |
GetData(UInt64)
Get all the data for a lobby. This automatically handles Multiplayer Engine for Steam specific values. This assumes you are in this lobby, or you have retrieved this lobby ID via a search request, as otherwise you cannot see the data.
Declaration
public static Dictionary<string, string> GetData(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the lobby. |
Returns
| Type | Description |
|---|---|
| Dictionary<System.String, System.String> | The retrieved data or an empty dictionary if there was an error. |
GetData(UInt64, String)
Get a data value from a lobby. This assumes you are in this lobby, or you have retrieved this lobby ID via a search request, as otherwise you cannot see the data.
Declaration
public static string GetData(ulong id, string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the lobby. |
| System.String | key | The value to get. |
Returns
| Type | Description |
|---|---|
| System.String | The given value. Will return an empty string if the data did not exist or there was an error. |
GetDisplay(UInt64)
Get the rich presence localization token that will be displayed in a user's selected language in the Steam client UI of a user.
Declaration
public static string GetDisplay(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.String | The user's display rich presence or an empty string if it was not set. |
GetFriends(Boolean)
Get all your friends.
Declaration
public static List<ulong> GetFriends(bool sort = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | sort | If your friends should be sorted as given in SortUsers(IEnumerable<UInt64>). |
Returns
| Type | Description |
|---|---|
| List<System.UInt64> | The IDs of your friends. |
GetGroup(UInt64)
Get the rich presence group of a user.
Declaration
public static string GetGroup(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.String | The user's group or an empty string if it was not set. |
GetGroupSize(UInt64)
Get the rich presence group size of a user.
Declaration
public static int GetGroupSize(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.Int32 | The user's group size or zero if it was not set. |
GetIcon(UInt64, ref Texture2D, SteamIconSize)
Get an icon for a user.
Declaration
public static SteamIconStatus GetIcon(ulong id, ref Texture2D texture, SteamIconSize size = SteamIconSize.Large)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of user. |
| Texture2D | texture | The texture to load the icon into. |
| SteamIconSize | size | The size of the icon to get. |
Returns
| Type | Description |
|---|---|
| SteamIconStatus | The status of loading the icon. If "Requested", you need to wait for an OnIcon callback. |
GetIcon(ref Texture2D, SteamIconSize)
Get your icon.
Declaration
public static SteamIconStatus GetIcon(ref Texture2D texture, SteamIconSize size = SteamIconSize.Large)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture2D | texture | The texture to load the icon into. |
| SteamIconSize | size | The size of the icon to get. |
Returns
| Type | Description |
|---|---|
| SteamIconStatus | The status of loading the icon. If "Requested", you need to wait for an OnIcon callback. |
GetKeyType(String)
Get the type of data a key is for from the assigned search parameters. See SteamSearchParameters.
Declaration
public SteamSearchKey GetKeyType(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| SteamSearchKey | The type of data the key is for. |
GetLevel(UInt64)
Get the Steam level of a user.
Declaration
public static int GetLevel(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.Int32 | The Steam level of the user. |
GetMaxLobbyMembers(UInt64)
Get the maximum number of members for a lobby.
Declaration
public static int GetMaxLobbyMembers(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The lobby ID. |
Returns
| Type | Description |
|---|---|
| System.Int32 | The maximum number of members for the lobby. |
GetMemberData(String)
Get a data value for yourself.
Declaration
public static string GetMemberData(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The value to get. |
Returns
| Type | Description |
|---|---|
| System.String | The given value. Will return an empty string if we are not in a lobby, the data did not exist, or there was an error. |
GetMemberData(UInt64, String)
Get a data value for a user in our lobby.
Declaration
public static string GetMemberData(ulong id, string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user. |
| System.String | key | The value to get. |
Returns
| Type | Description |
|---|---|
| System.String | The given value. Will return an empty string if we are not in a lobby, the data did not exist, or there was an error. |
GetName(UInt64)
Get the name of a user.
Declaration
public static string GetName(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user. |
Returns
| Type | Description |
|---|---|
| System.String | The name of the user or an empty string if it fails. |
GetNearParameter(String)
Get a near value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static SteamNearData GetNearParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| SteamNearData | The value or a new struct if it does not exist. |
GetNumberLobbyMembers(UInt64)
Get the current number of members in a lobby.
Declaration
public static int GetNumberLobbyMembers(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The lobby ID. |
Returns
| Type | Description |
|---|---|
| System.Int32 | The number of members in the lobby. |
GetNumberParameter(String)
Get a number value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static SteamNumberData GetNumberParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| SteamNumberData | The value or a new struct if it does not exist. |
GetRelationship(UInt64)
Get the relationship with a user.
Declaration
public static SteamRelationship GetRelationship(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user. |
Returns
| Type | Description |
|---|---|
| SteamRelationship | The relationship the user. |
GetRichPresence(String)
Get a rich presence of us.
Declaration
public static string GetRichPresence(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.String | The rich presence value or an empty string if it was not set. |
GetRichPresence(UInt64)
Get all rich presence for a user.
Declaration
public static Dictionary<string, string> GetRichPresence(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user's ID. |
Returns
| Type | Description |
|---|---|
| Dictionary<System.String, System.String> | All found rich presence. |
GetRichPresence(UInt64, String)
Get a rich presence of a user.
Declaration
public static string GetRichPresence(ulong id, string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user's ID. |
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.String | The rich presence value or an empty string if it was not set. |
GetState(UInt64)
Get the state of a user.
Declaration
public static SteamState GetState(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user. |
Returns
| Type | Description |
|---|---|
| SteamState | The state of the user or offline if it fails. |
GetStatus(UInt64)
Get the rich presence status to display when someone views the user's game info.
Declaration
public static string GetStatus(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.String | The user's status or an empty string if it was not set. |
GetStringParameter(String)
Get a string value from the assigned search parameters. See SteamSearchParameters.
Declaration
public static SteamStringData GetStringParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| SteamStringData | The value or a new struct if it does not exist. |
HasNearParameter(String)
See if a given near key exists in the search parameters. See SteamSearchParameters.
Declaration
public static bool HasNearParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it exists. |
HasNumberParameter(String)
See if a given number key exists in the search parameters. See SteamSearchParameters.
Declaration
public static bool HasNumberParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it exists. |
HasParameter(String)
See if a given key exists in the search parameters. See SteamSearchParameters.
Declaration
public static bool HasParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it exists. |
HasStringParameter(String)
See if a given string key exists in the search parameters. See SteamSearchParameters.
Declaration
public static bool HasStringParameter(string key)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If it exists. |
Host()
Start the hosting process for a game as the owner.
Declaration
public static bool Host()
Returns
| Type | Description |
|---|---|
| System.Boolean | If successfully started creating a lobby. Note this only indicates if we have successfully requested to create a lobby, and we will not know the result is truly successful until the OnStartOwner method is fired. |
HostBindable()
Start the hosting process for a game as the owner.
Declaration
public static void HostBindable()
Invite(UInt64)
Invite a user to your lobby.
Declaration
public static bool Invite(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to invite. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If they were invited or were already in the lobby. |
InviteOverlay()
Open the invite overlay. Only works if currently in a lobby that has open space.
Declaration
public static bool InviteOverlay()
Returns
| Type | Description |
|---|---|
| System.Boolean | If the overlay was opened or not. |
InviteOverlayBindable()
Open the invite overlay. Only works if currently in a lobby that has open space.
Declaration
public static void InviteOverlayBindable()
Joinable(UInt64)
If a friend or lobby can be joined.
Declaration
public static bool Joinable(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the friend or lobby. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the friend or lobby can be joined. |
Kick(UInt64)
Kick a player from the lobby if we are the owner.
Declaration
public static bool Kick(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the player to kick. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the request to kick was sent. |
MaximumCallback(ChangeEvent<Int32>)
Callback to set the maximum lobbies to search for.
Declaration
public static void MaximumCallback(ChangeEvent<int> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Int32> | evt | The change event. |
MaxMembersCallback(ChangeEvent<Int32>)
Callback to set the max members.
Declaration
public static void MaxMembersCallback(ChangeEvent<int> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Int32> | evt | The change event. |
MicEnabledCallback(ChangeEvent<Boolean>)
Callback to set if the mic is enabled.
Declaration
public static void MicEnabledCallback(ChangeEvent<bool> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Boolean> | evt | The change event. |
ModeCallback(ChangeEvent<Enum>)
Callback to set the mode of the lobby.
Declaration
public static void ModeCallback(ChangeEvent<Enum> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<Enum> | evt | The change event. Must be a SteamLobbyMode. |
OpenCallback(ChangeEvent<Boolean>)
Callback to set if the lobby is open or not.
Declaration
public static void OpenCallback(ChangeEvent<bool> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Boolean> | evt | The change event. |
PlayersCallback(ChangeEvent<Enum>)
Callback to set how players are sorted by.
Declaration
public static void PlayersCallback(ChangeEvent<Enum> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<Enum> | evt | The change event. Must be a SteamPopulationMode. |
Receive(ref Byte[], out UInt64, out Int32, out Boolean, Int32)
Receive a packet from the network.
Declaration
public static bool Receive(ref byte[] data, out ulong id, out int size, out bool reliable, int channel = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | data | Where to store the raw packet. |
| System.UInt64 | id | The ID of the packet's sender. |
| System.Int32 | size | The size of the packet. |
| System.Boolean | reliable | If the packet was reliable or not. |
| System.Int32 | channel | The channel to get the packet from which defaults to zero. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If a packet was retrieved. |
RegisterTextFilter(SteamTextFilter)
Register a text filter.
Declaration
public static void RegisterTextFilter(SteamTextFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamTextFilter | filter | The text filter. |
RegisterVoice(UInt64, ISteamVoice)
Register a voice listener.
Declaration
public static void RegisterVoice(ulong id, ISteamVoice listener)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to receive the voice of. |
| ISteamVoice | listener | The listener to register. |
RegisterVoiceFilter(SteamVoiceFilter)
Register a voice filter.
Declaration
public static void RegisterVoiceFilter(SteamVoiceFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamVoiceFilter | filter | The voice filter. |
RequestRichPresence(UInt64)
Request the rich presence for a user. If successful, wait for an "OnRichPresence" callback with the given ID.
Declaration
public static bool RequestRichPresence(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to request. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the rich presence was requested or not. |
RequestUserInformation(UInt64, Boolean)
Request the information about a user.
Declaration
public static bool RequestUserInformation(ulong id, bool nameOnly = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user. |
| System.Boolean | nameOnly | If we only want the name, or we also need their avatar. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
RunTextFilters(ref String, UInt64)
Run all text filters.
Declaration
public static void RunTextFilters(ref string message, ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | message | The message to run them on. |
| System.UInt64 | id | The user the message is associated with. |
SearchLobbies()
Start a search for lobbies. This will ignore your own lobby if you are in one. You should listen for the OnSearchResults callback to get the results of this.
Declaration
public static bool SearchLobbies()
Returns
| Type | Description |
|---|---|
| System.Boolean | If the search was successfully initialized. |
SearchLobbiesBindable()
Start a search for lobbies. This will ignore your own lobby if you are in one. You should listen for the OnSearchResults callback to get the results of this.
Declaration
public static void SearchLobbiesBindable()
Send(IList<Byte[]>, Int32[], Int32, Boolean, Boolean, Boolean, Boolean, UInt64[], ISet<UInt64>)
Send packets to multiple members.
Declaration
public static bool Send(IList<byte[]> data, int[] sizes = null, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true, bool sendSelf = false, ulong[] ids = null, ISet<ulong> failures = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<System.Byte[]> | data | The data to send. |
| System.Int32[] | sizes | The sizes of the data to send. Index corresponds to the data index. Will send the entire data if that index is negative or zero. If NULL, will send the entire data for each element. If sending reliably, ensure each index is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
| System.Boolean | sendSelf | If we also want to send the message to ourselves which defaults to false. |
| System.UInt64[] | ids | The IDs to send the packet to. NULL will send to everyone. |
| ISet<System.UInt64> | failures | Optionally store the IDs that failed. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all data was sent to all users successfully. |
Send(Byte[], Int32, Int32, Boolean, Boolean, Boolean, Boolean, UInt64[], ISet<UInt64>)
Send a packet to multiple members.
Declaration
public static bool Send(byte[] data, int size = 0, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true, bool sendSelf = false, ulong[] ids = null, ISet<ulong> failures = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | data | The data to send. |
| System.Int32 | size | The size of the data to send. Will send the entire array if negative or zero. If sending reliably, ensure it is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
| System.Boolean | sendSelf | If we also want to send the message to ourselves which defaults to false. |
| System.UInt64[] | ids | The IDs to send the packet to. NULL will send to everyone. |
| ISet<System.UInt64> | failures | Optionally store the IDs that failed. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the data was sent to all users successfully. |
Send(UInt64, IList<Byte[]>, Int32[], Int32, Boolean, Boolean, Boolean)
Send multiple packets to a user. Stops sending at the first error encountered.
Declaration
public static bool Send(ulong id, IList<byte[]> data, int[] sizes = null, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user to send the packet to. |
| IList<System.Byte[]> | data | The data to send. |
| System.Int32[] | sizes | The sizes of the data to send. Index corresponds to the data index. Will send the entire data if that index is negative or zero. If NULL, will send the entire data for each element. If sending reliably, ensure each index is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all packets were successfully sent. |
Send(UInt64, Byte[], Int32, Int32, Boolean, Boolean, Boolean)
Send a packet to a user.
Declaration
public static bool Send(ulong id, byte[] data, int size = 0, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user to send the packet to. |
| System.Byte[] | data | The data to send. |
| System.Int32 | size | The size of the data to send. Will send the entire array if negative or zero. If sending reliably, ensure it is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the packet was successfully sent. |
SendOwner(IList<Byte[]>, Int32[], Int32, Boolean, Boolean, Boolean)
Send multiple packets to the owner. Stops sending at the first error encountered.
Declaration
public static bool SendOwner(IList<byte[]> data, int[] sizes = null, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<System.Byte[]> | data | The data to send. |
| System.Int32[] | sizes | The sizes of the data to send. Index corresponds to the data index. Will send the entire data if that index is negative or zero. If NULL, will send the entire data for each element. If sending reliably, ensure each index is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all packets were successfully sent. |
SendOwner(Byte[], Int32, Int32, Boolean, Boolean, Boolean)
Send a packet to the owner.
Declaration
public static bool SendOwner(byte[] data, int size = 0, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | data | The data to send. |
| System.Int32 | size | The size of the data to send. Will send the entire array if negative or zero. If sending reliably, ensure it is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the packet was successfully sent. |
SendSelf(IList<Byte[]>, Int32[], Int32, Boolean, Boolean, Boolean)
Send multiple packets to ourselves. Stops sending at the first error encountered.
Declaration
public static bool SendSelf(IList<byte[]> data, int[] sizes = null, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<System.Byte[]> | data | The data to send. |
| System.Int32[] | sizes | The sizes of the data to send. Index corresponds to the data index. Will send the entire data if that index is negative or zero. If NULL, will send the entire data for each element. If sending reliably, ensure each index is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all packets were successfully sent. |
SendSelf(Byte[], Int32, Int32, Boolean, Boolean, Boolean)
Send a packet to ourselves.
Declaration
public static bool SendSelf(byte[] data, int size = 0, int channel = 0, bool reliable = true, bool nagle = true, bool delay = true)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | data | The data to send. |
| System.Int32 | size | The size of the data to send. Will send the entire array if negative or zero. If sending reliably, ensure it is not greater than "ReliableCapacity". |
| System.Int32 | channel | The channel to send the data on. Defaults to zero. |
| System.Boolean | reliable | If this is a reliable message or not. Defaults to reliable. |
| System.Boolean | nagle | If Nagle's algorithm should be used. Defaults to true. |
| System.Boolean | delay | If delays in the case of events such as handshaking are allowed. Disabling only impacts unreliable messages. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the packet was successfully sent. |
SetClose()
Set the lobby to closed.
Declaration
public static void SetClose()
SetData(IEnumerable<KeyValuePair<String, String>>)
Add lobby data if we are the owner. Note that if any are a search parameter, it will not override the cached searching value, only the value in the current lobby.
Declaration
public static bool SetData(IEnumerable<KeyValuePair<string, string>> data)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<KeyValuePair<System.String, System.String>> | data | The lobby data. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all data was successfully set. |
SetData(String, String)
Add lobby data if we are the owner. Note that if this is a search parameter, it will not override the cached searching value, only the value in the current lobby.
Declaration
public static bool SetData(string key, string value = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The data key. |
| System.String | value | The data value. NULL will delete the data. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the data was successfully set. |
SetDistanceClose()
Set the search distance to close. See SteamDistance.
Declaration
public static void SetDistanceClose()
SetDistanceDefault()
Set the search distance to the default. See SteamDistance.
Declaration
public static void SetDistanceDefault()
SetDistanceFar()
Set the search distance to far. See SteamDistance.
Declaration
public static void SetDistanceFar()
SetDistanceWorldwide()
Set the search distance to worldwide. See SteamDistance.
Declaration
public static void SetDistanceWorldwide()
SetMemberData(IEnumerable<KeyValuePair<String, String>>)
Add local user data.
Declaration
public static bool SetMemberData(IEnumerable<KeyValuePair<string, string>> data)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<KeyValuePair<System.String, System.String>> | data | The user data. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all data was successfully set. |
SetMemberData(String, String)
Add local user data.
Declaration
public static bool SetMemberData(string key, string value = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The data key. |
| System.String | value | The data value. NULL will delete the data. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the data was successfully set. |
SetModeInvisible()
Set the lobby to invisible. See SteamLobbyMode.
Declaration
public static void SetModeInvisible()
SetModeInviteAndFriends()
Set the lobby to friends and invites only. See SteamLobbyMode.
Declaration
public static void SetModeInviteAndFriends()
SetModeInviteOnly()
Set the lobby to invite only. See SteamLobbyMode.
Declaration
public static void SetModeInviteOnly()
SetModePublic()
Set the lobby to public. See SteamLobbyMode.
Declaration
public static void SetModePublic()
SetNearParameter(String, Int32, Int32)
Set a near value for the search parameters. See SteamSearchParameters.
Declaration
public static void SetNearParameter(string key, int value = 0, int order = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
| System.Int32 | value | The value. |
| System.Int32 | order | The sorting order. |
SetNumberParameter(String, Int32, Int32, SteamSearchType)
Set a number value for the search parameters. See SteamSearchParameters.
Declaration
public static void SetNumberParameter(string key, int value = 0, int order = 0, SteamSearchType searchType = SteamSearchType.Equal)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
| System.Int32 | value | The value. |
| System.Int32 | order | The sorting order. |
| SteamSearchType | searchType | How to handle this value. |
SetOpen()
Set the lobby to open.
Declaration
public static void SetOpen()
SetParameters()
Set the lobby data to our search parameters. This is done automatically when we create a lobby. However, this is not automatically run if we become a lobby owner, as potentially some desired state data has changed since we joined. See SteamSearchParameters.
Declaration
public static bool SetParameters()
Returns
| Type | Description |
|---|---|
| System.Boolean | If all the data set was. |
SetParametersBindable()
Set the lobby data to our search parameters. This is done automatically when we create a lobby. However, this is not automatically run if we become a lobby owner, as potentially some desired state data has changed since we joined. See SteamSearchParameters.
Declaration
public static void SetParametersBindable()
SetPlayersLeast()
Set how players are sorted to be from the least populated to most. See SteamPopulationMode.
Declaration
public static void SetPlayersLeast()
SetPlayersMost()
Set how players are sorted to be from the most populated to least. See SteamPopulationMode.
Declaration
public static void SetPlayersMost()
SetPlayersNone()
Set for there to be no sorting based on how populated lobbies are. See SteamPopulationMode.
Declaration
public static void SetPlayersNone()
SetRichPresence(IEnumerable<KeyValuePair<String, String>>)
Set multiple rich presence values.
Declaration
public static bool SetRichPresence(IEnumerable<KeyValuePair<string, string>> data)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<KeyValuePair<System.String, System.String>> | data | The key-value pairs to set. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all keys were successfully set. |
SetRichPresence(String, String)
Common method for setting a rich presence value.
Declaration
public static bool SetRichPresence(string key, string value = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
| System.String | value | The value. NULL or empty will unset the rich presence. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the key was set or not. |
SetStringParameter(String, String, Int32, SteamSearchType)
Set a string value for the search parameters. See SteamSearchParameters.
Declaration
public static void SetStringParameter(string key, string value = null, int order = 0, SteamSearchType searchType = SteamSearchType.Equal)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | The key. |
| System.String | value | The value. |
| System.Int32 | order | The sorting order. |
| SteamSearchType | searchType | How to handle this value. |
SetVoiceRateMaximum()
Set the voice rate to the maximum value of 48,000.
Declaration
public static void SetVoiceRateMaximum()
SetVoiceRateMinimum()
Set the voice rate to the minimum value of 11,025.
Declaration
public static void SetVoiceRateMinimum()
SetVoiceRateOptimal()
Set the voice rate to be automatically determined by Steam.
Declaration
public static void SetVoiceRateOptimal()
Shutdown()
Shutdown all Steam networking.
Declaration
public static void Shutdown()
SortLobbies(ref List<UInt64>)
Sort lobbies by the search parameters. If there are none, sorts by the most connected players and then by those which have the most spaces.
Declaration
public static bool SortLobbies(ref List<ulong> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| List<System.UInt64> | ids | The lobby IDs to sort. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the sorting was successful. |
SortUsers(IEnumerable<UInt64>)
Sort users based on relevance for playing with you. This lists yourself first, followed by sorting on relationship. Users of the same relationship are sorted on state. Further ties are then sorted by name, Steam level, and lastly ID. Invalid users are removed.
Relationship order, see SteamRelationship:
1 - Friend.
2 - Initiated.
3 - Requested.
4 - None or they ignored your friend request.
5 - Blocked.
State order, see SteamState:
1 - In the same lobby as you and are the owner of it.
2 - In the same lobby as you.
3 - In the same game but in a different lobby than you that can be joined. Note this is lower than in the same game and not in a lobby if we are in a lobby, as those players are more likely to be open to joining us.
4 - In the same game but in a different lobby than you, but it can't be joined. Note this is lower than in the same game and not in a lobby if we are in a lobby, as those players are more likely to be open to joining us.
5 - In the same game but not yet in a lobby. Note this is higher than in a different lobby than us if we are in a lobby, as these players are more likely to be open to joining us.
6 - Looking to play a game.
7 - Playing a different game.
8 - Online.
9 - Trading.
10 - Busy.
11 - Away.
12 - Snooze.
13 - Offline.
Declaration
public static List<ulong> SortUsers(IEnumerable<ulong> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<System.UInt64> | ids | The IDs of the users to sort. |
Returns
| Type | Description |
|---|---|
| List<System.UInt64> | The users sorted based on relevance for playing with you. |
ToggleAutoGroup()
Toggle auto grouping.
Declaration
public static void ToggleAutoGroup()
ToggleAutoPreferFriends()
Toggle that we prefer joining friends when automatically finding a match.
Declaration
public static void ToggleAutoPreferFriends()
ToggleControlSteamFriendsVoice()
Toggle controlling the Steam friends UI voice from the game.
Declaration
public static void ToggleControlSteamFriendsVoice()
ToggleMic()
Toggle the mic.
Declaration
public static void ToggleMic()
TransferOwner()
Transfer ownership to someone else in the lobby. This will sort the users based on SortUsers(IEnumerable<UInt64>), transferring to the first user.
Declaration
public static ulong TransferOwner()
Returns
| Type | Description |
|---|---|
| System.UInt64 | The ID of who ownership was transferred to or zero if there was nobody to transfer to. |
TransferOwner(UInt64)
Transfer ownership to a user.
Declaration
public static bool TransferOwner(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to transfer ownership to. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if ownership was transferred, false otherwise. |
Unban(UInt64)
Unban a player from the lobby if we are the owner. Note this applies to the lobby, not your Steam account bans.
Declaration
public static bool Unban(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the player to unban. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the request to unban was sent. |
UnregisterTextFilter(SteamTextFilter)
Unregister a text filter.
Declaration
public static void UnregisterTextFilter(SteamTextFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamTextFilter | filter | The text filter. |
UnregisterVoice(UInt64, ISteamVoice)
Unregister a voice listener.
Declaration
public static void UnregisterVoice(ulong id, ISteamVoice listener)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to stop receiving the voice of. |
| ISteamVoice | listener | The listener to unregister. |
UnregisterVoiceFilter(SteamVoiceFilter)
Unregister a voice filter.
Declaration
public static void UnregisterVoiceFilter(SteamVoiceFilter filter)
Parameters
| Type | Name | Description |
|---|---|---|
| SteamVoiceFilter | filter | The voice filter. |
UserGame(UInt64)
Get the ID of the game a user is playing.
Declaration
public static uint UserGame(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.UInt32 | The ID of the game a user is playing. |
UserInAnyGame(UInt64)
Get if a user is in any game.
Declaration
public static bool UserInAnyGame(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is in any game. |
UserInAnyLobby(UInt64)
Get if a user is in a lobby in this game.
Declaration
public static bool UserInAnyLobby(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | If the user is currently in our lobby or not. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is currently in a lobby in this game. |
UserInCurrentGame(UInt64)
Get if a user is in the same game as us.
Declaration
public static bool UserInCurrentGame(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is in the same game as us. |
UserInCurrentLobby(UInt64)
Get if a user is currently in your lobby.
Declaration
public static bool UserInCurrentLobby(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | If the user is currently in our lobby or not. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is currently in your lobby. |
UserInLobby(UInt64, UInt64)
Get if a user is in a given lobby in this game.
Declaration
public static bool UserInLobby(ulong id, ulong lobby)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | If the user is currently in our lobby or not. |
| System.UInt64 | lobby | The ID of the lobby. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is currently in a lobby in this game. |
UserInOtherGame(UInt64)
Get if a user is in a different game then us.
Declaration
public static bool UserInOtherGame(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is in a different game then us. |
UserInOtherLobby(UInt64)
Get if a user is in another lobby in this game.
Declaration
public static bool UserInOtherLobby(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | If the user is currently in our lobby or not. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user is currently in another lobby in this game. |
UserLobby(UInt64)
Get the lobby a user is in.
Declaration
public static ulong UserLobby(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The user ID. |
Returns
| Type | Description |
|---|---|
| System.UInt64 | The lobby they are in. |
UserValid(UInt64)
Check if a user is valid or not.
Declaration
public static bool UserValid(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to check. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If they are valid. |
VoiceChannelCallback(ChangeEvent<Int32>)
Callback to set the voice channel.
Declaration
public static void VoiceChannelCallback(ChangeEvent<int> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.Int32> | evt | The change event. |
VoiceRateCallback(ChangeEvent<UInt32>)
Callback to set the voice rate.
Declaration
public static void VoiceRateCallback(ChangeEvent<uint> evt)
Parameters
| Type | Name | Description |
|---|---|---|
| ChangeEvent<System.UInt32> | evt | The change event. |
VoiceRecipientsAdd(IEnumerable<UInt64>)
Add voice recipients. The users must be in the lobby.
Declaration
public static bool VoiceRecipientsAdd(IEnumerable<ulong> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<System.UInt64> | ids | The IDs of the users to add. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all the recipients were added. |
VoiceRecipientsAdd(UInt64)
Add a voice recipient. The user must be in the lobby.
Declaration
public static bool VoiceRecipientsAdd(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to add. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the recipient was added. |
VoiceRecipientsAll()
Set to have everyone receive our voice. This will ensure new players which join automatically receive our voice.
Declaration
public static void VoiceRecipientsAll()
VoiceRecipientsNobody()
Set to have nobody receive our voice.
Declaration
public static void VoiceRecipientsNobody()
VoiceRecipientsRemove(List<UInt64>)
Remove voice recipients.
Declaration
public static bool VoiceRecipientsRemove(List<ulong> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| List<System.UInt64> | ids | The IDs of the user to remove. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If all the users were listening and have now been removed. |
VoiceRecipientsRemove(UInt64)
Remove a voice recipient.
Declaration
public static bool VoiceRecipientsRemove(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to remove. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the user was listening and now has been removed. |
VoiceRecipientsSet(IEnumerable<UInt64>)
Set the voice recipient to be a set of particular users. Users not in the lobby will be removed from the IDs.
Declaration
public static bool VoiceRecipientsSet(IEnumerable<ulong> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<System.UInt64> | ids | The IDs of the user to set. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the voice was set to all of them. |
VoiceRecipientsSet(UInt64)
Set the voice recipient to be a particular user. The user must be in the lobby, and if they are not it will make a new empty recipients lis instead.
Declaration
public static bool VoiceRecipientsSet(ulong id)
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt64 | id | The ID of the user to set. |
Returns
| Type | Description |
|---|---|
| System.Boolean | If the voice was set to them. |
Events
OnChat
Called when a chat message has been sent or received.
Declaration
public static event SteamManager.ChatEventHandler OnChat
Event Type
| Type | Description |
|---|---|
| SteamManager.ChatEventHandler |
OnDisconnect
Called when a user has left our lobby.
Declaration
public static event SteamManager.IdEventHandler OnDisconnect
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnIcon
Called when an icon has been loaded.
Declaration
public static event SteamManager.IdEventHandler OnIcon
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnInitialized
Called when Steam is initialized.
Declaration
public static event SteamManager.EmptyEventHandler OnInitialized
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnJoin
Called when a user has joined our lobby.
Declaration
public static event SteamManager.IdEventHandler OnJoin
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnLobbyDataUpdate
Called when some lobby data has updated.
Declaration
public static event SteamManager.EmptyEventHandler OnLobbyDataUpdate
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnOwnerChange
Called when the owner has changed to the given ID.
Declaration
public static event SteamManager.IdEventHandler OnOwnerChange
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnQuit
Called when quitting or Steam has externally quit.
Declaration
public static event SteamManager.EmptyEventHandler OnQuit
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnRichPresence
Callback for when a rich presence for a user has been updated.
Declaration
public static event SteamManager.RichPresenceEventHandler OnRichPresence
Event Type
| Type | Description |
|---|---|
| SteamManager.RichPresenceEventHandler |
OnSearchParametersChange
Called when the search parameters have changed.
Declaration
public static event SteamManager.EmptyEventHandler OnSearchParametersChange
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnSearchResults
Callback for when search results arriving. The first field is lobbies of friends, and the second is public lobbies. There are no duplicates between the two lists. If currently in a lobby, it is excluded from both.
Declaration
public static event SteamManager.LobbiesEventHandler OnSearchResults
Event Type
| Type | Description |
|---|---|
| SteamManager.LobbiesEventHandler |
OnShutdown
Called when our networking is shutting down such as leaving a lobby.
Declaration
public static event SteamManager.EmptyEventHandler OnShutdown
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnStartFail
Callback for when failing to start or connect to a lobby. The ID is the lobby or friend that we failed to join. If hosting failed, this will be our ID.
Declaration
public static event SteamManager.IdEventHandler OnStartFail
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnStartMember
Called when we have connected to a lobby as a member
Declaration
public static event SteamManager.EmptyEventHandler OnStartMember
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnStartOwner
Called when we have connected to a lobby as the owner.
Declaration
public static event SteamManager.EmptyEventHandler OnStartOwner
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |
OnUser
Called when information about a user has updated.
Declaration
public static event SteamManager.IdEventHandler OnUser
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnUserDataUpdate
Called when some data about the given user has updated.
Declaration
public static event SteamManager.IdEventHandler OnUserDataUpdate
Event Type
| Type | Description |
|---|---|
| SteamManager.IdEventHandler |
OnVoiceRecipients
Callback for when our voice recipients have changed.
Declaration
public static event SteamManager.EmptyEventHandler OnVoiceRecipients
Event Type
| Type | Description |
|---|---|
| SteamManager.EmptyEventHandler |