diff --git a/DataCollection/HI1.MAP b/DataCollection/HI1.MAP
new file mode 100644
index 0000000..78b93b6
Binary files /dev/null and b/DataCollection/HI1.MAP differ
diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json
index 72d72d4..12d0d75 100644
--- a/DataCollection/gamedata.json
+++ b/DataCollection/gamedata.json
@@ -42,7 +42,7 @@
 		"end_of_meta":"^Z",
 		"back_to_map":"^M",
 		"long_full_line":"^L",
-		"inventory_format":"^ATYour Inventory^H<B>You are carrying the following %ITEMCOUNT% different items:</B> (%% max)",
+		"inventory_format":"^ATYour Inventory^H<B>You are carrying the following %ITEMCOUNT% different items:</B> (%MAX%)",
 		"dropped_items":{
 			"nothing_message":"^LYou see nothing on the ground of interest.^R1",
 			"items_message":"^LYou see the following on the ground:^R1",
diff --git a/Horse Isle Server/Horse Isle Server/Database.cs b/Horse Isle Server/Horse Isle Server/Database.cs
index 82a971d..9e9ce9f 100644
--- a/Horse Isle Server/Horse Isle Server/Database.cs	
+++ b/Horse Isle Server/Horse Isle Server/Database.cs	
@@ -305,7 +305,7 @@ namespace Horse_Isle_Server
                 db.Open();
                 MySqlCommand sqlCommand = db.CreateCommand();
 
-                sqlCommand.CommandText = "DELETE FROM Inventory WHERE (RandomId=@randomId)";
+                sqlCommand.CommandText = "DELETE FROM DroppedItems WHERE (RandomId=@randomId)";
                 sqlCommand.Parameters.AddWithValue("@randomId", randomId);
                 sqlCommand.Prepare();
                 sqlCommand.ExecuteNonQuery();
diff --git a/Horse Isle Server/Horse Isle Server/DroppedItems.cs b/Horse Isle Server/Horse Isle Server/DroppedItems.cs
index 76423e9..1c1cd69 100644
--- a/Horse Isle Server/Horse Isle Server/DroppedItems.cs	
+++ b/Horse Isle Server/Horse Isle Server/DroppedItems.cs	
@@ -57,14 +57,22 @@ namespace Horse_Isle_Server
             int epoch_new = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
 
             DespawnItems(epoch, epoch_new);
-            epoch = epoch_new;
 
             GenerateItems();
         }
         public static void RemoveDroppedItem(DroppedItem item)
         {
-            Database.RemoveDroppedItem(item.instance.RandomID);
-            droppedItemsList.Remove(item);
+            int randomId = item.instance.RandomID;
+            Database.RemoveDroppedItem(randomId);
+            for (int i = 0; i < droppedItemsList.Count; i++) 
+            {
+                if(droppedItemsList[i].instance.RandomID == randomId)
+                {
+                    droppedItemsList.RemoveAt(i);
+                    
+                }
+            }
+            
         }
         public static DroppedItem GetDroppedItemById(int randomId)
         {
@@ -84,17 +92,21 @@ namespace Horse_Isle_Server
         }
         public static void DespawnItems(int old_epoch, int new_epoch)
         {
+            int removedCount = 0;
             DroppedItem[] items = droppedItemsList.ToArray();
             foreach (DroppedItem item in items)
             {
-                if(old_epoch + item.DespawnTimer < new_epoch)
+                if(new_epoch + item.DespawnTimer < old_epoch)
                 {
                     if(Server.GetUsersAt(item.X, item.Y,true,true).Length == 0)
                     {
                         RemoveDroppedItem(item);
+                        removedCount++;
                     }
                 }
             }
+            if(removedCount > 0)
+                epoch = new_epoch;
         }
         public static void GenerateItems()
         {
@@ -176,7 +188,9 @@ namespace Horse_Isle_Server
 
             }
             if(newItems > 0)
+            {
                 Database.AddDroppedItems(droppedItemsList.ToArray());
+            }
         }
 
         public static void Init()
diff --git a/Horse Isle Server/Horse Isle Server/Map.cs b/Horse Isle Server/Horse Isle Server/Map.cs
index 5a2045a..a4eb3b0 100644
--- a/Horse Isle Server/Horse Isle Server/Map.cs	
+++ b/Horse Isle Server/Horse Isle Server/Map.cs	
@@ -18,23 +18,28 @@ namespace Horse_Isle_Server
 
         public static int[] OverlayTileDepth;
 
-        public static TerrainTile[] TerrainTiles;
+        public static int Width;
+        public static int Height;
 
-        public static Bitmap MapData;
+        public static byte[] MapData;
+        public static byte[] oMapData;
+
+        public static TerrainTile[] TerrainTiles;
         
 
         public static int NewUserStartX;
         public static int NewUserStartY;
         public static int GetTileId(int x, int y, bool overlay)
         {
-            if ((x > MapData.Width || x < 0) || (y > MapData.Height || y < 0)) // Outside map?
+            if ((x > Width || x < 0) || (y > Height || y < 0)) // Outside map?
                 return 0x1;
-                
+
+            int pos = ((x * Height) + y);
 
             if (overlay)
-                return MapData.GetPixel(x, y).R;
+                return oMapData[pos];
             else
-                return MapData.GetPixel(x, y).B;
+                return MapData[pos];
         }
         public static bool CheckPassable(int x, int y)
         {
@@ -83,7 +88,26 @@ namespace Horse_Isle_Server
                 return;
             }
 
-            MapData = new Bitmap(ConfigReader.MapFile);
+
+            byte[] worldMap = File.ReadAllBytes(ConfigReader.MapFile);
+
+            Width = BitConverter.ToInt32(worldMap, 0);
+            Height = BitConverter.ToInt32(worldMap, 4);
+            
+            MapData = new byte[Width * Height];
+            oMapData = new byte[Width * Height];
+            int ii = 8;
+
+            for (int i = 0; i < MapData.Length; i++)
+            {
+                
+                oMapData[i] = worldMap[ii];
+                MapData[i] = worldMap[ii+ 1];
+                ii += 2;
+            }
+
+            worldMap = null;
+
         }
     }
 }
diff --git a/Horse Isle Server/Horse Isle Server/Resources/server.properties b/Horse Isle Server/Horse Isle Server/Resources/server.properties
index c664a1a..58f2cda 100644
--- a/Horse Isle Server/Horse Isle Server/Resources/server.properties	
+++ b/Horse Isle Server/Horse Isle Server/Resources/server.properties	
@@ -13,7 +13,7 @@ db_password=test123
 db_port=3306
 
 # Map Data
-map=MapDataCombined.bmp
+map=HI1.MAP
 
 # JSON Format Data
 
diff --git a/Horse Isle Server/Horse Isle Server/Server.cs b/Horse Isle Server/Horse Isle Server/Server.cs
index 5003e54..8434e16 100644
--- a/Horse Isle Server/Horse Isle Server/Server.cs	
+++ b/Horse Isle Server/Horse Isle Server/Server.cs	
@@ -476,7 +476,7 @@ namespace Horse_Isle_Server
                         sender.LoggedinUser.Inventory.Add(item.instance);
                         DroppedItems.RemoveDroppedItem(item);
 
-                        UpdateAreaForAll(item.X, item.Y);
+                        UpdateAreaForAll(sender.LoggedinUser.X, sender.LoggedinUser.Y);
 
                         byte[] chatMessage = PacketBuilder.CreateChat(Messages.GrabbedItemMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
                         sender.SendPacket(chatMessage);