Advanced Duty System with Built-in Rewards and Leaderboard

Advanced Duty System with Built-in Rewards and Leaderboard


:page_with_curl:Docs/Config - g-dutyV2 | Groot Development
:previous_track_button: Preview - https://youtu.be/vn8E5qop-1c


Supported Frameworks: ESX (v1.11.0 or newer), QBCore, QBox, Custom

Supported Inventories: ox_inventory, qb-inventory, qs-inventory, core_inventory — inventory is only needed for the reward system. You can use any inventory system with this script. If yours isn’t listed, feel free to reach out via Discord.

Supported Target Systems: qb-target, ox_target — also works with TextUI if preferred


Purchase here

:lock: Escrow - https://groot-development.tebex.io/package/6909932
:unlock: Unlocked - https://groot-development.tebex.io/package/6909968


:key: Key Features

Built-in Duty Menu
Players can easily clock in and out using an intuitive in-game menu. No need to remember commands — everything’s just a few clicks away.

Give Items on Duty
Automatically provide items like radios, medkits, weapons, or anything else when players go on duty. Items are removed when they clock out. Fully customizable per job.

Optional Slash Commands
Prefer commands? You can enable /onduty and /offduty for players who like to type. Don’t want them? Just disable them in the config.

Duty Leaderboard
Show off your most dedicated players with a live leaderboard tracking top duty hours. You can turn this on or off at any time.

Reward System
Set up one-time rewards based on how many duty hours a player has completed. Give items, money, XP, or anything else — it’s all configurable.

Auto Save
Duty time is automatically saved on a schedule and during txAdmin restarts. No need to worry about losing progress.

Crash & Disconnect Protection
Even if a player crashes or disconnects, their duty time is saved. No time lost, no frustration.

Discord Logs
All player duty-related activities are logged to your Discord server, allowing staff to monitor everything efficiently.

Google Sheets Integration (Optional)
Want to track logs in Google Sheets? You can enable that too. Don’t want it? It’s completely optional.

Boss Menu: Manage Player Data
Job bosses can reset or delete a player’s duty time directly from the in-game menu. No need to call an admin.

Admin Slash Commands
Admins can reset or delete duty data for specific jobs using simple commands. Perfect for wiping data during department changes or server wipes.

Multiple Duty Stations
Place duty stations anywhere you want — in PDs, hospitals, fire stations, or even out in the field.

Framework Friendly
Works out of the box with QBCore, ESX, and QBox. Using something else? It’s built on a bridge system, so you can easily adapt it to your custom framework.

Developer Exports
Need to integrate duty status into your own scripts? No problem — exports are available to make that simple and clean.

Dependencies

  • oxmysql

Screenshots


:package: Check out our other scripts

g-crafting
g-shops-v2
g-scoreboardV2
g-redeem-code
g-duty
g-pausemenu-simplified

g-giftcard
g-pausemenu-simplified


:package: Check out our Fivem maps

g_shoeshop
g-ifruit


Code is accessible No (Yes in open source version)
Subscription-based No
Lines (approximately) 3400 +
Requirements ESX (v1.11.0 or newer) or QBcore or QBox or Custom
Support Yes
4 Likes

g-dutyV2 | Update v1.1.0

  • Added Feature: You can now configure a duty zone if a player exits the configured zone they will be clocked out, and when they return they will be automatically clocked back in. This feature is completely optional and can be disabled via the config.

Modified files

  • bridge/esx/client
  • bridge/qb-core/client
  • bridge/qbox/client
  • src/client/job_zones.lua (new file)
  • src/shared/Config.lua

g-dutyV2 | Update v1.1.1

  • Fixed: An issue in QBox and QBCore where delete or reset actions were not working correctly. (No update needed if you’re using the ESX framework).

Modified files

  • bridge/qb-core/server.lua
  • bridge/qbox/server.lua