Core Functions
ULayeredTooltipFunctionLibrary
is a Blueprint function library that provides access to all tooltip system features.
Registration & Management
RegisterWidgetAsTooltipTrigger
static void RegisterWidgetAsTooltipTrigger(UWidget* InWidget, const FLayeredToolTipTriggerData& TooltipTriggerData, bool bTransient = false);
- Description: Registers a widget as a tooltip trigger
- Parameters:
InWidget
: Widget to register (must be added to layout)TooltipTriggerData
: Tooltip data and settingsbTransient
: If true, creates a transient trigger (automatically removed when tooltip hierarchy changes)
UnregisterTooltipTriggerByWidget
static void UnregisterTooltipTriggerByWidget(UWidget* InWidget);
- Description: Unregisters tooltip from widget
- Purpose: Prevents memory leaks when widget is destroyed
RegisterObjectAsTooltipTrigger
static void RegisterObjectAsTooltipTrigger(UObject* InTriggerObject, const FLayeredToolTipTriggerData& TooltipTriggerData, bool bTransient = false);
- Description: Registers any UObject as a tooltip trigger
- Purpose: Adds tooltips to non-widget objects like actors and components
- Requirements: Must implement
ILayeredTooltipObject
interface (C++ only)
UnregisterTooltipTriggerByObject
static void UnregisterTooltipTriggerByObject(UObject* InTriggerObject);
- Description: Unregisters tooltip from object
IsRegisteredAsTooltipTrigger
static bool IsRegisteredAsTooltipTrigger(UObject* InObject);
- Description: Checks if object is registered as tooltip trigger
- Return Value: Registration status (true/false)
System Control
SetLayeredTooltipsEnable
static void SetLayeredTooltipsEnable(bool bEnabled);
- Description: Enables/disables entire tooltip system
- Purpose: Hide all tooltips during cutscenes or special game modes
AreLayeredTooltipsEnabled
static bool AreLayeredTooltipsEnabled();
- Description: Check tooltip system activation status
CloseAllTooltips
static void CloseAllTooltips();
- Description: Close all currently displayed tooltips
- Purpose: Clean up tooltips when opening menus or dialogs
Configuration
SetTooltipTriggerDisplayDelay
static void SetTooltipTriggerDisplayDelay(UObject* InTriggerObject, float Delay);
- Description: Set display delay time for specific trigger
- Parameters:
Delay
: Delay time in seconds (0.0 for instant display)
SetTooltipTriggerOffset
static void SetTooltipTriggerOffset(UObject* InTriggerObject, const FVector2D& InOffset);
- Description: Set position offset for specific trigger
- Parameters:
InOffset
: Pixel offset (x: left/right, y: up/down)
Query Functions
GetLayeredTooltipWidget
static UUserWidget* GetLayeredTooltipWidget(const UObject* InTriggerObject);
- Description: Returns tooltip widget associated with trigger object
- Return Value: Active tooltip widget or nullptr
- Purpose: Dynamic tooltip content modification, custom interactions
IsAnyLayeredTooltipVisible
static bool IsAnyLayeredTooltipVisible();
- Description: Check if any tooltips are currently displayed
- Purpose: UI state management, game logic condition checking
IsTooltipPinned
static bool IsTooltipPinned(const UObject* TriggerObject);
- Description: Check if specific trigger's tooltip is pinned
Display Control
ForceShowAndPinTooltip
static void ForceShowAndPinTooltip(UObject* InTriggerObject);
- Description: Immediately display and pin tooltip
- Purpose: Tutorials, forcing display of important information
- Behavior: Close all existing tooltips → Display specified tooltip → Immediately pin
PinTooltip
static void PinTooltip(UObject* TriggerObject);
- Description: Pin currently displayed tooltip
- Effect: Tooltip remains visible when mouse moves away, enables interactive elements
Priority System
SetPriorityTrigger
static void SetPriorityTrigger(UObject* InTriggerObject);
- Description: Set specified trigger as priority trigger
- Effect: Always displays tooltip regardless of mouse hover
- Purpose: NPC interactions, quest guidance
SetPriorityTriggerById
static void SetPriorityTriggerById(const FString& InTriggerId);
- Description: Set priority trigger by ID
- Requirements: Trigger must be registered first
ClearPriorityTrigger
static void ClearPriorityTrigger();
- Description: Clear priority trigger
- Effect: Restore normal mouse hover behavior
Mouse Interaction
IsMouseOverAnyTooltip
static bool IsMouseOverAnyTooltip();
- Description: Check if mouse is over any tooltip
- Purpose: Prevent tooltip closure when interacting with tooltip content
Positioning Utilities
CalculateTooltipPositionAtCursor
static FVector2D CalculateTooltipPositionAtCursor(UWidget* Widget, FVector2D InOffset);
- Description: Calculate optimal tooltip position based on mouse cursor
- Return Value: Tooltip position considering screen boundaries (viewport coordinates)
CalculateClampedTooltipPosition
static FVector2D CalculateClampedTooltipPosition(UWidget* Widget, FVector2D InOffset, FVector2D DesiredPosition);
- Description: Calculate tooltip position with screen boundary constraints
- Parameters:
DesiredPosition
: Desired position (viewport coordinates)
- Return Value: Position adjusted within screen boundaries
PositionTooltipWidgetAtCursor
static void PositionTooltipWidgetAtCursor(UUserWidget* UserWidget, FVector2D InOffset);
- Description: Position tooltip widget near mouse cursor
- Behavior: Calculate widget size → Calculate optimal position → Place in viewport
PositionTooltipWidgetAtPosition
static void PositionTooltipWidgetAtPosition(UUserWidget* UserWidget, FVector2D InOffset, FVector2D DesiredPosition);
- Description: Position tooltip widget at specified screen coordinates
- Purpose: Actor-based tooltips, custom positioning
Settings Access
GetLayeredTooltipSettings
static ULayeredTooltipSettings* GetLayeredTooltipSettings();
- Description: Return plugin settings instance
- Purpose: Read settings at runtime, dynamic configuration changes