📋 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 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 →
🛡️
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.
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
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
Bannir un membre du serveur.
Options
membre (User) requis
raison (Texte) optionnel
Débannir un utilisateur.
Optionsid (Texte — ID Discord) requis
Expulser un membre.
Options
membre (User) requis
raison (Texte) optionnel
/untimeout
ModerateMembers
Retirer le timeout Discord.
/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
Liste des warns d'un membre.
/warnlist MISE À JOUR
KickMembers
Tous les warns du serveur · pagination · export .txt.
Options- Aucune — boutons ◀️ ▶️ 💾 Enregistrer
Supprimer un warn par numéro.
Options
membre (User) requis
numero (Texte) requis — numéro ou all
Suppression en masse.
Optionsnombre (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).
/removefromticket
ManageChannels
Retirer un membre du ticket.
/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
Verrouille le salon courant (@everyone ne peut plus écrire).
Cache le salon pour @everyone.
Salon de logs modération local (modlogs JSON).
Sous-commandes
set — salon (Channel) requis
clear — efface les modlogs
/maxmentions
Administrator
Limite de mentions par message (0 = désactivé).
👥 Rôles
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
Ajouter ou retirer un rôle.
Sous-commandes
add — membre + role requis
remove — membre + role requis
Donner un rôle à tous les membres.
Rôle automatique à l'arrivée.
Sous-commandes
set — role (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
Optionsutilisateur (User) requis
/blacklist list MISE À JOUR
ModerateMembers
Liste paginée + export .txt (💾 Enregistrer).
ℹ️ Informations
Fiche complète (warns SQLite, strikes, modlog, rôles).
Options
membre (User) optionnel
recherche (Texte — ID, mention, tag) optionnel
Infos basiques sur l'auteur de la commande (username, date d'arrivée).
🎤 Vocal
Options
membre (User) requis
raison (Texte) optionnel
Options
membre (User) requis
salon (Channel vocal) requis
😀 Emojis
Sous-commandes
list — liste les emojis
add — emoji requis, name optionnel
remove — emoji (ID ou emoji) requis
info — emoji requis
🤝 Partenariat
/partenariat
ManageChannels
Options
nom (Texte) requis
utilisateur (User) requis
categorie (Catégorie) optionnel
/infopart
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
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
/commandaccess
Administrator
Sous-commandes
addrole — role requis
removerole — role requis
list
🔴 Commandes dangereuses
Recrée le salon — historique effacé.
⚠️ IRRÉVERSIBLE
Supprime tous salons et rôles.
Options- Aucune — double confirmation
⚠️ IRRÉVERSIBLE — taper CONFIRME + boutons
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é |
sanctions | Ban, kick, mute, warn, timeout, vocal, clear… |
blacklist | Ajout / retrait blacklist, auto-blacklist 3 warns |
roles | /role, /roleall, /createrole, autorole |
tickets | Création, fermeture, réouverture, suppression, add/remove membre |
giveaway | Création (modal), fin auto/manuelle, reroll |
embeds | /createembed, /createembedstatus |
commands | Toutes les slash commands + options utilisées |
ownerPing | Ping d'un owner protégé → timeout 120 min |
nuke | /nuke, /atomic |
soutien | Rôle Soutien (statut Discord) |
general | Lock, hide, partenariat, logs salon… |
errors | Erreurs 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.
✅ Protections natives XenoProtect
| Protection | Activation | Comportement |
| Anti-spam | antispam dans settings | 5 messages / 4s → warn auto · répétition identique |
| Anti-mentions | antimention + /maxmentions | Bloque ou limite les mentions |
| Anti-@everyone | antieveryone | Supprime @everyone / @here |
| Anti-bot | antibot | Supprime les messages des bots |
| Anti-scam | antiscam | Filtre liens / mots scam connus |
| Anti-ping owners | Config anti-ping | Timeout 120 min si ping interdit |
| Blacklist IP | /blacklist | Ban des doubles comptes liés |
| Verrou salon | /lock | Bloque l'envoi de messages (@everyone) |
⚙️ Clés settings.json (auto-mod sans slash)
| Clé | Type | Description |
antispam | bool | Anti-spam (défaut : 5 msgs / 4s) |
spamWindow | number | Fenêtre en ms (ex: 4000) |
spamLimit | number | Messages max dans la fenêtre (ex: 5) |
antimention | bool | Bloque toute mention |
maxmentions | number | Max mentions (0 = off, voir /maxmentions) |
antilink | bool | Filtre les liens |
antieveryone | bool | Bloque @everyone / @here |
antibot | bool | Supprime messages des bots |
antiscam | bool | Filtre scam basique |
lockdown | bool | État lockdown (config serveur) |
whitelist | string[] | IDs utilisateurs immunisés |
logChannel | string | ID salon logs modération |
autorole | string | ID 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 | ❌ Absent | Pas de détection actions massives |
!whitelist add/remove | ⚠️ Partiel | settings.json · pas de slash dédié |
📋 Logs / Surveillance (référence)
!snipe / !editsnipe | ❌ Absent | — |
| Logs webhook | ✅ Actif | 12 catégories — voir section Logs |
👤 Membres & Auto-mod (référence)
!userinfo | ✅ | /memberinfo · /utilisateur |
!alts | ❌ | — |
!automod badwords | ❌ | — |
!antilinks | ⚠️ | antilink en config |
!antispam | ✅ | Auto-mod intégré |
!antimentions | ✅ | antimention + /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)
📋 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
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. /createembed — titre (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().