diff --git a/commands/autodelete.js b/commands/autodelete.js
index 502d99f..3236dbd 100644
--- a/commands/autodelete.js
+++ b/commands/autodelete.js
@@ -3,10 +3,60 @@ let deleteQueue = [];
 let isProcessingQueue = false;
 let messageTimers = new Map();
 let ignoredMessages = new Set();
+let ignoredChannels = new Set();
+let ignoredUsers = new Set();
+let ignoredGuilds = new Set();
 let isFirstDeletion = true;
 let deletedMessages = new Set();
 const CACHE_CLEANUP_INTERVAL = 30 * 60 * 1000;
 const { sendCommandResponse } = require('../utils/messageUtils');
+const fs = require('fs');
+const path = require('path');
+
+const DATA_DIR = path.join(__dirname, '..', 'data');
+const IGNORE_FILE = path.join(DATA_DIR, 'autodelete_ignores.json');
+
+if (!fs.existsSync(DATA_DIR)) {
+    try {
+        fs.mkdirSync(DATA_DIR, { recursive: true });
+        console.log('[AUTODELETE] Created data directory');
+    } catch (error) {
+        console.error('[AUTODELETE] Error creating data directory:', error);
+    }
+}
+
+function loadIgnoreLists() {
+    try {
+        if (fs.existsSync(IGNORE_FILE)) {
+            const data = JSON.parse(fs.readFileSync(IGNORE_FILE, 'utf8'));
+            
+            if (data.ignoredChannels) ignoredChannels = new Set(data.ignoredChannels);
+            if (data.ignoredUsers) ignoredUsers = new Set(data.ignoredUsers);
+            if (data.ignoredGuilds) ignoredGuilds = new Set(data.ignoredGuilds);
+            
+            console.log('[AUTODELETE] Loaded ignore lists from file');
+        }
+    } catch (error) {
+        console.error('[AUTODELETE] Error loading ignore lists:', error);
+    }
+}
+
+function saveIgnoreLists() {
+    try {
+        const data = {
+            ignoredChannels: Array.from(ignoredChannels),
+            ignoredUsers: Array.from(ignoredUsers),
+            ignoredGuilds: Array.from(ignoredGuilds)
+        };
+        
+        fs.writeFileSync(IGNORE_FILE, JSON.stringify(data, null, 2), 'utf8');
+        console.log('[AUTODELETE] Saved ignore lists to file');
+    } catch (error) {
+        console.error('[AUTODELETE] Error saving ignore lists:', error);
+    }
+}
+
+loadIgnoreLists();
 
 const DELETION_DELAY = 5 * 60 * 1000;
 let DELETE_INTERVAL_MIN = 8000;
@@ -186,6 +236,21 @@ const handleNewMessage = (message) => {
         return;
     }
 
+    if (message.channel && ignoredChannels.has(message.channel.id)) {
+        console.log(`[AUTODELETE] Skipping message in ignored channel: ${message.channel.id}`);
+        return;
+    }
+    
+    if (message.guild && ignoredGuilds.has(message.guild.id)) {
+        console.log(`[AUTODELETE] Skipping message in ignored guild: ${message.guild.id}`);
+        return;
+    }
+    
+    if (!message.guild && message.channel && ignoredUsers.has(message.channel.recipient?.id)) {
+        console.log(`[AUTODELETE] Skipping message to ignored user: ${message.channel.recipient.id}`);
+        return;
+    }
+
     console.log(`[AUTODELETE] New message tracked: ${message.id}`);
     console.log(`[AUTODELETE] Content preview: ${message.content.slice(0, 30)}...`);
 
