diff --git a/Maple2.File.Parser/Maple2.File.Parser.csproj b/Maple2.File.Parser/Maple2.File.Parser.csproj
index f16bc4d..b9dd719 100644
--- a/Maple2.File.Parser/Maple2.File.Parser.csproj
+++ b/Maple2.File.Parser/Maple2.File.Parser.csproj
@@ -13,7 +13,7 @@
MapleStory2, File, Parser, m2d, xml
true
- 2.4.17
+ 2.4.18
net8.0
README.md
enable
diff --git a/Maple2.File.Parser/Xml/Map/MapXBlock.cs b/Maple2.File.Parser/Xml/Map/MapXBlock.cs
new file mode 100644
index 0000000..fcf25d9
--- /dev/null
+++ b/Maple2.File.Parser/Xml/Map/MapXBlock.cs
@@ -0,0 +1,74 @@
+using System.Numerics;
+using System.Xml.Serialization;
+using M2dXmlGenerator;
+
+namespace Maple2.File.Parser.Xml.Map;
+
+// ./data/xml/mapxblock/.xml
+[XmlRoot("ms2")]
+public class MapXBlockDataRoot {
+ [XmlElement] public ClientProperty clientProperty;
+ [XmlElement] public Minimap minimap;
+ [XmlElement] public Fog fog;
+ [XmlElement] public HeightFog heightfog;
+}
+
+public class ClientProperty {
+ [XmlAttribute] public string bgDay;
+}
+
+public partial class Minimap {
+ [XmlElement] public Image image;
+ [XmlElement] public Frustum frustum;
+ [XmlElement] public Screen screen;
+ [XmlElement] public Camera camera;
+ [XmlElement] public Edit edit;
+
+ public class Image {
+ [XmlAttribute] public string name;
+ [XmlAttribute] public float left;
+ [XmlAttribute] public float right;
+ [XmlAttribute] public float top;
+ [XmlAttribute] public float bottom;
+ [XmlAttribute] public string icon;
+ }
+
+ public class Frustum {
+ [XmlAttribute] public float left;
+ [XmlAttribute] public float right;
+ [XmlAttribute] public float top;
+ [XmlAttribute] public float bottom;
+ [XmlAttribute] public float near;
+ [XmlAttribute] public float far;
+ [XmlAttribute] public bool ortho;
+ }
+
+ public class Screen {
+ [XmlAttribute] public float left;
+ [XmlAttribute] public float right;
+ [XmlAttribute] public float top;
+ [XmlAttribute] public float bottom;
+ }
+
+ public partial class Camera {
+ [M2dVector3] public Vector3 position;
+ [M2dVector3] public Vector3 rotation;
+ }
+
+ public class Edit {
+ [XmlAttribute] public float zoomfactor;
+ }
+}
+
+public partial class Fog {
+ [M2dColor] public System.Drawing.Color color;
+ [XmlAttribute] public float near;
+ [XmlAttribute] public float far;
+}
+
+public partial class HeightFog {
+ [M2dColor] public System.Drawing.Color color;
+ [XmlAttribute] public float upper;
+ [XmlAttribute] public float lower;
+ [XmlAttribute] public int percentage;
+}
diff --git a/Maple2.File.Parser/Xml/Table/Server/ItemOptionRandom.cs b/Maple2.File.Parser/Xml/Table/Server/ItemOptionRandom.cs
index 451e962..18910ce 100644
--- a/Maple2.File.Parser/Xml/Table/Server/ItemOptionRandom.cs
+++ b/Maple2.File.Parser/Xml/Table/Server/ItemOptionRandom.cs
@@ -10,6 +10,7 @@ public class ItemOptionRandomRoot {
public class ItemOptionRandom {
[XmlAttribute] public int code;
+ [XmlAttribute] public int grade; // custom
[XmlAttribute] public int statGroup;
[XmlAttribute] public int levelGroupID;
[XmlAttribute] public int pickCount;