diff --git a/dist/game/data/scripts/ai/npc/Minigame/Minigame.java b/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
index 326ced2fc56a063895aa8187c08bbfc0a8a94771..a87a3461d1c97eba00f4e8a9ef1a6c9755a6b3ad 100644
--- a/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
+++ b/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
@@ -159,7 +159,7 @@ public final class Minigame extends AbstractNpcAI
 					room.burnThemAll();
 					startQuestTimer("off", 2000, npc, null);
 					final ConsumerEventListener listener = new ConsumerEventListener(room.getParticipant(), EventType.ON_CREATURE_SKILL_USE, (OnCreatureSkillUse listenerEvent) -> onSkillUse(listenerEvent), room);
-					room.getParticipant().addListener(listener);
+					room.setListener(listener);
 					room.setCurrentPot(0);
 				}
 				break;
@@ -185,11 +185,7 @@ public final class Minigame extends AbstractNpcAI
 				cancelQuestTimer("expire", npc, null);
 				cancelQuestTimer("hurry_up", npc, null);
 				cancelQuestTimer("hurry_up2", npc, null);
-				room.getManager().setTarget(null);
-				room.setParticipant(null);
-				room.setStarted(false);
-				room.setAttemptNumber(1);
-				room.setCurrentPot(0);
+				room.clean();
 				break;
 			}
 			case "afterthat":
@@ -391,6 +387,7 @@ public final class Minigame extends AbstractNpcAI
 		private int _attemptNumber;
 		private int _currentPot;
 		private final int _order[];
+		private ConsumerEventListener _listener;
 		
 		public MinigameRoom(L2Npc[] burners, L2Npc manager)
 		{
@@ -530,6 +527,34 @@ public final class Minigame extends AbstractNpcAI
 		{
 			return _order;
 		}
+		
+		/**
+		 * Set a listener for player inside room
+		 * @param listener
+		 */
+		public void setListener(ConsumerEventListener listener)
+		{
+			_listener = listener;
+			_participant.addListener(listener);
+		}
+		
+		/**
+		 * Clean the room values
+		 */
+		public void clean()
+		{
+			if (_listener != null)
+			{
+				_participant.removeListener(_listener);
+				_listener = null;
+			}
+			
+			getManager().setTarget(null);
+			setParticipant(null);
+			setStarted(false);
+			setAttemptNumber(1);
+			setCurrentPot(0);
+		}
 	}
 	
 	public static void main(String[] args)