diff --git a/.gitignore b/.gitignore
index 0d20b6487c61e7d1bde93acf4a14b7a89083a16d..df81b2c90e9247da32939d09cd068b43a2f2e4a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 *.pyc
+config.py
diff --git a/IRCLibs/__init__.py b/IRCLibs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/ircbot.py b/IRCLibs/ircbot.py
similarity index 100%
rename from ircbot.py
rename to IRCLibs/ircbot.py
diff --git a/irclib.py b/IRCLibs/irclib.py
similarity index 100%
rename from irclib.py
rename to IRCLibs/irclib.py
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dfb60be7280fcb3d43600d4b278e380ab0b8b666
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+**TODO**
+Rename config.py.dist into config.py and fill the parameters in order to customize which channels your bot should join
diff --git a/Tests/Regex_LG.py b/Tests/Regex_LG.py
new file mode 100644
index 0000000000000000000000000000000000000000..268dcd71692856c7d6865a1f06781ba24fda931c
--- /dev/null
+++ b/Tests/Regex_LG.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+
+import re
+
+class Regex_LG(object):
+
+    # Récupération du rôle du bot
+    @staticmethod
+    def getRole():
+        return re.compile(r'Ton role pour la partie sera : (\w+)')
diff --git a/Tests/__init__.py b/Tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/config.py.dist b/config.py.dist
new file mode 100644
index 0000000000000000000000000000000000000000..a5bf42d752755a2d8b80f24e17e7fb89a63e9673
--- /dev/null
+++ b/config.py.dist
@@ -0,0 +1,13 @@
+""" IRC Channel configuration """
+IRC_SERVER = "irc.iiens.net"
+IRC_PORT = 6667
+BOT_OWNER = "PUT_YOUR_NAME"
+BOT_NAME = "PUT_A_NAME"
+BOT_PWD = "PUT_A_PASSWORD"
+BOT_DESC = "PUT_A_DESC"
+TBOT_NAME = "PUT_A_NAME"
+MAIN_CHANNEL = "#PUT_A_CHANNAME"
+WOLF_CHANNEL = "#PUT_A_CHANNAME"
+TRIG_CHANNEL = "#PUT_A_CHANNAME"
+DEAD_CHANNEL = "#PUT_A_CHANNAME"
+DEBUG_CHANNEL = "#PUT_A_CHANNAME"
diff --git a/putsch.py b/putsch.py
index 648bb10c462da57691ea317af582c7e07359162e..bb5a562ec816df5caa6e7fce43709c2e657b8efb 100644
--- a/putsch.py
+++ b/putsch.py
@@ -1,13 +1,15 @@
 # -*- coding: utf-8 -*-
 
 #
-import irclib
-import ircbot
+from IRCLibs import irclib
+from IRCLibs import ircbot
 import random as rand
 import time
 
 from multiprocessing import Process
 
+from config import *
+
 
 def couper(pseudo):
     return pseudo.split("!")[0]
@@ -17,8 +19,6 @@ def list_to_str(li):
     return ", ".join(li)
 
 # renvoie un paquet avec le bon nombre de cartes & les bonnes classes
-
-
 def paquet(nbrJoueurs):
     if nbrJoueurs == 4:
         return ["loups", "voyante", "sorciere", "chasseur"]
@@ -70,7 +70,7 @@ def is_cmd(string):
 class Boooob(ircbot.SingleServerIRCBot):
     def __init__(self):
         ircbot.SingleServerIRCBot.__init__(
-            self, [("irc.iiens.net", 6667)], "putsch", "Je suis un bot", 5)
+            self, [(IRC_SERVER, IRC_PORT)], BOT_NAME, BOT_DESC, 5)
         self.joueurs = []
         self.ingame = 0
         self.phase = 0
@@ -130,17 +130,16 @@ class Boooob(ircbot.SingleServerIRCBot):
         self.victime = []
 
     def on_welcome(self, serv, ev):
-        serv.join("#lg_putsch")
-        serv.join("#tputsch")
-        serv.join("#lg_putsch_loups")
-        serv.join("#lg_putsch_pf")
-        serv.join("#lg_putsch_morts")
-        serv.join("#lg_cheat")
-        serv.privmsg("NickServ", "identify MotDePasse")
+        serv.join(MAIN_CHANNEL)
+        serv.join(TRIG_CHANNEL)
+        serv.join(WOLF_CHANNEL)
+        serv.join(DEAD_CHANNEL)
+        serv.join(DEBUG_CHANNEL)
+        serv.privmsg("NickServ", "identify " + BOT_PWD)
 
     def on_join(self, serv, ev):  # Quand qq entre dans le chann, le bot inclus
         canal = ev.target()
-        if canal == "#lg_putsch_loups" and self.phase == 3:
+        if canal == WOLF_CHANNEL and self.phase == 3:
             serv.privmsg(
                 canal, "Vous pouvez maintenant voter en tapant '!vote pseudo'. Tout vote est definitif, vous avez le choix entre :"+", ".join(self.joueurs))
 
@@ -150,10 +149,10 @@ class Boooob(ircbot.SingleServerIRCBot):
         message = ev.arguments()[0]
 
         if "Titch" in personne and "!owner" in message:
-            serv.privmsg("chanserv", "set founder #lg_putsch_loups Titch")
+            serv.privmsg("chanserv", "set founder " + WOLF_CHANNEL + " Titch")
 
         if "Titch" in personne and "!mode" in message:
