PUGZ is a community platform at its core for pick-up games in THE FINALS.
Join queues and play matches through Discord, then track your rating, results and match history on the website.
The platform also brings together team management, scrim scheduling, tournaments and coaching. Features are in testing or development; the status of each area is listed below.
For the future we have plans to expand and allow the bot in servers of other communities, creating a global ecosystem with shared queues, leaderboards, server competitions and much more.
|
Queues, match coordination and support in Discord.
|
Ratings, player profiles and community tools on the website.
|
| Area | How it works |
|---|---|
| Missed ready checks and disputed results | Players who miss a ready check are replaced and receive escalating penalties for repeat offences. Results require confirmation from the opposing team or a staff decision. |
| Saved match progress | Queues, matches and timers are stored in the database so they can be restored after a restart or deployment. |
| Moderation records | Staff can review match timelines, moderation cases and an audit log of changes made through the staff portal. |
| Queue controls | Join or leave a queue using its buttons. The queue panel updates to show the current players. |
| Data deletion | Players can request deletion of their player data. |
- Ranks on Discord and the website. Your rank appears as a Discord role, a profile badge and a leaderboard entry. Roles include the rating threshold, such as Pro (1050+), and rank changes are shown in the post-match panel.
- Promotions and demotions. Your rank changes as soon as your rating crosses a rank threshold.
- Season settings. Each season has its own starting rating, points per scoreline, team-strength adjustments, placement settings and ranks. Changes to rating rules trigger a recalculation for that season.
- Placement matches. Complete the season's required placement matches to appear on the leaderboard.
- Leaving a match. If you leave an active match, you still receive a loss if your team loses.
- Result corrections. Corrections, voids and late disputes recalculate the season automatically.
- Season resets. Everyone starts unranked, rank roles are cleared and re-earned, and past seasons stay browsable with their own ranks. A match counts for the season it began in.
- Cash prizes. We aim to give away cash prizes for the top spots on the leaderboard every season, as well as in the tournaments we host ourselves. Prizes can also be given away as Multibucks codes.
|
Manage your roster and track your team's activity.
|
Arrange practice matches with other teams.
|
Community tournaments run by the bot: sign up in Discord or on the site, check in before the start, and follow every bracket as results come in.
Third-party tournament organizers also host tournaments on PUGZ with real prize money.
- Tournament formats. Single and double elimination, round robin and Swiss, or groups into playoffs. Seeding and brackets are automatic.
- Sign up your team. Register on the site or with a join code in Discord. Check-in opens before the start, and a waitlist holds the spare teams.
- A room for every match. Report, confirm or dispute the result, with a map veto where the format calls for it.
- Entry fees. Optional. The captain pays on the site, the spot is held while they do, and a failed or cancelled entry is refunded automatically.
- Host your own. Other communities can run their tournaments with the PUGZ bot on their own server.
- Prizes and history. Prize pools are listed before registration. Tournament winners receive a Discord role, and their results are recorded on team and player profiles.
Coaching on PUGZ is built for both sides: players who want to improve, and coaches looking for a place to offer paid sessions. Coaches set their own schedules, accept or decline sessions and choose their own prices. PUGZ provides the infrastructure and the players to make it work.
Browse staff-approved coaches for one-on-one sessions and VOD reviews. Compare their experience, specialties, packages and availability before booking.
- Staff-approved coaches. Staff review coaches before they are listed. Profiles show their verified peak league, session reviews and specialties, including Light, Medium, Heavy, aim, game sense, team play and VOD review.
- Availability and packages. Coaches publish weekly availability, you see the next free slot up front and book instantly. Packages say how long they run and what is included.
- Payments and payouts. Checkout runs through Stripe and card details never touch our servers. The coach sells the session and PUGZ takes a fee. The coach's payout is released after you confirm the session. Reported problems are reviewed before the payout is released.
- Booking chat. Chat with your coach about the booking before the session.
- Session reviews. Only players who finished a session can review, and coaches can reply.
PUGZ is in pre-launch. The core platform is built and being tested end to end on our own server. Public access will follow testing.
| Area | Where | Status |
|---|---|---|
| Queues and queue bans | Discord, web | In testing |
| Pre-match lobbies, ready-up and map votes | Discord | In testing |
| Live matches and team voice channels | Discord, web | In testing |
| Results, disputes and evidence | Discord, web | In testing |
| Post-match lobby and rematch | Discord | In testing |
| PUG ratings, seasons and leaderboards | Discord, web | In testing |
| Player profiles and linked accounts | Web | In testing |
| Support tickets and transcripts | Discord, web | In testing |
| Staff portal | Web | In testing |
| Custom scrims | Discord, web | Planned |
| Teams and scrim scheduling | Discord, web | In testing |
| Tournaments | Discord, web | In progress |
| Coaching | Web | In testing |
The website, Discord bot and background worker share a PostgreSQL database. The bot manages all changes to match data; actions on the website are sent to it as commands. Database notifications keep the services updated, while a durable job queue handles background tasks and external integrations.
| Layer | Technology |
|---|---|
| Language | TypeScript, strict, in one monorepo |
| Bot | Node.js 24, discord.js v14, Components v2 |
| Website | Fastify 5, React 19, Vite, Tailwind CSS v4 |
| Database | PostgreSQL 18, Prisma |
| Background jobs | pg-boss, running on the same database |
| Payments | Stripe Connect for coaching |
| Quality | vitest integration tests against a real database, including restarts and races |
| Designed for | 100+ players in queues and matches at once |