ScriptableObject Initialization

Like what your seeing?

Support us as a GitHub Sponsor and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our GitHub Sponsors ... become a sponsor today!


Initialize Steam API with this Steam Settings object. You do not require the use of any component scripts and thus do not require the use of any GameObjects to use this method. You will need to define your Steam Settings object and then use it to initialize the API by calling its Initialize() method.
using HeathenEngineering.SteamworksIntegration;
namespace YourNameSpace
public class SomeScriptOfYours : MonoBehaviour
private SteamSettings settings;
void Start()
//This is all that is required
In the above example we do use a MonoBehaviour but that is not required. All that is required is that you call the Initialize method on the Steam Settings object you wish to initialize.

Steam Settings

Create a new Steam Settings object in your project folder by right clicking in your project tab and selecting Create > Steamworks > Settings
The only value you "must" set is the Application Id

Application Id

Enter your app ID in the Application Id field. If you don't have an application ID just yet that's fine you can work with the test App ID 480 however there will be some limitations.
You obviously cannot deploy your app without an App ID
You cannot create your own achievements, stats or other artefacts without your own ID
Valve issues you an App ID when you pay your application fee. If you don't have your own ID yet you can use App ID 480 as a test ID. Heathen's samples and demos all use App ID 480.


The Steam Settings object can be used to reference all of your Steam "artifacts" such as Input Fields, Stats, Leaderboards, Achievements, DLC and Inventory items. For many of these artifact types you can define them in the Steam Developer Portal as you normally would and then use the "Import" button to pull them into your project.
The Unity Editor must be in "Play" mode for the import buttons to work. You can import
  • Achievements
  • Downloadable Content
  • * Inventory Items *
* Note Valve limits what information on Inventory Items can be imported. For example bundle content will not be imported. This is a deliberate limitation from Valve and cannot be worked around. In general you only need the item ID of an item so this should not be a problem in most use cases.

Steam Game Server Configuration

The Steam Game Server Configuration lets you configure the details of your game server as it will be seen by Steam. This is only relevant for server builds that will be initializing and logging on as a "Steam Game Server"
If you set the "Auto Logon" feature to false you will need to call LogOn for the server when your ready for it to log on which is done via the API.App.Server.LogOn() method.
This is most commonly done when you want to prevent the server from registering itself on the Steam Game Server browser until after you have made it ready such as after you have "StartServer" called on your HLAPI of choice and have configured the server making it ready for connections.