diff --git a/src/ntqqapi/constructor.ts b/src/ntqqapi/constructor.ts
index 1c3e885..ae198d7 100644
--- a/src/ntqqapi/constructor.ts
+++ b/src/ntqqapi/constructor.ts
@@ -6,6 +6,7 @@ import {
   SendArkElement,
   SendFaceElement,
   SendFileElement,
+  SendMarketFaceElement,
   SendPicElement,
   SendPttElement,
   SendReplyElement,
@@ -260,6 +261,17 @@ export class SendMsgElementConstructor {
     }
   }
 
+  static mface(emojiPackageId: number, emojiId: string, key: string):SendMarketFaceElement{
+    return {
+      elementType: ElementType.MFACE,
+      marketFaceElement: {
+        emojiPackageId,
+        emojiId,
+        key
+      },
+    }
+  }
+
   static dice(resultId: number | null): SendFaceElement {
     // 实际测试并不能控制结果
 
diff --git a/src/ntqqapi/types/msg.ts b/src/ntqqapi/types/msg.ts
index d36a93b..fd30bc2 100644
--- a/src/ntqqapi/types/msg.ts
+++ b/src/ntqqapi/types/msg.ts
@@ -10,6 +10,7 @@ export enum ElementType {
     FACE = 6,
     REPLY = 7,
     ARK = 10,
+    MFACE = 11,
 }
 
 export interface SendTextElement {
@@ -91,6 +92,11 @@ export interface SendFaceElement {
     faceElement: FaceElement
 }
 
+export interface SendMarketFaceElement {
+    elementType: ElementType.MFACE,
+    marketFaceElement: MarketFaceElement
+}
+
 export interface FileElement {
     "fileMd5"?: "",
     "fileName": string,
@@ -128,7 +134,7 @@ export interface SendArkElement {
 }
 
 export type SendMessageElement = SendTextElement | SendPttElement |
-    SendPicElement | SendReplyElement | SendFaceElement | SendFileElement | SendVideoElement | SendArkElement
+    SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement
 
 export enum AtType {
     notAt = 0,
@@ -238,42 +244,9 @@ export interface FaceElement {
 }
 
 export interface MarketFaceElement {
-    "itemType": 6,
-    "faceInfo": 1,
-    "emojiPackageId": 203875,
-    "subType": 3,
-    "mediaType": 0,
-    "imageWidth": 200,
-    "imageHeight": 200,
-    "faceName": string,
-    "emojiId": "094d53bd1c9ac5d35d04b08e8a6c992c",
-    "key": "a8b1dd0aebc8d910",
-    "param": null,
-    "mobileParam": null,
-    "sourceType": null,
-    "startTime": null,
-    "endTime": null,
-    "emojiType": 1,
-    "hasIpProduct": null,
-    "voiceItemHeightArr": null,
-    "sourceName": null,
-    "sourceJumpUrl": null,
-    "sourceTypeName": null,
-    "backColor": null,
-    "volumeColor": null,
-    "staticFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c_aio.png",
-    "dynamicFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c",
-    "supportSize": [
-        {
-            "width": 300,
-            "height": 300
-        },
-        {
-            "width": 200,
-            "height": 200
-        }
-    ],
-    "apngSupportSize": null
+    "emojiPackageId": number,
+    "emojiId": string,
+    "key": string,
 }
 
 export interface VideoElement {
@@ -420,6 +393,7 @@ export interface RawMessage {
         arkElement: ArkElement;
         grayTipElement: GrayTipElement;
         faceElement: FaceElement;
+        mfaceElement: MarketFaceElement;
         videoElement: VideoElement;
         fileElement: FileElement;
         marketFaceElement: MarketFaceElement;
diff --git a/src/onebot11/action/msg/SendMsg.ts b/src/onebot11/action/msg/SendMsg.ts
index 5cda5e5..092e787 100644
--- a/src/onebot11/action/msg/SendMsg.ts
+++ b/src/onebot11/action/msg/SendMsg.ts
@@ -155,7 +155,9 @@ export async function createSendElements(messageData: OB11MessageData[], target:
                 }
             }
                 break;
-
+            case OB11MessageDataType.mface: {
+                sendElements.push(SendMsgElementConstructor.mface(sendMsg.data.emojiPackageId, sendMsg.data.emojiId, sendMsg.data.key))
+            }
             case OB11MessageDataType.image:
             case OB11MessageDataType.file:
             case OB11MessageDataType.video:
diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts
index 7425a23..3cc88bc 100644
--- a/src/onebot11/constructor.ts
+++ b/src/onebot11/constructor.ts
@@ -224,6 +224,10 @@ export class OB11Constructor {
         // const url = `https://p.qpic.cn/CDN_STATIC/0/data/imgcache/htdocs/club/item/parcel/item/${dir}/${md5}/300x300.gif?max_age=31536000`
         const url = `https://gxh.vip.qq.com/club/item/parcel/item/${dir}/${md5}/raw300.gif`;
         message_data["data"]["url"] = url;
+        message_data["data"]["emoji_id"] = element.marketFaceElement.emojiId
+        message_data["data"]["emoji_package_id"] = String(element.marketFaceElement.emojiPackageId)
+        message_data["data"]["key"] = element.marketFaceElement.key
+
       } else if (element.markdownElement) {
         message_data["type"] = OB11MessageDataType.markdown;
         message_data["data"]["data"] = element.markdownElement.content;
diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts
index b4a9540..2d88e31 100644
--- a/src/onebot11/types.ts
+++ b/src/onebot11/types.ts
@@ -125,7 +125,9 @@ export enum OB11MessageDataType {
 export interface OB11MessageMFace{
     type: OB11MessageDataType.mface,
     data: {
-        text: string
+        emojiPackageId: number,
+        emojiId: string,
+        key: string
     }
 }