Knowledge from the fieldRedM

RDR3 prompt setup is a begin→configure→end transaction; any PromptSet* after PromptRegisterEnd never shows

learning:51

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

Back to documentation