# 🌙 Guide d'installation — Bot Discord « Escape The Monster Every Night »

Ce bot construit et gère ton serveur Discord **tout seul**. Tu suis ce guide une
fois (~30 minutes), et ensuite le serveur tourne quasiment sans toi.

---

## Étape 1 — Créer le serveur Discord (2 min)

1. Dans Discord : bouton **+** (gauche) → **Créer un serveur** → « Créer le mien ».
2. Nom : `Escape The Monster Every Night` (ajoute le logo du jeu en icône).
3. **Ne crée AUCUN salon ni rôle** : le bot fera tout.
4. Active le mode développeur : Paramètres utilisateur → Avancés → **Mode développeur** (pour copier les identifiants).

## Étape 2 — Créer l'application du bot (5 min)

1. Va sur https://discord.com/developers/applications → **New Application** → nom : `ETMEN Bot`.
2. Onglet **Bot** :
   - **Reset Token** → copie le token (⚠️ secret absolu, ne le partage JAMAIS).
   - Active les 3 interrupteurs **Privileged Gateway Intents** :
     ✅ Presence Intent · ✅ Server Members Intent · ✅ Message Content Intent
3. Onglet **OAuth2 → URL Generator** :
   - Scopes : ✅ `bot`
   - Bot Permissions : ✅ **Administrator**
   - Copie l'URL générée en bas, ouvre-la, et invite le bot sur ton serveur.

## Étape 3 — Installer Node.js (3 min)

1. Télécharge **Node.js LTS** : https://nodejs.org (version 20+).
2. Installe (suivant → suivant), puis vérifie dans PowerShell :
   ```
   node --version
   ```

## Étape 4 — Configurer le bot (5 min)

1. Ouvre PowerShell dans le dossier du bot :
   ```
   cd C:\Users\pc\Desktop\discord-bot
   npm install
   ```
2. Copie `.env.example` → renomme la copie en `.env` et remplis :
   - `DISCORD_TOKEN` = le token de l'étape 2
   - `GUILD_ID` = clic droit sur ton serveur → **Copier l'identifiant du serveur**
   - `OWNER_ID` = clic droit sur ton pseudo → **Copier l'identifiant de l'utilisateur**
   - `ROBLOX_VIP_GAMEPASS_ID` = l'ID de ton Game Pass VIP (le même que dans
     `GameConfig.RobuxShop` de ton jeu). Laisse `0` pour désactiver la sync VIP.

## Étape 5 — Lancer et construire le serveur (2 min)

1. Démarre le bot :
   ```
   npm start
   ```
   Tu dois voir `✅ Connecté en tant que ETMEN Bot#xxxx`.
2. Dans n'importe quel salon de ton serveur, tape :
   ```
   !setup
   ```
3. ✨ Le bot crée TOUT : 11 rôles, ~35 salons FR/EN, permissions, panneaux
   interactifs (langue, vérification Roblox, tickets, règles, giveaways).
   Tu reçois automatiquement le rôle 👑 Founder.

> `!setup` est **réutilisable** : si tu modifies `src/config.js` (ajouter un
> salon, changer un nom…) ou si quelqu'un casse quelque chose, relance `!setup`
> — il répare sans rien dupliquer.

## Étape 6 — Réglages Discord manuels (5 min, une seule fois)

Le bot ne peut pas tout faire via l'API, fais ces 4 réglages :

1. **Paramètres serveur → Sécurité** : niveau de vérification **Moyen**.
2. **Paramètres serveur → Salons par défaut** : définis 👋・welcome comme salon système (messages de bienvenue **désactivés** côté Discord — le bot envoie les siens).
3. **AutoMod Discord** (Paramètres serveur → AutoMod) : active les règles
   gratuites « Bloquer les insultes » et « Bloquer le spam de mentions » — en
   complément de la sécurité du bot.
4. **Niveau de boost / vanity** : rien à faire au début.

---

