oxlib

v2026.09.24

Trigger: ox_lib, lib.notify, lib.alertDialog, lib.inputDialog, lib.callback, lib.addCommand, lib.zones, menus, progress bars, keybinds, client-server callbacks. Use ox_lib UI, callbacks, commands and zones.

GitHub
Install command
npx skhub add germanfndez/oxlib
Markdown
SKILL.md

ox_lib

Shared FiveM library: UI (notify, dialogs, menus, progress), client/server callbacks, commands and zones via the global lib.

Activation Contract

Load this skill when the user needs notifications, alert or input dialogs, menus, progress bars, TextUI, a client-server request/response, a typed server command, zones ("player enters/leaves area"), keybinds, or any resource that depends on ox_lib.

Hard Rules

  • Add shared_scripts { '@ox_lib/init.lua' } to fxmanifest.lua and ensure ox_lib starts before the resource; without it lib is nil.
  • Prefer lib.callback / lib.callback.await over paired events or framework-specific callbacks for data across the network.
  • lib.callback.register(name, function(source, ...)) on the server receives source first; validate arguments there.
  • Callback names must be unique (resourcename:action).
  • UI functions (lib.notify, lib.alertDialog, lib.inputDialog, lib.progress, lib.context, lib.menu, lib.showTextUI) render on the CLIENT; from the server trigger the client to call them.
  • Icons are Font Awesome 6, default style solid; brand icons use {'fab', 'name'}.
  • lib.addCommand is SERVER-side; use restricted for permissions and typed params (number, playerId, string, longString).
  • Zones: onEnter, onExit and inside do not work on the server; create zones on the client. Keep the returned zone to call zone:remove().
  • Modules load on first use or via ox_libs { ... } / lib.require.

Decision Gates

NeedCall
Toast messagelib.notify({ title, description, type })
Confirm / OK dialoglib.alertDialog({ header, content, centered, cancel })
Form inputlib.inputDialog(title, rows)
Client asks serverlib.callback.await(name, false, ...) + server lib.callback.register
Server asks clientlib.callback.await(name, source, ...) + client lib.callback.register
Chat command with argslib.addCommand(name, { help, params, restricted }, cb)
Area triggerlib.zones.poly / lib.zones.box / lib.zones.sphere

Execution Steps

  1. Add the manifest line and start order (read rules/init.md).
  2. Pick the call from Decision Gates; read the matching rules file for the option table.
  3. Put request handling on the server callback; put UI on the client.
  4. Name callbacks and commands with the resource prefix.
  5. Store zone handles for removal.

Output Contract

Return runnable Lua using the global lib, with the manifest line when the resource is new and the client/server side explicit.

References

  • rules/init.md — fxmanifest, shared_script, ox_libs, lib.require.
  • rules/callback.md — lib.callback, await, register on both sides.
  • rules/interface.md — notify, alertDialog, inputDialog, other UI modules, icons.
  • rules/addCommand.md — server commands with help, params, restricted.
  • rules/zones.md — poly, box, sphere zones, methods and utilities.

Upstream docs: https://overextended.dev/ox_lib

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/oxlib

Default branch

main

Latest commit

c9d13e0

Tree SHA

9c54edd