Facepunch.Steamworks Wiki


Exposes a wide range of information and actions for applications and Downloadable Content (DLC).


static event Action<AppId> OnDlcInstalled
posted after the user gains ownership of DLC and that DLC is installed
static event Action OnNewLaunchParameters
posted after the user gains executes a Steam URL with command line or query parameters such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc while the game is already running. The new params can be queried with GetLaunchQueryParam and GetLaunchCommandLine


static SteamId AppOwner { get; }
Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed..
static System.String[] AvailableLanguages { get; }
Gets a list of the languages the current app supports.
static int BuildId { get; }
Gets the buildid of this app, may change at any time based on backend updates to the game. Defaults to 0 if you're not running a build downloaded from steam.
static string CommandLine { get; }
Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. This method of passing a connect string (used when joining via rich presence, accepting an invite, etc) is preferable to passing the connect string on the operating system command line, which is a security risk. In order for rich presence joins to go through this path and not be placed on the OS command line, you must set a value in your app's configuration on Steam. Ask Valve for help with this.
static string CurrentBetaName { get; }
Returns null if we're not on a beta branch, else the name of the branch
static string GameLanguage { get; }
Gets the current language that the user has set. This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title.
static bool IsCybercafe { get; }
Checks whether the current App ID license is for Cyber Cafes.
static bool IsLowViolence { get; }
Checks if the license owned by the user provides low violence depots. Low violence depots are useful for copies sold in countries that have content restrictions
static bool IsSubscribed { get; }
Checks if the active user is subscribed to the current App ID
static bool IsSubscribedFromFamilySharing { get; }
Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID
static bool IsSubscribedFromFreeWeekend { get; }
Checks if the user is subscribed to the current app through a free weekend This function will return false for users who have a retail or other type of license Before using, please ask your Valve technical contact how to package and secure your free weekened
static bool IsVACBanned { get; }
Checks if the user has a VAC ban on their account


static string AppInstallDir( AppId appid )
Gets the install folder for a specific AppID. This works even if the application is not installed, based on where the game would be installed with the default Steam library location.
Gets the download progress for optional DLC.
static IEnumerable<Data.DlcInformation> DlcInformation()
Returns metadata for all available DLC
static async Task<Data.FileDetails> GetFileDetailsAsync( string filename )
Asynchronously retrieves metadata details about a specific file in the depot manifest. Currently provides:
static string GetLaunchParam( string param )
Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, but it is advised that you not param names beginning with an underscore for your own features.
static void InstallDlc( AppId appid )
Install/Uninstall control for optional DLC
static IEnumerable<Data.DepotId> InstalledDepots( AppId appid )
Gets a list of all installed depots for a given App ID in mount order
static bool IsAppInstalled( AppId appid )
The app may not actually be owned by the current user, they may have it left over from a free weekend, etc.
static bool IsDlcInstalled( AppId appid )
Checks if the user owns a specific DLC and if the DLC is installed
static bool IsSubscribedToApp( AppId appid )
Checks if the active user is subscribed to a specified AppId. Only use this if you need to check ownership of another game related to yours, a demo for example.
static void MarkContentCorrupt( bool missingFilesOnly )
Allows you to force verify game content on next launch. If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit.
static System.DateTime PurchaseTime( AppId appid )
Returns the time of the purchase of the app
static void UninstallDlc( AppId appid )
Install/Uninstall control for optional DLC