## 📋 Utilisation au quotidien

| Action | Comment |
|---|---|
| Annonce de mise à jour | `!annonce Nouvelle nuit 6 disponible ! 🌙` (poste en FR + EN) |
| Lancer un giveaway | `!gstart 1d 2 100 Robux --verified` |
| Terminer / relancer | `!gend <id>` · `!greroll <id>` · `!glist` |
| Voir les bugs | salon 🐛・bug-report (le bot ajoute 🐛 ; toi tu réagis ✅/🔧/🎉) |
| Voir les idées | 💡・suggestions (votes 👍/👎 automatiques) |
| Tickets | tout est automatique ; clique **Claim** pour prendre, **Fermer** pour clore (transcript auto dans 📁・transcripts) |
| Promouvoir un modo | donne-lui le rôle 🛡️ Moderator à la main |

### Vérification Roblox (côté joueur)
Le joueur clique « Lier mon compte Roblox » dans ✅・verification, entre son
pseudo, met le code donné dans la description de son profil Roblox, clique
« Vérifier » → rôles ✅ Verified + 🎮 Player + pseudo Discord renommé en pseudo
Roblox + ⭐ VIP automatique s'il possède ton Game Pass. La sync VIP repasse
toutes les 30 min (ajout **et** retrait du rôle).

---

## 🌐 Hébergement 24/7 (sinon le bot s'arrête quand tu éteins le PC)

**Option gratuite simple (recommandée pour démarrer) :**
- Laisse tourner sur ton PC pendant que tu joues/développes (`npm start`).

**Option 24/7 pas chère/gratuite :**
1. Crée un compte sur un hébergeur Node.js : **Railway** (~5 $/mois),
   **bot-hosting.net** (gratuit), ou un petit VPS.
2. Envoie le dossier du bot (sans `node_modules`, avec ton `.env`).
3. Commande de démarrage : `npm install && npm start`.
4. Le fichier `data/db.json` contient toutes les données — pense à le
   sauvegarder de temps en temps (vérifications, giveaways, tickets).

⚠️ Évite de mettre ce dossier sur GitHub **avec le fichier `.env`** : le token
donnerait le contrôle total du bot à n'importe qui (le `.gitignore` fourni le bloque).

---

## ✅ Checklist d'ouverture

- [ ] Bot invité avec permission Administrator
- [ ] 3 intents activés dans le Developer Portal
- [ ] `.env` rempli (token, guild, owner, gamepass VIP)
- [ ] `npm install` puis `npm start` sans erreur
- [ ] `!setup` exécuté, serveur construit
- [ ] AutoMod Discord activé + vérification niveau Moyen
- [ ] Testé : boutons langue, vérification Roblox avec TON compte, un ticket, un giveaway test (`!gstart 2m 1 test`)
- [ ] Icône + bannière du serveur (capture du jeu !)
- [ ] Première annonce postée : `!annonce Le serveur officiel est ouvert ! 🎉`
- [ ] Lien d'invitation **permanent** créé (clic droit sur 👋・welcome → Inviter → Modifier le lien → expiration : Jamais) → mets CE lien dans ton jeu Roblox

## 🆘 Dépannage rapide

| Problème | Solution |
|---|---|
| `Used disallowed intents` | Active les 3 intents (étape 2.2) puis relance |
| Le bot ne répond pas à `!setup` | Vérifie l'intent Message Content + que le bot a bien la permission Administrator |
| Rôles non attribués | Le rôle du bot doit être TOUT EN HAUT de la liste des rôles (Paramètres serveur → Rôles, glisse-le en premier) |
| Vérif Roblox : « code introuvable » | Le joueur doit SAUVEGARDER sa description Roblox avant de cliquer Vérifier ; les comptes Roblox <13 ans ont parfois la description filtrée → ouvrir un ticket |
| Bot planté | Relance `npm start` — giveaways et tickets reprennent automatiquement |
