How do I make the main menu of the game?

I want to know how you guys approach making the main menu of the game and its interaction with starting the level etc.

I plan on making a different game mode for the main menu. But what kind of default character should I using for that game mode? Especially If I want to have a 3d background and the back.

How does do I change the game mode when the player selects on the new game and spawn the character?

I generally use c++.

Main menu and the first level of the game are different levels generally, so the main menu level has its own game mode. If you want the main menu to be in the first level of the game then you just set a camera for the menu > posses that camera at level start and then posses the character when you start the game.

For the game I’m working on now, I created a new GameMode, a new Pawn, and a new PlayerController; all of which are used only for the Main Menu. The Main Menu is a separate map, that has its GameMode set to the GameMode created specifically for the Main Menu. I then set up all the keyboard/mouse and touch controls inside the PlayerController Blueprint; which then communicates with a HUD Blueprint through a Blueprint Interface.

Any special properties you use on the Pawn and the Playercontroller?

How do you change the game mode?

You can change the GameMode by selecting World Settings in the main toolbar, when your Main Menu map is loaded in the Editor. There is a Game Mode section in the World Settings where you can select the appropriate Game Mode for the map.

I did neglect to mention that I started with a Blank map; meaning there were no assets in it when it was created. This allowed me to make my own GameMode, and set the Pawn, PlayerController, and HUD; without there being anything already existing.

I didn’t change any properties (that I recall) in the Pawn or HUD; they are Blueprints of the standard Pawn and HUD class, respectively. Depending on your game’s input, you’ll have to enable/disable mouse and/or touch input within the Default Settings for the PlayerController. But those should be the only settings you have to change.

Ok thanks… I was using the default character instead of the default Pawn.

Well how do transition the game mode after the player has clicked on the new game? Any particular c++ function?
There is a GetWorld()->SetGameMode(..)

But I got no idea what FURL is and how it works.

In the main menu in the game I’m working on, once the player taps or clicks a button to play a game, I save some variables to a save game slot, load a new map (which has its own GameMode), then load the pertinent variables from the save game slot, and initialize gameplay based on those values.

Basically, just loading a new map will take care of “switching” game modes. There’s a node in Blueprint to Load a map by its name. That’s what I use to switch maps.

Also, just remembered: you’ll need to set your main menu map as the map for the project to load first when the game is played. I believe you can find that in the Project Settings.

Is this really the only way of creating a menu system? it seems like a lot of extra work creating a “game” that is the menu…

You can handle all your logic in the same mode if you like, using the same UMGs and menus every where. It’s up to you to find the way that fits best to your needs. Using different GameModes usually helps to not clutter game code with menu code.