Engine Features Preview 1/7/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

New: Project Launcher

The new Project Launcher interface allows you to package and run your game with more control. It has various features that are useful when testing your game on multiple types of devices and configurations, as well as running multiple sessions simultaneously.

Of course, you can still run your game using the convenient “Launch” button on the main toolbar. But if you need more flexibility, just open up the the Project Launcher from either the “Launch On” drop down or the main Window menu.


The Project Launcher has features for cooking data for your game as well as packaging and running on multiple devices. Read below for a quick overview of the main features.

The first section which we refer to as “Quick Launch” allows you to launch the game on your devices very similar to how “Launch” on the main toolbar would.


However, you can click the Advanced button to give a few commonly used advanced options, such as the configuration to build and run (Debug, Development, Shipping, etc.)


Still need more control? Then it is time to create a custom launch profile.


In this example we have two custom profiles.

Editing one or creating a new custom profile will let us set all the advanced options.


Launching a profile will run all the steps associated with it. Showing the status and logged information.


New: Software Cursor Support!

Software Cursor support has been added to both Unreal Motion Graphics and Slate UIs.

Software cursors can be useful in a number of cases:
Adding cursors to platforms that do not have hardware cursors. For example, a virtual mouse cursor on a console.
Adding cursors which are visually rich, have animations, or have complicated interactions.
Adding cursors that look consistent across PC, Mac, Linux without having to worry about the platform specific formats.

You can use the new “User Interface” section of Project Settings to setup your game’s software cursor Widgets. If you do not specify a cursor, you will get a default hardware cursor.



  • Since the software cursor is actually a Widget Blueprint, you can use all the functionality of the UI system, add text, health meters, whatever you desire.
  • It is important to remember that operating systems do special rendering (generally high frame rate composition) for the cursor, which means it is very smooth regardless of the games frame rate.
  • Software cursors are rendered by the as part of the frame, so your cursor’s movement will be limited by your game’s frame rate.

Very nice update. Two quick questions:

1: Can you please explain about the Cook Options in Project Launcher? ie: By the book and On the fly?
2: Is Software cursor only for games or does it work for both editor and game?

1: “On the fly” creates a file server on your machine and the device must be on the same router to run the program. “By the book” cooks and packages directly to the device (I’m paraphrasing a bit, but that’s the general idea)
2: it’s in-application only right now. It’s tied to Widget Blueprint code for allowing more dynamic game cursors, but those only appear “in game”

Super excited about the Software Cursor support. We were just working on trying to get this to work! Thanks.

It’s still not possible to launch (package) a blueprint only project with plugins, right?

What about custom hardware cursor, for games where smooth cursor is important (such RTS)?

Thank you very much Alex. So I think we should use By the book option when distributing our game…right?

Two questions regarding the software cursor, as we have hacked in something like this, too and I would like to get rid of our custom code:

a) Is it possible to control that cursor via a gamepad or programmatically (to control it via the gamepad on a console in the end)?

b) Is it possible to have one cursor per player for local coop gameplay and menus?


That is correct, we’re still figuring that out for a future release. You can workaround by adding code to the project and packaging with an executable that will have the plugins compiled in (provided the plugins you acquired have static libraries distributed with them, or the original source code.)


It is possible to control the cursor with a joystick using an input processor.
Register a preprocessor with


Check out FAnalogCursor in Engine\Source\Runtime\Slate\Public\Framework\Application\AnalogCursor.h
Which is an example of a simple cursor controlled by a joystick.

Unfortunately we do not support multiple Cursors, this is a limitation of our low level slate.
It’s a known issue but hasn’t really been a priority, split screen with joystick cursors is probably a relatively rare use case.
Regardless i’ll use this to put a little more priority on the tasks, at this time i can’t give any idea about when it would be scheduled.

If you create your own input processor (or just listen to input events through player input) you could trivially track the position of multiple cursors, and simply position your own cursor at that location.
This will not interact with our UI however, thought is was worth mentioning in case you didn’t need to interact with the UI system. Like a point and shoot game.

Thanks for the update. Sounds good so far. We may get along with a single cursor, however it needs to be controllable by different players in turn. I guess that is doable with an input processor.

I will look into this when the official 4.7 is released as I need to update Windows, PlayStation 4 and Xbox One at once which I rather not do too often. I will stick with 4.6.1 until then.


Does it mean that the software cursor can be used as a world actor with a Widget component inside ?

So it will still take some months until its possible? For me personally its not super important, until my game is not ready to be released I dont really need to package it :slight_smile: But being able to send it to friends would be nice. I would prefer to never use any code in my project, I don’t want to think about settings stuff like visual studio up and so on. So I will just wait and hope you will implement it in 4.8 :rolleyes:

This, wasted alot of time this weekend duplicating broken Widgets as when you add event dispatcher and an out variable it crashes (Note when placed in blueprint), only when you duplicate the blueprint can you actually work with it.

Thanks, After reading what you experienced I attempted to fix my blueprints but still cant get blueprints to communicate.