RDR3 prompt setup is a begin→configure→end transaction; any PromptSet* after PromptRegisterEnd never shows
Context
The RDR3 prompt natives (_UI_PROMPT_REGISTER_BEGIN 0x04F97DE45A519419, PromptSetControlAction, PromptSetText, PromptSetGroup 0x2F11D3A254169EA4, _UI_PROMPT_REGISTER_END) are bare auto-generated stubs with no descriptions and no ordering guidance. They are useless individually — a prompt is a transaction.
The required sequence
local promptId = PromptRegisterBegin() -- capture the handle
PromptSetControlAction(promptId, GetHashFromString(key)) -- control is a HASH, not a string
PromptSetText(promptId, CreateVarString(10, "LITERAL_STRING", label))
PromptSetPriority(promptId, 2)
PromptSetEnabled(promptId, true)
PromptSetVisible(promptId, true)
if holdTime > 0 then PromptSetHoldMode(promptId, holdTime) end
PromptSetGroup(promptId, groupId, page)
PromptRegisterEnd(promptId) -- finalize LAST
The trap
Every PromptSet* must run on the handle returned by PromptRegisterBegin(). Calling any setter after PromptRegisterEnd, or skipping PromptRegisterEnd entirely, yields a prompt that never renders. PromptSetControlAction takes a hashed control (GetHashFromString), not a raw key string.
Verified
prompt/client.lua:218-242.
Linked natives
_UI_PROMPT_REGISTER_BEGIN(0x04F97DE45A519419)_UI_PROMPT_SET_GROUP(0x2F11D3A254169EA4)
Tags: prompt, hud, lifecycle, ordering, register, rdr3, controls
Category: natives
Source: jo_libs-fleet
Created: 2026-05-31T09:39:44.045Z