diff --git a/extensions/click_game.py b/extensions/click_game.py
index 9488c0cd9d24ec588a42a4a362fa6878ffc88623..8b2c62ea7c159bdf4640c59274a7a77d2fc08f51 100644
--- a/extensions/click_game.py
+++ b/extensions/click_game.py
@@ -1,3 +1,4 @@
+import json
 import os
 import random
 from typing import Dict
@@ -9,15 +10,27 @@ from discord.app_commands import Choice
 from discord.ext import commands, tasks
 
 
-
 @app_commands.guild_only()
 class ClickGame(commands.Cog):
     def __init__(self, bot):
         self.bot = bot
         self.config: Dict = bot.config["extensions"][__name__.split(".")[-1]]
         self.bot.view_manager.register("on_click", self.on_click)
+        self.players = {}
         self.msg_count: int = 0
         self.last_sent: datetime = datetime(1970, 1, 1)
+        self.load()
+
+    def load(self):
+        try:
+            with open("data/players.json", "r") as players_file:
+                self.players = json.load(players_file)
+        except FileNotFoundError:
+            pass
+
+    def save(self):
+        with open("data/players.json", "w") as players_file:
+            json.dump(self.players, players_file)
 
     @commands.Cog.listener()
     async def on_message(self, message: Message):
@@ -80,6 +93,14 @@ class ClickGame(commands.Cog):
         await interaction.followup.send(content=leaderboard, ephemeral=True)
 
     async def on_click(self, button: discord.ui.Button, interaction: Interaction, value=None):
+        player = self.get_player(interaction.user.id)
+
+        if player.get(str(interaction.message.id)):
+            await interaction.response.send_message("Du hast bereits mit diesem Monster interagiert. Versuche es beim nächsten noch mal.", ephemeral=True)
+            return
+
+        player[str(interaction.message.id)] = value
+
         if value > 0:
             await interaction.response.send_message(
                 f"Super! Du hast das Monster geschwächt und erhältst zur Belohnung {value} Punkte.", ephemeral=True)
@@ -93,19 +114,30 @@ class ClickGame(commands.Cog):
             interaction.response.send_message("Du warst zu spät. Glücklicherweise wurde das Monster bereits besiegt.",
                                               ephemeral=True)
 
+        self.save()
+
         if button.value == 0 and interaction.message:
             await interaction.message.delete()
 
     def get_view(self, plus_emoji, minus_emoji):
         buttons = [
-            {"style": ButtonStyle.gray, "value": 5, "custom_id": "click_game:plus", "emoji": plus_emoji},
-            {"style": ButtonStyle.gray, "value": -5, "custom_id": "click_game:minus", "emoji": minus_emoji}
+            {"style": ButtonStyle.gray, "value": self.config["max_points"], "custom_id": "click_game:plus",
+             "emoji": plus_emoji},
+            {"style": ButtonStyle.gray, "value": -1 * self.config["max_points"], "custom_id": "click_game:minus",
+             "emoji": minus_emoji}
         ]
 
         random.shuffle(buttons)
 
         return self.bot.view_manager.view(buttons, "on_click")
 
+    def get_player(self, user_id: int):
+        if player := self.players.get(str(user_id)):
+            return player
+
+        player = {}
+        self.players[str(user_id)] = player
+        return player
     async def get_leaderboard(self, guild: Guild, max_entries: int = 10):
         message = f"**__Elm-Street Leaderboard__**\n\n" \
                   f"Wie süß bist du wirklich??\n" \
@@ -115,21 +147,20 @@ class ClickGame(commands.Cog):
                   f"==================================================\n"
 
         place = 0
-
+        scores = self.get_scores()
         ready = False
         last_score = -1
-        for player_id, player_data in sorted(self.players.items(), key=lambda item: item[1]["sweets"], reverse=True):
-            value = player_data["sweets"]
+        for player_id, score in sorted(scores.items(), key=lambda item: item[1], reverse=True):
             member = await guild.fetch_member(int(player_id))
             try:
-                if last_score != value:
+                if last_score != score:
                     place += 1
-                last_score = value
+                last_score = score
                 if 0 < max_entries < place:
                     if ready:
                         break
-                message += f"{str(place).rjust(4)}. | {str(value).rjust(5)} | "
-                message += f"{member.display_name}#{member.discriminator}\n"
+                message += f"{str(place).rjust(4)}. | {str(score).rjust(5)} | "
+                message += f"{member.name}" + (f"#{member.discriminator}\n" if member.discriminator > 0 else "")
             except:
                 pass
 
@@ -137,24 +168,15 @@ class ClickGame(commands.Cog):
 
         return message
 
-    @tasks.loop(minutes=5)
-    async def increase_courage(self):
-        pass
-
-    @increase_courage.before_loop
-    async def before_increase(self):
-        pass
-        # await sleep(10)
-
-    # @commands.Cog.listener(name="on_voice_state_update")
-    # async def voice_state_changed(self, member, before, after):
-    #     if not after.channel:
-    #         voice_channel_left = before.channel
-    #         if len(voice_channel_left.members) == 0 and \
-    #                 voice_channel_left.category_id == self.halloween_category_id and \
-    #                 not self.get_group_by_voice_id(voice_channel_left.id):
-    #             await voice_channel_left.delete()
+    def get_scores(self):
+        scores = {}
+        for player_id, messages in self.players.items():
+            score = 0
+            for value in messages.values():
+                score += value
+            scores[player_id] = score
 
+        return scores
 
 async def setup(bot: commands.Bot) -> None:
     await bot.add_cog(ClickGame(bot))
diff --git a/images/img01.png b/images/img01.png
index 7945985f0d2dddd26ee1346ee0a79fc058c65190..386a22430ca783c91b7a4c93f84a8770d47b2bf9 100644
Binary files a/images/img01.png and b/images/img01.png differ
diff --git a/images/img02.png b/images/img02.png
index 36fd22528423cf5849df588ad0c022c704b5de27..ae6eaa1bf5a7b1d525824126e830e36d63c2909e 100644
Binary files a/images/img02.png and b/images/img02.png differ
diff --git a/images/img03.png b/images/img03.png
index c8b9a51bc978f151dc8ff86227be0713cb64a28c..d86a6111c9ac2b83c39999e6202e88907492f7e6 100644
Binary files a/images/img03.png and b/images/img03.png differ
diff --git a/utils.py b/utils.py
index fe81c1adb8fc5b1fa69b387753fe628210c8bb67..6c279c396195b324eee7628cabfb67808d417018 100644
--- a/utils.py
+++ b/utils.py
@@ -6,7 +6,7 @@ from discord.ext.commands import Context
 from discord import ButtonStyle, Embed, User, Member
 from dotenv import load_dotenv
 
-from views.dialog_view import DialogView
+from deprecated.views.dialog_view import DialogView
 
 load_dotenv()
 DATE_TIME_FMT = os.getenv("DISCORD_DATE_TIME_FORMAT")
diff --git a/view_manager.py b/view_manager.py
index 2249ac9bd9df951870ec1340cf5240c550df0909..5a74ad5812f7e165bfa952363d87ae128c99577c 100644
--- a/view_manager.py
+++ b/view_manager.py
@@ -3,7 +3,7 @@ import uuid
 
 import discord
 
-from views.dialog_view import DialogView
+from deprecated.views.dialog_view import DialogView
 
 
 class ViewManager: