diff --git a/docs/generated/comments.json b/docs/generated/comments.json
index f1a1954b..1878be4e 100644
--- a/docs/generated/comments.json
+++ b/docs/generated/comments.json
@@ -135,6 +135,81 @@
       },
       "examples": []
     },
+    {
+      "subheads": [],
+      "typedef": "{Object} `OBSStats`",
+      "property": [
+        "{double} `fps` Current framerate.",
+        "{int} `render-total-frames` Number of frames rendered",
+        "{int} `render-missed-frames` Number of frames missed due to rendering lag",
+        "{int} `output-total-frames` Number of frames outputted",
+        "{int} `output-skipped-frames` Number of frames skipped due to encoding lag",
+        "{double} `average-frame-time` Average frame render time (in milliseconds)",
+        "{double} `cpu-usage` Current CPU usage (percentage)",
+        "{double} `memory-usage` Current RAM usage (in megabytes)",
+        "{double} `free-disk-space` Free recording disk space (in megabytes)"
+      ],
+      "properties": [
+        {
+          "type": "double",
+          "name": "fps",
+          "description": "Current framerate."
+        },
+        {
+          "type": "int",
+          "name": "render-total-frames",
+          "description": "Number of frames rendered"
+        },
+        {
+          "type": "int",
+          "name": "render-missed-frames",
+          "description": "Number of frames missed due to rendering lag"
+        },
+        {
+          "type": "int",
+          "name": "output-total-frames",
+          "description": "Number of frames outputted"
+        },
+        {
+          "type": "int",
+          "name": "output-skipped-frames",
+          "description": "Number of frames skipped due to encoding lag"
+        },
+        {
+          "type": "double",
+          "name": "average-frame-time",
+          "description": "Average frame render time (in milliseconds)"
+        },
+        {
+          "type": "double",
+          "name": "cpu-usage",
+          "description": "Current CPU usage (percentage)"
+        },
+        {
+          "type": "double",
+          "name": "memory-usage",
+          "description": "Current RAM usage (in megabytes)"
+        },
+        {
+          "type": "double",
+          "name": "free-disk-space",
+          "description": "Free recording disk space (in megabytes)"
+        }
+      ],
+      "typedefs": [
+        {
+          "type": "Object",
+          "name": "OBSStats",
+          "description": ""
+        }
+      ],
+      "name": "",
+      "heading": {
+        "level": 2,
+        "text": ""
+      },
+      "examples": []
+    },
     {
       "subheads": [],
       "typedef": "{Object} `Scene`",
@@ -803,14 +878,22 @@
           "{boolean} `streaming` Current streaming state.",
           "{boolean} `recording` Current recording state.",
           "{boolean} `replay-buffer-active` Replay Buffer status",
-          "{boolean} `preview-only` Always false (retrocompatibility).",
           "{int} `bytes-per-sec` Amount of data per second (in bytes) transmitted by the stream encoder.",
           "{int} `kbits-per-sec` Amount of data per second (in kilobits) transmitted by the stream encoder.",
           "{double} `strain` Percentage of dropped frames.",
           "{int} `total-stream-time` Total time (in seconds) since the stream started.",
           "{int} `num-total-frames` Total number of frames transmitted since the stream started.",
           "{int} `num-dropped-frames` Number of frames dropped by the encoder since the stream started.",
-          "{double} `fps` Current framerate."
+          "{double} `fps` Current framerate.",
+          "{int} `render-total-frames` Number of frames rendered",
+          "{int} `render-missed-frames` Number of frames missed due to rendering lag",
+          "{int} `output-total-frames` Number of frames outputted",
+          "{int} `output-skipped-frames` Number of frames skipped due to encoding lag",
+          "{double} `average-frame-time` Average frame time (in milliseconds)",
+          "{double} `cpu-usage` Current CPU usage (percentage)",
+          "{double} `memory-usage` Current RAM usage (in megabytes)",
+          "{double} `free-disk-space` Free recording disk space (in megabytes)",
+          "{boolean} `preview-only` Always false (retrocompatibility)."
         ],
         "api": "events",
         "name": "StreamStatus",
