Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

"Achievements not supported by Online Subsystem"

Hi everyone,

I'm currently trying to implement Steam achievements into my game, which is a Blueprint project. I already managed to add the Steamworks functionalities (I have the Steam overlay, and I can join a registered dedicated server from a client), but when I use the "Cache achievements" node, I get this error: alt text

This is the server console, since I want to trigger the achievement from a dedicated server. My blueprint script looks simple, I just call some print functions and of course the "Cache achievements" node. I logged the PlayerControllers[0], to be sure that it's not a NULL variable. alt text

Here's a screenshot of my Steamworks interface: alt text

At first, I didn't put the "Cache achievements" node, and I had the exact same error message when calling directly the "Write achievement progress" node (which resulted in the "Failure..." log).

I checked the "Online platform" section, in the plugin window of my editor, and I have only 3 activated plugins: "Online Subsystem", "Online Subsystem Steam" and "Online Subsystem Utils". I deactivated the others.

If it can help, this is a part of my DefaultEngine.ini: alt text

I also noted that I have the same problem with the "Read/Write Leaderboard Integer" nodes, but with this message: "Leaderboard not supported by Online Subsystem".

I really don't know why I get this warning/error, maybe I missed something obvious :( I've done some research on the Internet, but I couldn't find anything related to this.

Does anyone have an idea about this? Thanks a lot to everyone who will answer :)

Product Version: UE 4.13
more ▼

asked Aug 13 '17 at 03:13 AM in Blueprint Scripting

avatar image

126 6 9 12

avatar image Syalen Aug 15 '17 at 06:33 PM

A little update here:
I investigated in the c++ source code, and I wasn't able to find any reference to "Achievements not supported". However, I found "Leaderboards not supported by Online Subsystem".
So, this log appears in the LeaderboardQueryCallbackProxy.cpp file, in the TriggerQuery function, when and only when Leaderboards.IsValid() returns false.
So, for an unknown reason, my "Leaderboards" variable isn't valid, and that seems to be the problem. I assume that my "Achievements" variable isn't valid either.
I'm really stuck on this, and I'd really appreciate some help :)
Thank you!

avatar image Syalen Aug 15 '17 at 07:15 PM

I forgot to mention that I'm using the AdvancedSessions plugin (available here).
Also, I've got some warnings server side, while initializing Steam. Here's a screenshot:
alt text
So, the first one tells me the session flag is too long, and the second one that the game name is too long. Is this a real problem for me?
About the third warning, I have no clue about what is it...

steam warnings.png (11.5 kB)
avatar image Syalen Aug 16 '17 at 03:23 PM

Update here!
I managed to get rid of the GameName warning, and it doesn't solve the problem. About the session flags warning, I tried solutions from this post, but it hasn't been very productive, I'll give an other try as soon as possible.
Anyway, even if the two warnings above were at least partially resolved, the "Invalid player state" one was still there, and achievements still didn't work :(

avatar image Syalen Aug 19 '17 at 02:15 AM

Update again!
I got rid of the SessionFlags warning (by renaming hardcoded defines in the source code (see this post again)), but it doesn't solve the problem :(

avatar image Syalen Aug 21 '17 at 03:39 PM

Sad update !
With the help of the Advanced Sessions plugin developper, I got rid of the "Invalid player state" warning, and now I know that wasn't the problem.
So, here I am, lying on my chair, wondering why I struggle with this strange warning, and hoping that some generous soul consents to help me :D

avatar image IGorilla Aug 21 '17 at 06:00 PM

Hey, where do you call this event? Do any of your print functions work? If so, till what point?

avatar image Syalen Aug 21 '17 at 06:09 PM

Hi, thanks for answering! :D
My event is called serverside in the gamemode (I trigger it with a input from the only client connected to it), and you can see the logs with the first screenshot. So it logs "Set to 100", then the player controller (which is not NULL), then the warning, then "Cached failed".

avatar image IGorilla Aug 21 '17 at 06:31 PM

Oh, calling it on the sever might be the issue. My guess is that you cant call it from serverside as it is not the server that unlocks an achievement, but the player. Havent worked with a dedicated server before so im not sure. My suggestion is unlocking the achievement on client side from the server (server triggers event on player when ihe should unlock an achievement). Not 100% sure this is the issue... but worth a try i guess

avatar image Syalen Aug 21 '17 at 06:41 PM

But in the Steamworks interface, you can define the "Set by" property, and mine is set to "Game server", so I assume it's supposed to be triggered serverside, no? Anyway, this is what the documentation says.
Also, if I don't have the choice, that's not secure at all: that means any player can trigger any achievement by their own, without a server verification. I don't want my players to cheat on my game :(
But hey, I'll look it up, maybe that's worth it, thanks mate! :)

avatar image Syalen Aug 21 '17 at 07:38 PM

Well, I tried to unlock achievements client-side, and it works! :D Thank you so much :)
I'll try tomorrow with the stats, but that makes me wonder: is this normal? I mean, maybe the Steamworks integration in UE4 doesn't support serverside achievements, and maybe that's a well-known fact? If this is, I never heard about it, despite the fact that I was looking for it.
Anyway, thanks! :)

avatar image IGorilla Aug 21 '17 at 07:46 PM

I guess it exists within the steamworks interface but UE might not have an implementation for it (I could be wrong). No idea about how to make it cheaterproof. Good luck though! :D

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

So, I don't know if this is a bug or not, but apparently you can't unlock a Steam success server-side. You have to unlock it client-side, otherwise it doesn't work. Of course, you have to set the "Set by" variable to "Client" in the Steamworks interface.
Maybe it's a bug due to the Steamworks integration in UE4, or maybe I made a mistake that prevents me to do so, I don't know.
I think it's the same for stats, but I have to test it to be sure.
Thanks to IGorilla for this! (Sorry, I can't make your comment as answer)

more ▼

answered Aug 24 '17 at 07:25 PM

avatar image

126 6 9 12

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question