Skip to content

tLib

One NUI menu, one dialog and toast system, one themeable surface, one HUD editor, one HTTP port — and 40 Lua modules reached through a tlib global you never declare.

lua
dependencies { 'tLib' }

shared_scripts {
    '@tLib/imports.lua',
}
lua
exports['tLib']:ShowToast(nil, 'success', 'tLib is running', 'Installed correctly.')

What it is not

  • Not a framework. It detects the framework you already run and normalises what it reports — see access.
  • Not configured in a file. There is no config.lua. Owners set convars in server.cfg — see Convars.
  • Not invisible when it stops. A tLib restart takes its consumers' menus with it; they re-register when it returns — see the lifecycle adapter.

Requirements

RequirementDetail
RuntimeFiveM only. Everything goes through a platform adapter, but FiveM is the only one implemented
InstallThe release zip, not a source checkout — the release carries the built NUI page and server bundle
Load orderensure tLib before any resource that depends on it
FrameworkNone. tLib detects yours; it does not replace it
PortOne, tlib_http_port, default 7777. Every app tLib serves is a mount on it

Helping us fix things

tLib does not report its own faults to us. When one of our resources throws on your server the error sits in your console, and unless someone opens a ticket we never learn it happened.

One line opts in to sending the faults in our code — errors, warnings, renderer crashes and slow-operation outliers, with no IP, no licence key, no server name and no player identifiers:

txt
set tlib_telemetry 1

It is off unless you set it, nothing is gated behind it, and Diagnostics is the full account of what is and is not sent.

Licence

MIT, source included. See LICENSE.md in the repository.

Still stuck? Support can answer it directly.

Was this page helpful?