Information Prompt #
The Information Prompt Manager is a system that displays widgets to the player based on a specific prompt type. It manages a queue of prompts, allows multiple widgets to be shown sequentially, and provides control over how new prompts interact with existing ones (on-screen or queued).
Key Features: – Display predefined prompts (with configurable title/subtitle and timing) or custom widget classes – Queue management: add prompts to a queue; they display one at a time – Four prompt add types to control queue behavior (append, override by class, clear all, conditional add) – Loading screen support (clears queue and overrides all prompts) – Automatic queue processing (when a prompt finishes, the next one is popped from the queue)
Use Cases: – Tutorial messages or hints displayed sequentially – Quest notifications that queue up if multiple objectives complete at once – Context-sensitive prompts (e.g., “Press E to interact”) that replace each other based on player focus – Loading screens that interrupt all other prompts

2. Core Concepts #
- Prompt: A UI widget displayed to the player. Can be predefined (title/subtitle/timer-based) or a custom widget class.
- Queue: A FIFO (first-in, first-out) list of prompts waiting to be shown. When the current prompt finishes, the next one is popped from the queue.
- Prompt Add Type: An enum that controls how a new prompt interacts with the current on-screen prompt and the queue (append, override by class, clear all, or conditional add).
- Widget Class: The type/class of the widget (used for filtering and override logic). Each prompt has an associated class reference.
- Loading Screen: A special prompt that clears the entire queue and overrides all existing prompts.
3. Components #
Information Prompt Manager Component: – Manages the prompt queue and current on-screen prompt – Processes add/remove requests based on the selected Prompt Add Type – Displays the next prompt in the queue when the current one finishes – Provides API to add predefined prompts, custom widgets, and loading screens

4. Widget Types (Predefined vs Custom) #
The Information Prompt Manager supports two widget creation modes:

Predefined Widget #
- You provide a Main Title (string), Secondary Title (string), and Prompt Time (duration before auto-dismiss or configurable display behavior).
- The manager creates a standard widget instance using these parameters.
- Use this for common notifications, hints, or simple messages that follow a consistent visual style.
Custom Widget #
- You provide your own Custom Widget Class (a reference to your widget Blueprint/class).
- The manager instantiates your widget and displays it.
- Use this for specialized UI (e.g., complex tutorial overlays, custom dialogs, or prompts that need unique interactivity).
Both widget types are added to the same queue and follow the same Prompt Add Type rules.
5. Prompt Add Types #
The Information Prompt Manager provides four Prompt Add Types (enums) that control how a new prompt interacts with existing prompts (on-screen and in the queue).

