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

Thanks for answer! When will the update be released?

with the release of UE4.22.

If you need anything else, let me know.

How i can get an image from subscribed item? (i use steam workshop get subscribed item)

see the image in the second post.

You told about whis image? https://forums.unrealengine.com/fileā€¦9&d=1536847742 If so, it loads a picture for all itemsā€¦ There is no subscribe items

The only possibility to get preview image URLs is to query for items. Use QueryForUserItems to only return items you are subscribed to. If you need the preview for a specific item, you must filter the results of the query.

A bit of a correction here. If you need the preview for a specific item, you can use QueryForItemDetails which you pass item IDs.

I currently trying to update to UE4.22 but something definitly went wrong. I have hidden the plugin from the Marketplace for now.

The issue with the marketplace is resolved and the plugin is online again. Update for UE4.20ā€¦UE4.22 can now be downloaded.

Also happy to announce that I was able to resolve the following issue:
-(Blueprint) Custom types exposed to the editor have issues with array functions that require comparison (AddUnique/Contains/Find/Remove). As a fix I added corresponding functions. Right click in Blueprint and search for ā€œsteam arrayā€.
The functions to bypass the issue were marked as deprecated and should be exchanged with the generic ones before the next update (the deprecation marco was deprecated :rolleyes:).

can you add inapp purchases (micro transactions) to this plugin?

What kind of micro transaktions? Paid SteamWorkshop content? Steam does not expose that via the UGC API. Also I have no idea how payed workshop content works/how it is listet by the UGC API. I gues the general process for paid workshop items would be to open the overlay to the item. The user can buy it from there.

Version for UE4.23 has been pushed to the Marketplace.
Unreal also updated the SteamSDK to version 1.42 which includes some new stuff for the UGC API.

Below the UGC relevant update notes for the versions:


----------------------------------------------------------------
v1.42 3rd January 2018
----------------------------------------------------------------

----------------------------------------------------------------
v1.41 13th July 2017
----------------------------------------------------------------

ISteamUGC
* Added ability to mark a piece of UGC as requiring a set of DLC (AppID). These relationships are managed via new AddAppDependency, RemoveAppDependency, and GetAppDependencies calls.
* Ported over ability to delete UGC from ISteamRemoteStorage and called it DeleteItem. Note that this does *not* prompt the user in any way.
* Added m_nPublishedFileId to SubmitItemUpdateResult_t so that it is easier to keep track of what item was updated.


----------------------------------------------------------------
v1.40 25th April 2017
----------------------------------------------------------------

ISteamUGC
* SetReturnPlaytimeStats - Set the number of days of playtime stats to return for a piece of UGC.
* AddDependency and RemoveDependency - Useful for parent-child relationship or dependency management


The plugin has been updated accordingly. Most importantly: You can now **delete **Workshop Items via the Plugin (NO USER PROMT, FUNCTIONCALL = ITEM GONE)

@Rumbleball
My standalone keeps crashing when i start the upload process .

I have UWorks installed as well, wondering if its a conflict.

Log bellow
[SPOILER]


[2019.09.14-04.40.00:296] 41]LogOutputDevice: Warning: 

Script Stack (0 frames):

