This feature is in an Experimental state so you can try it out, provide feedback, and see what we are planning. You cannot publish a project that uses Custom HUD Widgets at this time. Please keep in mind that we do not guarantee backward compatibility for assets created at the experimental stage. The APIs for these features are subject to change, and we may remove entire Experimental features or specific functionality at our discretion.
You can designate any custom HUD widget as a functional touchscreen button that triggers a Verse Input Action on tap. Use a TouchActionWrapper to make a HUD element (such as a gem counter, reward notification, or inventory icon) respond to player taps and run Verse logic directly.
This page covers how to make UI widgets in Unreal Motion Graphics (UMG) that respond to touch input. Unreal Editor for Fortnite (UEFN) uses a combination of Verse UI and Unreal Motion Graphics to author UI.
Use this whenever a HUD element should respond to player taps. Common cases include opening a shop from a currency counter, claiming a reward from a notification, or invoking a quick action from an inventory icon.
Players using mouse and keyboard or controller can also take that action.
This wrapper supports only binary tap actions — the tap fires the assigned Input Action pressed and released events. It does not support continuous, axis-based, or gesture inputs.
To make a custom HUD widget tappable:
In UMG, open the User Widget for your HUD element.
Wrap the element you want to make tappable in a TouchActionWrapper widget. In UMG, this means adding a TouchActionWrapper as the parent container around your existing widget in the widget hierarchy.
On the TouchActionWrapper, set the InputAction property to the Input Action you want the tap to fire. An Input Action is a named event your Verse code subscribes to and responds to. Assigning one to a TouchActionWrapper means tapping the widget fires that event.
Save the Widget Blueprint.
In Verse, subscribe to the same Input Action using
GetInputEventsandTriggerActivationEvent.Verseif (PlayerInput := GetPlayerInput[Player]): InputEvents := PlayerInput.GetInputEvents(OpenGemStoreAction) InputEvents.TriggerActivationEvent.Subscribe(OnGemStoreOpened)Implement the gameplay response in your handler (for example, open the gem store).
The TouchActionWrapper has no visuals of its own and does not change the size or shape of the widget it wraps.
Reassign Default Actions to Drive Custom Behavior
Because your custom logic runs from a subscribed Input Action, you can repurpose default actions when your game does not use them. For example, in a target-throwing game where the character does not jump, subscribe to the default Jump action in Verse and write throw ball logic in the handler. The default touchscreen layout still shows the Jump button (which the player sees as the throw control), and tapping it runs your code.