We’re excited to share a few of the new features now available on the Master branch on GitHub. To be able to try out these new features, you will need to download the source code for the Master branch and build the Engine yourself. For more information about how to build the Engine from source code, please see this page. The Master branch on GitHub is constantly being updated and is not quality tested so it may be potentially unstable. We do not recommend using the Master branch for project development. If you wish to wait, these features will be made available to all in an upcoming official release.
Engine News
New Features
Blueprints: Get Nodes can Check for Validity
You can now right-click any “GET” variable node and convert it to an “impure” node that will branch based on the validity of the value. This makes it easier to handle errors.
Just right-click on a GET node and select ‘Convert to impure Get’ to toggle the feature!
Blueprints: Game Mode Customization
We’ve exposed a lot more Game Mode functionality to blueprints! This should help developers who are creating Blueprint-only games, especially multiplayer games.
The following Game Mode functions are now callable from Blueprints:
- GetMatchState
- HasMatchStarted
- IsMatchInProgress
- HasMatchEnded
- StartPlay
- StartMatch
- EndMatch
- RestartGame
- ReturnToMainMenuHost
- AbortMatch
- ResetLevel
- GetNumPlayers
- ChangeName
The following Game Mode events can now be implemented in Blueprints:
- OnSetMatchState
- OnLogout
- OnChangeName
- OnSwapPlayerControllers
- OnRestartPlayer
- OnReset (this was added to Actor, so generally usable when Game Mode’s ResetLevel occurs).
And finally (and arguably most importantly) the following functions can be overridden in Blueprints.
- ReadyToStartMatch
- ReadyToEndMatch
- ShouldReset
- MustSpectate
- GetDefaultPawnClassForController
- InitStartSpot
- SpawnDefaultPawnFor
- CanSpectate
- FindPlayerStart
- ChoosePlayerStart
- PlayerCanRestart
Note: To allow the Blueprints to override these functions, we had to change them to be Blueprint Native Events in C++, which will require any overridden implementations to use the “_Implementation” suffix on your function names.
Two other changes were made to Game Mode that affect C++:
- DefaultTimer has been removed.
- PlayerStarts array has been removed. TActorIterator<APlayerStart> should be used instead.