Steam Workshop - Easy Steamworks Integration

Steam Workshop - Easy Steamworks Integration available in the Unity Asset Store

As some of you know the Steamworks API is a complex thing. Hence, I want to create a super easy Steam integration that can be used by designers who will only need to drag n’ drop a prefab into the scene. I want to minimize the coding part as much as possible.

I’m still searching for Steam features that you developers need to work in an easy way. Therefore, feel free to say what you need for your projects!

Description

The Easy Steamworks Integration brings various Steam features to your game with a very few clicks. The Steam Workshop plugin allows to browse, vote, favorite, subscribe and upload user generated content. You can integrate this plugin within your uGUI menus or trigger a browse, upload or update popup with a single line of code. The UI is highly customizable and can be adapted to the look of your game.

Features:

  • single prefab drag n’ drop for static UI
  • single code line for popup UI
  • highly customizable uGUI prefabs
  • search items
  • sort items
  • subscribe and download items
  • vote items
  • add favorite items
  • upload items (create or update)
  • make and upload screenshots with defined resolution

Screenshots

Game using the Steam Workshop - Easy Steamworks Integration

Documentation
Getting Started
Link App And Setup Workshop
Show Independent Popups
Add To Existing uGUI
Scripting Reference

Getting Started
After importing the Unity package the browse example (in ExampleScenesPopup or ExampleScenesStatic folders) will work out of the box - Steam must be running.
By default Steamworks.NET will use the Steam AppId 480 - SpaceWar, use it for your Workshop browser integration tests.
However, it is not possible to upload new levels to SpaceWar.
Please follow the instructions in Link App And Setup Workshop to browse the Workshop of your game and to use the upload feature.

Link App And Setup Workshop
Follow the steps below to set the AppId and to configure Steam Workshop for your game.

  • Start one of the test scenes to generate the steam_appid.txt file in the root of your project (the folder where Assets, Library and ProjectSettings directories a located).
  • Open the steam_appid.txt file and replace 480 with your Steam AppId.
  • Restart Unity Editor to load your new AppId.
  • Login to partner.steamgames.com and open your game’s App Admin page.
  • Under Technical Tools hit Edit Steamworks Settings.
  • Go to Application->Steam Cloud and set your data quotas e.g. 1048576000 for data per user and 1000 for number of files.
  • [optional] Tick Enable cloud support for developers only to hide your Workshop work until it is finished for public use.
  • Go to Workshop->General and tick Enable ISteamUGC for file transfer.
  • Go to Publish and apply your changes.
  • Steam might need a few hours for the changes to be applied → be patient if it doesn’t start to work instantly.
  • Now you should be able to browse the items of your game’s Workshop and to upload new items by using the provided example scenes (in the ExampleScenesPopup or ExampleScenesStatic folders). You can find a more detailed tutorial in the Steam partner portal.

Show Independent Popups
The single code line below will show a Workshop browser popup, which will list all comunity items of your game and allow to search, sort, vote, favorite, subscribe and download them. Please find detailed example code in addition with some other useful hints in the SteamWorkshopBrowseExamplePopup class.

// show the Steam Workshop browse popup
uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_browse");

The code below will show a Workshop item upload popup, which will allow entering the name and description of the item. Besides, it will allow to make a screenshot, which will be displayed as the item icon in the Workshop. Please find detailed example code in addition with some other useful hints in the SteamWorkshopUploadNewItemExamplePopup class.