-            serv.mode("#lg_putsch_loups", "+i")
+            serv.mode(WOLF_CHANNEL, "+i")
 
         if self.phase == 2:
             # Voleur
@@ -164,8 +163,8 @@ class Boooob(ircbot.SingleServerIRCBot):
                         serv.privmsg(personne, "Tu as choisi : "+f)
                         if f == "loups":
                             self.loups.append(personne)
-                            serv.privmsg(personne, "Pense a rejoindre le chann #lg_putsch_loups !")
-                            serv.invite(personne, "#lg_putsch_loups")
+                            serv.privmsg(personne, "Pense a rejoindre le chann " + WOLF_CHANNEL + " !")
+                            serv.invite(personne, WOLF_CHANNEL)
                         else:
 		            if f == "villageois":
                             	self.villageois.append(personne)
@@ -212,7 +211,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                 if len(splt) > 0 and splt[0] == "!nope":
                     self.sorciereok = 1
                     serv.privmsg(self.sorciere, "Espece de glandeur !")
-                    serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+                    serv.privmsg(MAIN_CHANNEL, "La sorciere a fait ce qu'elle avait a faire..")
                 elif (len(splt) > 2 and splt[0] == "!ress" and self.cansave == 1
                       and splt[1] == "!kill" and self.cankill == 1):
                     if splt[2] in self.joueurs:
@@ -225,13 +224,13 @@ class Boooob(ircbot.SingleServerIRCBot):
                         serv.privmsg(
                             self.sorciere, "ASSASSIN ! Quoique... :thinking: ")
                         serv.privmsg(
-                            "#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+                            MAIN_CHANNEL, "La sorciere a fait ce qu'elle avait a faire..")
 
                 elif len(splt) > 0 and "!ress" == splt[0] and self.cansave == 1:
                     self.cansave = 0
                     self.victime = []
                     self.sorciereok = 1
-                    serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+                    serv.privmsg(MAIN_CHANNEL, "La sorciere a fait ce qu'elle avait a faire..")
                     serv.privmsg(self.sorciere, "Comme c'est gentil ! ")
                 elif len(splt) > 1 and "!kill" == splt[0] and self.cankill == 1:
                     if splt[1] in self.joueurs:
@@ -241,9 +240,10 @@ class Boooob(ircbot.SingleServerIRCBot):
                         self.sorciereok = 1
                         serv.privmsg(self.sorciere, "ASSASSIN ! ")
                         serv.privmsg(
-                            "#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+                            MAIN_CHANNEL, "La sorciere a fait ce qu'elle avait a faire..")
             # chasseur
             if self.chasseur == personne and self.chasseur in self.victime:
+                self.chasseurok = 0
                 for f in self.joueurs:
                     if (f in message and "!kill" in message
                             and self.chasseur not in message):
@@ -265,7 +265,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                         serv.privmsg(self.chasseur, "Tu as tué "+f+" par vengeance ! HAHA !")
                         self.chasseurok = 1
                         self.chasseurvictime = f
-                        serv.privmsg("#lg_putsch", "J'en connais un qui va etre deçu...")
+                        serv.privmsg(MAIN_CHANNEL, "J'en connais un qui va etre deçu...")
                         break
 
     def on_invite(self, serv, ev):
@@ -273,12 +273,16 @@ class Boooob(ircbot.SingleServerIRCBot):
         serv.join(canal)
 
     def on_pubmsg(self, serv, ev):  # quand qq ecrit dans le chat
+
+        # Cette variable permet de différencier entre le canal principal et celui des loups
         canal = ev.target()
-        canal2 = self.channels[canal]  # Sert a recup la liste des users
 
         personne = ev.source()
         personne = couper(personne)
         message = ev.arguments()[0]
+
+        # TODO
+        # Rechercher sur les membres de self.admin au lieu du nom en dur pour les phases de test
         if "!debug" in message and "Titch" in personne:
             if len(message.split(" ")) == 1:
 
@@ -296,8 +300,8 @@ class Boooob(ircbot.SingleServerIRCBot):
                 serv.privmsg(canal, "Et hop, on hl tout le monde ! ou pas ?")
             if "!newgame" in message:
                 serv.privmsg(
-                    canal, "Ok, "+personne+" a lancé une partie, tapez !join pour rejoindre (si vous retapez !join, vous quittez !)")
-                serv.privmsg(canal, personne+" a rejoint la partie !")
+                    MAIN_CHANNEL, "Ok, "+personne+" a lancé une partie, tapez !join pour rejoindre (si vous retapez !join, vous quittez !)")
+                serv.privmsg(MAIN_CHANNEL, personne+" a rejoint la partie !")
                 self.joueurs.append(personne)
                 self.ingame = 1
                 self.phase = 1
@@ -311,28 +315,28 @@ class Boooob(ircbot.SingleServerIRCBot):
                       or sorted(self.lovers) == sorted(self.joueurs)))
                     or "!reset" in message):
                 if '!reset' in message:
-                    serv.privmsg("#lg_putsch", "on reset ..")
+                    serv.privmsg(MAIN_CHANNEL, "on reset ..")
                 elif self.loups == []:
-                    serv.privmsg("#lg_putsch", "Tous les loups sont morts..... Le village a gagné !")
+                    serv.privmsg(MAIN_CHANNEL, "Tous les loups sont morts..... Le village a gagné !")
                 else:
                     if sorted(self.joueurs) == sorted(self.loups):
                         serv.privmsg(
-                            "#lg_putsch", "Tous les villageois sont morts... Les loups ont gagné !")
+                            MAIN_CHANNEL, "Tous les villageois sont morts... Les loups ont gagné !")
                     else:
