Unity User Tools
Clans (aka Groups)
The Steam Clan, aka Steam Group system, is part of Valve's Steam Friend system. Players can freely create clans which work similarly to guilds in MMOs in that they have a roster, and officers, can run events and have a dedicated chat system that is always accessible to members.
Heathen's Clan Tools simplify Valve's clan interface features. It maintains a list of the player's clans and each clan's membership which can be refreshed on demand. Clan chat can be interacted with through code, though in general it's advised to use the Steam Overlay as Clan chat can be very complex on account of the large number of users and that a player may interact with the chat from a wide range of sources such as Steam Client, Web Browser, Mobile App, Overlay or of 3rd party apps and games.
Heathen's tools like the Clan List, Clan Chat Director and more can help you bring the group/clan system in-game.
Friends List
It is possible to chat with specific friends in the game though this is not typical. To get started you would need to enable the Listen for Friend Messages feature in the Friend API. Once this is enabled the EventGameConnectedFriendChatMsg event will be raised when receiving a message from a friend. You can also Send Messages to friends either via the User Data object or the Friend API.
User Data
The Heathen framework simplifies the concept of Steam User Data in our UserData object. This object is equitable and comparable to CSteamID and ulong meaning you can convert any CSteamID or ulong value to a UserData object.
This means you no longer need to "Get" a UserData object as you did in other steam integrations. The UserData object exposes all relevant information about the user in question with simple fields.
For full details see UserData's documentation here.
Local User
The most common use case is to fetch the local user's information. This can be done with a single line call.
For example if you wanted to get the local user's name as it appears on Steam.
Avatar Image
Unlike previous iterations we only load the image when requested, this saves memory usage by only loading avatars that are requested.
Note the Avatar field checks for loaded avatar images and returns the matching image if found.
The LoadAvatar method does similar but asynchronously and will load the image if not found. It does this by taking an Action as a parameter and invoking it when the image is found or loaded as required.
If your not aware of what a callback is see this article.
Display User information
There are a few pre-made components that can help display common UserData to the screen such as the Set User Avatar and Set User Name components. These simply set uGUI RawImage or uGUI Text or TMPro text fields.
Last updated