Dedicated server with Steam is a joke

Wow!

Your pull request is massive, thank you for sharing!

I also can’t wait to see your wiki!

I am publishing my wiki sending/receiving any custom data via UDP socket right now!
https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another#Overview

Thanks. For the session system, I would recommend the @ 's wiki article, anyway tomorrow if I have some time, I’ll write the wiki article on how to enable the authentication with my pull request, and how to create sessions with Steam listed on the Steam master server.

So the summary of your issue was that even after doing all the other steam dedicated server steps mentioned in this thread, your games were still not being listed because steam authentication was failing?

I do think the wiki will help many people wrap their heads around this whole process, thank you again for that pull request!

:heart:

No, because you have to set bIsPresence to false when creating the session, otherwise you’ll create a Lobby session that isn’t listed on the Steam master server. The problem is that you can’t use BP functions, you must use the C++ Session functions and then call them from Blueprints if you need to.

It would be nice if entire Stweamworks functionality was exposed to BPs.

Yes. The session nodes need to have more parameters.

“bIsPresence” was all you need to change? Because we already tried that (UE4 can’t handle the Lobby System of Steam or other way round, don’t remember) and it resulted in an “error” where Steam couldn’t handle
the tags passed over.

Yes, now I’m writing the wiki article with all steps to get it working. If you set bIsPresence to false, the internet session functions are called, otherwise the lobby session functions are called.
In the wiki article I’m including the Steamworks steps.

EDIT: Wiki article done: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

Thanks mate (: highly appreciated. If someone, for example @, got some time to test this in a fresh project, that would be great.
This should also work if you take the correct NAMES of the 480 Spacewar game, but if not, make sure to have a Game on Steam that you
can test this with.

I’m off to GDC on Saturday morning, so i’m a not open at the moment. Once i’m back, i will test this (:

Needless to say I’m very happy about how this turned out. We have our own App ID product on the Steam store and I can confirm this is working 100% :slight_smile:

Yes, I converted my code to 4.11, because I’m using 4.10 now. So I don’t know if I made mistakes in the conversion. If someone reports a problem, I’ll do my best to fix that.

What’s the best way to download the updated files? I’ve downloaded the Release branches several times from GitHub but never any code outside of that.

You need to clone Unreal Engine from my pull request branch. Go to do that: https://github.com/Scienziatogm/UnrealEngine/tree/release

Anyway I tried compiling and testing the last commit, and everything seems to work. I can see my server on the Steam master server, I can connect to it via console, and if I join without Steam with the authentication enabled, the server will kick me.

Woohoo thank you for adding to the wiki Scienziatogm!

I do think this thread + wiki will help many people for a long time!

Rainbow for you!

bfa91419e0fd6213bac45cdda91deb3489f82a95.jpeg

Allright ,
I used the newest Unreal Engine version + Pull Request.
Compiled everything… Made a new game session class and I override the registerserver event()
I followed the wiki and made everything step by step but it seems that the registerserver event doesn’t even get triggered or something.
I debuged everything with UE_LOG but nope event doesn’t get even triggered on startup of the server.

I don’t know what I did wrong maybe someone of you can help me…

Also seems like I get a compile error if I use HostSession = MakeShareable. Like he has no reference to it or something.
I really need to get done with this … was working a week on it without any success.

You’ll need to tell to the GameMode what is your GameSession class:

MyGameMode.h


/** Returns game session class to use */
virtual TSubclassOf<AGameSession> GetGameSessionClass() const override;

MyGameMode.cpp


/** Returns game session class to use */
TSubclassOf<AGameSession> AMyGameMode::GetGameSessionClass() const
{
	return AMyGameSession::StaticClass();
}

And what if the gamemode changes ingame?
Like to my blueprint gamemode?

Also why is HostSession = MakeSharable marked as compile error?

All gamemode custom classes must be child of a global gamemode custom class, so all properties from the global custom class are inherited.

Thank god … I got it … The only issue I have is to setup the auth in my gamemode constructor:

SetupGamemode.h
ASetupGamemode(const FObjectInitializer &ObjectInitializer);

SetupGamemode.cpp

ASetupGamemode::ASetupGamemode(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
#if !UE_EDITOR
bUseAuthentication = true;
#endif
}

You just need to enable that boolean. It’s easy.