@@ -832,11 +915,6 @@
             "name": "replay-buffer-active",
             "description": "Replay Buffer status"
           },
-          {
-            "type": "boolean",
-            "name": "preview-only",
-            "description": "Always false (retrocompatibility)."
-          },
           {
             "type": "int",
             "name": "bytes-per-sec",
@@ -871,6 +949,51 @@
             "type": "double",
             "name": "fps",
             "description": "Current framerate."
+          },
+          {
+            "type": "int",
+            "name": "render-total-frames",
+            "description": "Number of frames rendered"
+          },
+          {
+            "type": "int",
+            "name": "render-missed-frames",
+            "description": "Number of frames missed due to rendering lag"
+          },
+          {
+            "type": "int",
+            "name": "output-total-frames",
+            "description": "Number of frames outputted"
+          },
+          {
+            "type": "int",
+            "name": "output-skipped-frames",
+            "description": "Number of frames skipped due to encoding lag"
+          },
+          {
+            "type": "double",
+            "name": "average-frame-time",
+            "description": "Average frame time (in milliseconds)"
+          },
+          {
+            "type": "double",
+            "name": "cpu-usage",
+            "description": "Current CPU usage (percentage)"
+          },
+          {
+            "type": "double",
+            "name": "memory-usage",
+            "description": "Current RAM usage (in megabytes)"
+          },
+          {
+            "type": "double",
+            "name": "free-disk-space",
+            "description": "Free recording disk space (in megabytes)"
+          },
+          {
+            "type": "boolean",
+            "name": "preview-only",
+            "description": "Always false (retrocompatibility)."
           }
         ],
         "names": [
@@ -1218,7 +1341,8 @@
           "{boolean (optional)} `recording` Current recording state.",
           "{int (optional)} `total-record-time` Total time (in seconds) since recording started.",
           "{int (optional)} `total-record-bytes` Total bytes recorded since the recording started.",
-          "{int (optional)} `total-record-frames` Total frames recorded since the recording started."
+          "{int (optional)} `total-record-frames` Total frames recorded since the recording started.",
+          "{Stats} `stats` OBS Stats"
         ],
         "api": "events",
         "name": "Heartbeat",
@@ -1278,6 +1402,11 @@
             "type": "int (optional)",
             "name": "total-record-frames",
             "description": "Total frames recorded since the recording started."
