diff --git a/src/events/interactionCreate.ts b/src/events/interactionCreate.ts
index 9d3dceb..6a79447 100644
--- a/src/events/interactionCreate.ts
+++ b/src/events/interactionCreate.ts
@@ -24,6 +24,7 @@
 import { callback as muteCallback, check as muteCheck } from "../commands/mod/mute.js";
 import { callback as nicknameCallback, check as nicknameCheck } from "../commands/mod/nick.js";
 import { callback as warnCallback, check as warnCheck } from "../commands/mod/warn.js";
+import { callback as logDetailsCallback } from "../actions/logs/showDetails.js";
 import client from "../utils/client.js";
 
 export const event = "interactionCreate";
@@ -61,6 +62,9 @@
             case "createtranscript": {
                 return await createTranscript(interaction);
             }
+            case "log:showDetails": {
+                return await logDetailsCallback(interaction);
+            }
         }
         // Mod actions
         if (interaction.customId.startsWith("mod:")) {
diff --git a/src/events/messageEdit.ts b/src/events/messageEdit.ts
index bca652e..6719cc3 100644
--- a/src/events/messageEdit.ts
+++ b/src/events/messageEdit.ts
@@ -1,5 +1,5 @@
 import type { NucleusClient } from "../utils/client.js";
-import type { Message, MessageReference } from "discord.js";
+import { AttachmentBuilder, Message, MessageReference } from "discord.js";
 import type Discord from "discord.js";
 import * as diff from "diff";
 
@@ -63,68 +63,88 @@
         return;
     }
     const differences = diff.diffChars(oldContent, newContent);
