GameMode on client BEFORE connecting to a dedicated server

Hello everyone.

I’m making a multiplayer prototype, with a main-menu on an empty level with a textbox to input host IP and a button to start connecting.

I know that AGameMode doesn’t exist on the client, only on the server, but what happens BEFORE connecting? Does the client have its own AGameMode class and upon connecting, it’ll be deleted? Or it simply doesn’t exist at all? In that case, how do we know if this engine instance is a client (since we haven’t connected to anything yet). If there is no game mode, where will I init my main menu widget?

I don’t want the client to load a full level before connecting, so I created an empty level. How do I assign the empty level as the client default level, while assigning the playable level as the server level? Right now, if I press “Play as client”, the server also loads that empty level, and nothing will ever happen. And pressing “Play as client” also implies that the client has already connected to the server against my will. How do I test such cases?

Thanks.