The support system provides two pathways for players to reach server staff during an active Faceit match: theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/VasquezRivero92/Discord_Faceit/llms.txt
Use this file to discover all available pages before exploring further.
/llamar_admin slash command for direct in-game notification, and the /setup_soporte command that deploys a persistent button panel to a dedicated support channel. Both are gated by the adminCallNotifications feature flag. Additionally, the text triggers !admin, !soporte, and !llamaradmin provide a keyboard-friendly fallback that works in any channel.
/llamar_admin
/llamar_admin lets a verified player who is currently in an active Faceit match alert every admin on the server simultaneously via direct messages. The bot looks up the player’s active match from Firestore, builds a rich embed with the match URL and details, and sends it as a DM to each admin individually by iterating the admin collection.
Syntax
Feature Flag
Guarded byadminCallNotifications scoped to the guild. When disabled, the bot returns an ephemeral ❌ La función de llamada a admin está desactivada.
Prerequisites
- A linked Faceit account (run
/verificar_fcfirst). The command readsfaceit_player_idviadb.getFaceitIdByDiscordId(). - An active match currently tracked in Firestore for that player. The bot calls
db.getActiveMatchByPlayerId(faceit_player_id)— if no match is found, it returns an error.
Behavior
- Feature flag check — aborts if
adminCallNotificationsis disabled. - Link check — reads the caller’s
faceit_player_idfrom Firestore. - Active match lookup — calls
db.getActiveMatchByPlayerId(faceit_player_id). Aborts if no active match exists. - Admin discovery — searches for a role whose name matches
ADMIN_ROLE_NAME(env var, defaultADMIN). If no such role exists or it has no members, falls back to all members with the DiscordAdministratorpermission. - DM broadcast — iterates the admin collection and sends each admin a DM embed:
🚨 Solicitud de Admintitle- Player’s Discord tag and Faceit nickname
- Direct hyperlink to the Faceit match room (
https://www.faceit.com/en/cs2/room/<matchId>) - Match details: team names, map, server location
- Caller’s Discord mention and channel
- Audit log — writes a
warnlog entry with the count of DMs sent vs. admins found. - Ephemeral reply — the caller receives a private confirmation.
Response
Ephemeral reply to the caller:Error Reference
| Condition | Error message |
|---|---|
adminCallNotifications disabled | ❌ La función de llamada a admin está desactivada. (ephemeral) |
| No linked Faceit account | ❌ No tienes una cuenta de Faceit vinculada. Usa /verificar_fc para vincularla. |
| Not in an active match | ❌ No estás en ninguna partida activa en este momento. |
| No admins found on server | ⚠️ No hay admins disponibles para atender tu solicitud. |
| Command used outside a guild | ❌ Este comando solo funciona dentro de un servidor. |
| Unexpected error | ❌ Error al procesar tu solicitud. Intenta de nuevo. |
/setup_soporte
/setup_soporte deploys a persistent support panel to the current channel. The panel contains an embed explaining the support requirements and a single 🚨 Llamar Administrador button. Any verified player in an active match can press the button, which opens a modal for them to describe their problem before alerting staff.
Syntax
Required Permission
The command usessetDefaultMemberPermissions(PermissionFlagsBits.Administrator) in its builder, so it is only visible and executable by members with the Discord Administrator permission. Regular members cannot see or invoke it.
Feature Flag
Also guarded byadminCallNotifications. When disabled, returns an ephemeral error without sending the panel.
Behavior
- Feature flag check — aborts if
adminCallNotificationsis disabled. - Template resolution — calls
db.getMessageTemplates()to allow server admins to customise the panel. Defaults:- Title:
🚨 Soporte y Llamado de Admin - Description: Multi-line explanation of requirements (Faceit link, active match, what happens when the button is pressed)
- Color:
#FF0000
- Title:
- Embed + button construction — builds an
EmbedBuilderand anActionRowBuilderwith aButtonStyle.Dangerbutton (customId: 'llamar_admin_btn'). - Channel post — sends the embed and button row to the current channel via
interaction.reply().
The Button Flow
When a player presses Llamar Administrador (llamar_admin_btn):
- A modal is shown (
interactionCreate.jsbutton handler) asking the player to describe their problem. The text input requires between 10 and 500 characters (setMinLength(10).setMaxLength(500)). - On modal submit, the bot creates a support call record in Firestore.
- A notification embed is sent to
DISCORD_ADMIN_ALERTS_CHANNEL_IDpinging the ADMIN role and including an “Atender Solicitud” button for staff to acknowledge the request.
Auto-Deployment on Startup
IfDISCORD_SUPPORT_CHANNEL_ID is configured, the bot’s ready event handler calls checkAndDeploySupportPanel() which automatically posts (or skips if a panel already exists) the support panel to that channel on startup. You only need to run /setup_soporte manually when deploying the panel to an additional channel or after the original message is deleted.
The support panel embed content (title, description, and color) can be customised via the
messageTemplates document in Firestore — no code changes needed. Changes take effect the next time /setup_soporte is run or the bot restarts.Text Command Triggers
In addition to the slash command, typing any of the following text messages triggers the admin notification flow via themessageCreate event handler:
/llamar_admin — the bot looks up the player’s active match and DMs all admins.
/info
The/info command displays a quick-reference embed with your server’s Faceit Club link, the verification channel, and shortcuts to /leaderboard and /stats. It is gated by the command_info feature flag and responds publicly (ephemeral: false). No parameters are required.