NX CreativeNX CreativeDocs
Scriptsnx_employeemanagement

Changelog

Version history for nx_employeemanagement.

2.0.0 (2026-08-16)

A new interface. Every table, chart, dialog and form was rebuilt, and the whole panel can now run as an app inside LB Tablet instead of as a second tablet of its own.

Added

  • LB Tablet app (Config.LBTablet). Run the management UI as an app inside your server's existing LB Tablet. The icon hides while the player's job grants no access and reappears on login, job change, or a permission edit. Enabling it turns off this resource's own prop, item, Config.UIKey keybind, tabletcam command, and interaction zones: LB Tablet has no export for opening a specific app, so those triggers have nothing to route to. The app is the only way in. Disabled by default, so nothing changes on upgrade.
  • Invoice and billing detail. Expand a pending invoice to read its line items, totals, and an activity trail of who submitted it, who reviewed it, and when it was paid. A manager can now see the hours behind a payout before approving it.
  • Row expansion and a column picker on every table. Columns marked optional start hidden and are reachable from the Columns menu.

Changed

  • One interface, rebuilt on a single table system. The roster, payroll, society ledger and hiring console now sort, filter, search, page and expand the same way. Loading, empty and error states match across every panel, one sub-navigation pattern replaces three, and the colour, radius and chart tokens are shared.
  • Charts redrawn. Both trend charts, both bar charts, the payments donut, the five KPI tiles and Payout pace are dithered canvas renders now. Pay vs Hours is unchanged.
  • The loading screen waits for the panel to be ready instead of counting down a fixed timer, then cross-fades into it. Every tab shares one dark, neutral animated background.
  • The employee details dialog was rebuilt. The duplicate header, the repeated job and rank lines and the five unrelated accent colours are gone. Two more rows of history fit on screen and long names no longer truncate. Its three history tabs were mislabelled as reports; they are now named for what they list, in all seven languages.
  • Upcoming Payroll and Payout pace share a row, so the payroll table starts higher on the tab.

Fixed

  • Tables that sat below the fold of a scrolling tab were pinned to a 120px scroll region regardless of the height they asked for. The society ledger and the payroll Upcoming table were the visible cases. They size against the tab body now.
  • The payroll Analytics table was 224px wider than its container.
  • The facet filter and the rows-per-page picker did not open in game. Both were native dropdowns, which FiveM's browser cannot draw.
  • Intermittent "Access denied" on the payroll Salary tab. It hit any job whose display label differs from its job name.
  • A non-boss employee without the payroll grant was refused access to their own payment history.
  • A single transient database error could permanently deny every non-boss permission for a job until the next restart.
  • Permission denials now name the player and the specific reason in the server console. They were previously written behind a debug flag that is off on every live server, so a refusal left no trace.
  • Work and position history rows in the employee dialog rendered with no background fill.

1.5.0 (2026-07-06)

Added

  • Custom job providers (Config.CustomJobs): manage standalone job scripts (SouF UwU Cafe, BurgerShot, any self-contained job resource) from the tablet beside framework jobs, with an automatic picker when you run more than one. Read-only by default; opt in per job for write-back, payroll, and society.

Fixed

  • Management charts hours (per-employee tracker, Top Hours, and the Hours Logged / Avg Hours KPIs) now respect the selected 7D or 30D range instead of always showing the all-time total.
  • Editing a salary for a job or grade that does not exist no longer reports a false success and then reverts on reload.

1.4.0 (2026-06-09)

Added

  • Interaction zones (Config.Zones): open the menu from fixed world spots through ox_target or a TextUI prompt, with per-zone job and boss-only filters. Set Config.Tablet.access.mode = 'zone' to make zones the only entry point. Disabled by default.
  • Granular rank permissions (Config.Permissions): bosses grant non-boss ranks access to specific tabs from a new Permissions tab. Changes apply without a restart, and grantees cannot hire or promote above their own rank.
  • Per-language locale files in locales/ (en, fi, es, fr, it, de, sv). Add a language by copying locales/en.lua.

Changed

  • shared/config.lua is much smaller. Internal calibration moved to the escrowed shared/constants.lua, leaving only the settings you are meant to change.
  • Server-side hardening pass across payroll, hiring, and the tablet animation relay.

1.3.1 (2026-05-03)

Added

  • Config.HireScope.allowServerWide. Default false. When false, the hiring console hides the "Server-wide" tab and the server rewrites unscoped requests back to nearbyRadius.

1.3.0 (2026-05-03)

Added

  • Config.Payroll.Mode and Config.Payroll.PerJobModes. Choose between tablet-managed payroll and the framework's built-in paycheck thread, per job.
  • Config.Payroll.MaxWagePerJob. Server-side wage cap per job, with a default fallback.
  • Interval auto-pay: Config.Payroll.AutoPay.Schedule = 'interval' plus Config.Payroll.AutoPay.Interval (Unit, Value).
  • Config.HireScope. Hiring console can list nearby players or every online player. Default is nearby with a 10m radius.
  • Config.TimeFormats per-language time format strings. The legacy Config.TimeFormat remains as an alias.
  • New Config.Tablet.camera fields: followBoneTarget, toggleEnabled, toggleInMs, toggleOutMs.
  • Spectator DUI sync: nearby players see other players' tablet screens through nx-3d. Tunable via Config.Tablet.panel.syncRadius.

Removed

  • /ta debug command and Config.Tablet.debugCommand. Toggle the tablet through the inventory item or /employeelist instead.

Changed

  • Config.AllowedRanks entries now accept grade levels (numbers) in addition to grade names (strings). A single job entry can mix both, for example ['ambulance'] = { ['chief'] = true, [4] = true }.
  • Config.IsBossRank signature is now Config.IsBossRank(jobName, gradeName, gradeLevel). The third argument is optional. Either a matching grade name or a matching grade level grants access. Existing two-argument callers keep working.

1.2.0 (2026-04-25)

Added

  • Discord webhook logging for HR actions, society money movement, payroll rules, salary payments, and invoices. Configurable in ./shared/server-config.lua
  • Per-job rank access. Config.AllowedRanks now supports different management grades for different jobs.
  • Drag anywhere to scroll in the tablet UI.
  • Finnish and English translations for the Management Charts panel.

Changed

  • ESX job grades now display the job grade label instead of name.

Removed

  • The webhook URL fields under Config.Payroll.Reporting moved to shared/server-config.lua. Move any existing values across on upgrade.

1.1.0 (2026-04-25)

Changed

  • New typography (Sora) and refined visual hierarchy across the tablet UI.
  • Cards now use frosted glass and gradient borders.
  • Cleaner iPadOS-style header and status bar.

Fixed

  • ESC closes the tablet without opening the GTA pause menu.
  • Pre-release cleanup pass on debug flags, dead code, and escrow.

1.0.2 (2026-04-20)

Initial documentation.

NX Docs