diff --git a/examples/mas-dt/instruction_set.json b/examples/mas-dt/instruction_set.json
new file mode 100644
index 0000000000000000000000000000000000000000..9f2de4f9146e7b2d75050924a32737816508b951
--- /dev/null
+++ b/examples/mas-dt/instruction_set.json
@@ -0,0 +1,32 @@
+{
+  "header":{
+      "message_ID": "b427003c-0000-11aa-a1eb-bvcdfghjgfdd",
+      "timestamp": "2024-09-03T00:00:00Z",
+      "version": 1,
+      "source": "ori",
+      "destination": "internal.noc.slocum.unit_111.to_platform.instruction_set",
+      "delivery_type": "publish",
+      "encoded": true
+  },
+  "payload":{
+      "message_type": "instruction_set",
+      "categories": {
+        "speed": "slow",
+        "data_transmission": "normal"
+      },
+      "files": [
+        {
+          "name": "yo95.ma",
+          "content": "YmVoYXZpb3JfbmFtZT15bw0KIyB5bzM1Lm1hDQojIFN0YW5kYXJkIFlPIEZpbGUgZmlsZSBnMiBvciBnMyBOT0MgZ2xpZGVycw0KIyAgMSBZTw0KIyAgMzBtIGRlcHRoDQojICBBbHRpbWV0ZXIgT24gYXQgbWF4aW11biBzcGVlZA0KIyAgQXV0b2JhbGxhc3Qgb24gLSBGdWxsIEJ1b3lhbmN5DQojICBCYXR0ZXJ5IE1vZGUgU2Vydm8gMjYgZGVlZ3JlZXMNCiMgU2VlIC9kb2NvL2h3LWl0LXdvcmtzL2F1dG9iYWxsYXN0LnR4dCBhbmQgbWFzdGVyZGF0YSBmb3IgZnVsbCBsaXN0IG9mIGJfYXJncy4NCiMgMjIgLSBBdWd1c3QgMjAxNiBhbHZhcm8ubG9yZW56b0Bub2MuYWMudWsNCiMgMDIgLSBEZWMgMjAyMSBiZW4uYWxsc3VwQG5vYyBjbGVhbiB1cCBmb3IgZzMgYW5kIHRocnVzdGVyIHVzYWdlDQoNCjxzdGFydDpiX2FyZz4JDQojICAgIGJfYXJnOiBudW1faGFsZl9jeWNsZXNfdG9fZG8obm9kaW0pIDIgCQkJIyBOdW1iZXIgb2YgZGl2ZS9jbGltYnMgdG8gcGVyZm9ybQ0KCQkJCQkJCQkJCQkJCQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQojIGFyZ3VtZW50cyBmb3IgZGl2ZV90bw0KICAgIGJfYXJnOiBkX2JwdW1wX3ZhbHVlKFgpIAkgICAgICAJMzAwLjAgCQkjIHRvdGFsIGRyaXZlIHZvbHVtZSBmb3IgYXV0b2JhbGxhc3QNCiAgICBiX2FyZzogZF9waXRjaF92YWx1ZShYKSAgIAkgICAgICAJLTAuMzQ5ICAJIyAtMjAgZGVnDQogICANCiMgYXJndW1lbnRzIGZvciBjbGltYl90bw0KICAgIGJfYXJnOiBjX3BpdGNoX3ZhbHVlKFgpICAgICAJCTAuMzQ5ICAgICAgICMgKzIwIGRlZw0KDQo8ZW5kOmJfYXJnPg0K"
+        },
+        {
+          "name": "tbdlist.dat",
+          "content": "IyMjIG1hbmRhdG9yeSB0aW1lIGluZm9ybWF0aW9uIGF0IGZ1bGwgcmVzb2x1dGlvbg0KU0NJX01fUFJFU0VOVF9USU1FDQpTQ0lfTV9QUkVTRU5UX1NFQ1NfSU5UT19NSVNTSU9ODQoNCiMjIyMjIyMjIyBzdGFuZGFyZCBDVEQgaW5mb3JtYXRpb24gIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyByZWNvbW1lbmRlZCBzYW1wbGUgcmF0ZSA6IDwgMTAgc2Vjb25kcw0KU0NJX1dBVEVSX0NPTkQgICAgICAgICAxMCAjIHRvIHNhbXBsZSBldmVyeSBvdGhlciB5byBvbiBkb3duY2FzdCBvbmx5LCB1c2UgMTAgMSAtMSAyDQpTQ0lfV0FURVJfVEVNUCAgICAgICAgIDEwDQpTQ0lfV0FURVJfUFJFU1NVUkUgICAgIDEwDQojU0NJX0NURDQxQ1BfVElNRVNUQU1QICAxMA=="
+        },
+        {
+          "name": "sample99.ma", 
+          "content": "YmVoYXZpb3JfbmFtZT1zYW1wbGUNCjxzdGFydDpiX2FyZz4NCiAgICBiX2FyZzogbnRoX3lvX3RvX3NhbXBsZShub2RpbSkgICAgICAgICAgICAJMiAgCSAjIENoZWNrIG1hc3RlcmRhdGENCiAgICBiX2FyZzogbWF4X2RlcHRoKG0pICAgICAgICAgICAgICAgICAgIAkgMjAwMCAgICAjIENoZWNrIG1hc3RlcmRhdGENCjxlbmQ6Yl9hcmc+DQo="
+        }
+      ]
+  }
+}
\ No newline at end of file
diff --git a/formats/instruction_set.py b/formats/instruction_set.py
new file mode 100644
index 0000000000000000000000000000000000000000..0dc59d086b37affa4c891a9040c40d7eb6e23847
--- /dev/null
+++ b/formats/instruction_set.py
@@ -0,0 +1,50 @@
+"""
+    schemas: Instruction set message containing a collection of configuration files
+"""
+
+config_file_schema = {
+    "type": "object",
+    "properties": {
+        "name": {
+            "type": "string",
+            "description": "Name of file",
+            "example": "yo95.ma",
+        },
+        "content": {
+            "type": "string",
+            "description": "Base64 encoded file content",
+            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcB"
+            + "AAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
+        },
+        "mime_type": {
+            "type": "string",
+            "description": "MIME type",
+            "example": "text/plain",
+        }
+    },
+    "required": ["name", "content"],
+}
+
+
+instruction_set_schema = {
+    "type": "object",
+    "properties": {
+        "message_type": {
+            "type": "string",
+            "description": "Type of message",
+            "example": "instruction_set",
+            "enum": ["instruction_set"],
+        },
+        "categories": {
+            "type": "object",
+        },
+        "files": {
+            "type": "array",
+            "items": config_file_schema,
+        },        
+    },
+    "required": [
+        "message_type",
+        "files",
+    ],
+}
diff --git a/formats/payload.py b/formats/payload.py
index 062527f48de04a9642655b9a0b7ea8caeeccff79..0868657e81a5208ed8e9a4cbe0cd278777655db7 100644
--- a/formats/payload.py
+++ b/formats/payload.py
@@ -3,6 +3,7 @@ payload_schema = {
         "propertyName": "message_type",
         "mapping": {
             "alert": "#/components/schemas/alert",
+            "instruction_set": "#/components/schemas/instruction_set",
             "mission_plan": "#/components/schemas/mission_plan",
             "mission_plan_encoded": "#/components/schemas/" + "mission_plan_encoded",
             "observation": "#/components/schemas/observation",
@@ -20,6 +21,7 @@ payload_schema = {
     "oneOf": [
         {"$ref": "#/components/schemas/alert"},
         {"$ref": "#/components/schemas/acknowledgement"},
+        {"$ref": "#/components/schemas/instruction_set"},
         {"$ref": "#/components/schemas/mission_plan"},
         {"$ref": "#/components/schemas/mission_plan_encoded"},
         {"$ref": "#/components/schemas/observation"},
diff --git a/generate_schema_config.py b/generate_schema_config.py
index 57cadb697866fbdfe092e63a9dfc2417e5b82236..3c0f530a8635479c1af949877718cc11afa89f21 100644
--- a/generate_schema_config.py
+++ b/generate_schema_config.py
@@ -12,6 +12,7 @@ from formats.survey import survey_schema
 from formats.survey_encoded import survey_encoded_schema
 from formats.acknowledgement import acknowledgement_schema
 from formats.alert import alert_schema
+from formats.instruction_set import config_file_schema, instruction_set_schema
 
 from flasgger import Swagger
 from flask import Flask
@@ -71,6 +72,8 @@ def get_swagger_config(reload=False):
                 "survey_encoded": survey_encoded_schema,
                 "acknowledgement": acknowledgement_schema,
                 "alert": alert_schema,
+                "instruction_set": instruction_set_schema,
+                "config_file": config_file_schema,
             }
         },
     }
diff --git a/project/soar/swagger.json b/project/soar/swagger.json
index e76d2ff1c94467e82b7a9715f077b451543ffed1..6580aaf335632b423902b062dbf0d0fccc0dd103 100644
--- a/project/soar/swagger.json
+++ b/project/soar/swagger.json
@@ -111,6 +111,30 @@
         ],
         "type": "object"
       },