+          },
+          {
+            "type": "Stats",
+            "name": "stats",
+            "description": "OBS Stats"
           }
         ],
         "names": [
@@ -2502,6 +2631,47 @@
         "lead": "",
         "type": "class",
         "examples": []
+      },
+      {
+        "subheads": [],
+        "description": "Get OBS stats (almost the same info as provided in OBS' stats window)",
+        "return": "{OBSStats} `stats` OBS stats",
+        "api": "requests",
+        "name": "GetStats",
+        "category": "general",
+        "since": "4.6.0",
+        "returns": [
+          {
+            "type": "OBSStats",
+            "name": "stats",
+            "description": "OBS stats"
+          }
+        ],
+        "names": [
+          {
+            "name": "",
+            "description": "GetStats"
+          }
+        ],
+        "categories": [
+          {
+            "name": "",
+            "description": "general"
+          }
+        ],
+        "sinces": [
+          {
+            "name": "",
+            "description": "4.6.0"
+          }
+        ],
+        "heading": {
+          "level": 2,
+          "text": "GetStats"
+        },
+        "lead": "",
+        "type": "class",
+        "examples": []
       }
     ],
     "profiles": [
diff --git a/docs/generated/protocol.md b/docs/generated/protocol.md
index 9d065e1a..fbbe63b6 100644
--- a/docs/generated/protocol.md
+++ b/docs/generated/protocol.md
@@ -44,6 +44,7 @@ auth_response = base64_encode(auth_response_hash)
 
 - [Typedefs](#typedefs)
   * [SceneItemTransform](#sceneitemtransform)
+  * [OBSStats](#obsstats)
   * [Scene](#scene)
   * [Source](#source)
 - [Events](#events)
@@ -107,6 +108,7 @@ auth_response = base64_encode(auth_response_hash)
     + [SetHeartbeat](#setheartbeat)
     + [SetFilenameFormatting](#setfilenameformatting)
     + [GetFilenameFormatting](#getfilenameformatting)
+    + [GetStats](#getstats)
   * [Profiles](#profiles-1)
     + [SetCurrentProfile](#setcurrentprofile)
     + [GetCurrentProfile](#getcurrentprofile)
@@ -218,6 +220,18 @@ These are complex types, such as `Source` and `Scene`, which are used as argumen
 | `sourceHeight` | _int_ | Base source (without scaling) of the source |
 | `width` | _double_ | Scene item width (base source width multiplied by the horizontal scaling factor) |
 | `height` | _double_ | Scene item height (base source height multiplied by the vertical scaling factor) |
+## OBSStats
+| Name | Type  | Description |
+| ---- | :---: | ------------|
+| `fps` | _double_ | Current framerate. |
+| `render-total-frames` | _int_ | Number of frames rendered |
+| `render-missed-frames` | _int_ | Number of frames missed due to rendering lag |
+| `output-total-frames` | _int_ | Number of frames outputted |
+| `output-skipped-frames` | _int_ | Number of frames skipped due to encoding lag |
+| `average-frame-time` | _double_ | Average frame render time (in milliseconds) |
+| `cpu-usage` | _double_ | Current CPU usage (percentage) |
+| `memory-usage` | _double_ | Current RAM usage (in megabytes) |
+| `free-disk-space` | _double_ | Free recording disk space (in megabytes) |
 ## Scene
 | Name | Type  | Description |
 | ---- | :---: | ------------|
@@ -480,7 +494,6 @@ Emit every 2 seconds.
 | `streaming` | _boolean_ | Current streaming state. |
 | `recording` | _boolean_ | Current recording state. |
 | `replay-buffer-active` | _boolean_ | Replay Buffer status |
-| `preview-only` | _boolean_ | Always false (retrocompatibility). |
 | `bytes-per-sec` | _int_ | Amount of data per second (in bytes) transmitted by the stream encoder. |
 | `kbits-per-sec` | _int_ | Amount of data per second (in kilobits) transmitted by the stream encoder. |
 | `strain` | _double_ | Percentage of dropped frames. |
@@ -488,6 +501,15 @@ Emit every 2 seconds.
 | `num-total-frames` | _int_ | Total number of frames transmitted since the stream started. |
 | `num-dropped-frames` | _int_ | Number of frames dropped by the encoder since the stream started. |
 | `fps` | _double_ | Current framerate. |
+| `render-total-frames` | _int_ | Number of frames rendered |
+| `render-missed-frames` | _int_ | Number of frames missed due to rendering lag |
+| `output-total-frames` | _int_ | Number of frames outputted |
+| `output-skipped-frames` | _int_ | Number of frames skipped due to encoding lag |
+| `average-frame-time` | _double_ | Average frame time (in milliseconds) |
+| `cpu-usage` | _double_ | Current CPU usage (percentage) |
+| `memory-usage` | _double_ | Current RAM usage (in megabytes) |
+| `free-disk-space` | _double_ | Free recording disk space (in megabytes) |
+| `preview-only` | _boolean_ | Always false (retrocompatibility). |
 
 
 ---
@@ -639,6 +661,7 @@ Emitted every 2 seconds after enabling it by calling SetHeartbeat.
 | `total-record-time` | _int (optional)_ | Total time (in seconds) since recording started. |
 | `total-record-bytes` | _int (optional)_ | Total bytes recorded since the recording started. |
 | `total-record-frames` | _int (optional)_ | Total frames recorded since the recording started. |
+| `stats` | _Stats_ | OBS Stats |
 
 
 ---
@@ -1092,6 +1115,26 @@ _No specified parameters._
 | `filename-formatting` | _String_ | Current filename formatting string. |
 
 
+---
+
+### GetStats
+
+
+- Added in v4.6.0
+
+Get OBS stats (almost the same info as provided in OBS' stats window)
+
+**Request Fields:**
+
+_No specified parameters._
+
+**Response Items:**
+
+| Name | Type  | Description |
+| ---- | :---: | ------------|
+| `stats` | _OBSStats_ | OBS stats |
+
+
 ---
 
 ## Profiles