// tell which folder you want to upload
WorkshopItemUpdate createNewItemUsingGivenFolder = new WorkshopItemUpdate();
createNewItemUsingGivenFolder.ContentPath = ...;
// show the Steam Workshop item upload popup
((SteamWorkshopPopupUpload)uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_upload"))
   .UploadUI.SetItemData(createNewItemUsingGivenFolder);

The following code shows a Workshop item update popup, which allows updating the name, the description and the icon of an existing item. All changed files in the given folder will be updated or uploaded. Please find detailed example code in addition with some other useful hints in the SteamWorkshopUpdateOwnedItemExamplePopup and SteamWorkshopUpdateItemFromFolderExamplePopup classes.

// load item data from existing item folder
WorkshopItemUpdate itemUpdate = SteamWorkshopMain.Instance.GetItemUpdateFromFolder(...);
// show the Steam Workshop item update popup
((SteamWorkshopPopupUpload)uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_upload"))
   .UploadUI.SetItemData(itemUpdate);

Add To Existing uGUI
You will find two prefabs included in the package, SteamWorkshopItemBrowser and SteamWorkshopItemUpload. All you need to do is simply drag n’ drop those into your Canvas or add them to any of your UI elements.

Powered by Steamworks.NET

The Easy Steamworks Integration series are powered by Steamworks.NET created by Riley Labrecquea. If you are lucky enough to earn some money with your game, then please consider a donation to Riley Labrecquea here.

Unity Asset Store: https://www.assetstore.unity3d.com/en/#!/content/86189

4 Likes

I haven’t got a game close enough to be able to submit to Steam yet, so I’m not sure what all the issues/requirements are. But I’m definitely interested in seeing what you put together. :slight_smile: Watching the thread.

1 Like

Just released on the Asset Store: Unity Asset Store - The Best Assets for Game Making

Steam Workshop - Easy Steamworks Integration is now on sale, 30% discount!
3036646--227286--upload_2017-4-18_7-27-30.png

1 Like

does it have leaderboards?
I would buy it if it had leaderboards with playmaker actions.

1 Like

The Steam Workshop asset that is on the store now does not have leaderboards.
However, it is great that you are asking for leaderboards. This shows me that there is interest in such an asset.
Currently I’m waiting to see if the Steam Workshop asset is selling at all and if there are people who want to pay for Easy Steam Integration assets.
I took a look at Nose Goes and I think that Steam leaderboards would for sure improve it.
Having said all of that above, leaderboards are next on the list, but I cannot tell you when they will be finished.
Once I have coded the leaderboards it will be a separate Asset Store package.

Helloooooo my friend

i have purchase asset now

Thanks for your work i go add workshop in my game sossurvival check steam please, for look game

But i have steamworks 9.0.0 there is a few error, if one has the your assets ;( possible update please for steamworks 9.0.0, well if you have steammanager 7.0.0 ok is work steamworks 9.0.0 is not work

thanks for help @FreebordMAD

First of all, thank you very much for using the Steam Workshop - Easy Steamworks Integration. I’m currently working on the Steam Leaderboards package. I took a look at your game. It looks very interesting. Maybe you can also use this package soon counting the days survived or other scores. Is there anything else you want to integrate with Steam?

Steam Workshop - Easy Steamworks Integration is currently compiled with 9.0.0, but I was able to reproduce your problems with Steamworks.NET 9.1.0. Those are fixed in the current beta. Please send me your e-mail in a pm including your order number, I will then send you the current beta version.

hi ,

Great :slight_smile:

i need add editor map for add workshop, i go try add in multiplayer photon too, ^^

i have send you pm

Already thought about using the Multiplatform Runtime Level Editor? :roll_eyes:

is very nice :slight_smile: Amazing, let me buy it in few week, bubt is possible add script in model?

Multiplatform Runtime Level Editor

Exemple:

Add script photon in mode, editor accept all script for model?

thanks for help

The MRLE will simply instatiate prefabs that you place in the resource folder. Hence, you can add any script that you want. For example, you could add a script to the door object, which would allow the player to open it when he is close enough or looking at it. Besides, you could make huge levels with the streamed level feature. Objects would be instantiated only if the player is close enough, also they would be hidden if the player leaves the area.
If you have any further questions regarding the MRLE, then please let us move this conversation to the right thread:

Hey there, I’m getting the following error when I use the example upload scenes:

All the fields are filled-in and the upload adds a blank file with no name, icon or description to my Workshop page. This is on Unity 5.6.1f1.

Thanks.

1 Like

First of all, thank you for purchasing the Easy Steam Integration plugin!
This error message is coming from Steam:

case EResult.k_EResultInvalidParam: return "A parameter is incorrect!";

Have you correctly setup the Steam Workshop of your game in the Steam partner website (data quotas, Enable ISteamUGC and cloud support)?

http://www.freebord-game.com/index.php/dev-tools/steam-workshop-easy-steamworks#doc_v1_00_link

Also, please just try again, sometimes Steam needs some time to update their servers with your changes.

2 Likes

Thanks for the help, looks like I missed the ‘save’ button at the bottom of the page after enabling ISteamUGC.

Also, thanks for making this plugin! I expected to spend a long time working on Workshop implementation, but this will spare me some valuable time to work on other parts of the game.

2 Likes

I’m glad that it works now!

You’re welcome. My aim is to create single code line/drag’n’drop plugins for every Steam API. I’m in the submission process of the Steam Leaderboards plugin, maybe you can use it in your game. You would help me a lot to push the Easy Steamworks Integration series on the Asset Store if you would simply copy paste your quote above to an Asset Store review!

1 Like

Hello. Do you have a demo version of your product? I just want to simulate the whole thing first before I buy. Like a test upload, download, then loading the downloaded items to the game. From the video, I can only see that it uploads a single file. Can it upload folders instead?

Steam allows to upload only folders not single files. Hence, the content of a folder is uploaded. In the code of the demo only one text file is uploaded with content, but you can add further files if you need it.
Feel free to buy it and ask for a refund within 10 days if it does not satisfy your wishes.
Please pay attention to the Steam configuration guide here: http://www.freebord-game.com/index.php/dev-tools/steam-workshop-easy-steamworks#doc_v1_00_link

1 Like

I already bought it, but haven’t had the time to play with it yet. I’ll post here if I encounter problems.

1 Like

Does it have callbacks/hooks for cases when there are errors like during download or upload?