@@ -212,13 +277,18 @@ module.exports = {
         ignoredMessages.add(message.id);
 
         if (args.length === 0 || args[0].toLowerCase() === 'status') {
+            let ignoreStatus = '';
+            if (ignoredChannels.size > 0 || ignoredGuilds.size > 0 || ignoredUsers.size > 0) {
+                ignoreStatus = `\nIgnored: ${ignoredChannels.size} channels, ${ignoredGuilds.size} servers, ${ignoredUsers.size} users`;
+            }
+            
             const statusText = isAutoDeleteActive
                 ? `Auto-delete is ON - Messages will be deleted after approximately ${Math.round(DELETION_DELAY / 1000 / 60)} minutes.`
                 : 'Auto-delete is OFF.';
 
             await sendCommandResponse(
                 message,
-                `${statusText}\nQueue size: ${deleteQueue.length} messages | Tracked messages: ${messageTimers.size}`,
+                `${statusText}\nQueue size: ${deleteQueue.length} messages | Tracked messages: ${messageTimers.size}${ignoreStatus}`,
                 deleteTimeout, 
                 true
             );
@@ -316,9 +386,176 @@ module.exports = {
             return;
         }
 
+        if (command === 'ignore') {
+            if (args.length < 2) {
+                await sendCommandResponse(
+                    message,
+                    'Please specify what to ignore. Usage: `.autodelete ignore [channel/server/user] [ID]`',
+                    deleteTimeout,
+                    true
+                );
+                return;
+            }
+            
+            const ignoreType = args[1].toLowerCase();
+            const id = args[2];
+            
+            if (!id || !/^\d{17,19}$/.test(id)) {
+                await sendCommandResponse(
+                    message,
+                    'Please provide a valid ID (channel, server, or user ID).',
+                    deleteTimeout,
+                    true
+                );
+                return;
+            }
+            
+            if (ignoreType === 'channel' || ignoreType === 'c') {
+                ignoredChannels.add(id);
+                saveIgnoreLists();
+                await sendCommandResponse(
+                    message,
+                    `Channel ${id} will now be ignored by auto-delete.`,
+                    deleteTimeout,
+                    true
+                );
+            } else if (ignoreType === 'server' || ignoreType === 'guild' || ignoreType === 's' || ignoreType === 'g') {
+                ignoredGuilds.add(id);
+                saveIgnoreLists();
+                await sendCommandResponse(
+                    message,
+                    `Server ${id} will now be ignored by auto-delete.`,
+                    deleteTimeout,
+                    true
+                );
+            } else if (ignoreType === 'user' || ignoreType === 'u' || ignoreType === 'dm') {
+                ignoredUsers.add(id);
+                saveIgnoreLists();
+                await sendCommandResponse(
+                    message,
+                    `User ${id} (DMs) will now be ignored by auto-delete.`,
+                    deleteTimeout,
+                    true
+                );
+            } else {
+                await sendCommandResponse(
+                    message,
+                    'Invalid ignore type. Use "channel", "server", or "user".',
+                    deleteTimeout,
+                    true
+                );
+            }
+            return;
+        }
+        
+        if (command === 'unignore') {
+            if (args.length < 2) {
+                await sendCommandResponse(
+                    message,
+                    'Please specify what to unignore. Usage: `.autodelete unignore [channel/server/user] [ID]`',
+                    deleteTimeout,
+                    true
+                );
+                return;
+            }
+            
+            const ignoreType = args[1].toLowerCase();
+            const id = args[2];
+            
+            if (!id || !/^\d{17,19}$/.test(id)) {
+                await sendCommandResponse(
+                    message,
+                    'Please provide a valid ID (channel, server, or user ID).',
+                    deleteTimeout,
+                    true
+                );
+                return;
+            }
+            
+            if (ignoreType === 'channel' || ignoreType === 'c') {
+                if (ignoredChannels.has(id)) {
+                    ignoredChannels.delete(id);
+                    saveIgnoreLists();
+                    await sendCommandResponse(
+                        message,
+                        `Channel ${id} will no longer be ignored by auto-delete.`,
+                        deleteTimeout,
+                        true
+                    );
+                } else {
+                    await sendCommandResponse(
+                        message,
+                        `Channel ${id} is not in the ignore list.`,
+                        deleteTimeout,
+                        true
+                    );
+                }
+            } else if (ignoreType === 'server' || ignoreType === 'guild' || ignoreType === 's' || ignoreType === 'g') {
+                if (ignoredGuilds.has(id)) {
+                    ignoredGuilds.delete(id);
+                    saveIgnoreLists();
+                    await sendCommandResponse(
+                        message,
+                        `Server ${id} will no longer be ignored by auto-delete.`,
+                        deleteTimeout,
+                        true
+                    );
+                } else {
+                    await sendCommandResponse(
+                        message,
+                        `Server ${id} is not in the ignore list.`,
+                        deleteTimeout,
+                        true
+                    );
+                }
+            } else if (ignoreType === 'user' || ignoreType === 'u' || ignoreType === 'dm') {
+                if (ignoredUsers.has(id)) {
+                    ignoredUsers.delete(id);
+                    saveIgnoreLists();
+                    await sendCommandResponse(
+                        message,
+                        `User ${id} (DMs) will no longer be ignored by auto-delete.`,
+                        deleteTimeout,
+                        true
+                    );
+                } else {
+                    await sendCommandResponse(
+                        message,
+                        `User ${id} is not in the ignore list.`,
+                        deleteTimeout,
+                        true
+                    );
+                }
+            } else {
+                await sendCommandResponse(
+                    message,
+                    'Invalid ignore type. Use "channel", "server", or "user".',
+                    deleteTimeout,
+                    true
+                );
+            }
+            return;
+        }
+        
+        if (command === 'ignorelist' || command === 'list') {
+            let ignoredChannelsList = Array.from(ignoredChannels).join(', ');
+            let ignoredGuildsList = Array.from(ignoredGuilds).join(', ');
+            let ignoredUsersList = Array.from(ignoredUsers).join(', ');
+            
+            const ignoredInfo = `**Ignored Channels:** ${ignoredChannels.size > 0 ? ignoredChannelsList : 'None'}\n**Ignored Servers:** ${ignoredGuilds.size > 0 ? ignoredGuildsList : 'None'}\n**Ignored Users (DMs):** ${ignoredUsers.size > 0 ? ignoredUsersList : 'None'}`;
+            
+            await sendCommandResponse(
+                message,
+                `**Auto-delete Ignore List**\n\n${ignoredInfo}`,
+                deleteTimeout,
+                true
+            );
+            return;
+        }
+
         await sendCommandResponse(
             message,
-            'Unknown command. Available options: on/off, status, clear, speed [slow/normal/fast]',
+            'Unknown command. Valid commands: on, off, status, ignore, unignore, ignorelist',
             deleteTimeout,
             true
         );