A ticket desk for a RedM server: players ask for help with one key, staff claim tickets in a live panel with four roles, and warn, kick and ban work with or without a ticket. Each ticket is one Discord post, edited as it moves. Free.
A ticket desk for your RedM server: players ask for help with one key, staff claim it in a live panel, and every ticket lands in Discord. Warn, kick and ban are built in, with or without a ticket.
New in 1.1.0: staff roles you write yourself, a chat room per role, escalation, internal notes, ready-made replies, shared answers, an archive, and your tickets in a browser — for players and staff alike.
🙋 For players
Page Up or /ticket. Two big buttons: I need help right now, or Send a ticket
I need help right now is one press: no form, no ticket. It calls staff to where you are
The form is radio buttons, not dropdowns: what it is about, how urgent, what happened
It answers them before they send. As a player types, the form offers the questions staff have already solved and shared. Plenty of them never send the ticket at all
It shows the wait, worked out from how long your own tickets of that kind have been taking
Reporting someone? Pick them from the players near you (100 m, nearest first). Owners can switch the list to everyone online, or to server ids only
An optional video link, and the form says why a clip helps
Their position is saved with the ticket. Nobody has to ask “where are you?”
No staff on? They are told, and the ticket is saved for when there are
A small pop-up with a sound when staff take, answer or close their ticket. News they missed is waiting at their next login
My tickets: read the conversation and reply, like a chat
Quiet for a day and the player is asked whether they still need help. Quiet for two and the ticket closes itself, politely. Both are yours to set
🛎️ For staff
/tickets or Home. A large window, not a full-screen takeover, with a full-screen button if you want one
Ticket ages count up live. Online players are green; offline are grey and dimmed
Every kind of ticket has its own colour, and every priority. Filter by state, kind, priority, online only; search anything
Claim a ticket so one person works it, assign it to someone else, or change its kind and it moves to the right staff
Escalate it to another role: bring in a developer for a bug without handing them the whole queue
Internal notes, in dark red in the conversation. Staff only, and the player is never sent one
Ready-made replies you write once and pick instead of typing. The one that fits is offered first, chosen by what the player wrote
Mark the answer and share it: it joins the Solved questions every player can read, with every name taken out
Go to player or go to the ticket’s location in one press. You arrive a few metres behind them, invisible and unable to be hurt. Return takes you back; /invis toggles it by hand
A claimed ticket whose staff member logged off frees itself after 15 minutes
Duty is on by default and is never saved: relog and you are back on duty, so nobody misses tickets by forgetting
💬 Staff chat, in game
A room for every role, plus any rooms you make for any mix of roles
Mods talk, developers talk, and neither reads the other unless you say so
Nothing is ever saved. A restart clears every room. Give a room a Discord webhook if you want a record
👥 Roles are yours to write
The four that ship (Admin, Moderator, Helper, Developer) are a starting point, not a cage. Make your own: name them, colour them, rank them. Six tiers or two
For each one, tick what they may do (18 powers), which kinds of ticket they see, and whose staff chat they read
Admin is locked and holds every power, so nobody can lock themselves out
Roles are on the account, so they cover every character. One person can hold several
Add staff in the panel: search any character, online or not. Anyone your framework counts as an admin is an Admin from the first start
🔨 Warn, kick, ban, and the record
On a ticket that names a player, or from the Players menu: /mod, the Players tab, or a button in /poggy
The Players menu shows everyone online and, for the one you pick, their whole record: warnings, bans, staff notes, and every ticket they sent or were reported in
The ladder: the record says what the usual next step is for this many offences, and old warnings fade on their own after a number of days you choose
Staff notes on a player: staff only, not a warning, counting toward nothing
The watch list: put someone on it and every staff member is told the moment they log in
Warn is a full-screen warning the player must acknowledge. They cannot be hurt while it shows. Offline? It waits for their next login
Ban is on the account, so it follows them across characters, and it works on someone who has already left. Lifting a ban keeps the record
Every one needs a reason. The reported player is never told who reported them
Bans belong to poggy_core, so they keep working even if this script is stopped
🗃️ Archive, and the one thing an admin cannot do
Archive a ticket to put it out of the way; every word of it is still there under the Archived filter. Truly deleting one is not a role power at all: it needs a line in your server.cfg. So an admin cannot quietly erase a conversation about themselves. That is the owner’s call and nobody else’s, and the audit trail keeps a note either way.
🌐 Your tickets in a browser (off by default)
At poggy.app/tickets: sign in with Cfx.re, type your community’s ID, and the desk is open wherever you are
Every player reads and answers their own tickets, under each of their characters, and writes new ones when they are not in game
Anyone with a ticket role gets the staff desk as well: read, reply, internal notes, claim, release, close
Warn, kick and ban from the site are off unless you switch them on, and then only on a ticket that names a player, only for roles that have the power in game, and a ban from the site is always a local one
Confirm each browser (on by default): a Cfx.re login alone does not open the staff desk. Each browser is confirmed once with a six-character code from your own game screen, so a stolen login opens nothing
Banned players can appeal to you by name, if you allow it. The appeal arrives in your queue as a Ban appeal ticket
Read this before you turn it on. A game server cannot reach a website directly, so copies of your open tickets (names, what players wrote, the conversations, internal notes) are held on a relay run by Poggy while they are open and for 7 days after they close. Switch it off and the relay is told to forget your community at once. Your own server checks every action again, against that person’s role, and the audit trail says Name (web). If that is not right for your community, leave it off: nothing else in the script needs it.
A timeline grouped by day, one sentence per action, filtered by area, by person, or down to one ticket
💬 Discord
Paste a channel webhook. Each ticket is one post: red when open, amber when claimed, green when closed, with who closed it and how long it took
The post is edited, never deleted. A different channel per kind of ticket if you want, and a webhook per staff chat room
Player text can never ping anyone
🌐 The Poggy ban network
Part of poggy_core. A ban you mark as cheating is shared with other servers running poggy_core, as one vote; a player with votes from three servers is refused on all of them. Rule-break bans never leave your server. Only scrambled identifiers are shared: no names, no reasons. It is on by default, and both halves can be switched off in /poggy. Mods and admins get a pop-up when someone joins who is banned for cheating on one or two other servers.
⚙️ Built for your server
Change every setting in game with /poggy, or edit config.lua, which has a comment on every line
Every command name and both keys are in the config. Every string a player sees is in translations.lua
Closed tickets are kept forever by default, or purged after a number of days
🔄 Updates itself
Runs on poggy_core (free): updates install automatically, and your config and translations are merged so your values survive. The database tables are created on the first start, so there is no SQL to import.
📋 Requirements
poggy_core 0.19.0 or newer (free); 0.20.0 for the ban network and the /poggy Players button
VORP Core, RSG Core or QBCore RedM (QBR)
oxmysql
OneSync, for Go to player
🔓 Open where it matters
config.lua and translations.lua are readable and editable. The rest is escrowed.
Page Up or /ticket opens a small window with two big buttons. I need help right now is one press with no form and calls staff to where the player is. Send a ticket opens a short form of radio buttons: what it is about, how urgent, what happened, the player being reported (picked from those within 100 metres) and an optional video link. Their position is saved with the ticket.
Can staff warn, kick or ban without a ticket?
Yes. /mod, the Players tab in the staff panel, or a button in /poggy opens the Players menu: everyone online, and for the one you pick, their record of warnings, bans and tickets. Warn, kick and ban work there exactly as they do on a ticket. Mods can warn and kick; only admins can ban. Every action needs a reason and goes in the audit trail.
How do the staff roles work?
There are four: admin, mod, helper and developer. Each kind of ticket is routed to the roles that handle it, so developers see bugs and helpers see help requests. Roles are kept per account, so they cover every character, and one person can hold several. Staff are added in the panel by searching any character, online or not. Anyone your framework counts as an admin is an Admin from the first start.
What does the Discord integration do?
Paste a channel webhook and every ticket becomes one post: red when open, amber when claimed, green when closed, with who closed it and how long it took. The same post is edited as the ticket moves and is never deleted. Each kind of ticket can go to its own channel, and player text can never ping anyone.
What is the Poggy ban network?
It is part of poggy_core 0.20.0. A ban marked as cheating counts as one vote shared between servers running poggy_core, and a player with votes from three servers is refused on all of them. Rule-break bans never leave your server, and only scrambled identifiers are shared: no names and no reasons. It is on by default, and both halves can be switched off in /poggy.
Which frameworks does Poggy Tickets work with?
Poggy Tickets works with VORP Core, RSG Core and QBCore RedM through poggy_core, which detects the framework at runtime and has a proven adapter for each, so there is one build and nothing to configure. It requires poggy_core 0.19.0 or newer (free), oxmysql and your framework (VORP Core, RSG Core or QBCore RedM); OneSync for Go to player.
How do I get Poggy Tickets?
It is free. Add it to your basket, check out through Tebex at no charge, and download it from your Tebex account. Support is in the Poggy Discord.