Announcement

Collapse
No announcement yet.

[Plugin] Steam Workshop Accessor - Blueprint wrapper with full access

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [Plugin] Steam Workshop Accessor - Blueprint wrapper with full access

    Description
    This plugin exposes the full Steam UGC API to blueprint, which allows you to access the Steam Workshop. Steam Workshop allows you to upload and download any arbitrary content for your game that can be shared between users.

    Easily create, update, download, delete your workshop items. Subscribe, add items to your favorites and query all day long.
    Here is an overview of the availabe functions:
    Click image for larger version  Name:	SteamGeneralFunctions.PNG Views:	1 Size:	170.0 KB ID:	1551419 Click image for larger version  Name:	SteamWorkshopFunctions.PNG Views:	1 Size:	142.3 KB ID:	1551420
    Examples
    https://forums.unrealengine.com/unre...69#post1526669

    Known issues
    -None

    First things first
    1. Create a Steam account and download Steam.
    https://steamcommunity.com/

    2. Sign up as developer on steam and get your App ID. (Or use AppId 480 for testing)
    partner.steamgames.com

    3. Configure your workshop. Don't forget the cloud setup as preview images are stored in the steam cloud!
    https://partner.steamgames.com/doc/features/workshop

    4. Add the plugin to your games engine version.
    https://www.unrealengine.com/marketp...kshop-accessor

    5. Enable these plugins via the editor for your game.
    Code:
    - Steam Workshop Accessor
    - OnlineSubsystem
    - OnlineSubsystemUtils
    - OnlineSubsystemSteam
    6. Add this to your .../YourGame/Config/DefaultEngine.ini
    Code:
    [OnlineSubsystem]
    DefaultPlatformService=Steam
    
    [OnlineSubsystemSteam]
    bEnabled=true
    SteamAppId=480
    SteamDevAppId=480
    You can also have a look here:
    https://docs.unrealengine.com/en-us/...g/Online/Steam
    https://wiki.unrealengine.com/Steam,...ng_Development

    7. Start Steam.

    8. Start your game in standalone (Steam must be running!)
    -Do this by either right click your .uproject file and select Launch Game
    -Within the editor from the play drop-down select Standalone Game
    -Do it via commandline

    Click image for larger version  Name:	Overlay.png Views:	2 Size:	24.8 KB ID:	1527043

    9. Now you are able to write some code and test it.

    10. Enjoy.

    Workshop Legal Agreement
    Every user that uploads to the workshop needs to accept the Steam Workshop Legal Agreement.
    In the result of Creating or Updating a workshop item, you can find a boolean that tells you if the agreement is accepted or not.
    If the user has not agreed yet, items he published will be hidden. See the link below.
    https://partner.steamgames.com/doc/f...entation#Legal
    To open the overlay to the created item, use ActivateGameOverlayToWorkshopItem

    Download/Purchase
    https://www.unrealengine.com/marketp...kshop-accessor

    Config
    Copy past into game ini file
    .../YourProject/Config/DefaultGame.ini
    Code:
      
    [PluginSteamWorkshop]
    bCuratedWorkshop=false
    ItemUpdate_TitleLength_Min=0
    ItemUpdate_DescriptionLength_Min=0
    Result Codes
    https://partner.steamgames.com/doc/a...am_api#EResult

    Debugging (If you have the need to)
    As you need to start your game in standalone, you can't use breakpoints from the editor.

    If you are a pure blueprint user: PrintString is your friend (or create widgets).

    If you have C++ access, attach to the process of the standalone window. VisualStudio -> Debug -> AttachToProcess (if you are attached to the editor, you need to detach first).
    When attached, you can follow the output log in visual studio.

    Changelog
     
    Spoiler


    FAQ
     
    Spoiler
    Last edited by Rumbleball; 06-15-2020, 07:00 AM.
    NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

    #2
    There are lots of tooltips on functions, structures and properties that you should read if something is not clear on first sight.

    Create item on the workshop
    Click image for larger version  Name:	Examples_CreateWorkshopItem.PNG Views:	1 Size:	421.1 KB ID:	1551412
    Get update progress
    Click image for larger version  Name:	Examples_UpdateProgress.png Views:	1 Size:	309.8 KB ID:	1551413
    Query for items

    Click image for larger version  Name:	Examples_QueryWorkshopItem.png Views:	1 Size:	157.2 KB ID:	1526672Display a preview image
    Click image for larger version  Name:	DisplayPreviewImage.png Views:	1 Size:	235.5 KB ID:	1527389
    Download a WorkshopItem

    Click image for larger version

