Installation

Quasar Text UI is the ultimate replacement for DrawText3D in FiveM, delivering ultra-optimized 3D text with zero FPS loss. Fully customizable with fonts, colors, sizes, and animations, it’s perfect for prompts, NPC labels, and messages. Compatible with ESX, QBCORE and standalone, it’s lightweight, efficient, and easy to implement with simple exports and full documentation.


Download Script

To download the assets needed for this script, you must access the official Cfx.re portal, where all assets purchased through Tebex are managed.

  1. Go to the following link: 🔗 https://portal.cfx.re/assets/granted-assets

  2. Log in with the same Cfx.re account you used to make the purchase.

  3. In the list of granted assets, find and download the following:

    • Text UI


Download Dependencies

This script requires some mandatory dependencies to function correctly. Make sure to download and extract them inside your server’s main directory, keeping their original folder structure intact.


Server.cfg Placement

This script must always start after es_extended or qb-core, never before. We recommend placing it below in your server.cfg, ensuring that all its dependencies are started first to prevent errors or unexpected behavior.


Integration in QBCORE and ESX

We can seamlessly integrate this system by default in both QBCORE and ESX frameworks using the following code snippets. If your framework does not include these events:

ESX
-- es_extended/client/functions.lua

function ESX.TextUI(...)
    return IsResourceFound('esx_textui') and exports['esx_textui']:TextUI(...)
end

---@return nil
function ESX.HideUI()
    return IsResourceFound('esx_textui') and exports['esx_textui']:HideUI()
end

-- Set them to these:

function ESX.TextUI(...)
    return exports["qs-textui"]:displayTextUI(...)
end

---@return nil
function ESX.HideUI()
    return exports["qs-textui"]:hideTextUI()
end
QBCORE
-- qb-core/client/drawtext.lua

exports['qb-core']:DrawText() => exports["qs-textui"]:displayTextUI(text, position)

exports['qb-core']:HideText() => exports["qs-textui"]:hideTextUI()

exports['qb-core']:KeyPressed() => Dont change it

exports['qb-core']:ChangeText() => exports['qs-textui']:changeText(text, position)