Namespace SteamMultiplayerEngine
Core Multiplayer Engine for Steam functionality. See the SteamManager
for most of the API functions. Other core functions can be found in the SteamSearchParameters
]( and SteamUser
]( APIs.
Classes
SteamData<T>
Data for lobbies which can be searched upon.
SteamFilter
Base class for voice and text filtering.
SteamFilterData<T>
Data for lobbies which can be searched upon and filters results.
SteamFriendsTextFilter
Simple text filter that blocks all messages that are not from friends and ourselves.
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.
SteamNearData
Store a search data entry for number data that should be near to a target value.
SteamNumberData
Store a search data entry for number data.
SteamPrefixTextFilter
Text filter that only keeps messages that are prefixed by one or more prefixes which could be useful for implementing team-based chats.
SteamSearchParameters
What parameters we want to use to search for lobbies with. If we create a lobby, these will be applied.
SteamSelfMessage
Allow for caching messages to ourselves.
SteamStringData
Store a search data entry for string data.
SteamTextFilter
Base for filtering chat messages.
SteamUser
Store the information of a user.
SteamVoiceFilter
Base for applying filters to voice audio.
SteamWordsTextFilter
Filter out specific words replacing them with a given character. Note that this is mainly just an example, and if you want to make a full profanity filter, it is recommended you find a word list and programmatically load and check it in an efficient manner.
Interfaces
ISteamVoice
Interface to allow for matching voice settings with the SteamManager and receiving new audio in case other custom methods wish to be created.
Enums
SteamDistance
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).
SteamIconSize
The icon size we want. Note that the below sizes are the official ones from the Steamworks API documentation, but actual icon sizes do not seem to be guaranteed to match these values.
Large = 128 x 128.
Medium = 64 x 64.
Small = 32 x 32.
None = No icon.
SteamIconStatus
The status of an icon we requested.
Available - Icon available.
Requested - Icon requested but not yet available.
None - No icon available.
SteamLobbyMode
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.
SteamPopulationMode
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.
SteamRelationship
The relationship with another user.
None - No set relationship.
Ignored Temporary - The user just clicked to ignore your friend request.
Requested - The user has requested you add them as a friend.
Friend - The user is your friend.
Initiated - You requested the user to add you as a friend.
Blocked - You have blocked this user.
Ignored - This user ignored your friend request.
SteamSearchKey
Get the data type a search parameter key is for.
None - Not set as a key.
String - The key is for string data.
Number - The key is for numeric data.
Near - The key is for near data.
SteamSearchType
How to handle a search value.
EqualToOrLessThan - Equal to or less than the given value.
LessThan - Less than the given value.
Equal - Equal to the given value.
GreaterThan - Greater than the given value.
EqualToOrGreaterThan - Equal to or greater than the given value.
NotEqual - Not equal to the given value.
SteamState
Get the state of a user.
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.
SteamVoiceAssignment
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.
Delegates
SteamManager.ChatEventHandler
Delegate for chat events.
SteamManager.EmptyEventHandler
Delegate for empty events.
SteamManager.IdEventHandler
Delegate for ID events.
SteamManager.LobbiesEventHandler
Delegate for the lobby searching event.
SteamManager.RichPresenceEventHandler
Delegate for rich presence being updated.
SteamManager.UserChatEventHandler
Delegate for chat events on SteamUser components.
SteamManager.UserRichPresenceEventHandler
Delegate for rich presence being updated on SteamUser components.