Detailed usage
Main subsystem: ADS Menu Subsystem
ADS Menu Subsystem is created automatically with the Game Instance. It creates and keeps the active menu logic. These Blueprint nodes map directly to their C++ signatures.
| Function | Input pins | Output pins | Use |
|---|---|---|---|
GetMenuSystem | World Context Object: an object with a world. | Return Value: ADS Menu Subsystem reference, or None when the Game Instance is unavailable. | Gets the subsystem from a Blueprint. |
Is Initialized | Target: subsystem reference. | Return Value: Boolean; true after menu logic is created. | Check it before using logic very early during startup. |
Get Menu Logic | Target: subsystem reference. | Return Value: ADS Menu Logic Base reference, or None. | Gets the instance owned by the subsystem. |
Get Menu Logic From World | World Context Object: an object with a world. | Return Value: logic reference, or None. | Shortcut for getting the subsystem then its logic. |
Get Menu Logic (Typed) | Target: subsystem; Desired Class: expected logic class. | Return Value: typed reference if it matches, otherwise None. | Use when extended logic needs its specific members. |
Create Widget BP | Target: subsystem; Widget Class: Widget Blueprint class. | Return Value: created widget, or None when the class, world, or first local Player Controller is invalid. | Creates but does not add a widget to the viewport. |
Blueprint logic: BP_ADS_MenuSystem
The supplied asset is named BP_ADS_MenuSystem. It is the main Blueprint logic, built on the C++ class ADS_MenuLogicBase. The main subsystem instantiates this class and uses it as the active menu logic.
You can extend or modify its features: this logic was created in Blueprint specifically to let you do so. In that case, it is strongly recommended that you duplicate this asset before making any changes, as a safety measure.
Functions
The functions below form the API for opening and closing UI and menus. Execution pins are intentionally not listed.
| Function | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ShowUI | Shows the supplied UI at the requested display order. Inputs
| ||||||||||||
HideUI | Hides the supplied UI. Inputs
| ||||||||||||
ShowMenu | Shows the supplied menu and prepares its interaction. Inputs
| ||||||||||||
HideMenu | Hides the supplied menu and restores the requested elements. Inputs
|
Event Dispatchers
| Event Dispatcher | Description | ||||
|---|---|---|---|---|---|
On Game Paused | Fires when the pause state changes.
|
Player subsystem: ADS Player Subsystem
ADS Player Subsystem belongs to the local player and detects the last input device, including while the game is paused.
| Function / Event Dispatcher | Input pins | Output pins | Use |
|---|---|---|---|
Is Last Input Gamepad | Target: ADS Player Subsystem reference. | Return Value: Boolean; true when the last input is a gamepad. | Selects keyboard/mouse or gamepad presentation. |
Get Last Input Type | Target: player-subsystem reference. | Return Value: EADS_InputDeviceType (Unknown, KeyboardMouse, or Gamepad). | Use when all three states must be distinguished. |
On Last Input Type Changed | When binding: event to call. | Event pin: bIsGamepad; true for gamepad and false for keyboard/mouse. | Bind widgets to refresh input prompts immediately. |
Actor Component: AC_MenuSystemConfig
Add AC_MenuSystemConfig to the local player's character or Player Controller Blueprint. It connects that player to the system input contexts.
| Setting | Use |
|---|---|
MenuContextMapping | S_Context used while the player interacts with a menu. |
TravelContextMapping | S_Context used during gameplay. |
UI_Notifications | Reference to the notification widget. |
NotificationLinesMax / NotificationDuration | Maximum lines and display duration. |
DT_DynamicIcons | Data Table used for dynamic icons. |
Use GetMenuSystem to retrieve logic, ShowUI to show a UI, and the mapping-context functions to switch input contexts.
UI
A UI is a Widget Blueprint used to display information or a non-interactive interface. The plugin provides UI_Parent as its base. Keep this asset intact and always create a child in your project content.
Create a UI
Create a Widget Blueprint child of UI_Parent in your project content.
Functions
Your UI child inherits functions from UI_Parent. Override the following functions when you need logic specific to the UI appearing or disappearing. In the overridden function graph, right-click the entry node and choose Add Call to Parent Function. Calling the parent is strongly recommended to keep the plugin behavior.
| Function | Description | ||||
|---|---|---|---|---|---|
Show (override) | Shows the UI. This function is called by the system logic. Inputs
| ||||
Hide (override) | Hides the UI. This function is called by the system logic. |
Menus
A menu is an interactive Widget Blueprint based on UI_Menu_Parent. This class provides the menu base and manages button groups and hover state. Create menus in your project content; do not modify the supplied asset.
Create a menu
Create a Widget Blueprint child of UI_Menu_Parent in your project content.
Functions
Your menu child inherits functions from UI_Menu_Parent. Override Show and Hide when the menu needs additional opening or closing logic. In the overridden function graph, right-click the entry node and choose Add Call to Parent Function. Calling it is strongly recommended to preserve the menu’s base behavior.
| Function | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Show (override) | Shows the menu. Inputs
| ||||||||
Hide (override) | Hides the menu. | ||||||||
FindButtons | Finds buttons present in the menu to prepare their management. | ||||||||
AddButton | Adds a button to a group. Inputs
| ||||||||
RemoveButtonsOfGroup | Removes buttons from a group. Inputs
| ||||||||
RemoveButton | Removes one button from the menu management. Inputs
| ||||||||
GetCurrentGroup | Gets the current group. Outputs
| ||||||||
SetCurrentGroup | Sets the group used by the menu. Inputs
| ||||||||
IsGroupValid | Checks whether a group can be used. Inputs
Outputs
| ||||||||
GetAllButtons | Gets every button managed by the menu. Outputs
| ||||||||
GetButtonsOfGroup | Gets buttons in one group. Inputs
Outputs
| ||||||||
GetButtonAtIndex | Gets a button at a given index. Inputs
Outputs
| ||||||||
HoverByIndex | Moves hover to a button by index. Inputs
| ||||||||
HoverByIncrement | Moves hover by an increment. Inputs
| ||||||||
GetHoveredButton | Gets the currently hovered button. Outputs
| ||||||||
ClampIndex | Constrains an index to a value usable by the current group. Inputs
Outputs
|
Buttons
A menu’s buttons are based on BTN_Parent. This class provides the common foundation for the system’s buttons. Create child widgets in your project content to extend their appearance and functionality.
Provided classes and structures
| Item | Role |
|---|---|
BTN_Parent | Provided base class for buttons managed by a menu. Project children can extend its appearance and functionality. |
BPI_MenuButton | Blueprint interface used for communication between a menu and its buttons. |
BTN_Text_Demo | Text-button example provided in the demo content. |
BTN_Section_Demo | Section-button example: it links the button to a Widget Switcher page and automatically activates that page. |
S_ButtonInfos | Structure associating a Button with its Index. |
S_ButtonGroup | Navigation structure containing Buttons and CurrentIndex. |
Assets suffixed _Demo are examples. They are provided as references and are not plugin classes to modify.
Create a button
- Create a Widget Blueprint child of
BTN_Parentin your project content. - Build its appearance in the Designer: text, image, border, animation, or any required widget.
- Place the button in the Designer of a
UI_Menu_Parentchild menu.
Parameters exposed by the button
These parameters are exposed to the Widget Blueprint that contains the button. Set them from this container widget, not while creating the button child class.
| Parameter | Use |
|---|---|
GroupOfButton | Name of the group to which the button belongs. |
IndexOfButton | Button index in that group. |
ActionName | Name of the action associated with the button. |
Functions
Your button child inherits BTN_Parent behavior. When overriding a function supplied by this parent, right-click the function entry node and choose Add Call to Parent Function. Keeping that call is strongly recommended to preserve the parent logic.
| Function / interface | Description | ||||
|---|---|---|---|---|---|
Hover (override) | Applies the button hover state. | ||||
UnHover (override) | Removes the button hover state. | ||||
Action (override) | Extension point for behavior triggered by the button. | ||||
AddMenuButton (BPI_MenuButton interface) | Receives the owner menu when the button is registered. Inputs
| ||||
ExecuteButtonAction (BPI_MenuButton interface) | Triggers the action associated with the button. Inputs
|
Dynamic Icons
Dynamic Icons display the visual corresponding to the last input-device type used for the same action. For example, one prompt can show a keyboard key, Xbox button, PlayStation button, or Switch button.
Provided elements
| Item | Role |
|---|---|
UI_DynamicIcon | Widget to place in a UI or menu. It selects and displays the variant for the current device. |
DT_ControllersIcons | Data Table associating each icon key with its device-specific variants. |
S_ControllersIcons | Data Table row structure. It contains KeyboardMouse, XBox, PlayStation, and Switch variants. |
S_ControllerIcon | A variant structure. It can use a Texture, or a Widget when bUseWidget is enabled. |
E_ControllerTypes | Enumeration of supported device types. |
BPI_DynamicIcon | Interface used between a menu and its Dynamic Icons. |
UI_Icon_Default | Icon widget provided as a visual foundation. |
Configure the icon data
- Duplicate
DT_ControllersIconsinto your project content if you need to change or add to the provided icons. - In each row, fill in the required variants:
KeyboardMouse,XBox,PlayStation, andSwitch. - For each variant, use a
Texture, or enablebUseWidgetand provide aWidget. - In
BP_ADS_MenuSystem, assign this Data Table toDT_DynamicIcons.
Each row name is its icon key. Keep it stable: widgets use it to find their variants.
Use a Dynamic Icon in a UI or menu
- Add
UI_DynamicIconto the Designer of the relevant UI or menu. - In its Details panel, set
RowNameto the exact name of aDT_DynamicIconsrow. - Adjust its layout like any other UMG widget.
Once configured, the widget displays the current device variant and updates when the last input-device type changes.
Functions
The following functions are part of the UI_DynamicIcon provided logic. For ordinary use, configuring DT_DynamicIcons and RowName is sufficient; these functions are mainly useful for custom behavior.
| Function / interface | Description |
|---|---|
InitializeIcon | Reads the row identified by RowName and prepares the icon display. |
UpdateIcon | Refreshes the displayed icon for the current device. |
BindUpdateIcon | Manages subscription and unsubscription for device-change updates. |
AddIcon (BPI_DynamicIcon interface) | Lets the menu reference a Dynamic Icon. |
Notifications
The notification system displays temporary on-screen messages. BP_ADS_MenuSystem provides the logic, while widgets in the Notification folder provide the rendering.
Provided elements
| Item | Role |
|---|---|
UI_Notifications | Widget that receives and organizes displayed notification lines. |
UI_NotificationLineParent | Shared parent class for notification lines. |
UI_NotificationLineText | Line for a text-only notification. |
UI_NotificationLineTextIcon | Line for a notification containing text and an icon. |
UI_NotificationLineTextTitle | Line for a notification containing a title and text. |
BPI_Notifications | Interface used between the notification manager and displayed lines. |
S_UserWidgetArray | Structure used by notification logic to group widget references. |
Configure notifications
- In
BP_ADS_MenuSystem, make sureUI_Notificationsreferences the notification widget to use. - Use the provided line widgets as-is, or create child widgets in your project content to adapt their appearance.
- Set
NotificationLinesMaxto define the maximum number of lines displayed at once. - Set
NotificationDurationto define the default display duration.
Functions
Call these functions on the BP_ADS_MenuSystem instance to display a notification. Execution pins are not listed.
| Function | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
ShowNotificationText | Displays a text-only notification. Inputs
| ||||||||||
ShowNotificationTextIcon | Displays a notification containing text and an icon. Inputs
| ||||||||||
ShowNotificationTextTitle | Displays a notification containing a title and text. Inputs
|