Guide System #
Guide System Documentation (Blueprint Focus) #
Purpose #
Provide the player with information at the right moment based on gameplay events. All guides are driven by Gameplay Tags and defined in a Guide Prompt Data Table. The system is local per player and safe for multiplayer (each player sees only their own guides). It is not a tutorial sequence; it does not coordinate global state. It is however extremly usefull for a tutorial system. We have made this system with in mind that it can be used in adjunction of our Quest system. With both the quest system and this guide system, you are able to provide an advanced tutorial experience for your player.
What It Does #
Shows either a confirmation style guide (with an optional pause in single player) or a nonintrusive popup when a trigger fires. Triggers come from static sources (overlap box, quest system) and dynamic sources (attributes, interaction, equipment, level). Everything is normalized to a Gameplay Tag first.
What It Is Not #
It is not a linear onboarding or stepbystep tutorial system. It is not nonmultiplayer; instead it is explicitly player specific (no shared UI replication).
Trigger Flow (Blueprint Concept) #
- Trigger Occurs (Overlap or Event Bind) producing or converting to a Gameplay Tag.
- Check Data Table: Does a Guide Prompt row exist for this tag (or acceptable category if you support category matching)?
- Can Execute?
- Read Trigger Type (Only Once / Every Time).
- If Only Once and already fired (tag stored in an array/set), stop.
- If a confirmation style guide is already open and the new one is also confirmation type, stop.
- If Trigger Type is Periodically, ensure the row's Periodic Retriggerable Delay has elapsed since the last trigger; if not, stop.
- Execute: Create confirmation guide or enqueue nonintrusive popup.
- Record: If Only Once, add tag to your tracked array/set.
Static vs Dynamic Triggers #
- Static Events: Overlap box in world. Quest system trigger.
- Dynamic Events (converted to tags): Attributes, Interaction, Equipment, Level.
Converting Dynamic Events to Tags #
- Attributes: From attribute name or category convert to the Gameplay Tag used in the Guide Data Table.
- Interaction: Interactable actor holds a tag container; on interaction, fetch the tag.
- Equipment: On equipment swap, get the tag from the new equipment definition.
- Level: On level increase, get a level tag to trigger a guide.
Data Table: Guide Prompt Struct Fields #
- ID (Gameplay Tag): Unique key; matches trigger tag.
- Guide Type Filter (Optional Enum): Optional filter for static events (crafting, interacting, delivering items, leveling). If set, event type must match to display. If None, any matching tag triggers.
- Title (Text): Short headline.
- Body (Rich Text): Rich formatted description. See UMG Rich Text.
- Video: Autoplay looping media. Ignored if Image is present.
- Image: Static image. Takes precedence over Video if both are set.
- Guide Type (Enum): Confirmation Box OR NonIntrusive PopUp.
- Trigger Type (Enum): Only Once OR Every Time OR Periodically.
- NonIntrusive PopUp Settings: Auto determine timer (Bool), Override timer seconds (Float), On Screen location (Enum).
- Object Trigger Settings: Tags to trigger, Widgets to trigger, Actors to trigger. Interface receives the Gameplay Tag; Blueprint compares and reacts (for example a glow animation).
- Periodic Retriggerable Delay (Float, seconds): Applies when Trigger Type is Periodically; minimum seconds between retriggers.
Execution Logic (Blueprint Summary) #
Try Trigger Guide (Gameplay Tag) → Check existence → Check eligibility → Create UI → Record Only Once tag.
Eligibility: Only Once already triggered → stop. Confirmation already open and new request is confirmation → stop. Otherwise continue.
Component Placement #
AC_GuideSystem is placed on the Player Controller. It binds event listeners on BeginPlay for attributes, interaction, equipment, level, and static or quest signals. It is local only; no replication for UI.
Minimal Blueprint Implementation Outline #
Variables:
- Array or Set of Gameplay Tags for Triggered Only Once Guides.
- Optional Map of Gameplay Tag to Guide Prompt row for fast lookup.
- Reference to current confirmation widget (if any).
- Array to queue nonintrusive popups.
- Map of Gameplay Tag to last trigger timestamp (for Periodically triggers).
Functions:
- TryTriggerGuide (Gameplay Tag)
- DoesTriggerExist (Gameplay Tag → Bool)
- CanGuideBeExecuted (Gameplay Tag → Bool)
- CreateConfirmationBoxGuide (Guide Prompt Struct)
- QueueNonIntrusivePopup (Guide Prompt Struct)
Non-Intrusive Pop-Up Behavior #
Anchored to a configured screen location. Dismissed automatically using the determined or overridden timer. When multiple are pending, display them sequentially from a queue. If Image is present, do not play Video.
Confirmation Box Behavior #
Modal view. In single player you can pause the game while the confirmation is visible. Blocks additional confirmation guides until dismissed.
Object Trigger Interface (Blueprint) #
Create a Blueprint Interface with a function such as OnGuideTrigger (Gameplay Tag). When a Guide row lists object trigger settings, call that interface on the listed widgets and actors and pass the tag. In those Blueprints, compare the tag and run the desired response (highlight, glow, tooltip).
Authoring Steps #
- Create or update a Guide Prompt row in the Data Table: set ID tag, Title, Body, and media.
- Set Guide Type and Trigger Type.
- If Trigger Type is Periodically, set the Periodic Retriggerable Delay.
- Optionally set Guide Type Filter to restrict static event types.
- Configure nonintrusive timer and onscreen location if applicable.
- Add object trigger tags and targets if a UI glow or highlight is desired.
- Ensure the gameplay event emits the matching tag.
- Test in PIE.
Queueing System #
The non intrusive pop-ups use our Information Prompt Manager. This system has a queing system. We use these settings to determine show time, and therfore also the queing time.:
- NonIntrusive PopUp Settings: Auto determine timer (Bool), Override timer seconds (Float), On Screen location (Enum).

References (Official) #
Summary #
Blueprintonly Guide System. Triggers resolve to Gameplay Tags. Tags index a Data Table row. Execution is controlled by trigger type and active confirmation state. Presentation is either confirmation with optional pause or nonintrusive popup. Optional object triggers notify widgets and actors via a Blueprint Interface for contextual highlights.