5.1. Add to Queue #
Behavior: Adds the new prompt to the end of the queue, regardless of what is already on-screen or in the queue.
Use Case: Sequential notifications or messages where order matters and you want all prompts to display eventually.
5.2. Override All Existing of Class #
Behavior: – Checks the widget class of the new prompt. – Removes all prompts of the same class currently on-screen and in the queue. – Adds the new prompt to the queue (or displays it immediately if the queue is empty).
Use Case: Context-sensitive prompts where only the latest instance of a particular prompt type should exist.
5.3. Override All in Queue #
Behavior: – Removes all queued prompts of the same class as the new prompt. – Always preserves the current on-screen prompt (does not remove it, regardless of class). – Adds the new prompt to the queue.
Use Case: High-priority messages of a specific type that should bypass other prompts of the same type in the queue, but not interrupt the active on-screen prompt.
5.4. Add to Queue if Type Does Not Exist #
Behavior: – Checks if any prompt of the same widget class is already on-screen or in the queue. – If a matching class is found, the new prompt is not added (it is discarded). – If no matching class is found, the prompt is added to the queue.
Use Case: Avoid duplicate prompts of the same type when the same event may fire multiple times.
6. Queue Processing #
How the Queue Works: 1. When a prompt is added (via any Prompt Add Type), it is placed in the queue based on the add type’s logic. 2. If no prompt is currently on-screen, the manager immediately pops the first prompt from the queue and displays it. 3. When the on-screen prompt finishes (auto-dismiss after Prompt Time, manual dismiss, or custom widget close event), the manager checks the queue: – If the queue has prompts, the next one is popped and displayed. – If the queue is empty, the manager waits for the next add request.
Edge Cases: – Empty queue: If the queue is empty and a prompt finishes, nothing happens (manager waits idle). – Multiple rapid adds: Prompts are processed in the order they were added (FIFO), unless an Override type alters the queue. – Custom widget dismissal: If your custom widget has a manual close button or event, ensure it notifies the manager so the next prompt can be popped. (Confirm the exact API/event name if you want it documented here.)
7. Loading Screen #
The Information Prompt Manager provides a loading screen feature:
Behavior: – When you create a loading screen, it clears the entire queue and overrides all existing prompts (including the current on-screen prompt). – The loading screen is displayed immediately. – You can remove the loading screen manually (API call to dismiss it).
Use Case: Full-screen blocking UI during level transitions, asset loading, or server connection where no other prompts should be shown.
8. How-To: Add a Prompt #
Adding a Predefined Prompt #
- Call the Information Prompt Manager’s add function (e.g., AddPrompt or similar).
- Provide:
- Main Title (string)
- Secondary Title (string)
- Prompt Time (float or duration)
- Prompt Add Type (enum: Add to Queue, Override All Existing of Class, Override All in Queue, or Add to Queue if Type Does Not Exist)
- The manager processes the request based on the Prompt Add Type and either queues or displays the prompt.
Adding a Custom Widget Prompt #
- Call the Information Prompt Manager’s add function (or a variant like AddCustomPrompt).
- Provide:
- Custom Widget Class (class reference)
- Prompt Add Type (enum)
- The manager instantiates your widget, applies the Prompt Add Type logic, and queues or displays it.
Showing a Loading Screen #
- Call ShowLoadingScreen() (or equivalent API).
- The manager clears the queue, removes any on-screen prompt, and displays the loading screen.
- When ready, call HideLoadingScreen() to remove it.
9. Examples and Use Cases #
Example 1: Sequential Tutorial Messages #
Scenario: You want to show three tutorial hints in order.
Implementation: – Add three predefined prompts with Prompt Add Type: Add to Queue. – Each prompt auto-dismisses after its Prompt Time. – The manager displays them one by one (first → second → third).
Example 2: Context-Sensitive Interaction Prompts #
Scenario: The player looks at different interactable objects. Each object triggers a “Press E to interact” prompt. You want only the most recent prompt to show (no queue of old prompts).
Implementation: – Add a custom widget (or predefined prompt) with Prompt Add Type: Override All Existing of Class. – Each time the player looks at a new object, the old “Press E” prompt (same class) is removed from the queue and screen, and the new one is added.
Example 3: High-Priority Alert #
Scenario: A server shutdown warning should display next, but you don’t want to interrupt the current on-screen message.
Implementation: – Add the shutdown warning with Prompt Add Type: Override All in Queue. – The current on-screen prompt finishes normally. – The queue is cleared, and the shutdown warning is the next (and only) prompt in the queue.
Example 4: Avoid Duplicate Notifications #
Scenario: Low health warning should only show once, even if health drops below the threshold multiple times quickly.
Implementation: – Add the low health prompt with Prompt Add Type: Add to Queue if Type Does Not Exist. – If a low health prompt is already on-screen or queued, the new request is ignored.
Example 5: Loading Screen During Level Transition #
Scenario: The player triggers a level transition. You want to show a loading screen and suppress all other prompts.
Implementation: – Call ShowLoadingScreen(). – All prompts (on-screen and queued) are removed. – The loading screen displays. – When the level is loaded, call HideLoadingScreen().
10. See Also #
- HUD documentation (if the Information Prompt Manager integrates with the HUD auto-create system or displays widgets in the HUD layer)
- Event Manager (if prompts are triggered by game events)
- Any UI/widget base classes or activatable widget documentation
