📋 Dernière mise à jour — Mai 2026
NOUVEAU nouvelle commande  ·  MISE À JOUR commande modifiée récemment
Doc complète : chaque commande liste ses options slash, sous-commandes et modals ci-dessous.
Nouveautés : /help · /giveaway · /createembed · /createembedstatus
🤝

Serveurs de Confiance

Serveurs Discord partenaires en qui nous avons confiance.

🌐 WorldLife RP
✦ Partenaire de confiance
Serveur de roleplay communautaire. Une expérience immersive dans un univers unique.
Rejoindre →
XenoDev
✦ Partenaire de confiance
Serveur de développement et d'outils Discord. Communauté de développeurs passionnés.
Rejoindre →
⚡ FeliCity FA
✦ Partenaire de confiance
Serveur communautaire FeliCity FA. Rejoins une communauté active et dynamique.
Rejoindre →

Fonctionnalités Principales

🛡️
Protections automatiques
Anti-spam, anti-mentions, anti-@everyone, anti-bot, anti-scam, anti-ping owners, blacklist IP — activables par serveur dans data/settings.json.
🎁
Giveaways
/giveaway create avec modal, tirage auto, boutons participer/quitter, reroll et logs dédiés.
📝
Embeds sur mesure
/createembed et /createembedstatus — titre, image, boutons lien et description en modal multiligne.
Tickets : gestion de l'inactivité
Si un ticket reste inactif 3 jours, un rappel est envoyé à l'auteur. Après 5 jours sans réponse, le ticket est fermé automatiquement.
🎫
Tickets personnalisés avancés
Système de tickets avec menu de sélection, 7 catégories (AIDE, ACHAT, RAPPORT, SUGGESTION, PARTENARIAT, RECRUTEMENT, DÉNONCIATION), fermeture/suppression automatique, logs détaillés, permissions sécurisées et notifications staff.
Quand un ticket est fermé, seuls les admins peuvent encore voir le salon, tous les autres perdent l’accès.
👋
Message de bienvenue
Envoi automatique d'un message de bienvenue personnalisé dans le salon dédié à chaque nouvel arrivant.
Le message mentionne le membre, affiche le nombre de membres et le nom du serveur dans le titre.
📑
Logs & Journalisation
Logs webhook par catégorie : sanctions, blacklist, rôles, tickets, giveaways, embeds, commandes et général. Chaque slash commande enregistre ses options ; les modals (giveaway, createembed) et modlogs sont journalisés automatiquement.
👤
Modération Complète
Ban, kick, mute, warn avec logs détaillés.
💾
Persistance des Données
Sauvegarde automatique toutes les 10 minutes + backup.
📊
Statistiques
Suivi des modlogs, avertissements et strikes en temps réel.
🎨
Personnalisation
Créer des rôles, salons et configurer chaque protection.
🔒
Anti-Ping Avancé
Protégez les utilisateurs importants avec exceptions configurables.
📋

Liste Des Commandes

51 commandes slash documentées avec toutes les options. Utilise /help pour un menu interactif par catégorie. Préfixe + pour certaines commandes owners.

Légende options : requis · optionnel · Modal = formulaire après la commande
❓ Aide
/help NOUVEAU
Menu d'aide avec sélecteur de catégorie (14 thèmes, descriptions complètes).
Options
  • Aucune — menu déroulant sur le message
🔧 Modération
/ban
BanMembers
Bannir un membre du serveur.
Options
  • membre (User) requis
  • raison (Texte) optionnel
/unban
BanMembers
Débannir un utilisateur.
Options
  • id (Texte — ID Discord) requis
/kick
KickMembers
Expulser un membre.
Options
  • membre (User) requis
  • raison (Texte) optionnel
/mute
ModerateMembers
Mute via rôle Muted.
Options
  • membre (User) requis
/unmute
ModerateMembers
Retirer le mute.
Options
  • membre (User) requis
/untimeout
ModerateMembers
Retirer le timeout Discord.
Options
  • membre (User) requis
