diff --git a/package-lock.json b/package-lock.json
index e0209b6..0fba496 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2204,39 +2204,39 @@
       }
     },
     "node_modules/@vue/compiler-core": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.33.tgz",
-      "integrity": "sha512-MoIREbkdPQlnGfSKDMgzTqzqx5nmEjIc0ydLVYlTACGBsfvOJ4tHSbZXKVF536n6fB+0eZaGEOqsGThPpdvF5A==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.34.tgz",
+      "integrity": "sha512-Z0izUf32+wAnQewjHu+pQf1yw00EGOmevl1kE+ljjjMe7oEfpQ+BI3/JNK7yMB4IrUsqLDmPecUrpj3mCP+yJQ==",
       "license": "MIT",
       "dependencies": {
         "@babel/parser": "^7.24.7",
-        "@vue/shared": "3.4.33",
+        "@vue/shared": "3.4.34",
         "entities": "^4.5.0",
         "estree-walker": "^2.0.2",
         "source-map-js": "^1.2.0"
       }
     },
     "node_modules/@vue/compiler-dom": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.33.tgz",
-      "integrity": "sha512-GzB8fxEHKw0gGet5BKlpfXEqoBnzSVWwMnT+dc25wE7pFEfrU/QsvjZMP9rD4iVXHBBoemTct8mN0GJEI6ZX5A==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.34.tgz",
+      "integrity": "sha512-3PUOTS1h5cskdOJMExCu2TInXuM0j60DRPpSCJDqOCupCfUZCJoyQmKtRmA8EgDNZ5kcEE7vketamRZfrEuVDw==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-core": "3.4.33",
-        "@vue/shared": "3.4.33"
+        "@vue/compiler-core": "3.4.34",
+        "@vue/shared": "3.4.34"
       }
     },
     "node_modules/@vue/compiler-sfc": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.33.tgz",
-      "integrity": "sha512-7rk7Vbkn21xMwIUpHQR4hCVejwE6nvhBOiDgoBcR03qvGqRKA7dCBSsHZhwhYUsmjlbJ7OtD5UFIyhP6BY+c8A==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.34.tgz",
+      "integrity": "sha512-x6lm0UrM03jjDXTPZgD9Ad8bIVD1ifWNit2EaWQIZB5CULr46+FbLQ5RpK7AXtDHGjx9rmvC7QRCTjsiGkAwRw==",
       "license": "MIT",
       "dependencies": {
         "@babel/parser": "^7.24.7",
-        "@vue/compiler-core": "3.4.33",
-        "@vue/compiler-dom": "3.4.33",
-        "@vue/compiler-ssr": "3.4.33",
-        "@vue/shared": "3.4.33",
+        "@vue/compiler-core": "3.4.34",
+        "@vue/compiler-dom": "3.4.34",
+        "@vue/compiler-ssr": "3.4.34",
+        "@vue/shared": "3.4.34",
         "estree-walker": "^2.0.2",
         "magic-string": "^0.30.10",
         "postcss": "^8.4.39",
@@ -2244,13 +2244,13 @@
       }
     },
     "node_modules/@vue/compiler-ssr": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.33.tgz",
-      "integrity": "sha512-0WveC9Ai+eT/1b6LCV5IfsufBZ0HP7pSSTdDjcuW302tTEgoBw8rHVHKPbGUtzGReUFCRXbv6zQDDgucnV2WzQ==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.34.tgz",
+      "integrity": "sha512-8TDBcLaTrFm5rnF+Qm4BlliaopJgqJ28Nsrc80qazynm5aJO+Emu7y0RWw34L8dNnTRdcVBpWzJxhGYzsoVu4g==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-dom": "3.4.33",
-        "@vue/shared": "3.4.33"
+        "@vue/compiler-dom": "3.4.34",
+        "@vue/shared": "3.4.34"
       }
     },
     "node_modules/@vue/devtools-api": {
@@ -2369,53 +2369,53 @@
       }
     },
     "node_modules/@vue/reactivity": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.33.tgz",
-      "integrity": "sha512-B24QIelahDbyHipBgbUItQblbd4w5HpG3KccL+YkGyo3maXyS253FzcTR3pSz739OTphmzlxP7JxEMWBpewilA==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.34.tgz",
+      "integrity": "sha512-ua+Lo+wBRlBEX9TtgPOShE2JwIO7p6BTZ7t1KZVPoaBRfqbC7N3c8Mpzicx173fXxx5VXeU6ykiHo7WgLzJQDA==",
       "license": "MIT",
       "dependencies": {
-        "@vue/shared": "3.4.33"
+        "@vue/shared": "3.4.34"
       }
     },
     "node_modules/@vue/runtime-core": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.33.tgz",
