Glitchworks

Home / Help centre

Staff tools

Duty and shifts

Clock in and out from Discord or your FiveM server, with an On Duty role, a live panel, a shift log and weekly and monthly leaderboards.

What you get

Let your departments clock in and out. While someone's on duty they get an On Duty role in Discord and show on a live On duty now panel. Every shift is logged, and each department gets weekly and monthly leaderboards. With the free Glitchworks Link resource, going on duty in your FiveM server clocks people in automatically.

You'll need

  • Glitchworks Guard in your Discord, and the Manage Server permission there.
  • Guard's role above the duty roles it gives (Server Settings > Roles: drag Glitchworks Guard up).
  • For clocking in from the game: Glitchworks Link v1.1.0 installed and linked.
  • About 10 minutes.

Step 1: Add your departments

  1. In Discord, type /duty setup.
  2. Press Add a department.
    • Department name: for example Police, Fire or EMS.
    • In-game job names (only if you'll use the FiveM resource): the job name your framework uses, not its label. For example police (QBCore, Qbox, ESX), or ambulance for EMS. Several? Separate them with commas: police, sheriff.
  3. Press Submit. You're taken to that department's settings.

Repeat for each department (up to 8).

Step 2: Set up each department

On the department's screen:

  1. Duty role: press Create the duty role (it makes "On Duty – Police"), or pick a role you already have. People get it while they're on duty.
  2. Department roles / ranks Optional: pick the roles your officers have, for example Constable, Sergeant, Inspector. Only people with one of them can clock in here from Discord, and the panel shows their highest one as their rank. Leave it empty to let anyone clock in. Already using job role sync? Press Use my job roles as ranks to copy them.
  3. Panel channel: pick the channel the clock-in panel goes in, for example #duty.
  4. Press Post the panel. It appears in that channel and is pinned.

Optional on this screen:

  • Minimum hours: for example 10 hours a week. Staff get a list of anyone under it when the week ends (the activity check), and any time with /duty report.
  • Discord clock-in: on/off: turn it off if this department should only clock in from the game.
  • In game: on/off: turn it off if this department should only clock in from Discord.

Press Back when you're done.

Step 3: Pick the log and leaderboard channels

Back on the main Duty and shifts screen:

  1. Shift log channel Optional: a short line for every clock in and out, for example "@Sam clocked in · Police · Discord".
  2. Leaderboard channel Optional: one leaderboard per department, updated every 10 minutes.

Or press Create the channels for me and Guard makes #shift-log and #duty-leaderboard (members can read them, only Guard posts).

Step 4: Check the hours, then turn it on

  1. Press Hours and keeping if you want to change:
    • Close forgotten shifts after: if someone forgets to clock out, their shift is closed after this many hours (default 8). It's marked so staff can fix it.
    • Keep shifts for: how many months shifts are kept (default 12).
  2. Press Turn on.

How your members use it

Member duty commands
To...Press or type
Go on dutyClock in on the panel, or /duty on
Take a break (the clock stops)Break, and Break again when back. Or /duty break
FinishClock out, or /duty off
See my hours/duty status
See the top 10/duty leaderboard (this week, last week, this month or last month)
See my shifts/duty history
  • Clocking into another department clocks you out of the first one.
  • With the FiveM resource, going on or off duty in game does it for you. Those shifts are marked as from the game.
  • Only you see the replies.

For staff

Staff duty commands
To...Type
See someone's shifts (with their IDs)/duty history member:@them
Fix a shift's times/duty edit member:@them shift: and pick it from the list. Change the start, end or break and give a reason.
Stop a shift counting/duty void member:@them shift:… reason:…
Clock someone out/duty off member:@them
Activity check/duty report (pick the department and period)

Every change is saved in an audit log with who did it and why, and shows in the shift log. Times are UK time, typed like 2026-11-11 18:00 or 11/11/2026 18:00.

Leaderboards and the weekly reset

  • Weeks start on Monday at midnight, months on the 1st, UK time (the clock changes are handled).
  • A shift over midnight on Sunday counts its hours in both weeks, and counts as one shift in the week it started.
  • When a week (or month) ends, Guard posts the final standings for each department, and the leaderboard starts from zero.
  • If a department has a minimum, staff get the activity check in your Guard logs channel at the same time.

Using it with your FiveM server

  1. Install Glitchworks Link v1.1.0. Updating from 1.0.0? See Updating to v1.1.0.
  2. Make sure each department's in-game job names are right (police, not LSPD).
  3. Restart the resource. The console says duty on (qbcore) (or qbox or esx).
  4. Go on duty in game: within a few seconds you show on the panel, marked as from the game.

Works with QBCore and Qbox (their on/off duty), and ESX versions that have a duty setting. If your server uses a separate duty script, ask your developer to add one line to it:

exports.glitchworks_link:SetDuty(playerId, true)   -- on duty
exports.glitchworks_link:SetDuty(playerId, false)  -- off duty

and set Config.Duty.Framework = 'none' in the resource's config.lua.

If the FiveM server crashes, Guard tidies up: when it's back, anyone who isn't on duty any more is clocked out at the time they were last seen.

Privacy

  • Guard only keeps each shift's start, end, department, break time and whether it came from Discord or the game. No names, no jobs.
  • Shifts are deleted after the keep period (12 months unless you change it).
  • Members get their shifts in their /mydata report, and an approved /mydata delete removes them.

Troubleshooting

Duty problems and fixes
ProblemWhat to do
The role doesn't appearMove Glitchworks Guard above the duty role in Server Settings > Roles. Guard posts a warning in your logs channel if it can't give it.
"Only members of Police can clock in there"They need one of the department roles. Or empty the Department roles menu to let anyone clock in.
The panel buttons are greyDuty tracking is off (press Turn on), or that department has Discord clock-in: off.
Nothing happens in gameIn /duty setup: is it on, and are the in-game job names right? In the server console, glitchworks_link duty lists who it sees on duty.
Console: Duty is on here but off in DiscordTurn it on in /duty setup, and give a department at least one in-game job name.
Console: Your ESX has no duty flagYour ESX version doesn't track duty. Use the SetDuty line above in your duty script.
Someone forgot to clock outIt closes by itself after the maximum. Fix the end time with /duty edit.
The panel was deleted/duty setup > the department > Post the panel.

Still stuck?

Open a ticket on our Discord and tell us what you've tried. Screenshots of any errors help us sort it faster.

Open a ticket on Discord

More help: Install Glitchworks Link · Job to Discord roles · Polls · Help centre