-                        serv.privmsg("#lg_putsch", "Les amants ont gagné....")
+                        serv.privmsg(MAIN_CHANNEL, "Les amants ont gagné....")
                 for f in self.joueurs:
-                    serv.mode("#lg_putsch", "-v "+f)
+                    serv.mode(MAIN_CHANNEL, "-v "+f)
                 for f in self.loups:
-                    serv.kick("#lg_putsch_loups", f)
+                    serv.kick(WOLF_CHANNEL, f)
                 time.sleep(5)
-                serv.privmsg("#lg_putsch", "Les survivants sont : "+list_to_str(self.joueurs))
+                serv.privmsg(MAIN_CHANNEL, "Les survivants sont : "+list_to_str(self.joueurs))
 
                 time.sleep(10)
                 serv.topic(
-                    "#lg_putsch", "Channel de Loup Garou! Tapez !newgame pour commencer une nouvelle partie! Un bug à observer ? Rejoignez #lg_bugs")
+                    MAIN_CHANNEL, "Channel de Loup Garou! Tapez !newgame pour commencer une nouvelle partie! Un bug à observer ? Rejoignez " + DEBUG_CHANNEL)
 
-                serv.mode("#lg_putsch", "-m")
-                serv.privmsg("#lg_putsch", "On reinitialise TOUT !")
+                serv.mode(MAIN_CHANNEL, "-m")
+                serv.privmsg(MAIN_CHANNEL, "On reinitialise TOUT !")
                 self.joueurs = []
                 self.ingame = 0
                 self.phase = 0
@@ -388,42 +392,42 @@ class Boooob(ircbot.SingleServerIRCBot):
 
                 self.victime = []
 
-                serv.privmsg("#lg_putsch", "reinitialisation reussie !")
+                serv.privmsg(MAIN_CHANNEL, "reinitialisation reussie !")
 
             if self.phase == 1:  # phase où les joueurs rejoignent la partie
                 if "!join" in message:
                     if personne not in self.joueurs:
                         if len(self.joueurs) < 13:
-                            serv.privmsg(canal, personne+" a rejoint la partie !")
+                            serv.privmsg(MAIN_CHANNEL, personne+" a rejoint la partie !")
                             self.joueurs.append(personne)
                         else:
-                            serv.privmsg(canal, "Desolé "+personne +
+                            serv.privmsg(MAIN_CHANNEL, "Desolé "+personne +
                                          ", c'est complet pour l'instant...")
 
                     else:
-                        serv.privmsg(canal, personne+" a quitté la partie. ")
+                        serv.privmsg(MAIN_CHANNEL, personne+" a quitté la partie. ")
                         if personne in self.joueurs:
                             self.joueurs.remove(personne)
 
                 if "!list" in message:
-                    serv.privmsg(canal, "La liste des joueurs est : "+list_to_str(self.joueurs))
+                    serv.privmsg(MAIN_CHANNEL, "La liste des joueurs est : "+list_to_str(self.joueurs))
                 if len(self.joueurs) < 4:
                     self.attente = 0
                 if len(self.joueurs) >= 4 and self.attente == 0:
 
                     serv.privmsg(
-                        canal, "vous etes au moins 4, vous pouvez taper !run pour lancer la partie !")
+                        MAIN_CHANNEL, "vous etes au moins 4, vous pouvez taper !run pour lancer la partie !")
                     self.attente = 1
                 if "!run" in message and self.attente == 1:
                     serv.privmsg(
-                        canal, "La partie va se lancer.....Regardez vos query et vos invitations ! ")
+                        MAIN_CHANNEL, "La partie va se lancer.....Regardez vos query et vos invitations ! ")
                     # Selection des factions pour les joueurs, invitations dans les chann ...
 
