GTM UI - Menus, Notifications & more | Choose modern NUI or Native Design

GTM UI — Unified UI Library for FiveM

GTM UI is a free, shared resource that gives every script on your server a consistent notification, help-text, and menu system — no NUI setup, no extra dependencies, just exports.


Three themes, one API

  • NUI — Sleek React overlay with animated toasts and keyboard-navigable menus
  • Native — Drawn entirely with FiveM natives and scaleform, no HTML/CSS required
  • Custom — Forward all UI calls to your own resource exports

Switch themes server-wide from config.json. Your scripts never need to change.


What you get

Notifications
Pop up info, success, warning, or error toasts. Supports titles, optional progress bars, custom duration, and manual dismiss.

exports['gtm-ui']:showNotification({
  title   = "Payment received",
  message = "You earned $500.",
  type    = "success",
})

Help text
Show a persistent bottom-screen hint. Optionally auto-hides after a timeout.

gtm-ui helptext

exports['gtm-ui']:showHelpText({
  message  = "Press ~INPUT_CONTEXT~ to open the menu",
  duration = 4000,
})

Instruction Card
Show a persistent detailed hint. Optionally auto-hides after a timeout.

exports['gtm-ui']:showInstructionCard({
  message  = "Press {hotkey:E} to enter/exit\nPress {hotkey:F} to toggle engine\nPress {hotkey:H} to honk",
  title = "Vehicle Controls",
  position = "top-left",
  duration = 4000,
})

**
Menus**
Fully navigable menus with plain items, checkboxes, list selectors, separators, and nested submenus. Player interactions are delivered as local FiveM events.

exports['gtm-ui']:openMenu({
  id    = "myresource:shop",
  title = "Item Shop",
  items = {
    { id = "burger", label = "Burger", badge = "$5" },
    { id = "water",  label = "Water",  badge = "$2" },
    {
      id        = "size",
      label     = "Size",
      type      = "list",
      listValues = {
        { label = "Small",  value = "s" },
        { label = "Large",  value = "l" },
      },
    },
  },
})

AddEventHandler('gtm-ui:menuItemSelected', function(menuId, itemId, value)
  if menuId == "myresource:shop" then
    -- handle selection
  end
end)

Additional features

  • \n line breaks work in all text fields
  • Optional sound effect on notifications and help-text (config.json)
  • Works with any framework — ESX, QBCore, standalone, anything

Installation

  1. Drop gtm-ui into your resources folder
  2. Add ensure gtm-ui to your server.cfg before any resource that uses it
  3. Done — call the exports from any resource

Free to use. No framework required. No strings attached.

Make sure to also join our Discord:

And check out our other releases:

Code is accessible No (only styles)
Subscription-based No
Lines (approximately) 5000
Requirements None
Support Yes
5 Likes

This is so incredibly AI Made it’s funny

1 Like

You mean the preview image at the top? Yes, this one is AI generated.

But I don’t see an issue with AI generating the preview image, do you? I mean it looks kinda epic :grinning_face:

I don’t view generative AI as something positive. I think it’s harmful overall, and I can’t respect those who choose to use it.

Yea your right, we should put him in jail for generating a image!

2 Likes

What you’re saying doesn’t make sense. It’s normal that if someone doesn’t know how to use Adobe, they’ll use AI. That’s fine; it’s obvious that a human will always do a better job. You have to understand that we live in 2026, and AI is becoming more prevalent than human work. (Whether that’s good or bad depends on how you look at it.)

Anyway, @GrandTheftMods, excellent work! The UI is very nice—minimalist, simple, and elegant.

4 Likes

I get your point, but it doesn’t really hold up.

Using AI because someone can’t use Adobe isn’t just “normal,” it’s skipping the effort to learn the skill, which leads to a lot of samey, low effort work.

And saying humans are better contradicts the rest, AI is blowing up because “good enough and fast” is beating real quality in a lot of cases.

Also, “it’s 2026” isn’t a real argument. Something being common doesn’t make it good.

The UI looks good I’ll give you that

1 Like

Or he doesnt like designing so he used AI, because he’d rather code, for example I don’t like designing. Instead of paying a designer he used AI, i’m sure if he paid a designer it would look better, but the code probably matters more to him than the design.

Same thing why people go shopping, they could make their own food if they really wanted to, but why waste time doing something you dont like, when you can easily do it a different way.

I agree applicating AI to everything isn’t good at all, but image quality isn’t hurting anyone, bad code is likely more. He’s releasing the code, not the pictures, if a designer wants to code with AI and the main point of the release is code, sure hate on that, if the release is about code, focus on the code and not on the images.

My view point only ofc :slight_smile:

2 Likes

can you be quiet and hug a tree? no one cares this is fivem

Good job

1 Like

503 Service Temporarily Unavailable

:3

Hi, sorry for the inconvenience. Website is up again :slight_smile:

You’re criticizing AI for “skipping the effort”, yet as a developer you’re most likely using tools like Vscode with extensions, autocomplete, linting, error highlighting… All of which reduce the need to learn, remember, and manually write everything from scratch.

This IS abstraction. This IS assistance. This IS trading effort for efficiency, exactly like AI.

Saying “AI is bad because it makes things easier” would mean you should also reject every tool that made development easier over time, which nobody actually does.

What? Because a guy who made the AI image didn’t want to waste his precious time making one manually?

This Anti-AI argument is so stupid, if I put an artist to task to make an image, everyone says “Oh thats a nice image” and if I do it in AI people say “ewww this is AI slop” but the image was the same, only difference is you know 1 is human and 1 is AI. Point is, it achieves the same result.

And sure, if it’s obvious AI slop where they have not put in time and effort into their prompt with multiple revisions then sure.