Engine Features Preview 4/22/2015

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.

Very Cool! Thanks for the update!

Great work especially on the new Validity changes! Thanks =)

I like that isValid is combined with the variables now.

As someone making a purely multiplayer game this is by far my favorite Engine Features Preview. Amazing

Awesome stuff!

Impure getters are huge time saviors!

Awesome exposing these functions! They are so helpful for multiplayer. (:


These previews are great, please keep them coming. However, they get pretty disjointed as they are every few days/weeks apart. Is there somewhere that all of these features are listed in one big list similar to the release notes?

The new impure Get Nodes are definitely a good feature :cool:

Finally…more multiplayer nodes!! :smiley:

Yeah… you can get even more, if someone would help me :frowning:

Yes!!! So excited for these blueprint multiplayer nodes- was just starting work on my gamemode- this is exactly what I was looking for! Another awesome update to blueprints, hopefully they will continue to expose all necessary nodes that are essential to a multiplayer game, but can be done in blueprints only- BP’s are seriously a revolutionary tool, I’m glad more and more people are realising that every day! Great work as always, thanks Epic!

Hey Epic, i still got questions about this.

There are variables in the PlayerState that can be accessed but not changed. PlayerName can be changed by “ChangeName” function or? So that would
be fixed. But the Score is also not settable. I needed to create my own Score Variable. Will you change something about this in the upcoming 4.8 Version?

I would also love to have the GameMode functions that register players. We already have “Post Login” but i would love to have “Post Logout” too.
Are there more function coming or do i have to wait for 4.9? ):