Provider Role
UInteractionRuntimePromptTextProvider builds prompt presentation from resolved interaction context. A command row can own a provider for normal prompt text, and a requirement can own a provider for blocked prompt text. The provider returns FInteractionRuntimePromptPresentationResult so widgets can display plain text, rich text, or structured prompt parts.
Prompt providers are the right place for wording, formatting, and state-aware text. They are not the right place for executing gameplay, changing variants, or deciding whether the command is valid. Availability has already been resolved into FInteractionRuntimePromptBuildContext.
Default Output
The base provider can include key text, input-pattern text, progress text, and cooldown text. MakeAvailableText builds available-state text for instant, hold, and multi-tap commands. MakeFailureText builds failure text for disabled, busy, cooldown, out-of-range, requirement, policy, rate-limit, and timeout states.
Use the provider defaults when the interaction only needs conventional copy such as key plus command, hold progress, tap count, or cooldown remaining. Override one function at a time when only one part needs to change.
Structured Parts
BuildDefaultParts can fill prompt parts such as Command, Key, State, Literal, Progress, Cooldown, Custom, and Pattern through FInteractionRuntimePromptPart and EInteractionRuntimePromptPartType. Use structured parts when a UMG widget should style the key, command, progress, or failure reason independently. FlattenPresentation joins visible parts into a plain fallback line.
Structured parts are better than parsing a finished prompt string. A widget can render the key in a glyph slot, the command in a label, and cooldown in a status area without guessing which words mean what.
Template Formatting
FormatPromptTemplate formats a text template using standard prompt tokens. Use it for project copy such as {Key} {Command}, {Command} {Percent}, Ready in {CooldownRemainingSeconds}s, or {CurrentParticipants}/{RequiredParticipants} ready.
Available tokens include command, key, progress, cooldown, pattern, failure reason, prompt kind, input family, target id, point id, command id, participant counts, multi-participant stage, enter mode, pattern, and resolution policy. Use templates when design wants consistent copy with different command names or counts. Use full provider overrides when grammar, localization, or branching becomes more complex than token replacement.
Context Fields
FInteractionRuntimePromptBuildContext exposes availability, failure reason, blocking requirement, progress, cooldown, command text, key text, prompt kind, authored and effective input patterns, ids, input family, participant counts, route phase, enter mode, execution pattern, resolution policy, and EInteractionRuntimePromptMultiParticipantStage. A provider should prefer these semantic fields over parsing text from another prompt.
Requirement Providers
A requirement provider is assigned on UInteractionRuntimeRequirement and is used when that requirement blocks prompt availability. This keeps failure wording close to the rule that caused the failure. A Has Key requirement can say ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€ Ã¢â‚¬ââ€Â¢ÃƒÆ’‚¢ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€šÃ‚¢ÃƒÂ¢Ã¢â€šÂ¬Ã…¡Ã‚¬ÃÆâ€ââ€Â¢ÃƒÆ’ƒÂ¢Ã¢â€šÂ¬Ã‚¦ÃƒÂ¢Ã¢â€šÂ¬Ã…“Requires Keycard,ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€ Ã¢â‚¬ââ€Â¢ÃƒÆ’‚¢ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€šÃ‚¢ÃƒÂ¢Ã¢â€šÂ¬Ã…¡Ã‚¬ÃÆâ€ââ€Â¢ÃƒÆ’ƒÂ¢Ã¢â€šÂ¬Ã…¡Ãƒâ€šÃ‚ while a Player Count requirement can say ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€ Ã¢â‚¬ââ€Â¢ÃƒÆ’‚¢ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€šÃ‚¢ÃƒÂ¢Ã¢â€šÂ¬Ã…¡Ã‚¬ÃÆâ€ââ€Â¢ÃƒÆ’ƒÂ¢Ã¢â€šÂ¬Ã‚¦ÃƒÂ¢Ã¢â€šÂ¬Ã…“Requires 2 Players,ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€ Ã¢â‚¬ââ€Â¢ÃƒÆ’‚¢ÃÆâ€ââ€Â¢ÃƒÆ’ƒâ€šÃ‚¢ÃƒÂ¢Ã¢â€šÂ¬Ã…¡Ã‚¬ÃÆâ€ââ€Â¢ÃƒÆ’ƒÂ¢Ã¢â€šÂ¬Ã…¡Ãƒâ€šÃ‚ without every command row needing its own failure provider.
Multi-Participant Text
Group interactions add participant count, route phase, participant role, enter mode, execution pattern, and resolution policy to the build context. Use those fields for copy such as waiting for players, joined, hold together, tap together, shared progress, or cancelled. Pair this with Authoring Multi-Participant Routes so prompt text matches the command’s entry and execution model.
Blueprint Workflow
- Create a Blueprint class derived from
UInteractionRuntimePromptTextProvider. - Override Try Build Prompt Presentation when the whole prompt needs custom branching.
- Override Make Available Text or Make Failure Text for smaller text changes.
- Use Add Prompt Part when the widget needs structured styling.
- Assign the provider to a command row for normal prompts or to a requirement for blocked prompts.