73 — BPC_TutorialSystem
Blueprint Spec — UE 5.5–5.7
Parent Class
ActorComponent
Dependencies
Purpose
Manages contextual tutorial prompts, guided first-time experiences, and hint systems. Tracks which tutorials the player has seen, what actions they have performed, and shows relevant tips at appropriate moments. Supports contextual triggers (player performs action for first time), zone-based triggers (player enters new area), and manual triggers (player opens tutorial menu).
Enums
ETutorialTriggerType
| Value |
Description |
| OnFirstAction |
Player performs action for first time |
| OnEnterZone |
Player enters tutorial zone volume |
| OnItemPickup |
Player picks up key item first time |
| OnEncounterFirstEnemy |
First enemy encounter |
| OnManualOpen |
Player opens tutorial from menu |
| OnProximityToObject |
Near specific interactable |
| OnNarrativePhase |
Story progression trigger |
| OnSkillUnlock |
Player unlocks ability |
ETutorialDisplayStyle
| Value |
Description |
| FullScreen |
Large overlay with detailed instructions |
| Panel |
Bottom-right panel with image and text |
| Tooltip |
Small floating hint near relevant object |
| Toast |
Brief notification that auto-dismisses |
| Interactive |
Step-by-step guided tutorial |
Structs
FTutorialEntry
| Field |
Type |
Description |
| TutorialID |
FName |
Unique identifier |
| Title |
FText |
Tutorial title |
| Description |
FText |
Tutorial body text |
| DisplayStyle |
ETutorialDisplayStyle |
How to show |
| TriggerType |
ETutorialTriggerType |
Activation condition |
| bIsMandatory |
Bool |
Must complete to proceed |
| bCanBeSkipped |
Bool |
Player can dismiss |
| Priority |
Int32 |
Display priority |
| CooldownSeconds |
Float |
Min time before showing again |
| Image |
UTexture2D |
Optional illustration |
| InputActionShown |
FName |
Action key to highlight |
| RelatedTutorials |
TArray<FName> |
Chain of tutorials |
Variables
| Name |
Type |
Description |
CompletedTutorials |
TSet<FName> |
Tutorials player has completed |
SeenTutorials |
TSet<FName> |
Tutorials shown this playthrough |
PendingTutorials |
TArray<FTutorialEntry> |
Queue of tutorials to show |
ActiveTutorial |
FTutorialEntry |
Currently displayed |
bTutorialActive |
Bool |
Currently showing tutorial |
bTutorialsEnabled |
Bool |
Global toggle |
bSkipAllTutorials |
Bool |
Speedrun mode |
FirstActionTracker |
TMap<FName, bool> |
Track first-time actions |
ZoneTracker |
TMap<FName, bool> |
Track visited zones |
Functions
| Name |
Inputs |
Outputs |
Description |
Initialize |
— |
— |
Load completed tutorials from save |
RegisterTutorial |
Entry: FTutorialEntry |
— |
Add tutorial to registry |
TriggerTutorial |
TutorialID: FName |
— |
Force show tutorial |
TriggerTutorialByType |
Trigger: ETutorialTriggerType, Context: FName |
— |
Contextual trigger |
CompleteTutorial |
TutorialID: FName |
— |
Mark as completed |
DismissTutorial |
— |
— |
Close active tutorial |
SkipTutorial |
— |
— |
Skip current tutorial |
GetNextTutorialInChain |
TutorialID: FName |
FName |
Get related tutorial |
ShowTutorialOverlay |
Entry: FTutorialEntry |
— |
Display tutorial UI |
HideTutorialOverlay |
— |
— |
Close tutorial UI |
IsTutorialCompleted |
TutorialID: FName |
Bool |
Check completion |
HasTutorialBeenSeen |
TutorialID: FName |
Bool |
Check if shown |
OnFirstAction |
ActionName: FName |
— |
Track first action |
OnEnterZone |
ZoneName: FName |
— |
Track zone entry |
RegisterFirstActionTutorials |
— |
— |
Register common action tutorials |
RegisterZoneTutorials |
— |
— |
Register zone tutorials |
ProcessPendingQueue |
— |
— |
Show next queued tutorial |
SaveTutorialState |
— |
— |
Persist to save system |
Blueprint Flow
Event Dispatchers
| Name |
Payload |
Description |
OnTutorialStarted |
TutorialID: FName, Title: FText |
Tutorial began |
OnTutorialCompleted |
TutorialID: FName |
Tutorial finished |
OnTutorialDismissed |
TutorialID: FName, bWasSkipped: Bool |
Tutorial closed |
Communications With
Reuse Notes
- Tutorials are data-driven via FTutorialEntry — easy to add new ones
- First-action tracking uses FName keys for extensibility
- Queue system prevents tutorials from overlapping
- Skip option for speedrunners and repeat playthroughs
- State persists across save/load so tutorials don't repeat