FiveUnityManual

Staff

The Staff page is the read-only side of moderation: the whole moderation ledger in one searchable table, live gang strikes, and how much work each staff member is actually doing. Everything here is issued in Discord and reported on the website.

Note

Where: Dashboard โ†’ Safety โ†’ Staff ยท In Discord: /modlogs, /list-strikes, /staffmetrics

#Moderation history

Warns, timeouts, kicks, bans and automod actions all land in one numbered ledger, so a single lookup shows a member's whole record instead of a hunt through several log channels. These are the same records /modlogs reads in Discord.

The table shows Case, Action, Member, Moderator, When and Reason. Click a case number to expand it and see the reason in full, the moderator (or "Taken automatically by the bot"), the source, and any evidence links attached to it: links open in a new tab.

ControlWhat it does
Filter by user idNarrows to one member. Right click a member in Discord and choose Copy User ID.
Filter by actionNarrows to one kind: Warn, Timeout, Timeout removed, Kick, Ban, Unban, Purge or AutoMod.
SearchApplies the filters above.
Full historyEverything on file for the user id you typed, plus a per-action tally.
ClearDrops the filters and shows the most recent cases again.

The panel opens on the most recent 50 cases; Full history pulls up to 200 for one member.

The panel is deliberately read-only. Moderation happens in Discord, where the acting moderator is unambiguous and there is no doubt who did what:

  • /warn user:@Member reason:โ€ฆ: record a warning.
  • /modlogs user user:@Member: the member's full history with totals.
  • /modlogs case number:42: one case in full. There is no separate /case command.
  • /modlogs recent action:ban: the server's latest actions.

Bans and unbans placed straight from the Discord client are captured too, marked with a source so you can tell them apart from ones taken through the bot. Automod entries carry the filter that fired. See Moderation and Protection.

#Gang strikes

Strikes are issued against a gang rather than a member, which is why they sit outside the case ledger. The panel lists every registered gang with a live count, a total count, its role and how many members it has, sorted by live strikes.

Press History on a gang to see each strike: whether it is still live or has expired, the date it was issued, who issued it, and the reason.

Strikes expire 30 days after they are issued. FiveUnity clears expired strikes automatically about once an hour, so an old strike stops counting against a gang without anyone having to remember to remove it.

Like the case ledger, this panel is read-only. Strikes are issued and removed in Discord:

CommandWhat it does
/strike-gang gang:@GangRole reason:โ€ฆIssues a strike. Posts publicly with the reason, the moderator and the new total, and writes to your staff log.
/list-strikesLists gangs that have at least one strike on record, each strike with its number, date and reason. Shows up to 25 gangs.
/delete-strike gangname:โ€ฆ strikeid:โ€ฆRemoves one strike. Both options autocomplete, so you pick the strike itself.

/strike-gang only works on a gang that has been registered with /gang-admin create; it will tell you if the role is not one. /delete-strike is a setup-only command, so it never appears in the /help menu and can be hidden from Discord's command list entirely. See Gangs.

Note

/list-strikes reports each gang's raw total. The dashboard splits that into live and expired, so the two can differ for a gang with strikes older than 30 days that have not yet been swept.

#Leave of absence

Members ask for time off with /loa-request, saying how long they need (12h, 3d, 2w, up to 365 days) and why. The request is posted to the review channel with Approve and Decline buttons. Until that channel is set the command refuses and nothing is filed, so the feature is off until you switch it on.

Two settings, both on the Leave of absence panel on the dashboard Staff page (or in Discord with /setup then Core Settings then Setup LOA):

SettingWhat it does
Review channelWhere requests land for staff to decide. Clearing it switches leave requests off.
Role on approvalOptional. Given to the member when their leave is approved, and taken back off automatically when the leave ends.

The role is handed out through the same machinery as /temprole, so its removal is scheduled the moment it is given: nobody has to remember to take it off. FiveUnity refuses a role it could not manage on its own, so you cannot pick one that sits above the bot, one that is managed by an integration, or one that grants Administrator. If the role is later moved or deleted, the next approval says so and nothing is recorded until you fix it.

Deciding a request needs the loa permission, which the default ladder gives to Moderator and above. Both buttons open a short form for an optional note, and that note is what the member reads, so it is worth writing on a decline. The review post is then stamped with the decision and its buttons are removed: a request can only be decided once, and nobody can decide their own.

The member is DMed the outcome either way. If their DMs are shut the decider is told so on the spot, because nothing else would tell them.

A member can have only one request waiting at a time, and cannot ask again while approved leave is still running. Approving stamps the return date, which both the review post and the DM show as a countdown. When that date passes the leave role comes off by itself; nothing else happens, so duty tracking is not paused and nobody is nudged to come back.

#Staff metrics

Ticket throughput, escalations, renames, ratings, sits and duty hours for every staff member, over a window you choose.

Pick a Window: 7 days, 30 days or 90 days. The summary line under it gives the totals for that window: tickets claimed, closed, escalated and renamed, sits logged and hours on duty.

ColumnWhere the number comes from
StaffThe staff member's Discord user ID. Click it to expand their row.
ClaimedTickets they claimed. More than one staff member can claim a ticket over its life, and each of them is credited.
ClosedTickets they claimed that ended up closed.
EscalatedTimes they moved a ticket to another support category with /ticket escalate.
RenamedTimes they renamed a ticket channel with /ticket rename.
RatingTheir average out of 5, with the number of ratings in brackets. A dash means nobody has rated them in this window.
SitsSits they logged with /sits log.
DutyHours clocked in with /duty.

Expanding a row re-reads that staff member's figures for the same window and adds their duty shifts count alongside the hours.

Ratings come from the star rating a member leaves when their ticket is closed. See Tickets. Duty hours come from staff clocking in and out; department shifts are covered separately in Departments.

Tip

Staff are listed by Discord user ID rather than by name, so they are unambiguous even after a nickname change. Copy an ID into the Filter by user id box in Moderation history to see what that same person has been doing on the moderation side.

#The same figures in Discord

CommandWhat it does
/staffmetricsAn all-time ticket leaderboard: total, open and closed tickets, and claims, closes, escalations and renames per staff member.
/staffmetrics member:@StaffAll-time tickets claimed, closed, escalated and renamed for one staff member.
/sits log description:โ€ฆLogs a sit for yourself. The reply gives you its ID.
/sits view user:@StaffThe 10 most recent sits. You can only view your own unless you are an administrator.
/sits delete sit-id:โ€ฆDeletes one of your own sits.
/ratingsA paged scoreboard of staff by average rating, with the star breakdown for each.
/resetmetricsWipes the ticket record for the server.

/staffmetrics with no member needs your permission groups to be set up, because that is how it works out who counts as staff. See Permissions. It reports over all time, whereas the dashboard is windowed and also covers ratings, sits and duty.

Danger

/resetmetrics deletes every ticket record for the server, not just the counters. It writes a snapshot of the leaderboard to a metrics-logs channel first (creating that channel if it does not exist) but the tickets themselves are gone, and the dashboard's Claimed, Closed, Escalated, Renamed and Rating figures reset with them. Only run it if you genuinely want a clean slate.