/warn MISE À JOUR
KickMembers
Avertissement en base SQLite. 3 warns → blacklist + ban (+ IP liée).
Options
  • membre (User) requis
  • raison (Choix) optionnel — Insulte, Spam salon, Drop, etc. ou custom
  • raison_perso (Texte) optionnel — si raison = Autre
/warnuser
KickMembers
Liste des warns d'un membre.
Options
  • membre (User) requis
/warnlist MISE À JOUR
KickMembers
Tous les warns du serveur · pagination · export .txt.
Options
  • Aucune — boutons ◀️ ▶️ 💾 Enregistrer
/warndelete
KickMembers
Supprimer un warn par numéro.
Options
  • membre (User) requis
  • numero (Texte) requis — numéro ou all
/clear
ManageMessages
Suppression en masse.
Options
  • nombre (Entier 1–99) requis
🎫 Tickets
/setup-tickets
ManageChannels
Publie le menu de tickets (7 catégories).
Options
  • Aucune — menu : aide, achat, rapport, suggestion, partenariat, recrutement, dénonciation
/addtoticket
ManageChannels
Ajouter un membre au ticket (salon courant).
Options
  • membre (User) requis
/removefromticket
ManageChannels
Retirer un membre du ticket.
Options
  • membre (User) requis
/closeticket
ManageChannels
Fermer le ticket courant.
Options
  • Aucune — boutons Rouvrir / Supprimer
🔒 Salons
/createchannel
ManageChannels
Créer un salon textuel.
Options
  • nom (Texte) requis
  • categorie (Catégorie) optionnel
  • description (Texte — sujet) optionnel
  • permissions_role (Texte — ID ou nom rôle) optionnel
  • permissions (Texte — ex: SEND_MESSAGES,READ_MESSAGE_HISTORY) optionnel
  • prive (Booléen) optionnel
/lock
ManageChannels
Verrouille le salon courant (@everyone ne peut plus écrire).
Options
  • Aucune
/hide
ManageChannels
Cache le salon pour @everyone.
Options
  • Aucune
/logs
Administrator
Salon de logs modération local (modlogs JSON).
Sous-commandes
  • setsalon (Channel) requis
  • clear — efface les modlogs
/maxmentions
Administrator
Limite de mentions par message (0 = désactivé).
Options
  • nombre (Entier) requis
👥 Rôles
/createrole
ManageRoles
Créer un rôle personnalisé.
Options
  • nom (Texte) requis
  • couleur (Texte — #hex ou aleatoire) optionnel
  • position_reference (Rôle) optionnel
  • position_type (Choix: Au-dessus / Au-dessous) optionnel
  • permissions (Texte — virgules) optionnel
/role
ManageRoles
Ajouter ou retirer un rôle.
Sous-commandes
  • addmembre + role requis
  • removemembre + role requis
/roleall
ManageRoles
Donner un rôle à tous les membres.
Options
  • role (Rôle) requis
/autorole
ManageRoles
Rôle automatique à l'arrivée.
Sous-commandes
  • setrole (Rôle) requis
  • remove — retire l'autorole
🖤 Blacklist
/blacklist add
ModerateMembers
Blacklister + ban + IP si connue.
Options
  • utilisateur (User) optionnel
  • utilisateurs (Texte — IDs séparés) optionnel
  • fichier (Attachment .txt) optionnel
Au moins une des 3 options est requise.
/blacklist remove
ModerateMembers
Options
  • utilisateur (User) requis
/blacklist list MISE À JOUR
ModerateMembers
Liste paginée + export .txt (💾 Enregistrer).
Options
  • Aucune
/banlist
BanMembers
Options
  • Aucune
/baninfo
BanMembers
Options
  • membre (User) requis
ℹ️ Informations
/memberinfo MISE À JOUR
Fiche complète (warns SQLite, strikes, modlog, rôles).
Options
  • membre (User) optionnel
  • recherche (Texte — ID, mention, tag) optionnel
/utilisateur
Infos basiques sur l'auteur de la commande (username, date d'arrivée).
Options
  • Aucune
