diff --git a/server/gameserver/mt/Attr.cc b/server/gameserver/mt/Attr.cc
new file mode 100644
index 00000000..94616d6f
--- /dev/null
+++ b/server/gameserver/mt/Attr.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/Attr.h"
+
+IMPL_TABLE(mt::Attr)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/Attr.h b/server/gameserver/mt/Attr.h
new file mode 100644
index 00000000..1c49f401
--- /dev/null
+++ b/server/gameserver/mt/Attr.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/Attr.h"
+
+namespace mt
+{
+
+ DECLARE_ID_TABLE(Attr, mtb::Attr,
+ "attr@attr.csv",
+ "attr_id")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/FormulaPvp.cc b/server/gameserver/mt/FormulaPvp.cc
new file mode 100644
index 00000000..25ef2af1
--- /dev/null
+++ b/server/gameserver/mt/FormulaPvp.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/FormulaPvp.h"
+
+IMPL_TABLE(mt::FormulaPvp)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/FormulaPvp.h b/server/gameserver/mt/FormulaPvp.h
new file mode 100644
index 00000000..e9f63d02
--- /dev/null
+++ b/server/gameserver/mt/FormulaPvp.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/FormulaPvp.h"
+
+namespace mt
+{
+
+ DECLARE_AUTO_ID_TABLE(FormulaPvp, mtb::FormulaPvp,
+ "formulaPvp@formulaPvp.csv",
+ "")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/Forward.h b/server/gameserver/mt/Forward.h
index 495581fc..c8dc5e3d 100644
--- a/server/gameserver/mt/Forward.h
+++ b/server/gameserver/mt/Forward.h
@@ -5,4 +5,14 @@ namespace mt
class Param;
class Hero;
class Map;
+ class Attr;
+ class FormulaPvp;
+ class GunQuality;
+ class GunTalentGrow;
+ class HeroQuality;
+ class MapTplThingJson;
+ class PveGemini;
+ class PveGeminiContent;
+ class PveGeminiMode;
+ class Text;
}
diff --git a/server/gameserver/mt/GunQuality.cc b/server/gameserver/mt/GunQuality.cc
new file mode 100644
index 00000000..cb6f951f
--- /dev/null
+++ b/server/gameserver/mt/GunQuality.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/GunQuality.h"
+
+IMPL_TABLE(mt::GunQuality)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/GunQuality.h b/server/gameserver/mt/GunQuality.h
new file mode 100644
index 00000000..29891805
--- /dev/null
+++ b/server/gameserver/mt/GunQuality.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/GunQuality.h"
+
+namespace mt
+{
+
+ DECLARE_ID_TABLE(GunQuality, mtb::GunQuality,
+ "gunQuality@gunQuality",
+ "id")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/GunTalentGrow.cc b/server/gameserver/mt/GunTalentGrow.cc
new file mode 100644
index 00000000..db7c4847
--- /dev/null
+++ b/server/gameserver/mt/GunTalentGrow.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/GunTalentGrow.h"
+
+IMPL_TABLE(mt::GunTalentGrow)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/GunTalentGrow.h b/server/gameserver/mt/GunTalentGrow.h
new file mode 100644
index 00000000..0c2802be
--- /dev/null
+++ b/server/gameserver/mt/GunTalentGrow.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/GunTalentGrow.h"
+
+namespace mt
+{
+
+ DECLARE_ID_TABLE(GunTalentGrow, mtb::GunTalentGrow,
+ "gunTalentGrow@gunTalentGrow",
+ "id")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/HeroQuality.cc b/server/gameserver/mt/HeroQuality.cc
new file mode 100644
index 00000000..2a13c438
--- /dev/null
+++ b/server/gameserver/mt/HeroQuality.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/HeroQuality.h"
+
+IMPL_TABLE(mt::HeroQualiy)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/HeroQuality.h b/server/gameserver/mt/HeroQuality.h
new file mode 100644
index 00000000..cb2cea7a
--- /dev/null
+++ b/server/gameserver/mt/HeroQuality.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/HeroQuality.h"
+
+namespace mt
+{
+
+ DECLARE_ID_TABLE(HeroQuality, mtb::HeroQuality,
+ "heroQuality@heroQuality",
+ "id")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/MapTplThingJson.cc b/server/gameserver/mt/MapTplThingJson.cc
new file mode 100644
index 00000000..683a7858
--- /dev/null
+++ b/server/gameserver/mt/MapTplThingJson.cc
@@ -0,0 +1,10 @@
+#include "precompile.h"
+
+#include "mt/MapTplThingJson.h"
+
+IMPL_TABLE(mt::MapTplThingJson)
+
+namespace mt
+{
+
+}
diff --git a/server/gameserver/mt/MapTplThingJson.h b/server/gameserver/mt/MapTplThingJson.h
new file mode 100644
index 00000000..1e7a0fa1
--- /dev/null
+++ b/server/gameserver/mt/MapTplThingJson.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "mt/macro.h"
+#include "mtb/MapTplThingJson.h"
+
+namespace mt
+{
+
+ DECLARE_AUTO_ID_TABLE(MapTplThingJson, mtb::MapTplThingJson,
+ "",
+ "")
+ public:
+
+ };
+
+}
diff --git a/server/gameserver/mt/MetaMgr.cc b/server/gameserver/mt/MetaMgr.cc
index 4b036987..6692a9d0 100644
--- a/server/gameserver/mt/MetaMgr.cc
+++ b/server/gameserver/mt/MetaMgr.cc
@@ -4,6 +4,16 @@
#include "mt/Param.h"
#include "mt/Map.h"
#include "mt/Hero.h"
+#include "mt/Attr.h"
+#include "mt/FormulaPvp.h"
+#include "mt/GunQuality.h"
+#include "mt/GunTalentGrow.h"
+#include "mt/HeroQuality.h"
+#include "mt/MapTplThingJson.h"
+#include "mt/PveGemini.h"
+#include "mt/PveGeminiContent.h"
+#include "mt/PveGeminiMode.h"
+#include "mt/Text.h"
#include "app.h"
@@ -33,6 +43,16 @@ namespace mt
RegMetaTable(res_path_);
RegMetaTable(res_path_);
RegMetaTable