FiveUnityManual

Police roster

The police roster publishes your department's line-up as a page on your own FiveUnity address, and keeps it in step with Discord. Give somebody the Sergeant role and they move up the roster; take it off and they come off it. Call signs are handed out on their own, and written into the member's nickname.

Note

Where: Dashboard โ†’ Roleplay โ†’ Police roster

#Set up with AI

Set up with AI at the top of the Roleplay page builds and edits the police roster from a plain-English description: ranks and units, call-sign format and number blocks, nickname tags, who can open the public page, and the log channel. Examples: "Set up a police roster with Chief, Captain, Lieutenant, Sergeant, Officer and Cadet. Call signs like P-01, tag in front of the nickname.", "Sergeants should be S-200 to S-299.", "Add a SWAT unit and a K9 unit.", or "Nobody is showing on the roster even though people have the Officer role." It needs the Pro plan and a working AI Assistant key; the manual controls below work on every plan.

The assistant never acts on its own. Every request goes through the same steps as Tickets โ†’ Set up with AI:

  1. Plan. Gemini turns your description into a plan. It refers to roles and channels by name only; it is never shown a Discord id and cannot invent one. When you name an existing rank or unit, the plan updates that row in place. Settings-only plans are allowed when you are not changing ranks.
  2. Check. FiveUnity matches every name to your server. A name that fits exactly one thing is used. A name that could mean several things or nothing at all becomes a question with a picker. A plan that deletes ranks you never asked to delete is refused.
  3. Review. You see every rank and unit it would add, change or remove, plus the settings patch. Ask for changes in the chat or answer its questions, then press Apply configuration.
  4. Apply. Nothing is saved until you confirm. Creates (new roles or a log channel) roll back if a later step fails. A first-time setup also rebuilds the live roster from Discord so people appear straight away.

Run audit checks the setup itself (missing or deleted rank roles, overlapping number blocks, a public address that clashes with the staff roster, nickname tags the bot cannot apply) and plans the fixes. Member call signs and nicknames are not sent to the model.

Role and channel names are sent to Google Gemini with your request. The manual controls below stay the source of truth for one-off member edits (pin a call sign, move someone, rebuild).

#How it works

Discord is the source of truth. You link one Discord role to each rank, and holding a rank role is what puts somebody on the roster. Their rank is the most senior of the rank roles they hold, so a promotion in Discord is a promotion on the roster, and losing every rank role takes them off it.

On top of that, FiveUnity does three things automatically:

  • Hands out a call sign (P-01, P-02, and so on) the first time somebody appears on the roster.
  • Writes that call sign into their Discord nickname, in front of the name or behind it, whichever you choose.
  • Publishes the whole thing at fiveunity.com/<server id>/<roster address>/roster, grouped by rank and searchable.

The roster updates the moment a role changes. It is rebuilt in full when the bot restarts, and re-checked every 30 minutes in case anything was missed.

#Publish the roster

Switch Police roster on. FiveUnity works out an address from your server's name (a server called 5Star Roleplay is published at .../5starroleplaypolice/roster) and you can change it to anything else.

SettingWhat it does
Roster addressThe last part of the public link. Letters and numbers only.
HeadingThe title at the top of the page. Empty uses your server's name plus "Police".
Who can open itAnyone with the link, members of this server (they sign in with Discord first), or staff only.
Roster managersRoles that may edit the roster from the dashboard, on top of Administrator and Manage Server.
Log channelWhere promotions, demotions, new recruits and call sign changes are posted.
DescriptionOne line under the heading.

A roster set to members or staff is also kept out of search engines.

#Ranks

Add one row per Discord role that means a rank, most senior at the top. The order on this page is the order on the published roster.

FieldWhat it does
Discord roleHolding it means this rank.
NameWhat the roster calls it, e.g. Sergeant.
Short formUsed by the {rank} call sign token, e.g. SGT or Asst. Chief. Up to 16 characters.
Call sign prefixThe letter or two this rank's call signs start with, e.g. S.
Lowest number / Highest numberThe block of call sign numbers this rank owns, e.g. 200 to 299 for sergeants. Leave both empty to use the roster's own range.
Numbers to hold backNumbers inside the block that are never handed out automatically: a retired badge, or one you are keeping for somebody. A call sign set by hand may still use one.
Maximum membersHow many people this rank is meant to hold. The roster shows 4 / 6 against the heading and flags it when it is over; nobody's Discord role is ever removed for it.
ColourA hex code for this rank's stripe on the published roster.
Show publiclyOff keeps a rank off the public page while it still syncs and still gets call signs: a reserve list, or a grade you do not publish.
Note