/avatar
Options
  • membre (User) optionnel
/banner
Options
  • membre (User) optionnel
/serveur
Options
  • Aucune
/channelinfo
Options
  • Aucune — salon courant
/roleinfo
Options
  • role (Rôle) requis
/uptime
Options
  • Aucune
/ping
Options
  • Aucune
🎤 Vocal
/vckick
MoveMembers
Options
  • membre (User) requis
  • raison (Texte) optionnel
/vcmove
MoveMembers
Options
  • membre (User) requis
  • salon (Channel vocal) requis
/vcmute
MuteMembers
Options
  • membre (User) requis
/vsourdine
DeafenMembers
Options
  • membre (User) requis
😀 Emojis
/emoji
ManageEmojis
Sous-commandes
  • list — liste les emojis
  • addemoji requis, name optionnel
  • removeemoji (ID ou emoji) requis
  • infoemoji requis
🤝 Partenariat
/partenariat
ManageChannels
Options
  • nom (Texte) requis
  • utilisateur (User) requis
  • categorie (Catégorie) optionnel
/infopart
Rôle partenariat
Options
  • Aucune
/servpub
Rôle partenariat
Options
  • Aucune — bouton copier la pub (.txt)
🎁 Giveaways
/giveaway create NOUVEAU
ManageGuild
Créer un giveaway avec tirage auto.
Options slash
  • duree (Choix) requis — 1h, 3h, 6h, 12h, 1j, 3j, 7j, 14j
  • salon (Channel texte) optionnel
  • mention (User ou Rôle) optionnel
Modal : description (requis), prérequis (optionnel)
/giveaway reroll NOUVEAU
ManageGuild
Options
  • message (Texte — ID ou lien) requis
  • salon (Channel) optionnel
  • emoji (Texte — défaut 🎉) optionnel
📝 Embeds
/createembed NOUVEAU
Embed en réponse à la commande.
Options slash
  • titre (Texte) requis
  • image (Fichier image) optionnel
  • buttons (Texte — label|url;label2|url2 max 5) optionnel
Modal : description (requis, multiligne)
/createembedstatus NOUVEAU
Embed envoyé dans le salon.
Options slash
  • titre (Texte) optionnel — défaut « Statut des services »
  • image (Fichier) optionnel
  • buttons (Texte) optionnel
Modal : description (requis)
⚙️ Utilitaires
/refresh
Owner
Options
  • Aucune
/commandaccess
Administrator
Sous-commandes
  • addrolerole requis
  • removerolerole requis
  • list
/servers
Owner
Options
  • Aucune
/guildcommands
Owner
Options
  • guildid (Texte) requis
/leaveguild
Owner
Options
  • guildid (Texte) requis
Aussi : +leaveguild ID
🔴 Commandes dangereuses
💣 /nuke
ManageChannels
Recrée le salon — historique effacé.
Options
  • Aucune — salon courant
⚠️ IRRÉVERSIBLE
⚛️ /atomic
2 owners
Supprime tous salons et rôles.
Options
  • Aucune — double confirmation
⚠️ IRRÉVERSIBLE — taper CONFIRME + boutons
📑

Système de Logs

Chaque action importante est envoyée sur un webhook Discord (embed coloré). Configuration dans config/webhook-logs-config.js — une URL par catégorie (ou la même pour tout regrouper).

Catégorie Ce qui est loggé
sanctionsBan, kick, mute, warn, timeout, vocal, clear…
blacklistAjout / retrait blacklist, auto-blacklist 3 warns
roles/role, /roleall, /createrole, autorole
ticketsCréation, fermeture, réouverture, suppression, add/remove membre
giveawayCréation (modal), fin auto/manuelle, reroll
embeds/createembed, /createembedstatus
commandsToutes les slash commands + options utilisées
ownerPingPing d'un owner protégé → timeout 120 min
nuke/nuke, /atomic
soutienRôle Soutien (statut Discord)
generalLock, hide, partenariat, logs salon…
errorsErreurs internes du bot
ℹ️ Les commandes slash enregistrent le nom complet (/giveaway create), l'utilisateur, le salon et toutes les options. Les modals (giveaway, embed) ont un log dédié à la soumission.
🛡️

