Steamworks Documentation
Steam Families

Overview

The Steam Families feature allows Steam users to play games from up to five close family members libraries. For more information about the feature, please see our announcement blog post.

By default Family Sharing is enabled on all games and DLC on Steam. For the most part, this feature doesn't require any extra implementation by the developer, but in some cases the game needs to be aware that the current player is using a shared copy. One example would be if your game economy is impacted if a DLC includes items or currency that are meant to be used only once. Or if you implement your own banning system (that's not VAC), you may need to verify game ownership in case both the player and the original game owner need to be banned for malicious behavior in a game.

There are two ways to check if a game is being accessed via Family Sharing, client-side or server side.

Checking Family Sharing status via Client API


Your running game can call ISteamApps::BIsSubscribedFromFamilySharing to check if the game is accessed via family sharing. If the user is playing a shared copy, call ISteamApps::GetAppOwner to get the SteamID of the original game owner.

Checking Family Sharing status via Server API


A more secure way to check if a player is using a shared copy is to call the ISteamUser/CheckAppOwnership Web API method from your backend. If the user is playing a shared copy, the response field "permanent" will be set to false and the field "ownersteamid" will contain the original owners SteamID, different from the caller provided SteamID. Family sharing licenses are considered temporary and family members accessing a shared game shouldn't be granted any permanent ownership rights on your backend.

If you are having problems solving any Steam Family sharing related issues using these APIs, please contact Steam Support.