FiveUnityManual

AI Assistant

The AI Assistant summarises tickets for staff, takes a first pass at a member's problem before staff arrive, routes new tickets to the right category, lets a keyword answer in its own words, answers members' questions on demand with /ai ask, and gives your staff four tools: a guide to FiveUnity itself, reply drafts, channel catch-ups and a writer for announcements. It runs on your own free Google Gemini key.

Note

Where: Dashboard โ†’ Support desk โ†’ AI Assistant ยท In Discord: /ai panel (also /setup โ†’ AI Assistant)

Warning

The AI Assistant is part of FiveUnity that needs the Pro plan; the dashboard Log Builder is also Pro-only. Everything else is included in both Premium and Pro. See Plans and billing.

On a plan without it, both surfaces say so rather than pretending: the dashboard shows an upgrade banner, and /setup โ†’ AI Assistant names your current plan and refuses to switch a feature on. Switching one off always works, so a server that drops back to Premium can still tidy up its settings.

#Built for FiveUnity

Out of the box, every AI feature knows what it is part of. Member-facing answers (the first responder, /ai ask and AI key phrases) introduce themselves as FiveUnity's assistant, understand a FiveM roleplay community's vocabulary, never make a staff decision such as a ban, refund or whitelist approval, and send anything that needs a human to a ticket. The first responder is told which kind of ticket the member opened and asks for the details staff usually need. The staff tools know the /ticket workflow, ticket routing knows how FiveM support usually splits, and summaries keep in-game names, ids, amounts and evidence exactly as written. The assistant also reads your FiveUnity setup (see Use this server's FiveUnity setup below), so it can point members at the right ticket panel.

None of this replaces your own settings: Server information, Personalization and the guidance for each tool still come first.

#Set it up

  1. Pick a free provider (or a recommended mode):
    • Accurate (recommended for summaries, routing and drafts): Google Gemini. Free AI Studio key, no billing account.
    • Fast (recommended for first replies and /ai ask under load): Groq. OpenAI-compatible, very low latency.
    • Optional: OpenRouter for a free-model router (openrouter/free) when you want one key that can reach several free models.
  2. Paste the key into the providerโ€™s API key field, pick a Model, and press Test connection. A successful test reports the model and how long it took.
  3. Save, then fill in What the AI knows; without it the model has nothing to answer from.
  4. Under Data-use consent, press Review and accept. Ticket summaries, the first responder, escalation, reply drafts and catch-ups stay locked until you do.
  5. Switch on the features you want.

Your key is stored encrypted and never shown again. Type a new one to replace it, or press Remove keys: every AI feature stops working immediately.

Every step above can also be done from Discord with /ai panel, described below.

#Providers

ProviderBest forKey
Google GeminiAccurate mode: ticket summaries, routing, staff draftsaistudio.google.com/apikey
GroqFast mode: first responder, /ai ask, high trafficconsole.groq.com/keys
OpenRouterFree-model router and rotating :free modelsopenrouter.ai/keys

Dashboard Fast / Accurate buttons set provider and model together. Switching provider clears model detection and may need a new key for that vendor.

#The /ai panel control panel

/ai panel (or /setup โ†’ AI Assistant) opens everything about the assistant in one private message: connection, consent, features, knowledge and usage, with these controls.

ControlWhat it does
Enable / DisableThe master switch.
Set keySaves a new primary Gemini key.
Add backup keyAdds one key to the pool. Backups are tried in turn when a key hits Google's quota.
TestSends a one-line request with the stored key and reports the model and how long it took.
Detect modelsAsks Google which of the supported models the key can reach, and marks each entry of the Model menu as available or not on this key. The same check is /ai models.
Model menuPicks the model. Each entry shows its free-tier allowance.
Features menuEvery switch at once: tick what should be on. Ticket features cannot be switched on before consent; the reply-draft and catch-up tools can be ticked but say they are waiting for it.
Persona, KnowledgeThe same text boxes as the dashboard, as forms.
LimitsRequests per minute and per day, the member cooldown, and reply length.
ConsentShows the full data-use notice and records your acceptance, exactly as the dashboard does.
Refresh knowledgeRebuilds the knowledge block now and reports how many characters came from which sources.
UsageToday's requests against the limit, the per-minute cap, any quota backoff and the last error.
Remove keysRemoves the primary key and every backup, after a confirmation.

/ai status is the read-only version for staff: whether the assistant is ready, the model, consent, today's usage and which features are on. /ai panel needs the setup permission; the rest of /ai needs ai.

#Google Gemini

SettingWhat it does
AI assistant enabledMaster switch for every AI feature.
Backup Gemini API keysUp to 19 extra keys, one per line. When a key receives Google's 429 quota response, the next configured key is used automatically.
ModelWhich Gemini Flash model to use, newest first (Gemini 3.8 Flash is the newest this release ships with). New Flash releases are picked up without a FiveUnity update: once a day the bot asks Google which models your key can reach, and anything newer appears in both model lists marked new. If the model you picked stops being reachable, every AI feature answers with the default model instead of failing, and the bot log says so. The dashboard shows each model's free-tier allowance (an estimate for a brand-new one). A server that never picked one runs FiveUnity's current default (Gemini 3.5 Flash-Lite), and that is what both panels show. Detect models (or /ai models) asks Google which of them your key can actually reach; a model the key cannot reach is the usual cause of "that model is not available for this key".
Show an AI disclaimerAdds a footer marking a reply as AI-generated. On by default, and strongly recommended.
Redact personal dataStrips email addresses, IP addresses, access tokens and long runs of digits before anything is sent to Google. On by default.

Only Flash models are offered; they are the ones on Google's free tier. If a request fails, the last error is shown at the top of the panel, so you can tell a bad key from a quota block.

FiveUnity remembers which key in the pool last worked, including across bot restarts. A backup is tried only when Google reports a rate/quota limit; other errors are returned normally so a bad request cannot silently consume every key.

Any feature that sends member-written content to Google (ticket summaries, the first responder, automatic escalation, reply drafts, channel catch-ups, AI key phrases and AI log answers) is locked until an admin accepts the data-use terms, both in the dashboard and on the bot side. Accept on the dashboard, or in Discord with /ai panel โ†’ Consent, which shows the same notice. It says:

Content you send to Gemini on Google's free tier is used by Google to improve their products. Ticket transcripts routinely contain member names, ban appeals, and payment references. Only accept if you are comfortable with that, and tell your members in your own rules.

Accepting records who accepted and when, and the panel shows both afterwards. Nothing else about the decision is stored. See Privacy and your data.

#What the AI knows

The assistant answers only from what you give it. There are several sources and you can combine them.

SettingWhat it does
Server informationThe concise facts the AI reads: rules, FAQs, connection steps, store details. Up to 4,000 characters.
Document URLPaste a public http/https page, then Fetch URL. Private, local and blocked addresses are refused.
Attach a documentUpload .txt, .md, .html, .json or .csv (not PDF). The browser reads the file as text; nothing is stored until you compound and save.
Raw information to compoundPaste up to 30,000 characters, or keep the text fetched from a file/URL. Press Compound into knowledge (or Simplify with AI when Server information is still empty) to merge it into concise server information. The model deduplicates against what you already have. The raw text is not kept after compounding.
SourcesA short list of files, URLs and pastes that fed Server information (title, kind, when fetched). Re-fetch a URL to load fresh text; remove entries you no longer want listed. Save the page to keep the list. Full raw bodies are not stored.
Use keyword answersFeeds your existing keyword responses to the model as known facts. Keywords set to AI mode are skipped, since they have no fixed answer to teach from.
Use this server's FiveUnity setupOn by default. Tells the assistant which published ticket panels and ticket types, open application forms, department role requests, store link and /ai ask channels members can use, so it points people to the right place without you retyping it. Only panels and channels every member can see are included. Changes are picked up within 15 minutes, or straight away with Refresh knowledge.
Rules / FAQ channelsUp to five channels. The bot reads their recent messages, including embeds.

Refresh knowledge rebuilds the block now and reports how many characters came from which sources. Otherwise it is rebuilt every 15 minutes, and whenever you save this page.

Tip

Write the server information as short factual lines, not prose. Whitelist: apply in #applications, 24h wait is used correctly far more often than a paragraph saying the same thing. Prefer Compound into knowledge when adding a new doc so the box stays short and the ticket AI can still fit everything in one pass.

#Ticket summaries

Condenses a ticket into Summary, Outcome and Action items that staff can read in seconds.

SettingWhat it does
Ticket summaries enabledTurns summaries on. Requires data-use consent.
Summarise automatically on closePosts a summary whenever a ticket closes. One request per ticket.
Summary log channelWhere that summary goes. Empty uses your existing ticket log channel.
Messages to read per ticket10-400, default 150. Longer tickets are trimmed from the middle, keeping the opening problem and the closing outcome.
Preset staff questionsUp to 10 reusable questions for /ticket summary question:. Staff can choose one or type their own.

Staff can also summarise on demand with /ticket summary inside an open ticket; the answer comes back privately. They can add question: to get a direct answer alongside the normal summary. It is granted through its own permission node, so you can give it to seniors without the rest of the ticket commands. See Permissions.

Summaries are for staff only. They go to a staff channel and are never DMed to the member.

Note

A ticket transcript is treated as data, never as instructions. If a member types "ignore your instructions" into a ticket, the summary reports that they did rather than obeying it.

#Ticket first responder

Answers the member's first real message in a new ticket, once per ticket, before staff arrive.

SettingWhat it does
Ticket first responder enabledTurns the responder on. Requires data-use consent.
Only before a ticket is claimedOn by default. The AI stays quiet once a staff member has claimed the ticket.
First-responder guidanceExtra instructions for this responder only, up to 2,000 characters.
Response examplesUp to 10 labelled member-message / good-answer pairs that show the style and level of detail you want.

It only replies to the member who opened the ticket, never to staff or anyone added later, and it ignores very short messages so a bare "hi" does not spend your quota. The reply is an embed footed AI first response ยท staff will follow up. If it cannot be produced (quota, an outage, a missing key) the ticket carries on silently and it can try again on the next message.

The assistant is instructed never to claim to be a human or a staff member, never to invent rules or prices, and to say plainly when your server information does not cover the question. It cannot ping @everyone, @here or any role.

#Automatic ticket escalation

Reads the opener's first detailed message in a brand-new ticket, compares it with your knowledge base and category descriptions, then moves the ticket if the match is confident enough. It only ever acts on new tickets: once the routing window has passed or a staff member has posted, the ticket stays where it is.

When it routes

SettingWhat it does
Automatic ticket escalation enabledTurns routing on. Requires data-use consent.
Routing window0-1440 minutes, default 10. The AI only routes a ticket this soon after it opens. After that it leaves the ticket alone, however the conversation goes. 0 is instant: no time limit, so the AI routes the opener's first detailed message whenever it lands, and the staff-reply and claim switches do the protecting.
Stop once staff replyOn by default. The first message from a staff member ends automatic routing for that ticket, claimed or not. "Staff" is the same as for auto-claim: a staff permission group, the ticket.claim permission, or one of the ticket's support roles.
Only before a ticket is claimedOn by default. Staff keep final control after claiming and can still run /ticket escalate or /ai escalate.
Route tickets opened asEmpty means every ticket type. Pick a catch-all type (for example general support) so tickets members opened in the right place are never moved.

Where it moves tickets

SettingWhat it does
Minimum confidence50-99%, default 80%. Higher moves fewer tickets.
Allowed destinationsEmpty means every destination except the ticket's current category.
Post a notice in the ticketOn by default. Posts the Ticket Escalated card after an automatic move so the member and staff can see where it went and why.
Ping destination rolesOn by default. Pings the new category's support roles after an automatic move. Ping support roles on escalation on the Tickets page has to be on as well.
Routing guidanceShort rules such as "payment questions go to Billing". Up to 2,000 characters. Simplify with Gemini rewrites a longer draft into concise topic โ†’ category rules without saving; review and save yourself.
Auto-renameAddon. Renames the channel to a short label of what the ticket is about (for example pr-rdm), on automatic routing and on /ai escalate. Separate from the Tickets page Rename on escalation scheme.
Naming examplesUp to 25 situation โ†’ channel-name pairs that teach abbreviations and house style (for example player reports as pr-โ€ฆ instead of spelling the full type out). Paste rough notes and press Simplify with Gemini to turn them into concise examples without saving; review and save yourself.

Routing reads the opener's messages in the ticket (not only the latest one), uses the same daily quota as other AI features, and records the move like a normal escalation. With Auto-rename on, the model's short label is preferred over the type naming scheme. Rename is part of the same Gemini request as routing, not a second one. When the first responder is also on, both features share one request on that opener message (route, optional rename, and the first reply together), which keeps a free-tier key (~10 requests per minute per Google Cloud project) from being spent twice. A confident move, a clear "keep it here", or a below-threshold confidence counts as the one decision for that ticket; a stay-put decision can still auto-rename. If the model is unavailable, over budget, or returns unusable output, the ticket stays where it is and the next detailed opener message can try again, but only while the ticket is still inside the routing window and no staff member has posted. The bot also checks again just before moving: if staff replied, claimed or moved the ticket while the model was working, it leaves the ticket alone.

Staff can always route manually with /ticket escalate, or force a classify-and-move pass with /ai escalate. /ai escalate ignores the routing window, the staff-reply and claim switches, and Route tickets opened as, and it always posts the move and follows the Tickets page ping setting, like /ticket escalate. Deterministic automations are available separately under each ticket panel's Automations editor.

#AI key phrases

Lets a keyword trigger a generated answer instead of a fixed one.

Switch AI key phrases enabled on here, then set an individual keyword's mode to AI on Modules and utilities. An exact keyword match with a written answer always beats an AI keyword, so your fixed replies keep working and cost nothing. If AI is off, over budget or failing, an AI keyword falls back to its written response rather than going silent.

The member's message is what gets sent to Google, so this needs the data-use consent as well: until it is accepted, an AI keyword answers with its written response and both panels say it is waiting.

#Ask the assistant (/ai ask)

Members can ask the assistant a question on demand and get a private answer from the server information: "how do I get whitelisted", "what are the rules on RDM". It follows the same rules as the first responder, never claims to be staff, and points at a human for anything the knowledge does not cover.

SettingWhat it does
/ai ask enabledOff by default, because any member can spend the quota on it.
Only in these channelsLeave empty and it works everywhere; otherwise /ai ask answers only in the channels listed.

The per-member cooldown and daily share under Usage limits apply to it, and you can restrict or disable the command per channel on the Slash commands page as well.

#Staff AI tools

Five /ai subcommands for staff. Each is one request, each answers privately (except /ai escalate, which posts the move in the ticket), and all of them are granted through the ai permission node (or a single subcommand such as ai.draft). They are on by default once the assistant is on, except escalation which follows the Automatic ticket escalation switch.

ToolWhat it doesNeeds consent
/ai guideAnswers "how do Iโ€ฆ" questions about FiveUnity itself, from the FiveUnity manual, with links to the pages it used.No
/ai draftDrafts the next staff reply in a ticket, in your persona and from your server information, with a copy-ready version. Drafting guidance adds instructions for drafts only.Yes
/ai catchupSummarises what happened in the current channel: what was discussed, decisions, open questions. Messages a catch-up reads sets the default (20 to 300).Yes
/ai writeWrites an announcement, a rules section, a welcome message, embed text or a reply from a brief and an optional tone, with a copy-ready version.No
/ai escalateReads the open ticket, classifies it, moves it when confident enough, and applies Auto-rename when that addon is on. Bypasses the once-per-ticket automatic slot and the new-tickets-only switches so staff can force a pass after claiming.Yes

Full option tables are on AI commands.

#Usage limits

These keep a server inside Google's free tier. Lower is safer.

SettingWhat it does
Requests per minute1-15, default 8. Keep it under your model's free-tier allowance (~10 per Google Cloud project). Extra backup keys from separate projects multiply this budget automatically.
Requests per day1-1000, default 200. The panel shows today's usage. Resets at midnight UTC.
Per-member cooldown (seconds)0-3600, default 30. Stops one member burning the daily budget. Staff summaries, staff tools, log searches and the two automatic once-per-ticket calls (routing and the first response) ignore it, so turning routing on no longer delays the first responder.
Max reply length (tokens)64-2048, default 400. Roughly 400 tokens is a short paragraph.

There is also a short per-channel cooldown, and if Google reports that you are out of quota the assistant rests and resumes automatically; the dashboard and /ai panel both show when it is resting and when it resumes, and a backup key is tried straight away.

#Personalization

Presets that apply to every AI reply on this server. In Discord they live under /ai panel โ†’ Personalize.

SettingWhat it does
ToneFriendly (default), professional, strict or casual. The default voice when no custom persona is set.
Reply lengthConcise (default), balanced or detailed. How long member-facing answers run.
LanguageThe language the assistant writes in. Default English.
Community nicknameOptional. How the assistant refers to your community instead of the Discord server name.
Sign-offOptional. Appended to member-facing replies.
Custom personaOptional, up to 1,000 characters, and it shapes tone only: facts belong in Server information. Empty uses FiveUnity's default support voice (friendly, calm and direct, two or three short sentences, and says so plainly instead of guessing), and the presets above still win over it. A persona you write replaces the default and overrides the tone preset when they conflict. Press Use example persona to drop a worked example for a roleplay server into the box, then reword it to match how your staff speak.

Guidance for one tool at a time lives with that tool: First-responder guidance and Response examples under What the AI knows, Drafting guidance under Staff AI tools, Routing guidance and Naming examples under Automatic ticket escalation, and the log-answer guidance and default answer shape on the Log Lookup page.

Tip

Keep the persona to length and manner: "two or three short sentences", "skip greetings and apologies", "never promise a staff response time". Anything factual you put here is treated as tone and can be ignored.

#AI-assisted setup

The last section of the page lists every module that can be configured from a plain-English description, with a link to its Set up with AI entry point and the state of the last plan you made there. Each flow uses this page's Gemini key and counts against the same daily budget: the assistant drafts a plan, FiveUnity checks every name against your server and asks when one could mean several things, you review the preview and the full list of changes, and nothing is built until you approve it.

ModuleWhereWho may use it
Ticket systemSupport desk โ†’ TicketsAnyone with dashboard access who may manage the server
Police rosterRoleplayAnyone with dashboard access who may manage the server
Channel layoutServer setup โ†’ Channel setupRoles granted channel-setup (Head Admin by default; owner and Discord Administrator always)

Both flows offer section backups on the page: save ticket config or the channel layout before you apply, then restore if the result is wrong. Channel setup is create-only: it will not edit, move, delete or reorder channels that already exist, create roles, or change role permissions. Applying a channel plan also requires typing CREATE CHANNELS.

#Fixing an existing ticket setup

The ticket assistant is built for repair work as much as for new builds. It reads your current panels (including whether each panel's Discord message is still alive and has working buttons), so you can paste a symptom ("the dropdown does nothing", "staff cannot see app tickets") and it answers with a diagnosis and the smallest plan that fixes it, not a rebuild.

How edits behave, and how they stay safe:

  • Edits keep what they do not touch. A plan that updates a panel leaves its unmentioned types, embed text, roles and channel alone. New types are added next to the existing ones; a type is only ever removed when you asked for a replacement list, and then the review screen warns about every type that would go.
  • Nothing disappears silently. The review screen shows a field-level list of what changes on each existing panel, and a plan that deletes panels or categories you never asked to delete is refused outright.
  • Name drift cannot duplicate a panel. If the plan's name is a near miss of an existing one, you get a warning instead of a second panel, and "rename X to Y" updates X in place rather than creating Y next to it.
  • Your choices are remembered. Hand edits on the plan, answers to the assistant's questions, and any warnings from the previous version are all fed back to the model on the next request, so it stops repeating mistakes.
  • Text answers work. When the assistant asks an advice question, you answer in words in the "Your pick" panel and it folds the answer into the next plan version.
  • AI commands: every /ai subcommand and /ai ask, with their options.
  • Staff logs: the staff log finder, which uses the same assistant for its written answers.
  • Tickets: the ticket lifecycle the summaries and first responder plug into.
  • Plans and billing: upgrading to Pro.
  • Privacy and your data: what leaves your server and what does not.