A rank role can sit above FiveUnity's own role. Reading it is enough. FiveUnity only needs to be above a role when you use Move to rank on the dashboard to change somebody's roles for them.

#Units

Units are optional sub-divisions: Patrol, SWAT, K9, Traffic. They work exactly like ranks (a Discord role each) and give every member a second column on the roster, plus a filter on the published page. A unit can carry its own call sign prefix.

#Call signs

Call signs are handed out from the lowest free number in a member's prefix group, so P-01, P-02, P-03. Each prefix keeps its own sequence by default, so P-01 and S-01 can both exist. When somebody leaves the roster their number goes back into the pool and the next recruit takes it.

SettingWhat it does
Assign automaticallyOff leaves every call sign to manual overrides.
FormatTokens {prefix} {number} {rank} {unit}. {number} is required. A token that resolves to nothing takes its separator with it, so an empty prefix gives 07, not -07.
Prefix comes fromThe rank's prefix, the unit's prefix, or always the same one. Whichever you pick, the other is the fallback.
Fallback prefixUsed when neither the rank nor the unit sets one.
First numberNumbering starts here, then fills the first gap. Used by any rank that does not set a block of its own.
Last numberThe ceiling for those same ranks. Empty means no ceiling.
Digits2 gives 01, 3 gives 001.
NumberingRestart per prefix, or one sequence for the whole roster.
Numbers to hold backNever handed out anywhere on the roster, on top of what each rank holds back.
Renumber on promotionWhether a promotion into a new prefix reissues the number. Off keeps the number they had.
Keep ranks inside their blockOn, a promotion moves the number as well as the prefix, so a new sergeant does not keep a cadet number. Off lets somebody keep a number their new rank does not own, which is right when the number is the person.

#Number blocks

Most departments read a call sign as "which rank, then which person": sergeants are the 200s, officers the 100s, cadets the 900s. Set Lowest number and Highest number on each rank and FiveUnity numbers people inside their own block and never outside it.

  • A promotion moves the number into the new rank's block, unless you switch Keep ranks inside their block off.
  • When a block is full, the member goes on the roster without a call sign and the block is reported as full. Nobody is quietly given the next rank's number. Widen the block, or free one up.
  • If you type the two numbers the wrong way round, they are read as the block you meant rather than handing out nothing.
  • A call sign you pin by hand ignores blocks entirely.

#The public page

SettingWhat it does
Header imageA wide https:// image across the top of the roster.
Order inside a rankCall sign number, name A-Z, or longest in the rank first. Ranks themselves always read senior first.
ColumnsTurn the call sign, unit, status, in rank since and joined columns on or off.

#Nickname tags

When somebody's call sign is set or changed, FiveUnity writes it into their Discord nickname.

SettingWhat it does
Where the tag goesIn front of the nickname ([P-07] Dave), behind it (Dave [P-07]), or do not touch nicknames.
TagThe tag itself. [{callsign}] by default; {callsign} is required and everything else is written literally.
Restore the name on removalPuts the plain name back when somebody leaves the roster.

FiveUnity remembers the name underneath the tag, so a promotion swaps the tag rather than stacking a second one. If a member renames themselves, what they typed becomes the new name and the tag goes back on it at the next sync.

Warning

FiveUnity needs Manage Nicknames, and its own role must sit above the member's highest role. Discord never lets any bot rename the server owner. Anyone who cannot be renamed still gets their call sign and still appears on the roster; only the nickname is left alone.

#The roster table

The Roster panel is the live list. Every row can be edited.

  • Call sign: type one to pin it. A pinned call sign is never touched by automatic numbering, so a Chief who has been 1-ADAM-1 for a year keeps it through every promotion. Clear the field to hand them back to auto-assign.
  • Move to rank / Move to unit: a real promotion or demotion. It changes their Discord role, and the roster follows. This is the one place FiveUnity has to be above the role.
  • Pin to a rank instead: places somebody without touching any Discord role, for a rank that has no role of its own. A pinned member stays put no matter what happens to their roles, until you clear the pin.
  • Status: free text, shown as its own column on the published page. Useful for On leave, Probation, FTO.
  • Remove: takes their rank and unit roles off in Discord, frees the call sign, and takes the tag off their nickname.
  • Rebuild from Discord: reads the whole member list and rebuilds the roster from the roles people hold right now. You need this the first time you set the ranks up, and never again in normal use.

#See also

  • Staff roster: the out-of-character staff team, published at its own address.
  • AI Assistant: the Pro key Set up with AI uses.