-    console.log(differences);
-    let contentEdit = "";
-    if (differences.map((d) => (d.added || d.removed ? 1 : 0)).filter((f) => f === 1).length > 0) {
-        const green = "\x1B[36m";
-        const red = "\x1B[41m";
-        const skipped = "\x1B[40;33m";
-        const reset = "\x1B[0m";
-        const bold = "\x1B[1m";
-        const cutoff = 20;
-        differences.forEach((part) => {
-            if (!part.added && !part.removed && part.value.length > cutoff) {
-                contentEdit +=
-                    reset +
-                    part.value.slice(0, cutoff / 2) +
-                    skipped +
-                    `(${part.value.length - cutoff} more)` +
-                    reset +
-                    part.value.slice(-(cutoff / 2));
-            } else {
-                if (part.added || part.removed) {
-                    part.value = part.value.replaceAll(" ", "▁");
-                }
-                contentEdit += (part.added ? green : part.removed ? red : "") + part.value + reset;
-            }
-        });
-        contentEdit = contentEdit.slice(0, 2000);
-        contentEdit += `\n\n${bold}Key:${reset} ${green}Added${reset} | ${red}Removed${reset} | ${skipped}Skipped${reset}`;
-        const data = {
-            meta: {
-                type: "messageUpdate",
-                displayName: "Message Edited",
-                calculateType: "messageUpdate",
-                color: NucleusColors.yellow,
-                emoji: "MESSAGE.EDIT",
-                timestamp: newMessage.editedTimestamp
-            },
-            separate: {
-                start: `\`\`\`ansi\n${contentEdit}\`\`\``,
-                end: `[[Jump to message]](${newMessage.url})`
-            },
-            list: {
-                messageId: entry(newMessage.id, `\`${newMessage.id}\``),
-                sentBy: entry(newMessage.author.id, renderUser(newMessage.author)),
-                sentIn: entry(newMessage.channel.id, renderChannel(newMessage.channel as Discord.GuildBasedChannel)),
-                sent: entry(newMessage.createdTimestamp, renderDelta(newMessage.createdTimestamp)),
-                edited: entry(newMessage.editedTimestamp, renderDelta(newMessage.editedTimestamp)),
-                mentions: renderNumberDelta(oldMessage.mentions.users.size, newMessage.mentions.users.size),
-                attachments: entry(
-                    renderNumberDelta(oldMessage.attachments.size, newMessage.attachments.size),
-                    renderNumberDelta(oldMessage.attachments.size, newMessage.attachments.size) + attachmentJump
-                ),
-                repliedTo: entry(
-                    replyTo ? replyTo.messageId! : null,
-                    replyTo
-                        ? `[[Jump to message]](https://discord.com/channels/${newMessage.guild.id}/${newMessage.channel.id}/${replyTo.messageId})`
-                        : "None"
-                )
-            },
-            hidden: {
-                guild: newMessage.guild.id
-            }
-        };
-        await log(data);
-    }
+    const green = "\x1B[36m";
+    const red = "\x1B[41m";
+    const skipped = "\x1B[40;33m";
+    const reset = "\x1B[0m";
+    const bold = "\x1B[1m";
+    // console.log(differences);
+    // let contentAdd = "";
+    // let contentRemove = "";
+    // if (differences.map((d) => (d.added || d.removed ? 1 : 0)).filter((f) => f === 1).length > 0) {
+    //     const cutoff = 20;
+    //     differences.forEach((part) => {
+    //         if (!part.added && !part.removed && part.value.length > cutoff) {
+    //             contentAdd +=
+    //                 reset +
+    //                 part.value.slice(0, cutoff / 2) +
+    //                 skipped +
+    //                 `(${part.value.length - cutoff} more)` +
+    //                 reset +
+    //                 part.value.slice(-(cutoff / 2));
+    //             contentRemove +=
+    //                 reset +
+    //                 part.value.slice(0, cutoff / 2) +
+    //                 skipped +
+    //                 `(${part.value.length - cutoff} more)` +
+    //                 reset +
+    //                 part.value.slice(-(cutoff / 2));
+    //         } else {
+    //             if (part.added || part.removed) {
+    //                 part.value = part.value.replaceAll(" ", "▁");
+    //             }
+    //             if (part.added) {
+    //                 contentAdd += green + part.value + reset;
+    //             } else if (part.removed) {
+    //                 contentRemove += red + part.value + reset;
+    //             } else {
+    //                 contentAdd += part.value;
+    //                 contentRemove += part.value;
+    //             }
+    //         }
+    //     });
+    const key = `\n\n${bold}Key:${reset} ${green}Added${reset} | ${red}Removed${reset} | ${skipped}Skipped${reset}`;
+    const data = {
+        meta: {
+            type: "messageUpdate",
+            displayName: "Message Edited",
+            calculateType: "messageUpdate",
+            color: NucleusColors.yellow,
+            emoji: "MESSAGE.EDIT",
+            timestamp: newMessage.editedTimestamp,
+            files: [
+                new AttachmentBuilder(Buffer.from(JSON.stringify(differences)), {
+                    name: "diff.json",
+                    description: "A JSON file containing the differences between the two messages."
+                })
+            ],
+            showDetails: true
+        },
+        separate: {
+            start: `To read the full log press the button below.\n\`\`\`ansi\n${key}\`\`\``,
+            end: `[[Jump to message]](${newMessage.url})`
+        },
+        list: {
+            messageId: entry(newMessage.id, `\`${newMessage.id}\``),
+            sentBy: entry(newMessage.author.id, renderUser(newMessage.author)),
+            sentIn: entry(newMessage.channel.id, renderChannel(newMessage.channel as Discord.GuildBasedChannel)),
+            sent: entry(newMessage.createdTimestamp, renderDelta(newMessage.createdTimestamp)),
+            edited: entry(newMessage.editedTimestamp, renderDelta(newMessage.editedTimestamp)),
+            mentions: renderNumberDelta(oldMessage.mentions.users.size, newMessage.mentions.users.size),
+            attachments: entry(
+                renderNumberDelta(oldMessage.attachments.size, newMessage.attachments.size),
+                renderNumberDelta(oldMessage.attachments.size, newMessage.attachments.size) + attachmentJump
+            ),
+            repliedTo: entry(
+                replyTo ? replyTo.messageId! : null,
+                replyTo
+                    ? `[[Jump to message]](https://discord.com/channels/${newMessage.guild.id}/${newMessage.channel.id}/${replyTo.messageId})`
+                    : "None"
+            )
+        },
+        hidden: {
+            guild: newMessage.guild.id
+        }
+    };
+    await log(data);
 }