[2019.09.14-04.40.00:296] 41]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2019.09.14-04.40.02:508] 41]LogWindows: Error: === Critical error: ===
[2019.09.14-04.40.02:508] 41]LogWindows: Error: 
[2019.09.14-04.40.02:508] 41]LogWindows: Error: Assertion failed: !IsInGameThread() [File:V:\Helios\Plugins\SteamWorkshopAccessor\Source\SteamGeneral\Public\SteamGeneralAsyncObject.h] [Line: 62] 
[2019.09.14-04.40.02:508] 41]LogWindows: Error: 
[2019.09.14-04.40.02:508] 41]LogWindows: Error: 
[2019.09.14-04.40.02:508] 41]LogWindows: Error: 
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffdf2ed5549 KERNELBASE.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd9a731f37 UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd9a7346e7 UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd9a547d1a UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd9a4cfe33 UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd9a4d04d0 UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x00007ffd5d2a2519 UE4Editor-SteamWorkshop.dll!FSteamAsyncObject<CreateItemResult_t,FCreateWorkshopItemResult>::OnSteamCallback_Internal() [v:\helios\plugins\steamworkshopaccessor\source\steamgeneral\public\steamgeneralasyncobject.h:62]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x0000000066796007 steam_api64.dll!UnknownFunction ]
[2019.09.14-04.40.02:508] 41]LogWindows: Error: [Callstack] 0x0000000066795e7f steam_api64.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00000000667961f1 steam_api64.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x0000000066798df8 steam_api64.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00000000667987ca steam_api64.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ffd7f27600e UE4Editor-UWorks.dll!IUWorks::Tick() [v:\helios\plugins\uworksmp\source\uworks\private\iuworks.cpp:364]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ffd9a3608ba UE4Editor-Core.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ff6a94b92d2 UE4Editor.exe!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ff6a94c554c UE4Editor.exe!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ff6a94c55ca UE4Editor.exe!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ff6a94d316c UE4Editor.exe!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ff6a94d5b8e UE4Editor.exe!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ffdf68581f4 KERNEL32.DLL!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: [Callstack] 0x00007ffdf699a251 ntdll.dll!UnknownFunction ]
[2019.09.14-04.40.02:509] 41]LogWindows: Error: 
[2019.09.14-04.40.02:524] 41]LogExit: Executing StaticShutdownAfterError
[2019.09.14-04.40.02:533] 41]LogWindows: FPlatformMisc::RequestExit(1)
[2019.09.14-04.40.02:535] 41]Log file closed, 09/14/19 16:40:02

[/SPOILER]

Intresting. As the CallStack shows both plugins, I would asume it a conflict. Though the crash you get is cause something is not executed outside of the GameThread, as it should. But UWorks::Tick comes before my code.

I gues the issue is the callbacks of steam. I donā€™t know how UWorks does the job, but it seems to bring the Callback to the GameThread and then my code crashes. What functiones do you actually call? I canā€™t look into the code right now.

Simply calling Workshop Create item

Yah, to get the Callbacks of steam, the user of the steam api has to call a function of the api to retrieve callbacks. Unreal, as far as I recall, does this already in the OnlineThread, which is what my Plugin assumes to happen. That causes all code that is registered for a callback to execute in the corresponding thread. The user of the Steam api can call the function multiple times, from any thread he wants to do it. And it seems that UWorks also calls that callback function, but from the GameThread, what is in general very bad and not neccesary.

I can just remove the check for the thread execution from my plugin, what in general should not make the plugin disbehave, though gives you GameThread costs for evaluating callbacks, what nobody wants.

To fix it for you, you can copy the plugin into your game and remove that check. But then you wonā€™t get automatic updates (which basically is not important as there is not much that changes).

Works now i commented that line out, but i get access denied when i try to create a item. Though once Shift +Tab it shows me playing spacewar instead, however i have the correct app id set in the defaultEngine.ini
I have the workshop and steamcloud setup with visibility to customers and devs, though the game is still hidden on steam.

Puhā€¦ I would not assume that you cant upload to Spacewars, as when you query for content you get lots of test mods.

First of solve that spacewars problem.
In order to connect to steam, you need a file SteamAppId.txt next to your executeable. That file contains the AppId you connect with, nothing else. Unreal creates that file per default from the AppId given in the config and places it in you games binary folder ā€˜ā€¦/YourGame/binaries/win64ā€™. Check that file, delete it if wrong AppId. Though I would assume that Unreal overwrites itā€¦ Maybe another incompatibiliy with UWorks

Yea seems it was another uworks issueā€¦
Now it simply gives me ā€œinvalid paramā€ on the update process, not using any special characters as per my googling on the subject.

There should be a string error message in the Result. Does it say anything? Log?