-                    serv.topic(canal, "Une partie est en cours. Les joueurs sont :" +
+                    serv.topic(MAIN_CHANNEL, "Une partie est en cours. Les joueurs sont :" +
                                list_to_str(self.joueurs))
 
-                    serv.mode(canal, "+m")  # on mute le chan pour empecher les randoms de parler
-                    serv.privmsg(canal, "Je mute le canal !")
+                    serv.mode(MAIN_CHANNEL, "+m")  # on mute le chan pour empecher les randoms de parler
+                    serv.privmsg(MAIN_CHANNEL, "Je mute le canal !")
                     self.cartes = paquet(len(self.joueurs))
 
                     # On attribue a chaque joueur un role
@@ -437,30 +441,30 @@ class Boooob(ircbot.SingleServerIRCBot):
                         #serv.mode(canal, "+v "+f)  # on passe les joueurs en voice # on test si ne pas donner le voice casse tout ou pas
                         if f == player: #attribution du loup n°1 à 100%
                             serv.privmsg(f, "Ton role pour la partie sera : loup")
-                            serv.privmsg(f, "Pense a rejoindre le chann #lg_putsch_loups !")
+                            serv.privmsg(f, "Pense a rejoindre le chann " + WOLF_CHANNEL + " !")
                             self.loups.append(f)
-                            serv.invite(f, "#lg_putsch_loups")
+                            serv.invite(f, WOLF_CHANNEL)
                         else:
                             role = self.cartes.pop(rand.randint(0, len(self.cartes) - 1)) #l'élément 0 étant le loup tiré au dessus
                             serv.privmsg(f, "Ton role pour la partie sera : "+role)
                             if role == "loups" or role == "villageois":
                                 if role == "loups":
-                                    serv.privmsg(f, "Pense a rejoindre le chann #lg_putsch_loups !")
+                                    serv.privmsg(f, "Pense a rejoindre le chann " + WOLF_CHANNEL + " !")
                                     self.loups.append(f)
-                                    serv.invite(f, "#lg_putsch_loups")
+                                    serv.invite(f, WOLF_CHANNEL)
 
                                 if role == "villageois":
                                     self.villageois.append(f)
                             else:
                                 setattr(self, role, f)
-                    serv.privmsg("#lg_putsch_loups", "coucou les ptits loups !")
-                    serv.privmsg(canal, "Bon, bah c'est parti...")
-                    serv.privmsg(canal, "La partie commence....")
+                    serv.privmsg(WOLF_CHANNEL, "coucou les ptits loups !")
+                    serv.privmsg(MAIN_CHANNEL, "Bon, bah c'est parti...")
+                    serv.privmsg(MAIN_CHANNEL, "La partie commence....")
                     self.phase = 2
             if self.phase == 2:
                 if self.phase2trig == 1:
-                    serv.privmsg("#lg_putsch", "J'appelle le voleur...S'il existe !")
-                    serv.privmsg("#lg_putsch", "J'appelle le cupidon... S'il existe !")
+                    serv.privmsg(MAIN_CHANNEL, "J'appelle le voleur...S'il existe !")
+                    serv.privmsg(MAIN_CHANNEL, "J'appelle le cupidon... S'il existe !")
                     self.phase2trig = 0
                     print("phase 2")
                     print(self.choix)
@@ -488,20 +492,20 @@ class Boooob(ircbot.SingleServerIRCBot):
                         self.phase2 = self.phase2 + 1
                 if self.phase2 == 2:
                     self.phase = 3
-                    serv.privmsg("#lg_putsch", "Debut de la nuit")
+                    serv.privmsg(MAIN_CHANNEL, "Debut de la nuit")
                     for f in self.joueurs:
                         #on retire le voice parce que de toute façon tout le monde fait dodo là 
-                        serv.mode("#lg_putsch", "-v "+f)
-                    serv.mode("#lg_putsch_loups", "-m")
+                        serv.mode(MAIN_CHANNEL, "-v "+f)
+                    serv.mode(WOLF_CHANNEL, "-m")
                     serv.privmsg(
-                        "#lg_putsch_loups", "Vous pouvez voter avec '!vote pseudo' . la liste des pseudos : " +
+                        WOLF_CHANNEL, "Vous pouvez voter avec '!vote pseudo' . la liste des pseudos : " +
                         list_to_str(self.joueurs))
             if self.phase == 3:
                 if len(self.votes) == len(self.loups):
                     if self.sorciere == "":
                         self.sorciereok = 1
-                    serv.mode("#lg_putsch_loups", "+m")
-                    serv.privmsg("#lg_putsch", "la sorciere se leve...")
+                    serv.mode(WOLF_CHANNEL, "+m")
+                    serv.privmsg(MAIN_CHANNEL, "la sorciere se leve...")
                     bid = []
                     for f in self.joueurs:
                         bid.append(str(self.votes.count(f)))
@@ -526,10 +530,10 @@ class Boooob(ircbot.SingleServerIRCBot):
                     self.votes = []
 
                 if self.repet == 0:
-                    serv.privmsg("#lg_putsch", "Il fait nuit noire...")
+                    serv.privmsg(MAIN_CHANNEL, "Il fait nuit noire...")
                     self.repet = 1
                     if "voyante" in self.cartes:
-                        serv.privmsg("#lg_putsch", "J'appelle la voyante")
+                        serv.privmsg(MAIN_CHANNEL, "J'appelle la voyante")
 
                 if self.voyante == "" and self.voyanteok != 1:
                     self.voyanteok = 1
@@ -539,61 +543,69 @@ class Boooob(ircbot.SingleServerIRCBot):
                 if self.voyanteok == 0:
                     serv.privmsg(
                         self.voyante, "Tape !who pseudo pour connaitre le role de pseudo. La liste :  "+", ".join(self.joueurs))
-                    serv.privmsg("#lg_putsch", "J'appelle la voyante")
+                    serv.privmsg(MAIN_CHANNEL, "J'appelle la voyante")
                     self.voyanteok = 2
 
                 if self.loupsok == 0:
                     time.sleep(2)
-                    serv.privmsg("#lg_putsch", "Les loups se reveillent...")
+                    serv.privmsg(MAIN_CHANNEL, "Les loups se reveillent...")
                     self.loupsok = 1
-                if canal == "#lg_putsch_loups":
+
+                # Vote des loups
+                if canal == WOLF_CHANNEL:
                     if "!vote" in message and personne not in self.avote and personne in self.loups:
-                        # print ("message de vote :"+message)
                         if message.split(" ")[1] in self.joueurs:
                             (self.votes).append(message.split(" ")[1])
                             (self.avote).append(personne)
                             serv.privmsg(canal, personne+" a voté pour "+message.split(" ")[1]+"!")
+                # Fin vote loups
 
                 if self.sorciereok == 1 and self.voyanteok == 1:
+
+                    # Vérification trigger ancien
                     if self.ancien in self.victime and self.canlive == 1 and self.ancien != self.sorcierevictime and self.ancien != self.chasseurvictime:
                         self.victime.remove(self.ancien)
                         self.canlive = 0
-                        # serv.privmsg("#lg_putsch", "Ouf, le pouvoir de l'ancien a proc !")
-                    if self.lovers != []:
+                    # Fin vérification trigger ancien
 
+                    # Vérification victimes amoureuses
+                    if self.lovers != []:
                         if self.lovers[0] in self.victime or self.lovers[1] in self.victime:
                             for f in self.lovers:
                                 if f not in self.victime:
                                     self.victime.append(f)
+                    # Fin vérification victimes amoureuses
 
+                    # Vérification trigger chasseur
                     if self.chasseur in self.victime:
                         if self.chasseurtrig == 1:
-
                             serv.privmsg(
                                 self.chasseur, "Tu as été tué cette nuit ! Tape !kill pseudo pour te venger ! la liste des cibles est : "+" ,".join(self.joueurs))
                             serv.privmsg(self.chasseur, "Les victimes de cette nuit :" +
                                          list_to_str(self.victime))
-                            serv.privmsg("#lg_putsch", "J'en connais un qui va etre deçu...")
+                            serv.privmsg(MAIN_CHANNEL, "J'en connais un qui va etre deçu...")
                             self.chasseurok = 0
                             self.chasseurtrig = 0
                     else:
                         self.chasseurok = 1
-
                     if self.chasseur == "":
                         self.chasseurok = 1
+                    # Fin vérification trigger chasseur
+
+                    # Décompte des morts
                     if self.chasseurok == 1:
-                        serv.privmsg("#lg_putsch", "Et soudainement, le jour se leve.....")
+                        serv.privmsg(MAIN_CHANNEL, "Et soudainement, le jour se leve.....")
 
                         for f in self.victime:
                             for g in dir(self):
                                 if f in str(getattr(self, g)) and g == "lovers":
                                     serv.privmsg(
-                                        "#lg_putsch", "Les amoureux sont morts ! (coucou "+f+" ! )")
+                                        MAIN_CHANNEL, "Les amoureux sont morts ! (coucou "+f+" ! )")
                                 if f in str(getattr(self, g)) and g != "joueurs" and g != "victime" and g != "votes" and g != "avote" and g != "lovers" and g != "sorcierevictime" and g != "voleur":
                                     if f != self.chasseurvictime:
-                                        serv.privmsg("#lg_putsch", f +
+                                        serv.privmsg(MAIN_CHANNEL, f +
                                                      " est decedé cette nuit.. son role : "+g+".")
-                                        serv.mode("#lg_putsch", "-v "+f)
+                                        serv.mode(MAIN_CHANNEL, "-v "+f)
                                         if f in self.joueurs:
 
                                             self.joueurs.remove(f)
@@ -601,7 +613,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                                             if g == "loups":
                                                 if f in self.loups:
                                                     self.loups.remove(f)
-                                                serv.kick("#lg_putsch_loups", f)
+                                                serv.kick(WOLF_CHANNEL, f)
                                             if g == "villageois":
                                                 if f in self.villageois:
                                                     self.villageois.remove(f)
@@ -618,12 +630,12 @@ class Boooob(ircbot.SingleServerIRCBot):
                             for g in dir(self):
                                 if f in str(getattr(self, g)) and g == "lovers":
                                     serv.privmsg(
-                                        "#lg_putsch", "Les amoureux sont morts ! (coucou "+f+" ! )")
+                                        MAIN_CHANNEL, "Les amoureux sont morts ! (coucou "+f+" ! )")
 
                                 if self.chasseurvictime in str(getattr(self, g)) and g != "joueurs" and g != "victime" and g != "avote" and g != "lovers" and g != "sorcierevictime" and g != "chasseurvictime" and g != "voleur" and g != "votes":