Name:	WorkshopDownload.PNG
Views:	1164
Size:	422.0 KB
ID:	1598440
    Last edited by Rumbleball; 03-24-2019, 12:14 PM.
    NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

    Comment


      #3
      I'm happy to announce the release of the plugin. It is now available for UE4.19+.
      NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

      Comment


        #4
        a question about this pluggin, does it allow to monetize content in steam, or it is only for free asset ?

        Comment


          #5
          Hello, I've just bought this, and I've tried to install it on my existing project, but I've run into some problems. My project is built using a custom engine built and it was running fine previous to installing this.
          So, what I have done: Installed the plugin to a 4.21 engine using the epic market launcher.
          Copied the plugin folder from the engine and then copied it to my custom engine folder, plugins.
          On starting the project, the editor loaded and then asked to enable the plugin, and I have.
          The editor restarted and asked me to build the project. I have tried and it failed.
          I've opened the Engine in VS17, tried to build it and it failed. The strange part is the errors shown are referring to Victory Plugin and Loading screen plugin, but these worked before, even in published builds.
          Next, I have tried to build the project itself in VS17 and that failed too.

          Any thoughts on how to fix this?

          Thanks!

          Comment


            #6
            Originally posted by w_micael View Post
            a question about this pluggin, does it allow to monetize content in steam, or it is only for free asset ?
            Sorry for the late answer, but I was not notified about your post.
            The plugins is only to interact with the workshop, e.g. Upload/Download/Query/Item Stats/... I did not yet get into paid workshop items. In case a workshop item is paid, I gues the user has to buy it first, otherwise the Workshop API (which is what this plugin connects to) should return an error when the user tries to download an item he did not buy.
            NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

            Comment


              #7
              Originally posted by strezoiu View Post
              Hello, I've just bought this, and I've tried to install it on my existing project, but I've run into some problems. My project is built using a custom engine built and it was running fine previous to installing this.
              So, what I have done: Installed the plugin to a 4.21 engine using the epic market launcher.
              Copied the plugin folder from the engine and then copied it to my custom engine folder, plugins.
              On starting the project, the editor loaded and then asked to enable the plugin, and I have.
              The editor restarted and asked me to build the project. I have tried and it failed.
              I've opened the Engine in VS17, tried to build it and it failed. The strange part is the errors shown are referring to Victory Plugin and Loading screen plugin, but these worked before, even in published builds.
              Next, I have tried to build the project itself in VS17 and that failed too.

              Any thoughts on how to fix this?

              Thanks!
              Well, this is interesting, though not the first time strange things happen. As you have a custom build, it is difficult for me to make any tests on this. We have the plugin run aside multiple other plugins, though not the ones mentioned by you.
              -First of some compile log would be nice. Maybe there are problems with duplicated class names or something similar.
              -Also you can try to make a project with an official engine build and add the plugins there, see how it works out.
              NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

              Comment


                #8
                Hey, thanks for your reply. I have managed to make it work in the end..I'm not sure, but it seems that installing your plugin first, rebuild the project, install Victory, rebuild, Install Loading screen plugin, rebuild got it to work... it still throws some errors on build, but it works and I've checked a packed game and it works there too.
                I can confirm, that on an empty project, custom or vanilla engine, it works fine. I'm using: https://github.com/AlienRenders/UnrealEngine

                Comment


                  #9
                  BTW, any chance you could whip up a short video tutorial, with the whole steps needed to connect, upload and download a mod to Steam Workshop?

                  Comment


                    #10
                    Originally posted by strezoiu View Post
                    Hey, thanks for your reply. I have managed to make it work in the end..I'm not sure, but it seems that installing your plugin first, rebuild the project, install Victory, rebuild, Install Loading screen plugin, rebuild got it to work... it still throws some errors on build, but it works and I've checked a packed game and it works there too.
                    I can confirm, that on an empty project, custom or vanilla engine, it works fine. I'm using: https://github.com/AlienRenders/UnrealEngine
                    Glad you could solve it. If I can help you with anything else, please let me know.
                    NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

                    Comment


                      #11
                      Originally posted by strezoiu View Post
                      BTW, any chance you could whip up a short video tutorial, with the whole steps needed to connect, upload and download a mod to Steam Workshop?
                      The code snippets above are everything you need. Dunno what else I could tell you in the video. Also I'm sick currently, so would not be nice to listen to. I also never did a video, which makes this a multiple hour project.
                      NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

                      Comment


                        #12
                        Ok, cool.
                        Quick one, though; How do I connect to steam? I've looked in your nodes, but could not find any that took an App ID or that would initiate the connection to steam.. have I missed any?

                        Comment


                          #13
                          Originally posted by strezoiu View Post
                          Ok, cool.
                          Quick one, though; How do I connect to steam? I've looked in your nodes, but could not find any that took an App ID or that would initiate the connection to steam.. have I missed any?
                          See the steps in the first post (Step 6). By defining the OnlineSubsystem in the config file, unreal does the connection automatically.
                          NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | RuntimeMeshImportExport | DebugWidget | SteamWorkshopAccessor

                          Comment


                            #14
                            Just to be clear, I have connected to steam(Shift+Tab ) displays the overlay, but I can't find any checks in the nodes that confirms this...

                            Comment


                              #15
                              Oh, NVM, I've found what I was looking for
                              Thanks for your quick help

                              Comment

                              Working...
                              X