Système de Protections

✅ Protections natives XenoProtect
ProtectionActivationComportement
Anti-spamantispam dans settings5 messages / 4s → warn auto · répétition identique
Anti-mentionsantimention + /maxmentionsBloque ou limite les mentions
Anti-@everyoneantieveryoneSupprime @everyone / @here
Anti-botantibotSupprime les messages des bots
Anti-scamantiscamFiltre liens / mots scam connus
Anti-ping ownersConfig anti-pingTimeout 120 min si ping interdit
Blacklist IP/blacklistBan des doubles comptes liés
Verrou salon/lockBloque l'envoi de messages (@everyone)
⚙️ Clés settings.json (auto-mod sans slash)
CléTypeDescription
antispamboolAnti-spam (défaut : 5 msgs / 4s)
spamWindownumberFenêtre en ms (ex: 4000)
spamLimitnumberMessages max dans la fenêtre (ex: 5)
antimentionboolBloque toute mention
maxmentionsnumberMax mentions (0 = off, voir /maxmentions)
antilinkboolFiltre les liens
antieveryoneboolBloque @everyone / @here
antibotboolSupprime messages des bots
antiscamboolFiltre scam basique
lockdownboolÉtat lockdown (config serveur)
whiteliststring[]IDs utilisateurs immunisés
logChannelstringID salon logs modération
autorolestringID rôle attribué à l'arrivée
ℹ️ Comparaison avec des commandes ! classiques (autres bots) — ce qui n'est pas encore implémenté chez XenoProtect :
🛡️ Anti-raid / Sécurité (référence)
Fonction (réf.)StatutÉquivalent XenoProtect
!antiraid on/off❌ Absent
!lockdown [salon]⚠️ Partiel/lock · flag lockdown en config
!verification❌ Absent
!antinuke❌ AbsentPas de détection actions massives
!whitelist add/remove⚠️ Partielsettings.json · pas de slash dédié
📋 Logs / Surveillance (référence)
!snipe / !editsnipe❌ Absent
Logs webhook✅ Actif12 catégories — voir section Logs
👤 Membres & Auto-mod (référence)
!userinfo/memberinfo · /utilisateur
!alts
!automod badwords
!antilinks⚠️antilink en config
!antispamAuto-mod intégré
!antimentionsantimention + /maxmentions
!anticaps
🔒 Système Blacklist / IP
ℹ️ Détection de Doubles Comptes : Quand un utilisateur est blacklisté, son IP est aussi blacklistée. Tous les comptes connectés avec cette IP sont bannis immédiatement.
📍 Anti-Ping Avancé
✅ Les utilisateurs protégés peuvent se ping eux-mêmes et mutuellement.
  • Utilisateurs protégés (ne peuvent être pingés par n'importe qui)
  • Rôles autorisés (peuvent ping les utilisateurs protégés)
  • Salons autorisés (les pings sont permis)
  • Catégories autorisées (les pings sont permis)
⚙️

Installation et Hébergement

📋 Prérequis
  • Node.js v16 ou supérieur
  • npm ou yarn
  • Un compte Discord Developer Portal
  • Un jeton de bot Discord
🚀 Installation Locale
# Clone le repository git clone <repo-url> cd BotXenoProtect # Installe les dépendances npm install # Configure le fichier .env echo "BOT_TOKEN=votre_token_ici" > .env # Lance le bot npm start
☁️ Hébergement
⚠️ Le bot doit fonctionner 24/7. Utilisez Heroku, Railway, Replit ou un VPS.
🔴 /atomic supprime TOUS les salons et rôles de manière irréversible. Réservée aux owners uniquement.
Option 1 — Heroku
heroku login heroku create mon-bot heroku config:set BOT_TOKEN=votre_token git push heroku main
Option 2 — Railway.app
# Connecter GitHub → Créer projet → Ajouter BOT_TOKEN → Deploy auto
Option 3 — VPS Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs npm install && echo "BOT_TOKEN=votre_token" > .env sudo tee /etc/systemd/system/xenoprotect.service > /dev/null <<EOF [Unit] Description=XenoProtect Bot After=network.target [Service] Type=simple User=botuser WorkingDirectory=/home/botuser/BotXenoProtect ExecStart=/usr/bin/node index.js Restart=on-failure [Install] WantedBy=multi-user.target EOF sudo systemctl enable xenoprotect && sudo systemctl start xenoprotect
📁 Structure des Fichiers
BotXenoProtect/ ├── commands/ # Commandes slash │ ├── mod/ # Modération, tickets, giveaway… │ ├── info/ # Infos membres / serveur │ └── util/ # Blacklist, embeds, refresh… ├── config/ │ └── webhook-logs-config.js # URLs webhooks par catégorie ├── events/ # interactionCreate, messages, tickets… ├── util/ │ ├── settings.js # Config serveur + modlogs │ ├── command-logs.js # Logs webhook automatiques │ └── giveaways.js ├── data/ # settings.json, warns.sqlite, blacklist.sqlite ├── index.js └── .env

Questions Fréquentes

Q: Comment fonctionne le système de tickets ?

Le bot propose un menu de sélection pour ouvrir un ticket selon 7 catégories : AIDE, ACHAT, RAPPORT, SUGGESTION, PARTENARIAT, RECRUTEMENT, DÉNONCIATION. Chaque ticket crée un salon privé, notifie le staff, et peut être fermé ou supprimé automatiquement. Toutes les actions sont loguées.

Q: Où sont envoyés les logs des actions ?

Via 12 catégories de webhooks (sanctions, blacklist, tickets, giveaways, embeds, commandes…). Chaque /commande loggue ses options ; les modals giveaway/embed aussi. Voir la section Logs et config/webhook-logs-config.js.

Q: Comment exporter les warns ou la blacklist ?

Utilise /warnlist ou /blacklist list, puis le bouton 💾 Enregistrer pour télécharger un fichier .txt (une ligne par entrée).

Q: Comment créer un giveaway ou un embed ?

/giveaway create — options duree (requis), salon, mention, puis modal description + prérequis. /createembedtitre (requis), image, buttons, puis modal description multiligne.

Q: Où voir toutes les commandes rapidement ?

Sur ce site (section Commandes) ou in-game avec /help et le menu déroulant par catégorie.

Q: Le bot souhaite la bienvenue aux nouveaux membres ?

Oui ! Un message de bienvenue personnalisé est envoyé automatiquement dans le salon dédié à chaque nouvel arrivant.

Q: Mes données vont-elles être perdues si le bot redémarre?

Non! Le bot sauvegarde automatiquement toutes les 10 minutes et dispose d'un système de backup. Les blacklistes et configurations sont persistantes.

Q: Comment modifier les utilisateurs protégés?

Modifiez le tableau DEFAULT_PROTECTED_USERS dans events/messageCreate.js. Les utilisateurs protégés ne peuvent être pingés que par les rôles autorisés.

Q: Où sont stockées les données?

Dans data/settings.json. Un backup est créé automatiquement dans data/settings.json.backup.

Q: Comment ajouter plusieurs utilisateurs à la blacklist?
/blacklist add utilisateurs:@User1 @User2 @User3 /blacklist add utilisateurs:123456789 234567890 345678901
Q: Couleur aléatoire pour un rôle?
/createrole nom:MonRole couleur:aleatoire
Q: Le bot consomme beaucoup de ressources?

Non, il est optimisé et léger. Fonctionne bien même sur des serveurs avec peu de RAM.

Q: Comment restaurer les données depuis un backup?

Remplacez data/settings.json par data/settings.json.backup puis redémarrez le bot.

Q: Puis-je personnaliser les messages du bot?

Oui! Modifiez les fichiers des commandes en éditant les appels interaction.reply() ou message.channel.send().