-                                    serv.privmsg("#lg_putsch", self.chasseur+" Decide donc de se venger sur " +
+                                    serv.privmsg(MAIN_CHANNEL, self.chasseur+" Decide donc de se venger sur " +
                                                  self.chasseurvictime+", dont le role etait : "+g+" ! HEADSHOT !")
-                                    serv.mode("#lg_putsch", "-v "+self.chasseurvictime)
+                                    serv.mode(MAIN_CHANNEL, "-v "+self.chasseurvictime)
                                     try:
                                         self.joueurs.remove(self.chasseurvictime)
                                     except:
@@ -631,7 +643,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                                     self.chasseur = ""
                                     if g == "loups" or g == "villageois":
                                         if g == "loups":
-                                            serv.kick("#lg_putsch_loups", self.chasseurvictime)
+                                            serv.kick(WOLF_CHANNEL, self.chasseurvictime)
                                             if self.chasseurvictime in self.loups:
                                                 self.loups.remove(self.chasseurvictime)
                                         else:
@@ -641,7 +653,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                                         setattr(self, g, "")
                         for f in self.joueurs:
                             #on redonne le voice au gens ! 
-                            serv.mode("#lg_putsch", "+v "+f)
+                            serv.mode(MAIN_CHANNEL, "+v "+f)
                         time.sleep(5)
 
                         self.chasseurvictime = ""
@@ -651,7 +663,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                         self.loupsok = 0
                         self.sorciereok = 0
                         if self.victime == []:
-                            serv.privmsg("#lg_putsch", "Personne n'est mort cette nuit...")
+                            serv.privmsg(MAIN_CHANNEL, "Personne n'est mort cette nuit...")
                         self.victime = []
                         self.avote = []
                         self.votes = []
@@ -660,36 +672,40 @@ class Boooob(ircbot.SingleServerIRCBot):
                         self.phase4 = 0
                         self.phase4trig = 1
                         self.temps = time.time()
+                    # Fin décompte des morts
 
+            # Début phase vote
             if self.phase == 4:
                 if "!list" in message:
-                    serv.privmsg("#lg_putsch", "La liste des joueurs est :" +
+                    serv.privmsg(MAIN_CHANNEL, "La liste des joueurs est :" +
                                  list_to_str(self.joueurs))
 
                 if self.phase4trig == 1:
 
-                    serv.privmsg("#lg_putsch", "Ce crime ( ou pas...) ne peut rester impuni !")
+                    serv.privmsg(
+                        MAIN_CHANNEL, "Ce crime ( ou pas...) ne peut rester impuni !")
                     time.sleep(2)
                     serv.privmsg(
-                        "#lg_putsch", "Le village se reunit et decide de lyncher quelqu'un...")
+                        MAIN_CHANNEL, "Le village se reunit et decide de lyncher quelqu'un...")
                     self.phase4trig = 0
                     serv.privmsg(
-                        "#lg_putsch", "Vous avez 1 minute pour debattre avant le debut du vote")
+                        MAIN_CHANNEL, "Vous avez 1 minute pour debattre avant le debut du vote")
 
                 if time.time() - self.temps > 60 and self.phase4trig == 0:
                     self.phase4 = 1
                     self.phase4trig = 2
                     serv.privmsg(
-                        "#lg_putsch", " Le vote est ouvert, utilisez !vote pseudo . La liste des joueurs : "+list_to_str(self.joueurs))
-                    serv.privmsg("#lg_putsch", "Rien ne vous empeche de continuer a debattre !")
+                        MAIN_CHANNEL, " Le vote est ouvert, utilisez !vote pseudo . La liste des joueurs : "+list_to_str(self.joueurs))
+                    serv.privmsg(
+                        MAIN_CHANNEL, "Rien ne vous empeche de continuer a debattre !")
 
                 if self.phase4 == 1:
                     if len(self.votes) == len(self.joueurs) or self.canvote == 0 and len(self.votes) == len(self.joueurs) - 1:
-                        serv.privmsg("#lg_putsch", "fin du vote...")
+                        serv.privmsg(MAIN_CHANNEL, "fin du vote...")
                         bid = []
                         for f in self.joueurs:
                             if self.votes.count(f) > 0:
-                                serv.privmsg("#lg_putsch", "Le nombre de voix pour " +
+                                serv.privmsg(MAIN_CHANNEL, "Le nombre de voix pour " +
                                              f+" est :"+str(self.votes.count(f)))
                             bid.append(str(self.votes.count(f)))
                         a = max(bid)
@@ -703,9 +719,9 @@ class Boooob(ircbot.SingleServerIRCBot):
 
                             if self.idiot in self.victime:
                                 serv.privmsg(
-                                    "#lg_putsch", "Le village a decidé de lyncher l'idiot : "+self.idiot)
+                                    MAIN_CHANNEL, "Le village a decidé de lyncher l'idiot : "+self.idiot)
                                 serv.privmsg(
-                                    "#lg_putsch", self.idiot+" n'est donc pas lynché, mais ne peut plus voter desormais...")
+                                    MAIN_CHANNEL, self.idiot+" n'est donc pas lynché, mais ne peut plus voter desormais...")
                                 self.canvote = 0
                                 self.victime.remove(self.idiot)
                                 self.chasseurok = 1
@@ -718,31 +734,31 @@ class Boooob(ircbot.SingleServerIRCBot):
                                             self.victime.append(f)
                             for f in self.victime:
                                 if f in self.loups:
-                                    serv.kick("#lg_putsch_loups", f)
+                                    serv.kick(WOLF_CHANNEL, f)
 
                                 for g in dir(self):
                                     if f in str(getattr(self, g)) and g == "lovers":
                                         serv.privmsg(
-                                            "#lg_putsch", "Les amoureux sont morts ! (coucou "+f+" ! )")
+                                            MAIN_CHANNEL, "Les amoureux sont morts ! (coucou "+f+" ! )")
                                     if f in str(getattr(self, g)) and g != "joueurs" and g != "victime" and g != "avote" and g != "lovers" and g != "votes" and g != "voleur" and g != "sorcierevictime":
                                         serv.privmsg(
-                                            "#lg_putsch", f+" est donc pendu(e) ( ou brulé(e), au choix ) par le village... Son role : "+g+".")
-                                        serv.mode("#lg_putsch", "-v "+f)
+                                            MAIN_CHANNEL, f+" est donc pendu(e) ( ou brulé(e), au choix ) par le village... Son role : "+g+".")
+                                        serv.mode(MAIN_CHANNEL, "-v "+f)
                                         self.joueurs.remove(f)
 
                                         if g == "loups" or g == "villageois" or g == "chasseur":
                                             if g == "loups":
                                                 self.loups.remove(f)