-      "integrity": "sha512-6wavthExzT4iAxpe8q37/rDmf44nyOJGISJPxCi9YsQO+8w9v0gLCFLfH5TzD1V1AYrTAdiF4Y1cgUmP68jP6w==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.34.tgz",
+      "integrity": "sha512-PXhkiRPwcPGJ1BnyBZFI96GfInCVskd0HPNIAZn7i3YOmLbtbTZpB7/kDTwC1W7IqdGPkTVC63IS7J2nZs4Ebg==",
       "license": "MIT",
       "dependencies": {
-        "@vue/reactivity": "3.4.33",
-        "@vue/shared": "3.4.33"
+        "@vue/reactivity": "3.4.34",
+        "@vue/shared": "3.4.34"
       }
     },
     "node_modules/@vue/runtime-dom": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.33.tgz",
-      "integrity": "sha512-iHsMCUSFJ+4z432Bn9kZzHX+zOXa6+iw36DaVRmKYZpPt9jW9riF32SxNwB124i61kp9+AZtheQ/mKoJLerAaQ==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.34.tgz",
+      "integrity": "sha512-dXqIe+RqFAK2Euak4UsvbIupalrhc67OuQKpD7HJ3W2fv8jlqvI7szfBCsAEcE8o/wyNpkloxB6J8viuF/E3gw==",
       "license": "MIT",
       "dependencies": {
-        "@vue/reactivity": "3.4.33",
-        "@vue/runtime-core": "3.4.33",
-        "@vue/shared": "3.4.33",
+        "@vue/reactivity": "3.4.34",
+        "@vue/runtime-core": "3.4.34",
+        "@vue/shared": "3.4.34",
         "csstype": "^3.1.3"
       }
     },
     "node_modules/@vue/server-renderer": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.33.tgz",
-      "integrity": "sha512-jTH0d6gQcaYideFP/k0WdEu8PpRS9MF8d0b6SfZzNi+ap972pZ0TNIeTaESwdOtdY0XPVj54XEJ6K0wXxir4fw==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.34.tgz",
+      "integrity": "sha512-GeyEUfMVRZMD/mZcNONEqg7MiU10QQ1DB3O/Qr6+8uXpbwdlmVgQ5Qs1/ZUAFX1X2UUtqMoGrDRbxdWfOJFT7Q==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-ssr": "3.4.33",
-        "@vue/shared": "3.4.33"
+        "@vue/compiler-ssr": "3.4.34",
+        "@vue/shared": "3.4.34"
       },
       "peerDependencies": {
-        "vue": "3.4.33"
+        "vue": "3.4.34"
       }
     },
     "node_modules/@vue/shared": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.33.tgz",