+      "config_file": {
+        "properties": {
+          "content": {
+            "description": "Base64 encoded file content",
+            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
+            "type": "string"
+          },
+          "mime_type": {
+            "description": "MIME type",
+            "example": "text/plain",
+            "type": "string"
+          },
+          "name": {
+            "description": "Name of file",
+            "example": "yo95.ma",
+            "type": "string"
+          }
+        },
+        "required": [
+          "name",
+          "content"
+        ],
+        "type": "object"
+      },
       "geojson.org.schema.Feature.json": {
         "properties": {
           "bbox": {
@@ -1446,6 +1470,53 @@
         ],
         "type": "object"
       },
+      "instruction_set": {
+        "properties": {
+          "categories": {
+            "type": "object"
+          },
+          "files": {
+            "items": {
+              "properties": {
+                "content": {
+                  "description": "Base64 encoded file content",
+                  "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
+                  "type": "string"
+                },
+                "mime_type": {
+                  "description": "MIME type",
+                  "example": "text/plain",
+                  "type": "string"
+                },
+                "name": {
+                  "description": "Name of file",
+                  "example": "yo95.ma",
+                  "type": "string"
+                }
+              },
+              "required": [
+                "name",
+                "content"
+              ],
+              "type": "object"
+            },
+            "type": "array"
+          },
+          "message_type": {
+            "description": "Type of message",
+            "enum": [
+              "instruction_set"
+            ],
+            "example": "instruction_set",
+            "type": "string"
+          }
+        },
+        "required": [
+          "message_type",
+          "files"
+        ],
+        "type": "object"
+      },
       "mission_plan": {
         "properties": {
           "autonomy_engine_plan_ID": {
@@ -1730,6 +1801,7 @@
           "mapping": {
             "acknowledgement": "#/components/schemas/acknowledgement",
             "alert": "#/components/schemas/alert",
+            "instruction_set": "#/components/schemas/instruction_set",
             "mission_plan": "#/components/schemas/mission_plan",
             "mission_plan_encoded": "#/components/schemas/mission_plan_encoded",
             "observation": "#/components/schemas/observation",
@@ -1743,11 +1815,14 @@
           "propertyName": "message_type"
         },
         "oneOf": [
+          {
+            "$ref": "#/components/schemas/acknowledgement"
+          },
           {
             "$ref": "#/components/schemas/alert"
           },
           {
-            "$ref": "#/components/schemas/acknowledgement"
+            "$ref": "#/components/schemas/instruction_set"
           },
           {
             "$ref": "#/components/schemas/mission_plan"