mcpField
O
oxlib

oxlib

github.com/germanfndezDevelopment1971 installsUpdated 2w ago
Repository

About oxlib

oxlib is a skill for using the shared ox_lib library in FiveM resources. It guides Lua implementation of UI, callbacks, commands and zones, with explicit client/server placement and setup requirements.

Key features

  1. 01Notifications, dialogs and menus
  2. 02Progress UI and TextUI
  3. 03Client-server callbacks
  4. 04Typed server commands
  5. 05Client-side zones and keybinds
  6. 06Setup and module-loading guidance

Use cases

  1. 01Add notifications or input dialogs to a resource
  2. 02Request data between client and server
  3. 03Create permission-restricted commands
  4. 04Trigger behavior when a player enters or leaves an area

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/germanfndez/fiveai-skills --skill oxlib

After installing, type/oxlibin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

rules/
addCommand.md
callback.md
init.md
interface.md
zones.md

Details

From the project README

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

Comments

Markdown supported