Zum Inhalt springen

Draw-Text-Farben

Tipp Text mit GTA V Formatcodes (~r~, ~b~, ~h~, ~n~ …) und sieh live, wie er in DrawText, Notifications und Help Text dargestellt wird.

Dieses Tool und seine Hinweise sind vorerst auf Englisch.

RechnerUI, VorschauZur Doku

Text

101 chars

DrawText options

Mission started. Press E to talk to Lamar.
Reward: $2500 (bonus)

Preview is close, not pixel exact: GTA fonts are replaced with system fonts.

drawtext.lua
AddTextEntry("FIVEMAD_TEXT", "~b~Mission~s~ started. Press ~INPUT_CONTEXT~ to talk to ~y~~a~~s~.~n~Reward: ~g~$~1~~s~ ~h~(bonus)~h~")

CreateThread(function()
    while true do
        Wait(0)
        SetTextFont(4)
        SetTextScale(0.0, 0.5)
        SetTextColour(255, 255, 255, 255)
        SetTextOutline()
        SetTextCentre(true)
        BeginTextCommandDisplayText("FIVEMAD_TEXT")
        AddTextComponentSubstringPlayerName("Lamar")
        AddTextComponentInteger(2500)
        EndTextCommandDisplayText(0.5, 0.8)
    end
end)

Reference (click to insert)

FiveM chat colours

The default chat resource uses caret codes, not tildes. ^0 to ^9 set the colour, ^* bold, ^_ underline, ^~ strikethrough and ^r resets.

Message

Dispatch: [Police] Suspect spotted near Legion Square. All units respond.
chat.lua
-- client side
TriggerEvent("chat:addMessage", {
    color = { 255, 255, 255 },
    multiline = true,
    args = { "Dispatch", "^1[Police]^0 Suspect spotted near ^3Legion Square^0. ^*All units^r respond." }
})

-- server side, to one player (use -1 for everyone)
TriggerClientEvent("chat:addMessage", source, {
    args = { "Dispatch", "^1[Police]^0 Suspect spotted near ^3Legion Square^0. ^*All units^r respond." }
})

How GTA text codes work

Any string that goes through a text command (DrawText, notifications, help text, subtitles, blip names) can carry inline codes wrapped in tildes. A colour code stays active until the next colour code, and~s~ goes back to the default colour (whatever you set with SetTextColour, or white for notifications and help text).

  • ~r~ ~b~ ~g~ ~y~ ~p~ ~q~ ~o~ ~c~ ~m~ ~w~ ~l~: colours. ~HUD_COLOUR_NAME~ works too.
  • ~h~: bold on, then off again. ~n~: new line.
  • ~INPUT_CONTEXT~ and other control names render the button the player has bound, so prompts stay correct on custom keybinds and gamepad.
  • ~a~ and ~1~ are placeholders filled by AddTextComponentSubstringPlayerName and AddTextComponentInteger, in order. Register the string with AddTextEntry first.

Long strings

A single AddTextComponentSubstringPlayerName is cut at 99 characters. For longer text the snippet switches to the built-in CELL_EMAIL_BCON entry and splits your text into chunks, without breaking a code in half.

Notifications and help text

BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName("~g~Saved~s~ your outfit.")
EndTextCommandThefeedPostTicker(false, true)

-- help text has to be drawn every frame
BeginTextCommandDisplayHelp("STRING")
AddTextComponentSubstringPlayerName("Press ~INPUT_CONTEXT~ to open the shop")
EndTextCommandDisplayHelp(0, false, true, -1)

Chat codes

The FiveM chat resource does not understand tildes. It uses ^0 to ^9 for colours plus^*, ^_, ^~, ^= and ^r for formatting. The colours shown are the defaults from the stock chat stylesheet, a custom chat theme can change them.

Colour values for the tilde codes follow Vespura's text colour reference and the game's HUD colours.