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.
static Data.DownloadProgress DlcDownloadProgress( AppId appid )
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