discord.js v14 · node.js · pterodactyl

UnioraBot

Le bot Discord tout-en-un pour votre serveur RP. Tickets, XP, boutique, parrainage, chasse au trésor et bien plus — géré depuis un panel web dédié.

25+Commandes
5Catégories tickets
8Modules
Addons custom

Tout ce dont votre serveur a besoin.

UnioraBot regroupe en un seul bot tous les outils qu'un serveur RP attend.

🎫
Tickets avancés
5 catégories (Recrutement, Entreprise, Gang, Boutique, En jeu). Dossiers créés automatiquement. Formulaires, liens, claim, transfert, notation avec commentaire post-fermeture.
Système XP & Niveaux
XP gagné en chattant (cooldown 1 min). Passage de niveau automatique avec annonce. Attribution de rôles par niveau configurable depuis le panel.
💰
Boutique & Crédits
50 crédits par passage de niveau. Boutique configurable depuis le panel. Codes cadeaux envoyés automatiquement en MP.
👋
Message de bienvenue
Embed automatique dans un salon dédié à chaque arrivée. Affiche l'avatar, la date de création du compte et le numéro de membre.
🎭
Rôles automatiques
Panel de boutons cliquables pour s'attribuer ou retirer des rôles. Configurable depuis le panel. Jusqu'à 25 rôles par panel.
📅
Animation & Événements
Sondages interactifs en temps réel. Annonces stylisées. Événements RP. Rappels personnels en MP. Embeds personnalisés.
🤝
Parrainage
Système de parrainage avec bonus crédits. +100 cr. au parrain, +50 cr. au filleul. Bonus palier tous les 5 filleuls. Classement des meilleurs parrains.
🗺️
Chasse au Trésor
Organisez des chasses au trésor avec indices dans différents salons. Récompenses en crédits. Suivi de l'avancement par joueur.

Toutes les commandes.

Commandes slash Discord. Les permissions sont configurables depuis le panel web sans redémarrage.

🎫 Tickets
/setup-ticketsEnvoie le panel d'ouverture de ticketsSTAFF
/fermerFerme le ticket actuel (délai 5s + notation en MP)STAFF
/ajouter @membreAjoute un membre dans le ticketTICKET
/retirer @membreRetire un membre du ticketTICKET
/statsStatistiques globales (tickets, notations, temps de résolution)STAFF
⭐ XP & Crédits
/niveau [@membre]Affiche le niveau XP et la progressionTOUS
/solde [@membre]Affiche le solde de créditsTOUS
/boutiqueListe les récompenses disponiblesTOUS
/réclamer <id>Échange des crédits contre une récompense (code en MP)TOUS
🤝 Parrainage
/parrainer @membreParrainer un membre (+100 cr. parrain, +50 cr. filleul)TOUS
/mon-parrainVoir son parrainTOUS
/mes-filleulsVoir la liste de ses filleulsTOUS
/top-parrainsClassement des meilleurs parrainsTOUS
🗺️ Chasse au Trésor
/tresor-creer <nom> <récompense>Créer une nouvelle chasseSTAFF
/tresor-indiceAjouter un indice dans un salon spécifiqueSTAFF
/tresor-lancer <nom>Lancer la chasse (poste le premier indice)STAFF
/tresor-reponse <nom> <réponse>Soumettre une réponseTOUS
/tresor-info <nom>Voir son indice actuelTOUS
/tresor-statut <nom>Voir l'avancement globalSTAFF
/tresor-reset <nom>Réinitialiser une chasseSTAFF
📢 Animation
/annonceEnvoie un embed dans un salon choisiSTAFF
/embedCrée un embed avec titre, image, couleur, miniature...STAFF
/sondage <question>Lance un vote Oui/Non/Abstention en temps réelSTAFF
/eventPublie un événement RP (titre, date, lieu)STAFF
/rappel <message> <temps>Rappel personnel en MP (10m, 2h, 1j — max 7j)TOUS
/vider [nombre]Supprime tous les messages d'un salon (ou X messages)STAFF
ℹ️ Informations
/userinfo [@membre]Profil complet : ID, rôles, date d'arrivée, créditsTOUS
/serverinfoInformations sur le serveurTOUS
/avatar [@membre]Affiche l'avatar en grand formatTOUS
/setup-rolesEnvoie le panel de rôles automatiquesSTAFF

Gérez tout depuis
bot.uniora.fr

Un panel d'administration complet avec système d'inscription par invitation, changement de mot de passe sécurisé et gestion multi-utilisateurs.