-      "integrity": "sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.34.tgz",
+      "integrity": "sha512-x5LmiRLpRsd9KTjAB8MPKf0CDPMcuItjP0gbNqFCIgL1I8iYp4zglhj9w9FPCdIbHG2M91RVeIbArFfFTz9I3A==",
       "license": "MIT"
     },
     "node_modules/@vue/test-utils": {
@@ -5705,9 +5705,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.39",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
-      "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
+      "version": "8.4.40",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
+      "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
       "funding": [
         {
           "type": "opencollective",
@@ -7178,16 +7178,16 @@
       "license": "MIT"
     },
     "node_modules/vue": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.33.tgz",
-      "integrity": "sha512-VdMCWQOummbhctl4QFMcW6eNtXHsFyDlX60O/tsSQuCcuDOnJ1qPOhhVla65Niece7xq/P2zyZReIO5mP+LGTQ==",
+      "version": "3.4.34",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.34.tgz",
+      "integrity": "sha512-VZze05HWlA3ItreQ/ka7Sx7PoD0/3St8FEiSlSTVgb6l4hL+RjtP2/8g5WQBzZgyf8WG2f+g1bXzC7zggLhAJA==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-dom": "3.4.33",
-        "@vue/compiler-sfc": "3.4.33",
-        "@vue/runtime-dom": "3.4.33",
-        "@vue/server-renderer": "3.4.33",
-        "@vue/shared": "3.4.33"
+        "@vue/compiler-dom": "3.4.34",
+        "@vue/compiler-sfc": "3.4.34",
+        "@vue/runtime-dom": "3.4.34",
+        "@vue/server-renderer": "3.4.34",
+        "@vue/shared": "3.4.34"
       },
       "peerDependencies": {
         "typescript": "*"
@@ -7542,9 +7542,9 @@
       "license": "ISC"
     },
     "node_modules/yaml": {
-      "version": "2.4.5",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
-      "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
+      "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
       "dev": true,
       "license": "ISC",
       "bin": {
diff --git a/public/assets/icons/assetManager/armor.svg b/public/assets/icons/assetManager/armor.svg
new file mode 100644
index 0000000..9e32dbd
--- /dev/null
+++ b/public/assets/icons/assetManager/armor.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m241.287 111.469-105.931-43.752v80.246c0 43.397-24.289 81.227-59.986 100.612l56.221 187.401h109.697v-324.507z"/><path d="m376.644 147.963v-80.246l-105.931 43.752v324.508h109.697l56.221-187.401c-35.698-19.386-59.987-57.216-59.987-100.613z"/><path d="m150.069 503.655h211.862c8.126 0 14.713-6.587 14.713-14.713v-23.54h-241.288v23.54c0 8.126 6.587 14.713 14.713 14.713z"/><path d="m371.685 37.929-15.732-23.141c-4.156-6.113-12.197-8.194-18.793-4.858-20.884 10.563-51.667 15.564-81.16 15.564s-60.276-5-81.16-15.564c-6.596-3.336-14.637-1.255-18.793 4.858l-15.732 23.141 115.685 47.779z"/><path d="m105.931 147.963v-88.63h-20.952c-46.932 0-84.979 38.046-84.979 84.979v73.917c0 8.126 6.587 14.713 14.713 14.713h6.239c46.932 0 84.979-38.047 84.979-84.979z"/><path d="m427.021 59.333h-20.952v88.63c0 46.933 38.046 84.979 84.979 84.979h6.239c8.126 0 14.713-6.587 14.713-14.713v-73.918c0-46.932-38.046-84.978-84.979-84.978z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/assetManager/character.svg b/public/assets/icons/assetManager/character.svg
new file mode 100644
index 0000000..12014ae
--- /dev/null
+++ b/public/assets/icons/assetManager/character.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m305.353 476.567c0 12.389-10.044 22.433-22.433 22.433s-22.433-10.044-22.433-22.433v-153.097c0-2.292-1.87-4.161-4.161-4.161h-.652c-2.291 0-4.161 1.869-4.161 4.161v153.097c0 12.389-10.044 22.433-22.433 22.433-12.39 0-22.433-10.044-22.433-22.433 0-98.782 0-205.018 0-304.282-.001-2.292-1.87-4.16-4.161-4.16h-.652c-2.292 0-4.161 1.869-4.161 4.161v117.143c0 9.704-7.867 17.571-17.57 17.571-9.704 0-17.571-7.867-17.571-17.571 0-45.684 0-81.367 0-127.051 0-27.539 22.461-50 50-50h86.937c27.539 0 50 22.461 50 50v127.051c0 9.704-7.867 17.571-17.571 17.571s-17.571-7.867-17.571-17.571c0-42.381 0-74.762 0-117.143 0-2.292-1.869-4.161-4.161-4.161h-.653c-2.291 0-4.16 1.869-4.161 4.16.001 99.263.001 205.499.001 304.282zm-49.353-463.567c23.788 0 43.072 19.284 43.072 43.072s-19.284 43.072-43.072 43.072-43.072-19.284-43.072-43.072 19.284-43.072 43.072-43.072z" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/public/assets/icons/zoneEditor/monster.svg b/public/assets/icons/assetManager/monster.svg
similarity index 100%
rename from public/assets/icons/zoneEditor/monster.svg
rename to public/assets/icons/assetManager/monster.svg
diff --git a/public/assets/icons/assetManager/mounts.svg b/public/assets/icons/assetManager/mounts.svg
new file mode 100644
index 0000000..018acb9
--- /dev/null
+++ b/public/assets/icons/assetManager/mounts.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 100 100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><g><g><path d="m41.09 22.29c2.99 0 5.41-2.42 5.41-5.39 0-2.99-2.42-5.41-5.41-5.41-2.98 0-5.4 2.42-5.4 5.41.01 2.97 2.42 5.39 5.4 5.39"/></g><g><path d="m86.6 31.45-10.83-7.21s2.64-5.91.66-5.91c-8.43 8.43-21.99 22.74-21.99 22.74h-8.04v-5.9l8.39 1.91c1.4.32 2.8-.55 3.12-1.97.31-1.4-.57-2.79-1.97-3.11l-9.54-2.36v-.61c0-2.99-2.42-5.41-5.41-5.41s-5.4 2.42-5.4 5.41v12.03h-16.77c-4.39 0-7.32 3.57-7.32 7.96v13.19s0 1.85 1.86 1.85c1.69 0 1.88-1.85 1.88-1.85l2.72-12.38 1.52-5.17-1 15.67-1.96 4.63v19.98c0 1.97 1.62 3.57 3.59 3.57 1.98 0 3.57-1.6 3.57-3.57v-17.3l3.54-5.56v5.94l7.91 18.62c.97 1.73 3.15 2.33 4.87 1.36s2.34-3.15 1.35-4.87l-6.77-16.14 3.24-5.54h18.09v23.51c0 1.97 1.6 3.57 3.57 3.57s3.58-1.6 3.58-3.57v-18.15c1.61 3.15 3.16 6.18 3.16 6.18l-2.18 10.36c-.41 1.93.83 3.82 2.76 4.23s3.84-.83 4.25-2.76l2.39-11.38-7.15-18.08 4.98-10.16c.81.22 1.68.35 2.58.35 4.52 0 8.33-3.1 9.37-7.32l.88.16c1.51.28 3.11-.41 3.91-1.84 1.03-1.78.37-4.09-1.41-5.1zm-12.74 12.12c-.57 0-1.14-.06-1.68-.19l3.33-6.62 5.73 1.1c-.84 3.29-3.83 5.71-7.38 5.71z"/></g></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/assetManager/npc.svg b/public/assets/icons/assetManager/npc.svg
new file mode 100644
index 0000000..6a90289
--- /dev/null
+++ b/public/assets/icons/assetManager/npc.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+	<g>
+		<path d="M318.72,293.065c-12.87-7.03-27.63-11.02-43.32-11.02h-37.29c-16.13,0-31.27,4.22-44.38,11.61
+			c-27.57,15.52-46.19,45.07-46.19,78.96v27.94h218.43v-27.94C365.97,338.285,346.87,308.425,318.72,293.065z"/>
+	</g>
+</g>
+<g>
+	<g>
+		<path d="M421.7,257.225h-31c-18.1,0-34.97,5.35-49.12,14.57c6.8,4.46,13.19,9.67,19.08,15.56c22.77,22.77,35.31,53.05,35.31,85.26
+			v13.14H512v-38.23C512,297.735,471.49,257.225,421.7,257.225z"/>
+	</g>
+</g>
+<g>
+	<g>
+		<path d="M121.3,257.225h-31c-49.79,0-90.3,40.51-90.3,90.3v38.23h117.54v-13.14c0-32.21,12.55-62.49,35.32-85.26
+			c5.67-5.67,11.8-10.71,18.32-15.06C156.88,262.775,139.73,257.225,121.3,257.225z"/>
+	</g>
+</g>
+<g>
+	<g>
+		<path d="M406.153,121.416c-0.159,0-0.324,0.001-0.484,0.003c-33.558,0.277-60.622,29.282-60.33,64.655
+			c0.291,35.205,27.565,63.652,60.906,63.652c0.16,0,0.324-0.001,0.484-0.003c16.455-0.136,31.81-7.068,43.238-19.521
+			c11.162-12.164,17.232-28.192,17.093-45.134C466.769,149.863,439.495,121.416,406.153,121.416z"/>
+	</g>
+</g>
+<g>
+	<g>
+		<path d="M105.754,121.416c-0.159,0-0.324,0.001-0.484,0.003c-33.558,0.277-60.622,29.282-60.33,64.655
+			c0.29,35.205,27.565,63.652,60.906,63.652c0.16,0,0.324-0.001,0.484-0.003c16.454-0.136,31.81-7.068,43.238-19.521
+			c11.163-12.164,17.233-28.192,17.093-45.134C166.37,149.863,139.096,121.416,105.754,121.416z"/>
+	</g>
+</g>
+<g>
+	<g>
+		<path d="M256.76,111.445c-38.69,0-70.16,33.25-70.16,74.13c0,29.54,16.44,55.1,40.17,67c9.1,4.57,19.27,7.12,29.99,7.12
+			c10.72,0,20.89-2.55,29.99-7.12c23.73-11.9,40.17-37.46,40.17-67C326.92,144.695,295.45,111.445,256.76,111.445z"/>
+	</g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+</svg>
diff --git a/public/assets/icons/assetManager/object.svg b/public/assets/icons/assetManager/object.svg
new file mode 100644
index 0000000..b918e33
--- /dev/null
+++ b/public/assets/icons/assetManager/object.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 506.061 506.061" height="512" viewBox="0 0 506.061 506.061" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m241.967 104.205c24.767 8.896 57.306 13.795 91.622 13.795s66.855-4.899 91.622-13.795c37.919-13.62 45.878-32.1 45.878-45.205s-7.959-31.585-45.878-45.205c-24.766-8.896-57.305-13.795-91.622-13.795s-66.855 4.899-91.622 13.795c-37.919 13.62-45.878 32.1-45.878 45.205s7.959 31.585 45.878 45.205z"/><path d="m333.59 148c-30.51 0-60.006-3.625-84.958-10.33l115.228 60.384c6.91 3.621 12.789 9.023 17.004 15.623 4.591 7.193 7.108 15.699 7.108 24.236v165.595c13.642-2.294 26.262-5.459 37.308-9.427 37.861-13.599 45.809-32.102 45.809-45.229v-234.924c-9.039 6.763-20.705 13.112-35.737 18.511-27.937 10.035-64.078 15.561-101.762 15.561z"/><path d="m203.435 147.855c-4.361-2.285-9.564-2.285-13.926 0 0 0-111.519 58.44-139.954 73.341l146.924 76.577 147.069-76.494z"/><path d="m211.472 506.061 138.479-72.786c4.933-2.592 8.021-7.705 8.021-13.277 0 0 0-134.738 0-172.405l-146.5 76.198z"/><path d="m34.972 419.998c0 5.572 3.089 10.685 8.021 13.277l138.479 72.786v-182.28l-146.5-76.356z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/assetManager/pet.svg b/public/assets/icons/assetManager/pet.svg
new file mode 100644
index 0000000..6dc2ace
--- /dev/null
+++ b/public/assets/icons/assetManager/pet.svg
@@ -0,0 +1 @@
+<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m276.663 202.758-.084.225h-126.502c-18.363 0-35.456 5.528-49.714 15h-40.363c-16.542 0-30-13.458-30-30s13.458-30 30-30h45c8.284 0 15-6.716 15-15s-6.716-15-15-15h-45c-33.084 0-60 26.916-60 60s26.916 60 60 60h12.115c-7.7 13.266-12.115 28.665-12.115 45.077v187.923c0 8.284 6.716 15 15 15h60c8.284 0 15-6.716 15-15v-126.592l137 12.305v115.287c0 8.284 6.716 15 15 15h60c8.284 0 15-6.716 15-15v-142.514l18.483-92.417z"/><path d="m497 112.983h-45.262c-2.436-22.897-21.816-41-45.688-41h-25.169l-9.184-45c-3.005-14.719-23.508-16.321-28.755-2.234l-55.811 149.894 114.311 42.613 2.855-14.273h32.703c41.355 0 75-33.645 75-75 0-8.284-6.716-15-15-15z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/assetManager/tiles.svg b/public/assets/icons/assetManager/tiles.svg
new file mode 100644
index 0000000..a3438e0
--- /dev/null
+++ b/public/assets/icons/assetManager/tiles.svg
@@ -0,0 +1 @@
+<svg id="bold" enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m9.25 0h-7.5c-.965 0-1.75.785-1.75 1.75v4.5c0 .965.785 1.75 1.75 1.75h7.5c.965 0 1.75-.785 1.75-1.75v-4.5c0-.965-.785-1.75-1.75-1.75z"/><path d="m9.25 10h-7.5c-.965 0-1.75.785-1.75 1.75v10.5c0 .965.785 1.75 1.75 1.75h7.5c.965 0 1.75-.785 1.75-1.75v-10.5c0-.965-.785-1.75-1.75-1.75z"/><path d="m22.25 16h-7.5c-.965 0-1.75.785-1.75 1.75v4.5c0 .965.785 1.75 1.75 1.75h7.5c.965 0 1.75-.785 1.75-1.75v-4.5c0-.965-.785-1.75-1.75-1.75z"/><path d="m22.25 0h-7.5c-.965 0-1.75.785-1.75 1.75v10.5c0 .965.785 1.75 1.75 1.75h7.5c.965 0 1.75-.785 1.75-1.75v-10.5c0-.965-.785-1.75-1.75-1.75z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/full-screen.svg b/public/assets/icons/full-screen.svg
new file mode 100644
index 0000000..c7ea37d
--- /dev/null
+++ b/public/assets/icons/full-screen.svg
@@ -0,0 +1 @@
+<svg height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg"><g id="Fullscreen-Arrow-Arrows-Direction-User_Interface" data-name="Fullscreen-Arrow-Arrows-Direction-User Interface"><path d="m61 45v14a2.006 2.006 0 0 1 -2 2h-14a3 3 0 0 1 0-6h5.76l-14.51-14.51a3 3 0 0 1 4.24-4.24l14.51 14.51v-5.76a3 3 0 0 1 6 0z"/><path d="m61 5v14a3 3 0 0 1 -6 0v-5.76l-14.51 14.51a3 3 0 1 1 -4.24-4.24l14.51-14.51h-5.76a3 3 0 0 1 0-6h14a2.006 2.006 0 0 1 2 2z"/><path d="m27.75 23.51a3 3 0 1 1 -4.24 4.24l-14.51-14.51v5.76a3 3 0 0 1 -6 0v-14a2.006 2.006 0 0 1 2-2h14a3 3 0 0 1 0 6h-5.76z"/><path d="m27.75 36.25a2.994 2.994 0 0 1 0 4.24l-14.51 14.51h5.76a3 3 0 0 1 0 6h-14a2.006 2.006 0 0 1 -2-2v-14a3 3 0 0 1 6 0v5.76l14.51-14.51a3 3 0 0 1 4.24 0z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/icons/minimize.svg b/public/assets/icons/minimize.svg
new file mode 100644
index 0000000..859b306
--- /dev/null
+++ b/public/assets/icons/minimize.svg
@@ -0,0 +1 @@
+<svg id="icons" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m3.71 21.71 5.29-5.3v4.59a1 1 0 0 0 2 0v-7a1 1 0 0 0 -1-1h-7a1 1 0 0 0 0 2h4.59l-5.3 5.29a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0z"/><path d="m21.71 2.29a1 1 0 0 0 -1.42 0l-5.29 5.3v-4.59a1 1 0 0 0 -2 0v7a1 1 0 0 0 1 1h7a1 1 0 0 0 0-2h-4.59l5.3-5.29a1 1 0 0 0 0-1.42z"/></svg>
\ No newline at end of file
diff --git a/src/components/utilities/Accordion.vue b/src/components/utilities/Accordion.vue
index 9ac55cb..78bc7da 100644
--- a/src/components/utilities/Accordion.vue
+++ b/src/components/utilities/Accordion.vue
@@ -1,11 +1,11 @@
 <template>
   <div class="border border-gray-300 rounded mb-4">
-    <button @click="toggle" class="w-full p-3 bg-gray-100 rounded hover:bg-gray-200 text-left cursor-pointer transition-colors duration-200 ease-in-out">
-      {{ props.title }}
-    </button>
+    <div @click="toggle" class="w-[98%] p-3 bg-gray-100 bg-opacity-50 rounded hover:bg-gray-200 text-left text-white font-default cursor-pointer transition-colors duration-200 ease-in-out">
+      <slot name="header" />
+    </div>
     <transition enter-active-class="transition-all duration-300 ease-in-out" leave-active-class="transition-all duration-300 ease-in-out" enter-from-class="opacity-0 max-h-0" enter-to-class="opacity-100 max-h-96" leave-from-class="opacity-100 max-h-96" leave-to-class="opacity-0 max-h-0">
       <div v-if="isOpen" class="p-3 overflow-hidden">
-        <slot></slot>
+        <slot name="content" />
       </div>
     </transition>
   </div>
@@ -19,8 +19,4 @@ const isOpen = ref(false)
 const toggle = () => {
   isOpen.value = !isOpen.value
 }
-
-const props = defineProps({
-  title: String
-})
 </script>
diff --git a/src/components/utilities/GmPanel.vue b/src/components/utilities/GmPanel.vue
index 35a7dd0..553e8cd 100644
--- a/src/components/utilities/GmPanel.vue
+++ b/src/components/utilities/GmPanel.vue
@@ -1,5 +1,5 @@
 <template>
-  <Modal :isModalOpen="gameStore.isGmPanelOpen" @modal:close="() => gameStore.toggleGmPanel()" :modal-width="1000" :modal-height="650">
+  <Modal :isModalOpen="gameStore.isGmPanelOpen" @modal:close="() => gameStore.toggleGmPanel()" :modal-width="1000" :modal-height="650" :can-full-screen="true">
     <template #modalHeader>
       <h3 class="m-0 font-medium shrink-0">GM Panel</h3>
       <div class="flex gap-1.5 flex-wrap">
diff --git a/src/components/utilities/Modal.vue b/src/components/utilities/Modal.vue
index 82a479a..92ac4fe 100644
--- a/src/components/utilities/Modal.vue
+++ b/src/components/utilities/Modal.vue
@@ -4,6 +4,9 @@
       <div @mousedown="startDrag" class="cursor-move p-2.5 flex justify-between items-center border-solid border-0 border-b border-cyan-200">
         <slot name="modalHeader" />
         <div class="flex gap-2.5">
+          <button @click="toggleFullScreen" class="w-5 h-5 m-0 p-0 relative hover:scale-110 transition-transform duration-300 ease-in-out" v-if="canFullScreen">
+            <img :alt="isFullScreen ? 'exit full-screen' : 'full-screen'" draggable="false" :src="isFullScreen ? '/assets/icons/minimize.svg' : '/assets/icons/full-screen.svg'" class="w-full h-full invert" />
+          </button>
           <button @click="close" v-if="closable" class="w-5 h-5 m-0 p-0 relative hover:rotate-180 transition-transform duration-300 ease-in-out">
             <img alt="close" draggable="false" src="/assets/icons/close-button-white.svg" class="w-full h-full" />
           </button>
@@ -11,7 +14,7 @@
       </div>
       <div class="overflow-hidden grow">
         <slot name="modalBody" />
-        <img v-if="isResizable" src="/assets/icons/resize-icon.svg" alt="resize" class="absolute bottom-0 right-0 w-5 h-5 cursor-nwse-resize invert-[60%]" @mousedown="startResize" />
+        <img v-if="isResizable && !isFullScreen" src="/assets/icons/resize-icon.svg" alt="resize" class="absolute bottom-0 right-0 w-5 h-5 cursor-nwse-resize invert-[60%]" @mousedown="startResize" />
       </div>
       <div v-if="$slots.modalFooter" class="px-5 min-h-12 flex justify-end gap-7.5 items-center border-solid border-t border-cyan-200">
         <slot name="modalFooter" />
@@ -36,6 +39,10 @@ const props = defineProps({
     type: Boolean,
     default: true
   },
+  canFullScreen: {
+    type: Boolean,
+    default: false
+  },
   modalWidth: {
     type: Number,
     default: 500
@@ -58,6 +65,7 @@ const minWidth = ref(200)
 const minHeight = ref(100)
 const isResizing = ref(false)
 const isDragging = ref(false)
+const isFullScreen = ref(false)
 
 let startX = 0
 let startY = 0
@@ -65,12 +73,13 @@ let initialX = 0
 let initialY = 0
 let startWidth = 0
 let startHeight = 0
+let preFullScreenState = { x: 0, y: 0, width: 0, height: 0 }
 
 const modalStyle = computed(() => ({
-  top: `${y.value}px`,
-  left: `${x.value}px`,
-  width: `${width.value}px`,
-  height: `${height.value}px`,
+  top: isFullScreen.value ? '0' : `${y.value}px`,
+  left: isFullScreen.value ? '0' : `${x.value}px`,
+  width: isFullScreen.value ? '100vw' : `${width.value}px`,
+  height: isFullScreen.value ? '100vh' : `${height.value}px`,
   maxWidth: '100vw',
   maxHeight: '100vh'
 }))
@@ -80,6 +89,7 @@ function close() {
 }
 
 function startResize(event: MouseEvent) {
+  if (isFullScreen.value) return
   isResizing.value = true
   startWidth = width.value - event.clientX
   startHeight = height.value - event.clientY
@@ -87,7 +97,7 @@ function startResize(event: MouseEvent) {
 }
 
 function resizeModal(event: MouseEvent) {
-  if (!isResizing.value) return
+  if (!isResizing.value || isFullScreen.value) return
   const newWidth = Math.min(startWidth + event.clientX, window.innerWidth)
   const newHeight = Math.min(startHeight + event.clientY, window.innerHeight)
   width.value = Math.max(newWidth, minWidth.value)
@@ -100,6 +110,7 @@ function stopResize() {
 }
 
 function startDrag(event: MouseEvent) {
+  if (isFullScreen.value) return
   isDragging.value = true
   startX = event.clientX
   startY = event.clientY
@@ -109,7 +120,7 @@ function startDrag(event: MouseEvent) {
 }
 
 function drag(event: MouseEvent) {
-  if (!isDragging.value) return
+  if (!isDragging.value || isFullScreen.value) return
   const dx = event.clientX - startX
   const dy = event.clientY - startY
   x.value = initialX + dx
@@ -122,11 +133,13 @@ function stopDrag() {
 }
 
 function adjustPosition() {
+  if (isFullScreen.value) return
   x.value = Math.max(0, Math.min(x.value, window.innerWidth - width.value))
   y.value = Math.max(0, Math.min(y.value, window.innerHeight - height.value))
 }
 
 function handleResize() {
+  if (isFullScreen.value) return
   width.value = Math.min(width.value, window.innerWidth)
   height.value = Math.min(height.value, window.innerHeight)
   adjustPosition()
@@ -139,6 +152,21 @@ function initializePosition() {
   y.value = (window.innerHeight - height.value) / 2
 }
 
+function toggleFullScreen() {
+  if (isFullScreen.value) {
+    // Exit full-screen
+    x.value = preFullScreenState.x
+    y.value = preFullScreenState.y
+    width.value = preFullScreenState.width
+    height.value = preFullScreenState.height
+    isFullScreen.value = false
+  } else {
+    // Enter full-screen
+    preFullScreenState = { x: x.value, y: y.value, width: width.value, height: height.value }
+    isFullScreen.value = true
+  }
+}
+
 watch(
   () => props.isModalOpen,
   (value) => {
diff --git a/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue b/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
index dbeff23..00b21f0 100644
--- a/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
+++ b/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
@@ -14,40 +14,58 @@
     </div>
     <div class="m-2.5 px-2.5 block">
       <button class="btn-cyan px-4 py-1.5 flex-1 sm:flex-none sm:min-w-24 mb-5" type="button" @click.prevent="addNewImage">New IMG</button>
-      <Accordion v-for="image in spriteImages" :key="image.id" :title="image.name">
-        <form class="flex gap-2.5 flex-wrap" @submit.prevent="saveSprite">
-          <div class="w-full flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="name">Name</label>
-            <input v-model="image.name" class="input-cyan" type="text" name="name" placeholder="Wall #1" />
+      <Accordion v-for="image in spriteImages" :key="image.id">
+        <template #header>
+          <div class="flex items-center">
+            {{ image.name }}
+            <div class="ml-auto flex gap-2">
+              <label for="upload-asset" class="text-sm bg-cyan/50 border border-solid border-white/25 rounded drop-shadow-20 p-1.5 inline-flex items-center justify-center hover:bg-cyan hover:cursor-pointer">
+                <input class="hidden" id="upload-asset" ref="objectUploadField" type="file" accept="image/png" />
+                Set image
+              </label>
+              <button class="btn-bordeaux px-4 py-1.5 flex-1 sm:flex-none sm:min-w-24" type="button" @click.prevent="() => spriteImages.splice(spriteImages.indexOf(image), 1)">Remove</button>
+            </div>
           </div>
-          <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="origin-x">Origin X</label>
-            <input v-model.number="image.origin_x" class="input-cyan" type="number" step="any" name="origin-x" placeholder="Origin X" />
-          </div>
-          <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="origin-y">Origin Y</label>
-            <input v-model.number="image.origin_y" class="input-cyan" type="number" step="any" name="origin-y" placeholder="Origin Y" />
-          </div>
-          <div class="w-full flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="frame-speed">Frame speed</label>
-            <input v-model.number="image.frameSpeed" class="input-cyan" type="number" step="any" name="frame-speed" placeholder="Frame speed" />
-          </div>
-          <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="frame-width">Frame width</label>
-            <input v-model.number="image.frameWidth" class="input-cyan" type="number" step="any" name="frame-width" placeholder="Frame width" />
-          </div>
-          <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="frame-height">Frame height</label>
-            <input v-model.number="image.frameHeight" class="input-cyan" type="number" step="any" name="frame-height" placeholder="Frame height" />
-          </div>
-          <div class="w-full flex flex-col mb-5">
-            <label class="mb-1.5 font-titles" for="is-looping">Is looping</label>
-            <select v-model="image.isLooping" class="input-cyan" name="is-looping">
-              <option :value="false">No</option>
-              <option :value="true">Yes</option>
-            </select>
-          </div>
-        </form>
+        </template>
+        <template #content>
+          <form class="flex gap-2.5 flex-wrap" @submit.prevent="saveSprite">
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="name">Name</label>
+              <input v-model="image.name" class="input-cyan" type="text" name="name" placeholder="Wall #1" />
+            </div>
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="action">Action</label>
+              <input v-model="image.action" class="input-cyan" type="text" name="action" placeholder="Action" />
+            </div>
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="origin-x">Origin X</label>
+              <input v-model.number="image.origin_x" class="input-cyan" type="number" step="any" name="origin-x" placeholder="Origin X" />
+            </div>
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="origin-y">Origin Y</label>
+              <input v-model.number="image.origin_y" class="input-cyan" type="number" step="any" name="origin-y" placeholder="Origin Y" />
+            </div>
+            <div class="w-full flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="frame-speed">Frame speed</label>
+              <input v-model.number="image.frameSpeed" class="input-cyan" type="number" step="any" name="frame-speed" placeholder="Frame speed" />
+            </div>
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="frame-width">Frame width</label>
+              <input v-model.number="image.frameWidth" class="input-cyan" type="number" step="any" name="frame-width" placeholder="Frame width" />
+            </div>
+            <div class="w-[calc(50%_-_5px)] flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="frame-height">Frame height</label>
+              <input v-model.number="image.frameHeight" class="input-cyan" type="number" step="any" name="frame-height" placeholder="Frame height" />
+            </div>
+            <div class="w-full flex flex-col mb-5">
+              <label class="mb-1.5 font-titles" for="is-looping">Is looping</label>
+              <select v-model="image.isLooping" class="input-cyan" name="is-looping">
+                <option :value="false">No</option>
+                <option :value="true">Yes</option>
+              </select>
+            </div>
+          </form>
+        </template>
       </Accordion>
     </div>
   </div>
@@ -106,7 +124,7 @@ function saveSprite() {
   const updatedSprite = {
     id: selectedSprite.value.id,
     name: spriteName.value,
-    spriteImages: selectedSprite.value.spriteImages
+    spriteImages: spriteImages.value
   }
 
   gameStore.connection?.emit('gm:sprite:update', updatedSprite, (response: boolean) => {
diff --git a/src/config.ts b/src/config.ts
index 4a929c1..763f5d6 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,4 +1,4 @@
-const dev: boolean = false
+const dev: boolean = true
 
 export default {
   name: 'New Quest',
diff --git a/src/screens/Game.vue b/src/screens/Game.vue
index b7b655c..1d9be50 100644
--- a/src/screens/Game.vue
+++ b/src/screens/Game.vue
@@ -1,6 +1,6 @@
 <template>
-  <GmTools v-if="isLoaded && gameStore.character?.role === 'gm'" />
-  <GmPanel v-if="isLoaded && gameStore.character?.role === 'gm'" />
+  <GmTools v-if="gameStore.character?.role === 'gm'" />
+  <GmPanel v-if="gameStore.character?.role === 'gm'" />
 
   <div class="flex justify-center items-center h-dvh p-8 relative">
     <div v-if="!zoneEditorStore.active">
@@ -18,11 +18,11 @@
       </Game>
     </div>
     <div v-if="zoneEditorStore.active">
-      <Game :config="gameConfig" @create="createGame">
-        <Scene name="main" @preload="preloadScene" @create="createScene">
-          <ZoneEditor v-if="isLoaded" :key="zoneEditorStore.zone?.id ?? 0" />
-        </Scene>
-      </Game>
+      <!--      <Game :config="gameConfig" @create="createGame">-->
+      <!--        <Scene name="main" @preload="preloadScene" @create="createScene">-->
+      <!--          <ZoneEditor v-if="isLoaded" :key="zoneEditorStore.zone?.id ?? 0" />-->
+      <!--        </Scene>-->
+      <!--      </Game>-->
     </div>
   </div>
 </template>
@@ -129,6 +129,7 @@ const preloadScene = (scene: Phaser.Scene) => {
     'character',
     'data:image/png;base64,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'
   )
+  scene.textures.addImage('character', '/assets/avatar/default/idle.png')
   scene.load.spritesheet('characterW', '/assets/avatar/default/walk.png', { frameWidth: 36, frameHeight: 94 })
 }
 
diff --git a/src/stores/zoneEditor.ts b/src/stores/zoneEditor.ts
index 3adfbf1..060b066 100644
--- a/src/stores/zoneEditor.ts
+++ b/src/stores/zoneEditor.ts
@@ -4,7 +4,7 @@ import type { Zone, Object, Tile, ZoneObject } from '@/types'
 
 export const useZoneEditorStore = defineStore('zoneEditor', {
   state: () => ({
-    active: false,
+    active: true,
     zone: null as Zone | null,
     tool: 'move',
     drawMode: 'tile',