In Heist, one player, the thief, must sneak into a museum and steal as many valuables as they can before escaping. The Security Security team must guard the valuables. The game is round-based, and places a heavy emphasis on stealth an deception. There will be no guns or killing in the game. In order to win you'll have to use a combination of communication, gadgetry, stealth, and patience.

I'm currently building a simple gameplay demo in order to playtest and refine the core mechanics as well as improve my  skills with UE4 Blueprints. So far I've built the core stealing and capturing mechanics, as well as full network replication for players and objects in the level.


The Thief will win the round if they can escape with a specified set of valuables within the round time limit. The more valuables they can steal, the more cash they will earn.

Catching the Thief

The thief can be spotted at any time by the Security team. If 2 players spot the Thief, the round is over and Security have won. While the Thief by default can run faster than Security players, their movement speed will also decrease for each additional valuable they steal.

Map entities

Currently the game is coded entirely in Blueprints. I plan on dipping down to C++ when it comes time to implement some of the more sophisticated features, such as the item inventory and more advanced network replication.

I'm designing the level entities with future modding in mind. For each entity that is placed in a level, the mapper is provided with a high degree of customization.

Current placable entities:

  • Team spawn points
  • Valuable (objects on the map that the Thief can steal)
    • Can be provided with any custom static mesh
    • The amount of time it takes to steal the item can be customized
    • Mapper can set the amount of points awarded, and whether this piece must be stolen in order for the Thief to win
    • Whether or not the valuable will trigger a silent alarm
  • EscapeZone
    • Thief must touch this volume to escape once the requisite items are stolen
    • Number of stolen items required for victory

Blueprint examples


The 'Valuable' Blueprint has a trigger volume which, when touched by a player, will assign a reference of that Valuable to a property on the player's character.


When the player holds the appropriate input button, and a 'Valuable' is set on the Character, then the stealing process begins. 

The work of displaying the progress bar widget, as well as cancelling the progress if the player steps out of the trigger volume is handled in the Character blueprint. When progress is completed, the item is removed from the map and added to the player's item count.


'StarStealingValuable' function


'FinishStealingValuable' function


Hosting and Joining games (accessible from main menu)

Server hosting is handled by UE4's Create Session API, which is accessible via Blueprints. This isn't as fully featured as the C++ API, but for MVP purposes it gets the job done. I will likely rewrite the session code in C++ in the future.


Spawning players after joining a game


Joining a team


Controlling team joining events between server and client


Managing state between clients and server