Naar de inhoud

Warning Screen Buttons

Kies welke knoppen op een GTA V warning of alert scherm moeten staan en krijg de exacte flag waarde voor SetWarningMessage en SetWarningMessageWithHeader.

Deze tool en de bijbehorende uitleg zijn voorlopig in het Engels.

CalculatorsNatives, FlagsLees de docs

30 flags · 2 set

Presets

Button flags

Decimal
Hex
Binary
Set flags
Expression

YES | NO

Preview

Alert

Are you sure you want to leave the server?

Unsaved progress will be lost.

EnterYesEscNo

Text

warning.lua
local WARNING_FLAGS = 36 -- YES | NO

-- Warning screens only take text entries, so register our own.
AddTextEntry("FM_WARN_HEADER", "Alert")
AddTextEntry("FM_WARN_LINE1", "Are you sure you want to leave the server?")
AddTextEntry("FM_WARN_LINE2", "Unsaved progress will be lost.")

--- Shows the warning screen every frame until the player picks an option.
---@return "accept"|"cancel"
local function ShowWarning()
    while true do
        SetWarningMessageWithHeader("FM_WARN_HEADER", "FM_WARN_LINE1", WARNING_FLAGS, "FM_WARN_LINE2", false, -1, true, 0, true)

        -- Input group 2 (frontend) still works while the warning is shown.
        if IsControlJustPressed(2, 201) or IsControlJustPressed(2, 217) then return "accept" end -- Enter / A (INPUT_FRONTEND_ACCEPT, INPUT_FRONTEND_SELECT)
        if IsControlJustPressed(2, 202) then return "cancel" end -- Esc / Backspace / B (INPUT_FRONTEND_CANCEL)
        Wait(0)
    end
end

CreateThread(function()
    local choice = ShowWarning()
    if choice == "accept" then
        print("Accepted")
    elseif choice == "cancel" then
        print("Cancelled")
    end
end)

How the button flags work

The instructionalKey / flags argument of SetWarningMessage andSetWarningMessageWithHeader is a bit field. Each bit adds one instructional button to the bottom of the alert screen. Add the values of the buttons you want: Yes (4) + No (32) =36.

SetWarningMessageWithHeader(titleMsg, entryLine1, flags, promptMsg, p4, p5, background, p7, showBg)

Things to know

  • The warning must be drawn every frame, so call it inside a loop with Wait(0).
  • It only accepts text entries, not raw strings. Register your own with AddTextEntry("MY_KEY", "text"), like the generated snippet does.
  • The buttons are only visual. You still have to check the keys yourself. Normal controls are blocked while the warning is up, but frontend controls in input group 2 still work: 201 accept (Enter),202 cancel (Esc), 203 alternative (Space).
  • Several bits share the same key, for example Select, OK, Yes and Continue are all Enter. The preview shows what the player sees, the snippet groups them into accept / cancel / alt.
  • The constant names in this tool (YES, CANCEL_TRANSFER…) are descriptive, the game has no official names for most bits.

Button list and bit order from Vespura'swarning buttons tool, checked against eInstructionalButtonTypes in the FiveM native docs.