RichLinks
RichLinks is a lightweight Unreal Engine 5 plugin that enables mouse-events (enter/leave/click) for inline links inside `URichTextBlock` widgets. It's designed for UI developers who want to trigger events or show tooltips when users hover over specific words or tags in rich text.
Note: This plugin is also available for free under the MIT License on GitHub. This Fab version is distributed under the Fab Standard License.
Features
Adds <link> tag support with real mouse-events (enter/leave/click)
Clean integration with URichTextBlock via decorator
Easy to use in both C++ and Blueprint widgets
Tested with Unreal Engine 5.3-5.6
Getting Started
Add the ULinkRichTextBlockDecorator to your URichTextBlock. Use the following tag to enable RichLink functionality:
This is an <link id="example">example link</>.
You can handle hover events directly through Slate or use Blueprint interfaces to receive callbacks.
Example Widget
Open W_PlainRichText
In the Designer tab, check out the Rich Text Block
Notice that a Text Style Set must be applied, here DT_RichTextStyle
Under Decorator classes, the LinkRichTextDecorator is required
In the Graph tab, check out how ILinkEventReceiver is implemented
You can create your own interfaces that implement ILinkEventReceiver and react to the link events NotifyOnLinkMouseEnter, NotifyOnLinkMouseLeave and NotifyOnLinkMouseButtonDown accordingly. For example OnMouseEnter / OnMouseLeave, you could spawn/destroy another WidgetActor as a tooltip and pass in the linkId for the tooltip to display the correct information.
Demo
./Plugins
└─RichLinks
└─Content
└─Demo
├─BP_WidgetActor.uasset
├─DT_RichTextStyle.uasset
├─L_WidgetActor_World.umap
├─L_Widget_Viewport.umap // Start here
└─W_PlainRichText.uasset
L_Widget_Viewport
1. Open L_Widget_Viewport
2. Press play-in-editor (Alt+P)
3. Use the mouse to hover and click the links
L_WidgetActor_World
1. Open L_WidgetActor_World
2. Press play-in-editor (Alt+P)
3. Use the mouse to hover and click the links
This map contains a BP_WidgetActor placed in the world.
Support & Feedback
Found a bug or have a feature request? Please open an issue on GitHub Issues.