diff --git a/src/events:TODO/messageCreate.ts b/src/events:TODO/messageCreate.ts
new file mode 100644
index 0000000..46e8795
--- /dev/null
+++ b/src/events:TODO/messageCreate.ts
@@ -0,0 +1,32 @@
+const {addLog} = require('../scripts/addLogs');
+
+module.exports = {
+    name:'messageCreate',
+    once:false,
+    async execute(message) {
+
+        const guildConfig = require(`../data/guilds/${message.guild.id}/config.json`);
+        if(guildConfig.images.enabled) {
+
+        }
+        if(guildConfig.wordFilter.enabled) {
+            for(word of guildConfig.wordFilter.words.strict) {
+                if(message.content.toLowerCase().includes(word)) {
+                    message.delete();
+                    // message.channel.send(`${message.author} has been warned for using a banned word.`);
+                    break;
+                }
+            }
+            for(word of message.content.split(' ')) {
+                if(guildConfig.wordFilter.words.soft.includes(word)) {
+                    message.delete();
+                    // message.channel.send(`${message.author} has been warned for using a banned word.`);
+                    break;
+                }
+            }
+            
+        }
+
+
+    }
+}
\ No newline at end of file