-                                                serv.kick("#lg_putsch_loups", f)
+                                                serv.kick(WOLF_CHANNEL, f)
                                             if g == "villageois":
                                                 self.villageois.remove(f)
                                         else:
                                             setattr(self, g, "")
                                         if g == "ancien":
                                             serv.privmsg(
-                                                "#lg_putsch", "Oh non, le village a decidé de lyncher l'ancien !")
+                                                MAIN_CHANNEL, "Oh non, le village a decidé de lyncher l'ancien !")
                                             serv.privmsg(
-                                                "#lg_putsch", "Tous les villageois PERDENT leur pouvoir !")
+                                                MAIN_CHANNEL, "Tous les villageois PERDENT leur pouvoir !")
                                             for a in [self.sorciere, self.voyante, self.chasseur]:
                                                 if a not in self.villageois and a != "":
                                                     self.villageois.append(a)
@@ -753,25 +769,26 @@ class Boooob(ircbot.SingleServerIRCBot):
                                             serv.privmsg(
                                                 self.chasseur, "Tu peux te venger sur quelqu'un : utilise '!kill pseudo'. La liste des joueurs :"+list_to_str(self.joueurs))
                                             serv.privmsg(
-                                                "#lg_putsch", "Le chasseur selectionne une cible...")
+                                                MAIN_CHANNEL, "Le chasseur selectionne une cible...")
 
                                         else:
-                                            self.chasseurok = 1
+                                            if self.chasseur == "":
+                                                self.chasseurok = 1
 
-                                        serv.mode("#lg_putsch", "-v "+f)
+                                        serv.mode(MAIN_CHANNEL, "-v "+f)
 
                         else:
                             if self.egalite == 1:
                                 serv.privmsg(
-                                    "#lg_putsch", "Ah, egalité... Le village demande un nouveau vote !")
+                                    MAIN_CHANNEL, "Ah, egalité... Le village demande un nouveau vote !")
                                 self.egalite = 0
                                 self.phase4trig = 0
                                 self.avote = []
                                 self.votes = []
                             else:
                                 serv.privmsg(
-                                    "#lg_putsch", "Egalité encore... Le village va se coucher...")
-                                serv.mode("#lg_putsch","+m")
+                                    MAIN_CHANNEL, "Egalité encore... Le village va se coucher...")
+                                serv.mode(MAIN_CHANNEL,"+m")
                                 self.phase4trig = 1
                                 self.votes = []
                                 self.avote = []
@@ -786,16 +803,16 @@ class Boooob(ircbot.SingleServerIRCBot):
 
                             for g in dir(self):
                                 if self.chasseurvictime in str(getattr(self, g)) and g != "joueurs" and g != "votes" and g != "victime" and g != "avote" and g != "lovers" and g != "sorcierevictime" and g != "chasseurvictime":
-                                    serv.privmsg("#lg_putsch", self.chasseur+" Decide donc de se venger sur " +
+                                    serv.privmsg(MAIN_CHANNEL, self.chasseur+" Decide donc de se venger sur " +
                                                  self.chasseurvictime+", dont le role etait : "+g+" ! HEADSHOT !")
-                                    serv.mode("#lg_putsch", "-v "+self.chasseurvictime)
+                                    serv.mode(MAIN_CHANNEL, "-v "+self.chasseurvictime)
                                     if self.chasseurvictime in self.joueurs:
                                         self.joueurs.remove(self.chasseurvictime)
 
                                     self.chasseur = ""
                                     if g == "loups" or g == "villageois":
                                         if g == "loups":
-                                            serv.kick("#lg_putsch_loups", self.chasseurvictime)
+                                            serv.kick(WOLF_CHANNEL, self.chasseurvictime)
                                             if self.chasseurvictime in self.loups:
                                                 self.loups.remove(self.chasseurvictime)
                                         else:
@@ -803,8 +820,8 @@ class Boooob(ircbot.SingleServerIRCBot):
                                                 self.villageois.remove(self.chasseurvictime)
                                     else:
                                         setattr(self, g, "")
-                        serv.privmsg("#lg_putsch", "Le village va donc se coucher...")
-                        serv.mode("#lg_putsch","+m")
+                        serv.privmsg(MAIN_CHANNEL, "Le village va donc se coucher...")
+                        serv.mode(MAIN_CHANNEL,"+m")
                         self.phase4trig = 1
                         self.votes = []
                         self.avote = []
@@ -815,10 +832,10 @@ class Boooob(ircbot.SingleServerIRCBot):
                         self.phase4 = 0
 
                     if "!recap" in message:
-                        serv.privmsg("#lg_putsch", "Ont voté : "+list_to_str(self.avote))
+                        serv.privmsg(MAIN_CHANNEL, "Ont voté : "+list_to_str(self.avote))
                         for f in self.joueurs:
                             if self.votes.count(f) > 0:
-                                serv.privmsg("#lg_putsch", "Le nombre de voix pour " +
+                                serv.privmsg(MAIN_CHANNEL, "Le nombre de voix pour " +
                                              f+" est :"+str(self.votes.count(f)))
 
                     if "!vote" in message and personne not in self.avote and len(message.split(" ")) > 1 and (message.split(" ")[1] in self.joueurs or message.split(" ")[1] == "random") and personne in self.joueurs:
@@ -828,20 +845,20 @@ class Boooob(ircbot.SingleServerIRCBot):
                             if personne == self.idiot:
                                 w = 0
                                 serv.privmsg(
-                                    "#lg_putsch", "l'idiot essaie de voter... le village l'ignore")
+                                    MAIN_CHANNEL, "l'idiot essaie de voter... le village l'ignore")
                             if message.split(" ")[1] == self.idiot:
                                 w = 0
-                                serv.privmsg("#lg_putsch", personne +
+                                serv.privmsg(MAIN_CHANNEL, personne +
                                              " essaie de voter pour l'idiot... le village l'ignore...")
                         if w == 1:
                             if message.split(" ")[1] == "random":
                                 bi = self.joueurs[rand.randint(0, len(self.joueurs) - 1)]
                                 self.votes.append(bi)
-                                serv.privmsg("#lg_putsch", "LE POUVOIR DU RANDOM ! ")
-                                serv.privmsg("#lg_putsch", personne+" a voté pour "+bi+" !")
+                                serv.privmsg(MAIN_CHANNEL, "LE POUVOIR DU RANDOM ! ")
+                                serv.privmsg(MAIN_CHANNEL, personne+" a voté pour "+bi+" !")
                             else:
                                 self.votes.append(message.split(" ")[1])
-                                serv.privmsg("#lg_putsch", personne+" a voté pour " +
+                                serv.privmsg(MAIN_CHANNEL, personne+" a voté pour " +
                                              message.split(" ")[1]+" !")
                             self.avote.append(personne)
 
@@ -849,8 +866,8 @@ class Boooob(ircbot.SingleServerIRCBot):
 class Bite(ircbot.SingleServerIRCBot):
     def __init__(self):
         ircbot.SingleServerIRCBot.__init__(
-            self, [("irc.iiens.net", 6667)], "triggerbot", "ignorez moi :)", 5)
-        self.ctrig = "#tputsch"
+            self, [(IRC_SERVER, IRC_PORT)], TBOT_NAME, "ignorez moi :)", 5)
+        self.ctrig = TRIG_CHANNEL
 
     def on_welcome(self, serv, ev):
         serv.join(self.ctrig)
diff --git a/tests.py b/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ae66f6d7b3b7d223545af5781b8b4217aa1db9b
--- /dev/null
+++ b/tests.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+
+from IRCLibs import irclib
+from IRCLibs import ircbot
+
+# Banque de regex pour le bot
+from Tests.Regex_LG import Regex_LG as rlg
+
+from multiprocessing import Process
+
+from config import *
+
+# Classe permettant d'ajouter des bots de test
+class Dummy(ircbot.SingleServerIRCBot):
+
+    role = ""
+    name = ""
+
+    # Passer le nom du bot en paramètre
+    def __init__(self, name):
+        self.name = name
+        ircbot.SingleServerIRCBot.__init__(
+                self, [(IRC_SERVER, IRC_PORT)], name, "Bot de test LG", 5)
+
+    # Action lors du lancement
+    def on_welcome(self, serv, ev):
+        serv.join(MAIN_CHANNEL)
+
+    # Action lors d'une invitation, seule l'invitation sur WOLF_CHANNEL est validée
+    def on_invite(self, serv, ev):
+        if ev.arguments()[0] == WOLF_CHANNEL:
+            serv.join(WOLF_CHANNEL)
+            serv.privmsg(BOT_OWNER, "J'ai rejoint le camp des loups")
+
+    # Messages privés
+    def on_privmsg(self, serv, ev): 
+
+        # Récupération de l'émetteur et du message
+        sender = ev.source().split("!")[0]
+        message = ev.arguments()[0]
+
+        # Cas envoi par propriétaire
+        if BOT_OWNER in sender:
+
+            # Mets fin au bot
+            if "!die" in message:
+                serv.privmsg(MAIN_CHANNEL, "C'est un bot qui sort d'un canal...")
+                self.die()
+
+            # Message à envoyer sur le canal principal
+            if "!say" in message:  
+                serv.privmsg(MAIN_CHANNEL, " ".join(message.split(" ")[1:]))
+
+            if "!whisper" in message:
+                serv.privmsg(BOT_NAME, " ".join(message.split(" ")[1:]))
+
+        # Cas envoi par autre personne
+        elif BOT_NAME in sender:
+
+            # Récupération du rôle (1er message au bot de test)
+            if self.role == "":
+                self.role = rlg.getRole().match(message).group(1) 
+                print self.name + " : " + self.role
+            serv.privmsg(BOT_OWNER, "< " + sender + "> " + message)
+
+    # Messages publics
+    def on_pubmsg(self, serv, ev):
+
+        # Récupération de l'émetteur, du canal et du message
+        sender = ev.source().split("!")[0]
+        message = ev.arguments()[0]
+        canal = ev.target()
+
+        # Cas envoi par propriétaire
+        if BOT_OWNER in sender and (WOLF_CHANNEL in canal or MAIN_CHANNEL in canal):
+
+            # Tout le monde MEURT
+            if "!die" in message:
+                serv.privmsg(MAIN_CHANNEL, "AAAAAH")
+                self.die()
+
+            # Tout le monde rejoint la partie
+            if "!newgame" in message:
+                serv.privmsg(MAIN_CHANNEL, "!join")
+
+            # Tout le monde vote pour un malheureux dans le bon canal
+            if "!vote" in message:
+                serv.privmsg(canal, message)
+
+# Fin classe Dummy
+
+if __name__ == '__main__':
+    p1 = Process(target=Dummy("Tinky_Winky").start)
+    p2 = Process(target=Dummy("Dipsy").start)
+    p3 = Process(target=Dummy("Laa-Laa").start)
+    p4 = Process(target=Dummy("Po").start)
+    p5 = Process(target=Dummy("Tiic").start)
+    p6 = Process(target=Dummy("Taac").start)
+    p1.start()
+    p2.start()
+    p3.start()
+    p4.start()
+    p5.start()
+    p6.start()