📊
Dashboard
Stats temps réel — tickets, XP, crédits, rappels actifs
🎫
Tickets
Statistiques détaillées et notations avec vraies barres par étoile
🛍️
Boutique
Ajouter/supprimer items et codes depuis l'interface
👥
Membres
Classement XP et modification manuelle des crédits
🔐
Permissions
Définir qui peut utiliser chaque commande — rôles Discord récupérés automatiquement
🏅
Rangs XP
Attribuer un rôle Discord automatiquement à un niveau donné
💬
Commentaires
Retours des membres après fermeture de ticket (200 car. max)
🧩
Éditeur addons
Éditeur CodeMirror avec coloration JS — crée et déploie tes addons en direct
🔄
Contrôle du bot
Redémarrer ou arrêter le bot directement depuis le panel
🔑
Invitations
Clés d'inscription usage unique — accès contrôlé pour le staff
⚠️
Les modifications de Configuration et de Rangs XP nécessitent un redémarrage du bot. Les Permissions sont appliquées immédiatement sans redémarrage.

Installation sur Pterodactyl.

Bot et panel tournent dans le même serveur Pterodactyl via un script de démarrage unifié.

1
Créer le bot Discord
Sur discord.com/developers/applications → New Application → Bot. Activer les 3 intents : Presence, Server Members, Message Content. Copier le token.
2
Configurer Pterodactyl
Créer un serveur avec l'egg Node.js Generic. Assigner les ports Discord et 3007 (panel).
Startup : node start.js
Install : npm install
RAM : 512 MB min
3
Upload & configurer
Uploader tous les fichiers. Remplir config.json avec le token, guildId, logChannelId, welcomeChannelId et le lien formulaire.
4
Créer le compte admin
Depuis SSH, créer le premier compte administrateur du panel :
cd /var/lib/pterodactyl/volumes/ID_DU_SERVEUR
node panel.js --setup
5
Démarrer & initialiser
Lancer le serveur. Les 5 dossiers de tickets sont créés automatiquement. Puis taper /setup-tickets dans le salon souhaité et accéder au panel sur bot.uniora.fr.

Structure du projet.

🚀
start.js
Lance le bot et le panel simultanément. Redémarrage auto en cas de crash.
LAUNCHER
🤖
index.js
Code principal du bot Discord. Contient tous les modules et commandes.
BOT
🎛️
panel.js
Serveur web Express du panel admin. Port 3007.
PANEL
⚙️
config.json
Token, IDs Discord, salon de logs/bienvenue, lien formulaire.
À CONFIGURER
🎭
roles.json
Rôles du panel boutons. Géré depuis le panel.
AUTO
🛍️
shop.json
Récompenses et codes. Géré depuis le panel.
AUTO
🔐
permissions.json
Permissions par commande. Géré depuis le panel, appliqué en temps réel.
AUTO
📊
stats.json
Tickets, notations, commentaires, temps de résolution.
AUTO-GÉNÉRÉ
xp.json
XP et niveaux de chaque membre.
AUTO-GÉNÉRÉ
💰
wallet.json
Crédits de chaque membre.
AUTO-GÉNÉRÉ
reminders.json
Rappels en attente. Rechargés au redémarrage.
AUTO-GÉNÉRÉ
👥
users.json
Comptes du panel (mots de passe hashés bcrypt). Géré depuis le panel.
AUTO-GÉNÉRÉ
🤝
parrainage.json
Données de parrainage (addon).
AUTO-GÉNÉRÉ
🗺️
chasse-tresor.json
Données des chasses au trésor (addon).
AUTO-GÉNÉRÉ

Étendre UnioraBot.

Crée tes propres modules directement depuis l'éditeur CodeMirror du panel. Chaque addon est un fichier JS chargé automatiquement au démarrage.

mon-addon.js
// Structure obligatoire de chaque addon
module.exports.meta = {
  id: "mon-addon",
  name: "Mon Addon",
  desc: "Description courte",
  version: "1.0.0",
  icon: "🔧",
};

module.exports.setup = function({ client, commands, EmbedBuilder, Events }) {
  // Ajouter une commande slash
  commands.push({ name: "ma-commande", description: "..." });

  // Écouter les interactions
  client.on(Events.InteractionCreate, async (interaction) => {
    if (interaction.commandName === "ma-commande") { ... }
  });
};
AddonDescriptionCommandesType
🤝 Système de ParrainageParrainage avec bonus crédits et paliers/parrainer /mon-parrain /mes-filleuls /top-parrainsCUSTOM
🗺️ Chasse au TrésorChasses avec indices dans différents salons/tresor-creer /tresor-lancer /tresor-reponse ...CUSTOM