Crazy Confusion over IsServer / IsDedicatedServer

So I’m building an open world MMO. What I’m trying to achieve is as follows:

  • My game client starts not connected to any server. It retrieves information from a database on the available characters (based on a SteamID).
  • Then after that, it connects to the online world (which should be a server or dedicated server) providing that characterID. The server will retrieve the character info from the database and then replicate.
  • On the other hand, the designated server or dedicated server will run some separate code.

The big problem is, when my client starts up, even when I run it in the editor with “Dedicated Server?” ticked true, and “Connect Automatically?” ticked false, IsServer ALWAYS returns true. It seems it is impossible to detect in Blueprints that something is a pure client; not a dedicated server, not a listening server, just a client.

Any idea what I’m missing, or am I just going crazy? Where is the best place to put dedicated server blueprint code?

Quick addendum question; also, what can I do in a command line or when running the game to ensure that “IsDedicatedServer” is true? I know in the editor you can tick the box and there’s a hidden dedicated server behind, but how to ensure that variable hits true otherwise?