diff --git a/package-lock.json b/package-lock.json
index cd1703b..45b6127 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
         "@mikro-orm/reflection": "^6.4.2",
         "@types/ioredis": "^4.28.10",
         "bcryptjs": "^2.4.3",
+        "bufferutil": "^4.0.9",
         "bullmq": "^5.13.2",
         "cors": "^2.8.5",
         "dotenv": "^16.4.5",
@@ -27,6 +28,7 @@
         "socket.io": "^4.7.5",
         "ts-node": "^10.9.2",
         "typescript": "^5.5.3",
+        "utf-8-validate": "^6.0.5",
         "zod": "^3.23.8"
       },
       "devDependencies": {
@@ -2378,6 +2380,19 @@
       "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
       "license": "BSD-3-Clause"
     },
+    "node_modules/bufferutil": {
+      "version": "4.0.9",
+      "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz",
+      "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "node-gyp-build": "^4.3.0"
+      },
+      "engines": {
+        "node": ">=6.14.2"
+      }
+    },
     "node_modules/bullmq": {
       "version": "5.40.2",
       "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.40.2.tgz",
@@ -5435,6 +5450,17 @@
       "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==",
       "license": "MIT"
     },
+    "node_modules/node-gyp-build": {
+      "version": "4.8.4",
+      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
+      "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
+      "license": "MIT",
+      "bin": {
+        "node-gyp-build": "bin.js",
+        "node-gyp-build-optional": "optional.js",
+        "node-gyp-build-test": "build-test.js"
+      }
+    },
     "node_modules/node-gyp-build-optional-packages": {
       "version": "5.2.2",
       "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
@@ -7260,6 +7286,19 @@
         "punycode": "^2.1.0"
       }
     },
+    "node_modules/utf-8-validate": {
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.5.tgz",
+      "integrity": "sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "node-gyp-build": "^4.3.0"
+      },
+      "engines": {
+        "node": ">=6.14.2"
+      }
+    },
     "node_modules/utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
diff --git a/package.json b/package.json
index 836fbf8..6c36471 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
     "@mikro-orm/reflection": "^6.4.2",
     "@types/ioredis": "^4.28.10",
     "bcryptjs": "^2.4.3",
+    "bufferutil": "^4.0.9",
     "bullmq": "^5.13.2",
     "cors": "^2.8.5",
     "dotenv": "^16.4.5",
@@ -45,6 +46,7 @@
     "socket.io": "^4.7.5",
     "ts-node": "^10.9.2",
     "typescript": "^5.5.3",
+    "utf-8-validate": "^6.0.5",
     "zod": "^3.23.8"
   },
   "devDependencies": {
diff --git a/src/managers/dateManager.ts b/src/managers/dateManager.ts
index 3ae82b7..a4c229b 100644
--- a/src/managers/dateManager.ts
+++ b/src/managers/dateManager.ts
@@ -8,16 +8,14 @@ import WorldRepository from '#repositories/worldRepository'
 class DateManager {
   private static readonly CONFIG = {
     GAME_SPEED: 8, // 24 game hours / 3 real hours
-    UPDATE_INTERVAL: 1000 // 1 second
+    UPDATE_INTERVAL: 1000, // 1 minute
   } as const
 
-  private io: Server | null = null
-  private intervalId: NodeJS.Timeout | null = null
-  private currentDate = new Date()
   private readonly logger = Logger.type(LoggerType.APP)
+  private currentDate = new Date()
+  private intervalId: NodeJS.Timeout | null = null
 
   public async boot(): Promise<void> {
-    this.io = SocketManager.getIO()
     await this.loadDate()
     this.startDateLoop()
     this.logger.info('Date manager loaded')
@@ -85,7 +83,8 @@ class DateManager {
   }
 
   private emitDate(): void {
-    this.io?.emit('date', this.currentDate)
+    const io = SocketManager.getIO()
+    io?.emit('date', this.currentDate)
   }
 
   private async saveDate(): Promise<void> {