NR_Management
A boss menu and management panel with a custom React tablet UI, employee management, society banking, bonus payments, group chat, job applications, duty tracking, and a Job Center NPC.
Features
- Custom tablet UI - React interface with dashboard, employees, banking, chat, and applications tabs
- Employee management - Hire online players, fire and promote/demote both online and offline employees
- Society banking - Deposit, withdraw, and transfer funds from the society account with full transaction history
- Bonus payments - Pay bonuses to online employees directly from society funds
- Group chat - Per-job chat system for all employees, messages persisted to database
- Job applications - Players can browse jobs and submit applications with custom questions per job, managers review/approve/deny with messaging
- Job Center NPC - Configurable ped at a location with blip, players interact to browse and apply for jobs
- Duty tracking - Automatic clock in/out tracking with total duty hours per employee, handles disconnects
- Grade-based access - Configure a
minGradeper job to control who has full management access vs view-only - Dashboard overview - Employee list with online/offline/on-duty status, society balance, transaction history, duty hours, pending applications
- Multi-banking - Auto-detects 6 banking systems: Renewed-Banking, qb-banking, fd_banking, tgg-banking, kartik-banking, okokBanking, with fallback
- Multi-framework - ESX, QBCore, and QBX with auto-detection
- Configurable theme - Set any hex accent color via config
- NR_Tablet integration - Optional app inside NR_Tablet, or standalone with keybind
- Anti-exploit - Rate limiting, input sanitization, grade validation, and server-authoritative access control
- Localization - All UI text configurable via locales.lua
Dependencies
| Resource | Description | Required |
|---|---|---|
| ox_lib | Notifications and shared utilities | Yes |
| oxmysql | MySQL database for all management data | Yes |
| ESX / QBCore / QBX | Any supported framework (auto-detected) | Yes |
| Banking resource | Renewed-Banking, qb-banking, fd_banking, tgg-banking, kartik-banking, or okokBanking (auto-detected) | Yes |
| ox_target / qb-target | Third-eye interaction for Job Center NPC | Optional |
| NR_Tablet | Opens as a tablet app instead of standalone | Optional |
Supported Banking Systems
The script auto-detects the first running banking resource from this list:
Renewed-Banking, qb-banking, fd_banking,
tgg-banking, kartik-banking, okokBanking
If no banking resource is detected, a fallback system is used that stores society funds directly in the database.
Installation
Step 1: Download
Download NR_Management from your Tebex purchase and extract it to your resources folder:
server/
└── resources/
└── [echo]/
└── NR_Management/
Step 2: server.cfg
Add the resource to your server configuration. ox_lib, oxmysql, and your banking resource must start before NR_Management:
ensure oxmysql
ensure ox_lib
ensure ox_target # or qb-target (optional, for Job Center NPC)
ensure NR_Management
Step 3: Database
The database tables are created automatically on first start. No manual SQL setup required. Seven tables are created:
nr_management_funds— Society fund balances per jobnr_management_transactions— Banking transaction historynr_management_duty— Duty session tracking (clock in/out times)nr_management_chat— Per-job group chat messagesnr_management_app_questions— Custom application questions per jobnr_management_applications— Submitted job applicationsnr_management_app_messages— Messages between applicants and managers
Step 4: Configuration
Edit config.lua to add your jobs, set the theme color, and configure the Job Center NPC location.
Step 5: Restart
Restart your server to load the resource.
How It Works
1. Opening the Panel
Press F6 (default keybind) to open the management panel. If using NR_Tablet, the app opens from within the tablet interface. You must have a job listed in Config.Jobs to access it.
2. Dashboard
The dashboard shows an overview of your organization: a list of all employees with their online/offline and on-duty status, the society fund balance, recent transactions, total duty hours per employee, and the number of pending job applications.
3. Employee Management
Managers (employees at or above minGrade) can:
- Hire — Select from a list of online players to add them to your job
- Fire — Remove employees whether they are online or offline
- Promote / Demote — Change an employee's grade up or down, works for online and offline players
4. Society Banking
Managers can manage the organization's society funds:
- Deposit — Add personal cash into the society fund
- Withdraw — Take cash out of the society fund
- Transfer — Send money to a specific bank account
All transactions are logged with the employee name, amount, type, and timestamp.
5. Bonus Payments
Managers can pay bonuses to any online employee from the society fund. The amount is deducted from society funds and deposited directly into the employee's bank account.
6. Group Chat
Every job has its own group chat visible to all employees of that job. Messages are persisted to the database so chat history is available across sessions. New messages trigger real-time notifications for online employees.
7. Job Applications
The application system works in two parts:
- Applicant side — Players visit the Job Center NPC, browse available jobs, answer custom questions, and submit applications
- Manager side — Review submitted applications, read answers, approve or deny, and exchange messages with the applicant
Managers can add or remove custom questions per job. When an application is approved, the player is automatically hired into the job (whether they are online or offline).
8. Duty Tracking
The system automatically tracks when employees clock in and out of duty. Total duty minutes are displayed per employee on the dashboard. If a player disconnects while on duty, their session is automatically closed.
9. Job Center NPC
A configurable ped spawns at the location defined in Config.JobCenter. Players interact with it using ox_target or qb-target to open a job browser where they can view available positions and submit applications. A map blip marks the location.
Configuration
General Settings
Config.Debug = false -- Enable debug mode
Config.Theme = '#00ffff' -- UI accent color (any hex)
Config.Keybind = 'F6' -- Open keybind (standalone mode)
Config.UsingNRTablet = true -- Open as NR_Tablet app
Job Definitions
Config.Jobs = {
['police'] = {
label = 'Police Department',
minGrade = 3, -- Grade required for full management access
},
['ambulance'] = {
label = 'Emergency Medical Services',
minGrade = 2,
},
['mechanic'] = {
label = 'Mechanic Shop',
minGrade = 1,
},
}
Add any job that exists in your framework. The minGrade controls which grade level and above can hire, fire, promote, manage banking, and handle applications. Employees below minGrade can still view the dashboard, chat, and see their own duty hours.
Job Center NPC
Config.JobCenter = {
enabled = true,
ped = {
model = 's_f_y_airhostess_01', -- Ped model
coords = vec4(-265.09, -963.0, 31.22, 206.28),
scenario = 'WORLD_HUMAN_CLIPBOARD',
},
blip = {
enabled = true,
sprite = 408,
color = 3,
scale = 0.7,
label = 'Job Center',
},
}
Set enabled = false to disable the Job Center NPC entirely. Change the ped model, coordinates, and blip settings to match your server's layout.
Access Control
The management panel uses a two-tier access system:
| Access Level | Requirement | Permissions |
|---|---|---|
| Employee | Any grade in a configured job | View dashboard, group chat, own duty hours |
| Manager | Grade ≥ minGrade |
All employee permissions plus hire, fire, promote, banking, bonuses, applications |
Multi-Banking Support
NR_Management auto-detects your banking resource and uses its API for society fund operations. The following systems are supported:
| Banking Resource | Detection |
|---|---|
| Renewed-Banking | Auto-detected (with column auto-detection for amount vs money) |
| qb-banking | Auto-detected |
| fd_banking | Auto-detected |
| tgg-banking | Auto-detected |
| kartik-banking | Auto-detected |
| okokBanking | Auto-detected |
If no banking resource is found, society funds are managed via the nr_management_funds database table as a fallback.
Database
NR_Management uses oxmysql with seven auto-created tables:
nr_management_funds
Stores society fund balances per job (used by fallback banking only).
nr_management_transactions
Logs all banking operations — deposits, withdrawals, transfers, and bonus payments with employee name, amount, and timestamp.
nr_management_duty
Tracks duty sessions with clock-in time, clock-out time, and total minutes per session. Handles disconnects gracefully.
nr_management_chat
Per-job group chat messages with sender name, message content, and timestamp.
nr_management_app_questions
Custom application questions per job, added and removed by managers.
nr_management_applications
Submitted applications with applicant info, answers (JSON), and status (pending/approved/denied).
nr_management_app_messages
Messages exchanged between applicants and managers on specific applications.
Localization
All UI text is configurable in locales.lua. Override any string to change labels, notifications, and button text. Example:
Locales.HireSuccess = 'Successfully hired %s'
Locales.FireSuccess = 'Successfully fired %s'
Locales.PromoteSuccess = 'Successfully promoted %s to grade %s'
Locales.DepositSuccess = 'Deposited $%s into society fund'
Locales.WithdrawSuccess = 'Withdrew $%s from society fund'
Locales.BonusPaid = 'Paid $%s bonus to %s'
Locales.ApplicationApproved = 'Application approved - %s has been hired'
Locales.ApplicationDenied = 'Application denied'
Locales.NoAccess = 'You do not have access to this panel'
Exports
NR_Management provides a client-side export to open the panel programmatically:
exports['NR_Management']:OpenManagementPanel()
This can be used from other scripts or custom keybinds to open the management UI.
Troubleshooting
UI not opening
- Check F8 console for errors
- Verify the
web/build/folder exists with built files - If using NR_Tablet, ensure
Config.UsingNRTablet = true - Make sure your job is listed in
Config.Jobs - Try changing your keybind if F6 conflicts with another resource
No access to management features
- Your job grade must be at or above the
minGradeset inConfig.Jobs - Check your current grade with your framework's admin tools
- Ensure the job name in config matches exactly what your framework uses (case-sensitive)
Banking not working
- Ensure your banking resource starts before NR_Management in
server.cfg - Check server console for which banking system was detected
- If using Renewed-Banking, the script auto-detects the column name (
amountvsmoney) - Enable
Config.Debug = truefor detailed banking operation logs
Job Center NPC not spawning
- Verify
Config.JobCenter.enabled = true - Check that the ped model name is valid
- Ensure ox_target or qb-target is running for interaction
- Check the coordinates are at a valid ground position
Employees showing wrong status
- Online/offline detection relies on the framework's player list
- On-duty status updates in real time via framework events
- If an employee disconnected while on duty, their duty session is auto-closed on next server start
Database errors
- Verify oxmysql is running and your connection string is correct
- All 7 tables are created automatically — check server console for creation errors
- If you see duplicate key errors, the tables already exist and this is normal
Applications not showing
- Players must use the Job Center NPC to submit applications
- Managers must be at or above
minGradeto see the applications tab - Add at least one custom question per job for the application form to appear
Support
For paid script support, open a ticket in our Discord server for priority assistance.