diff --git a/.gitignore b/.gitignore
index 6deb598..d73f2ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
 !src/config/format.ts
 !src/config/default.ts
 !src/config/emojis.json
+src/utils/migration/data
 src/config/main.ts
 .vscode/
 .vim/
diff --git a/src/utils/migration/migration.ts b/src/utils/migration/migration.ts
index ad2927b..1edc068 100644
--- a/src/utils/migration/migration.ts
+++ b/src/utils/migration/migration.ts
@@ -1,10 +1,77 @@
 import * as fs from 'fs';
+import client from "../client.js";
+import _ from "lodash";
 
 const dir = './data';
 const files = fs.readdirSync(dir);
 
 for (const file of files) {
-    const rsmData = fs.readFileSync(`${dir}/${file}`, 'utf8');
-    const nucleusData = ""
-
+    let rsmData;
+    try {
+        rsmData = JSON.parse(fs.readFileSync(`${dir}/${file}`, 'utf8'));
+    } catch { continue }
+    if (!rsmData.version || rsmData.version < 3) continue;
+    const nucleusData = await client.database.guilds.read(rsmData.guild_info.id)
+    const rsmToNucleus = {
+        id: rsmData.guild_info.id,
+        version: 1,
+        singleEventNotifications: {},
+        filters: {
+            images: {
+                NSFW: rsmData.images?.nsfw,
+                size: rsmData.images?.toosmall,
+            },
+            malware: null,
+            wordFilter: {
+                enabled: true,
+                words: {
+                    strict: rsmData.wordfilter?.strict,
+                    loose: rsmData.wordfilter?.soft,
+                },
+                allowed: {
+                    users: rsmData.wordfilter?.ignore?.members,
+                    roles: rsmData.wordfilter?.ignore?.roles,
+                    channels: rsmData.wordfilter?.ignore?.channels,
+                },
+            },
+            invite: {
+                enabled: rsmData.invite?.enabled,
+                allowed: {
+                    channels: rsmData.invite?.whitelist?.members,
+                    roles: rsmData.invite?.whitelist?.roles,
+                    users: rsmData.invite?.whitelist?.channels,
+                },
+            }
+        },
+        welcome: {
+            enabled: true,
+            role: rsmData.welcome?.role,
+            channel: rsmData.welcome?.message?.channel,
+            message: rsmData.welcome?.message?.text ?? null,
+        },
+        logging: {
+            logs: {
+                enabled: true,
+                channel: rsmData.log_info?.log_channel,
+            },
+            staff: {
+                channel: rsmData.log_info?.staff,
+            }
+        },
+        verify: {
+            enabled: true,
+            role: rsmData.verify_role,
+        },
+        tickets: {
+            enabled: true,
+            category: rsmData.modmail?.cat,
+            supportRole: rsmData.modmail?.mention,
+            maxTickets: rsmData.modmail?.max,
+        },
+        tags: rsmData.tags
+    } as Partial<ReturnType<typeof client.database.guilds.read>>;
+    // console.log(rsmToNucleus)
+    const merged = _.merge(nucleusData, rsmToNucleus);
+    // console.log(merged)
+    
 }
