{
  "enums": [
    {
      "enumType": "EventSubscription",
      "enumIdentifiers": [
        {
          "description": "Subcription value used to disable all events.",
          "enumIdentifier": "None",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 0
        },
        {
          "description": "Subscription value to receive events in the `General` category.",
          "enumIdentifier": "General",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 0)"
        },
        {
          "description": "Subscription value to receive events in the `Config` category.",
          "enumIdentifier": "Config",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 1)"
        },
        {
          "description": "Subscription value to receive events in the `Scenes` category.",
          "enumIdentifier": "Scenes",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 2)"
        },
        {
          "description": "Subscription value to receive events in the `Inputs` category.",
          "enumIdentifier": "Inputs",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 3)"
        },
        {
          "description": "Subscription value to receive events in the `Transitions` category.",
          "enumIdentifier": "Transitions",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 4)"
        },
        {
          "description": "Subscription value to receive events in the `Filters` category.",
          "enumIdentifier": "Filters",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 5)"
        },
        {
          "description": "Subscription value to receive events in the `Outputs` category.",
          "enumIdentifier": "Outputs",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 6)"
        },
        {
          "description": "Subscription value to receive events in the `SceneItems` category.",
          "enumIdentifier": "SceneItems",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 7)"
        },
        {
          "description": "Subscription value to receive events in the `MediaInputs` category.",
          "enumIdentifier": "MediaInputs",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 8)"
        },
        {
          "description": "Subscription value to receive the `VendorEvent` event.",
          "enumIdentifier": "Vendors",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 9)"
        },
        {
          "description": "Subscription value to receive events in the `Ui` category.",
          "enumIdentifier": "Ui",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 10)"
        },
        {
          "description": "Helper to receive all non-high-volume events.",
          "enumIdentifier": "All",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(General | Config | Scenes | Inputs | Transitions | Filters | Outputs | SceneItems | MediaInputs | Vendors | Ui)"
        },
        {
          "description": "Subscription value to receive the `InputVolumeMeters` high-volume event.",
          "enumIdentifier": "InputVolumeMeters",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 16)"
        },
        {
          "description": "Subscription value to receive the `InputActiveStateChanged` high-volume event.",
          "enumIdentifier": "InputActiveStateChanged",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 17)"
        },
        {
          "description": "Subscription value to receive the `InputShowStateChanged` high-volume event.",
          "enumIdentifier": "InputShowStateChanged",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 18)"
        },
        {
          "description": "Subscription value to receive the `SceneItemTransformChanged` high-volume event.",
          "enumIdentifier": "SceneItemTransformChanged",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "(1 << 19)"
        }
      ]
    },
    {
      "enumType": "RequestBatchExecutionType",
      "enumIdentifiers": [
        {
          "description": "Not a request batch.",
          "enumIdentifier": "None",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": "-1"
        },
        {
          "description": "A request batch which processes all requests serially, as fast as possible.\n\nNote: To introduce artificial delay, use the `Sleep` request and the `sleepMillis` request field.",
          "enumIdentifier": "SerialRealtime",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 0
        },
        {
          "description": "A request batch type which processes all requests serially, in sync with the graphics thread. Designed to provide high accuracy for animations.\n\nNote: To introduce artificial delay, use the `Sleep` request and the `sleepFrames` request field.",
          "enumIdentifier": "SerialFrame",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 1
        },
        {
          "description": "A request batch type which processes all requests using all available threads in the thread pool.\n\nNote: This is mainly experimental, and only really shows its colors during requests which require lots of\nactive processing, like `GetSourceScreenshot`.",
          "enumIdentifier": "Parallel",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 2
        }
      ]
    },
    {
      "enumType": "RequestStatus",
      "enumIdentifiers": [
        {
          "description": "Unknown status, should never be used.",
          "enumIdentifier": "Unknown",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 0
        },
        {
          "description": "For internal use to signify a successful field check.",
          "enumIdentifier": "NoError",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 10
        },
        {
          "description": "The request has succeeded.",
          "enumIdentifier": "Success",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 100
        },
        {
          "description": "The `requestType` field is missing from the request data.",
          "enumIdentifier": "MissingRequestType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 203
        },
        {
          "description": "The request type is invalid or does not exist.",
          "enumIdentifier": "UnknownRequestType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 204
        },
        {
          "description": "Generic error code.\n\nNote: A comment is required to be provided by obs-websocket.",
          "enumIdentifier": "GenericError",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 205
        },
        {
          "description": "The request batch execution type is not supported.",
          "enumIdentifier": "UnsupportedRequestBatchExecutionType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 206
        },
        {
          "description": "The server is not ready to handle the request.\n\nNote: This usually occurs during OBS scene collection change or exit. Requests may be tried again after a delay if this code is given.",
          "enumIdentifier": "NotReady",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.3.0",
          "enumValue": 207
        },
        {
          "description": "A required request field is missing.",
          "enumIdentifier": "MissingRequestField",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 300
        },
        {
          "description": "The request does not have a valid requestData object.",
          "enumIdentifier": "MissingRequestData",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 301
        },
        {
          "description": "Generic invalid request field message.\n\nNote: A comment is required to be provided by obs-websocket.",
          "enumIdentifier": "InvalidRequestField",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 400
        },
        {
          "description": "A request field has the wrong data type.",
          "enumIdentifier": "InvalidRequestFieldType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 401
        },
        {
          "description": "A request field (number) is outside of the allowed range.",
          "enumIdentifier": "RequestFieldOutOfRange",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 402
        },
        {
          "description": "A request field (string or array) is empty and cannot be.",
          "enumIdentifier": "RequestFieldEmpty",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 403
        },
        {
          "description": "There are too many request fields (eg. a request takes two optionals, where only one is allowed at a time).",
          "enumIdentifier": "TooManyRequestFields",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 404
        },
        {
          "description": "An output is running and cannot be in order to perform the request.",
          "enumIdentifier": "OutputRunning",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 500
        },
        {
          "description": "An output is not running and should be.",
          "enumIdentifier": "OutputNotRunning",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 501
        },
        {
          "description": "An output is paused and should not be.",
          "enumIdentifier": "OutputPaused",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 502
        },
        {
          "description": "An output is not paused and should be.",
          "enumIdentifier": "OutputNotPaused",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 503
        },
        {
          "description": "An output is disabled and should not be.",
          "enumIdentifier": "OutputDisabled",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 504
        },
        {
          "description": "Studio mode is active and cannot be.",
          "enumIdentifier": "StudioModeActive",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 505
        },
        {
          "description": "Studio mode is not active and should be.",
          "enumIdentifier": "StudioModeNotActive",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 506
        },
        {
          "description": "The resource was not found.\n\nNote: Resources are any kind of object in obs-websocket, like inputs, profiles, outputs, etc.",
          "enumIdentifier": "ResourceNotFound",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 600
        },
        {
          "description": "The resource already exists.",
          "enumIdentifier": "ResourceAlreadyExists",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 601
        },
        {
          "description": "The type of resource found is invalid.",
          "enumIdentifier": "InvalidResourceType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 602
        },
        {
          "description": "There are not enough instances of the resource in order to perform the request.",
          "enumIdentifier": "NotEnoughResources",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 603
        },
        {
          "description": "The state of the resource is invalid. For example, if the resource is blocked from being accessed.",
          "enumIdentifier": "InvalidResourceState",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 604
        },
        {
          "description": "The specified input (obs_source_t-OBS_SOURCE_TYPE_INPUT) had the wrong kind.",
          "enumIdentifier": "InvalidInputKind",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 605
        },
        {
          "description": "The resource does not support being configured.\n\nThis is particularly relevant to transitions, where they do not always have changeable settings.",
          "enumIdentifier": "ResourceNotConfigurable",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 606
        },
        {
          "description": "The specified filter (obs_source_t-OBS_SOURCE_TYPE_FILTER) had the wrong kind.",
          "enumIdentifier": "InvalidFilterKind",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 607
        },
        {
          "description": "Creating the resource failed.",
          "enumIdentifier": "ResourceCreationFailed",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 700
        },
        {
          "description": "Performing an action on the resource failed.",
          "enumIdentifier": "ResourceActionFailed",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 701
        },
        {
          "description": "Processing the request failed unexpectedly.\n\nNote: A comment is required to be provided by obs-websocket.",
          "enumIdentifier": "RequestProcessingFailed",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 702
        },
        {
          "description": "The combination of request fields cannot be used to perform an action.",
          "enumIdentifier": "CannotAct",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 703
        }
      ]
    },
    {
      "enumType": "ObsOutputState",
      "enumIdentifiers": [
        {
          "description": "Unknown state.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_UNKNOWN",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_UNKNOWN"
        },
        {
          "description": "The output is starting.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_STARTING",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_STARTING"
        },
        {
          "description": "The input has started.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_STARTED",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_STARTED"
        },
        {
          "description": "The output is stopping.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_STOPPING",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_STOPPING"
        },
        {
          "description": "The output has stopped.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_STOPPED",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_STOPPED"
        },
        {
          "description": "The output has disconnected and is reconnecting.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_RECONNECTING",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_RECONNECTING"
        },
        {
          "description": "The output has reconnected successfully.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_RECONNECTED",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.1.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_RECONNECTED"
        },
        {
          "description": "The output is now paused.",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_PAUSED",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.1.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_PAUSED"
        },
        {
          "description": "The output has been resumed (unpaused).",
          "enumIdentifier": "OBS_WEBSOCKET_OUTPUT_RESUMED",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_OUTPUT_RESUMED"
        }
      ]
    },
    {
      "enumType": "ObsMediaInputAction",
      "enumIdentifiers": [
        {
          "description": "No action.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NONE",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NONE"
        },
        {
          "description": "Play the media input.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PLAY",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PLAY"
        },
        {
          "description": "Pause the media input.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PAUSE",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PAUSE"
        },
        {
          "description": "Stop the media input.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_STOP",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_STOP"
        },
        {
          "description": "Restart the media input.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_RESTART",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_RESTART"
        },
        {
          "description": "Go to the next playlist item.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NEXT",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NEXT"
        },
        {
          "description": "Go to the previous playlist item.",
          "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PREVIOUS",
          "rpcVersion": 1,
          "deprecated": true,
          "initialVersion": "5.0.0",
          "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PREVIOUS"
        }
      ]
    },
    {
      "enumType": "WebSocketCloseCode",
      "enumIdentifiers": [
        {
          "description": "For internal use only to tell the request handler not to perform any close action.",
          "enumIdentifier": "DontClose",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 0
        },
        {
          "description": "Unknown reason, should never be used.",
          "enumIdentifier": "UnknownReason",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4000
        },
        {
          "description": "The server was unable to decode the incoming websocket message.",
          "enumIdentifier": "MessageDecodeError",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4002
        },
        {
          "description": "A data field is required but missing from the payload.",
          "enumIdentifier": "MissingDataField",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4003
        },
        {
          "description": "A data field's value type is invalid.",
          "enumIdentifier": "InvalidDataFieldType",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4004
        },
        {
          "description": "A data field's value is invalid.",
          "enumIdentifier": "InvalidDataFieldValue",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4005
        },
        {
          "description": "The specified `op` was invalid or missing.",
          "enumIdentifier": "UnknownOpCode",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4006
        },
        {
          "description": "The client sent a websocket message without first sending `Identify` message.",
          "enumIdentifier": "NotIdentified",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4007
        },
        {
          "description": "The client sent an `Identify` message while already identified.\n\nNote: Once a client has identified, only `Reidentify` may be used to change session parameters.",
          "enumIdentifier": "AlreadyIdentified",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4008
        },
        {
          "description": "The authentication attempt (via `Identify`) failed.",
          "enumIdentifier": "AuthenticationFailed",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4009
        },
        {
          "description": "The server detected the usage of an old version of the obs-websocket RPC protocol.",
          "enumIdentifier": "UnsupportedRpcVersion",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4010
        },
        {
          "description": "The websocket session has been invalidated by the obs-websocket server.\n\nNote: This is the code used by the `Kick` button in the UI Session List. If you receive this code, you must not automatically reconnect.",
          "enumIdentifier": "SessionInvalidated",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4011
        },
        {
          "description": "A requested feature is not supported due to hardware/software limitations.",
          "enumIdentifier": "UnsupportedFeature",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 4012
        }
      ]
    },
    {
      "enumType": "WebSocketOpCode",
      "enumIdentifiers": [
        {
          "description": "The initial message sent by obs-websocket to newly connected clients.",
          "enumIdentifier": "Hello",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 0
        },
        {
          "description": "The message sent by a newly connected client to obs-websocket in response to a `Hello`.",
          "enumIdentifier": "Identify",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 1
        },
        {
          "description": "The response sent by obs-websocket to a client after it has successfully identified with obs-websocket.",
          "enumIdentifier": "Identified",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 2
        },
        {
          "description": "The message sent by an already-identified client to update identification parameters.",
          "enumIdentifier": "Reidentify",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 3
        },
        {
          "description": "The message sent by obs-websocket containing an event payload.",
          "enumIdentifier": "Event",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 5
        },
        {
          "description": "The message sent by a client to obs-websocket to perform a request.",
          "enumIdentifier": "Request",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 6
        },
        {
          "description": "The message sent by obs-websocket in response to a particular request from a client.",
          "enumIdentifier": "RequestResponse",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 7
        },
        {
          "description": "The message sent by a client to obs-websocket to perform a batch of requests.",
          "enumIdentifier": "RequestBatch",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 8
        },
        {
          "description": "The message sent by obs-websocket in response to a particular batch of requests from a client.",
          "enumIdentifier": "RequestBatchResponse",
          "rpcVersion": "1",
          "deprecated": false,
          "initialVersion": "5.0.0",
          "enumValue": 9
        }
      ]
    }
  ],
  "requests": [
    {
      "description": "Gets the value of a \"slot\" from the selected persistent data realm.",
      "requestType": "GetPersistentData",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "realm",
          "valueType": "String",
          "valueDescription": "The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE`",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "slotName",
          "valueType": "String",
          "valueDescription": "The name of the slot to retrieve data from",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "slotValue",
          "valueType": "Any",
          "valueDescription": "Value associated with the slot. `null` if not set"
        }
      ]
    },
    {
      "description": "Sets the value of a \"slot\" from the selected persistent data realm.",
      "requestType": "SetPersistentData",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "realm",
          "valueType": "String",
          "valueDescription": "The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE`",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "slotName",
          "valueType": "String",
          "valueDescription": "The name of the slot to retrieve data from",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "slotValue",
          "valueType": "Any",
          "valueDescription": "The value to apply to the slot",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all scene collections",
      "requestType": "GetSceneCollectionList",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentSceneCollectionName",
          "valueType": "String",
          "valueDescription": "The name of the current scene collection"
        },
        {
          "valueName": "sceneCollections",
          "valueType": "Array<String>",
          "valueDescription": "Array of all available scene collections"
        }
      ]
    },
    {
      "description": "Switches to a scene collection.\n\nNote: This will block until the collection has finished changing.",
      "requestType": "SetCurrentSceneCollection",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "sceneCollectionName",
          "valueType": "String",
          "valueDescription": "Name of the scene collection to switch to",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Creates a new scene collection, switching to it in the process.\n\nNote: This will block until the collection has finished changing.",
      "requestType": "CreateSceneCollection",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "sceneCollectionName",
          "valueType": "String",
          "valueDescription": "Name for the new scene collection",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all profiles",
      "requestType": "GetProfileList",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentProfileName",
          "valueType": "String",
          "valueDescription": "The name of the current profile"
        },
        {
          "valueName": "profiles",
          "valueType": "Array<String>",
          "valueDescription": "Array of all available profiles"
        }
      ]
    },
    {
      "description": "Switches to a profile.",
      "requestType": "SetCurrentProfile",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "profileName",
          "valueType": "String",
          "valueDescription": "Name of the profile to switch to",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Creates a new profile, switching to it in the process",
      "requestType": "CreateProfile",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "profileName",
          "valueType": "String",
          "valueDescription": "Name for the new profile",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Removes a profile. If the current profile is chosen, it will change to a different profile first.",
      "requestType": "RemoveProfile",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "profileName",
          "valueType": "String",
          "valueDescription": "Name of the profile to remove",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets a parameter from the current profile's configuration.",
      "requestType": "GetProfileParameter",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "parameterCategory",
          "valueType": "String",
          "valueDescription": "Category of the parameter to get",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "parameterName",
          "valueType": "String",
          "valueDescription": "Name of the parameter to get",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "parameterValue",
          "valueType": "String",
          "valueDescription": "Value associated with the parameter. `null` if not set and no default"
        },
        {
          "valueName": "defaultParameterValue",
          "valueType": "String",
          "valueDescription": "Default value associated with the parameter. `null` if no default"
        }
      ]
    },
    {
      "description": "Sets the value of a parameter in the current profile's configuration.",
      "requestType": "SetProfileParameter",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "parameterCategory",
          "valueType": "String",
          "valueDescription": "Category of the parameter to set",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "parameterName",
          "valueType": "String",
          "valueDescription": "Name of the parameter to set",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "parameterValue",
          "valueType": "String",
          "valueDescription": "Value of the parameter to set. Use `null` to delete",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the current video settings.\n\nNote: To get the true FPS value, divide the FPS numerator by the FPS denominator. Example: `60000/1001`",
      "requestType": "GetVideoSettings",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "fpsNumerator",
          "valueType": "Number",
          "valueDescription": "Numerator of the fractional FPS value"
        },
        {
          "valueName": "fpsDenominator",
          "valueType": "Number",
          "valueDescription": "Denominator of the fractional FPS value"
        },
        {
          "valueName": "baseWidth",
          "valueType": "Number",
          "valueDescription": "Width of the base (canvas) resolution in pixels"
        },
        {
          "valueName": "baseHeight",
          "valueType": "Number",
          "valueDescription": "Height of the base (canvas) resolution in pixels"
        },
        {
          "valueName": "outputWidth",
          "valueType": "Number",
          "valueDescription": "Width of the output resolution in pixels"
        },
        {
          "valueName": "outputHeight",
          "valueType": "Number",
          "valueDescription": "Height of the output resolution in pixels"
        }
      ]
    },
    {
      "description": "Sets the current video settings.\n\nNote: Fields must be specified in pairs. For example, you cannot set only `baseWidth` without needing to specify `baseHeight`.",
      "requestType": "SetVideoSettings",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "fpsNumerator",
          "valueType": "Number",
          "valueDescription": "Numerator of the fractional FPS value",
          "valueRestrictions": ">= 1",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        },
        {
          "valueName": "fpsDenominator",
          "valueType": "Number",
          "valueDescription": "Denominator of the fractional FPS value",
          "valueRestrictions": ">= 1",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        },
        {
          "valueName": "baseWidth",
          "valueType": "Number",
          "valueDescription": "Width of the base (canvas) resolution in pixels",
          "valueRestrictions": ">= 1, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        },
        {
          "valueName": "baseHeight",
          "valueType": "Number",
          "valueDescription": "Height of the base (canvas) resolution in pixels",
          "valueRestrictions": ">= 1, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        },
        {
          "valueName": "outputWidth",
          "valueType": "Number",
          "valueDescription": "Width of the output resolution in pixels",
          "valueRestrictions": ">= 1, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        },
        {
          "valueName": "outputHeight",
          "valueType": "Number",
          "valueDescription": "Height of the output resolution in pixels",
          "valueRestrictions": ">= 1, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Not changed"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the current stream service settings (stream destination).",
      "requestType": "GetStreamServiceSettings",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "streamServiceType",
          "valueType": "String",
          "valueDescription": "Stream service type, like `rtmp_custom` or `rtmp_common`"
        },
        {
          "valueName": "streamServiceSettings",
          "valueType": "Object",
          "valueDescription": "Stream service settings"
        }
      ]
    },
    {
      "description": "Sets the current stream service settings (stream destination).\n\nNote: Simple RTMP settings can be set with type `rtmp_custom` and the settings fields `server` and `key`.",
      "requestType": "SetStreamServiceSettings",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "streamServiceType",
          "valueType": "String",
          "valueDescription": "Type of stream service to apply. Example: `rtmp_common` or `rtmp_custom`",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "streamServiceSettings",
          "valueType": "Object",
          "valueDescription": "Settings to apply to the service",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the current directory that the record output is set to.",
      "requestType": "GetRecordDirectory",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "recordDirectory",
          "valueType": "String",
          "valueDescription": "Output directory"
        }
      ]
    },
    {
      "description": "Sets the current directory that the record output writes files to.",
      "requestType": "SetRecordDirectory",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.3.0",
      "category": "config",
      "requestFields": [
        {
          "valueName": "recordDirectory",
          "valueType": "String",
          "valueDescription": "Output directory",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all of a source's filters.",
      "requestType": "GetSourceFilterList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "filters",
          "valueType": "Array<Object>",
          "valueDescription": "Array of filters"
        }
      ]
    },
    {
      "description": "Gets the default settings for a filter kind.",
      "requestType": "GetSourceFilterDefaultSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "filterKind",
          "valueType": "String",
          "valueDescription": "Filter kind to get the default settings for",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "defaultFilterSettings",
          "valueType": "Object",
          "valueDescription": "Object of default settings for the filter kind"
        }
      ]
    },
    {
      "description": "Creates a new filter, adding it to the specified source.",
      "requestType": "CreateSourceFilter",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to add the filter to",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the new filter to be created",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterKind",
          "valueType": "String",
          "valueDescription": "The kind of filter to be created",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterSettings",
          "valueType": "Object",
          "valueDescription": "Settings object to initialize the filter with",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Default settings used"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Removes a filter from a source.",
      "requestType": "RemoveSourceFilter",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter to remove",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the name of a source filter (rename).",
      "requestType": "SetSourceFilterName",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Current name of the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "newFilterName",
          "valueType": "String",
          "valueDescription": "New name for the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the info for a specific source filter.",
      "requestType": "GetSourceFilter",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "filterEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether the filter is enabled"
        },
        {
          "valueName": "filterIndex",
          "valueType": "Number",
          "valueDescription": "Index of the filter in the list, beginning at 0"
        },
        {
          "valueName": "filterKind",
          "valueType": "String",
          "valueDescription": "The kind of filter"
        },
        {
          "valueName": "filterSettings",
          "valueType": "Object",
          "valueDescription": "Settings object associated with the filter"
        }
      ]
    },
    {
      "description": "Sets the index position of a filter on a source.",
      "requestType": "SetSourceFilterIndex",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterIndex",
          "valueType": "Number",
          "valueDescription": "New index position of the filter",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the settings of a source filter.",
      "requestType": "SetSourceFilterSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter to set the settings of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterSettings",
          "valueType": "Object",
          "valueDescription": "Object of settings to apply",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "overlay",
          "valueType": "Boolean",
          "valueDescription": "True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings.",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "true"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the enable state of a source filter.",
      "requestType": "SetSourceFilterEnabled",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "filterEnabled",
          "valueType": "Boolean",
          "valueDescription": "New enable state of the filter",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets data about the current plugin and RPC version.",
      "requestType": "GetVersion",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "obsVersion",
          "valueType": "String",
          "valueDescription": "Current OBS Studio version"
        },
        {
          "valueName": "obsWebSocketVersion",
          "valueType": "String",
          "valueDescription": "Current obs-websocket version"
        },
        {
          "valueName": "rpcVersion",
          "valueType": "Number",
          "valueDescription": "Current latest obs-websocket RPC version"
        },
        {
          "valueName": "availableRequests",
          "valueType": "Array<String>",
          "valueDescription": "Array of available RPC requests for the currently negotiated RPC version"
        },
        {
          "valueName": "supportedImageFormats",
          "valueType": "Array<String>",
          "valueDescription": "Image formats available in `GetSourceScreenshot` and `SaveSourceScreenshot` requests."
        },
        {
          "valueName": "platform",
          "valueType": "String",
          "valueDescription": "Name of the platform. Usually `windows`, `macos`, or `ubuntu` (linux flavor). Not guaranteed to be any of those"
        },
        {
          "valueName": "platformDescription",
          "valueType": "String",
          "valueDescription": "Description of the platform, like `Windows 10 (10.0)`"
        }
      ]
    },
    {
      "description": "Gets statistics about OBS, obs-websocket, and the current session.",
      "requestType": "GetStats",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "cpuUsage",
          "valueType": "Number",
          "valueDescription": "Current CPU usage in percent"
        },
        {
          "valueName": "memoryUsage",
          "valueType": "Number",
          "valueDescription": "Amount of memory in MB currently being used by OBS"
        },
        {
          "valueName": "availableDiskSpace",
          "valueType": "Number",
          "valueDescription": "Available disk space on the device being used for recording storage"
        },
        {
          "valueName": "activeFps",
          "valueType": "Number",
          "valueDescription": "Current FPS being rendered"
        },
        {
          "valueName": "averageFrameRenderTime",
          "valueType": "Number",
          "valueDescription": "Average time in milliseconds that OBS is taking to render a frame"
        },
        {
          "valueName": "renderSkippedFrames",
          "valueType": "Number",
          "valueDescription": "Number of frames skipped by OBS in the render thread"
        },
        {
          "valueName": "renderTotalFrames",
          "valueType": "Number",
          "valueDescription": "Total number of frames outputted by the render thread"
        },
        {
          "valueName": "outputSkippedFrames",
          "valueType": "Number",
          "valueDescription": "Number of frames skipped by OBS in the output thread"
        },
        {
          "valueName": "outputTotalFrames",
          "valueType": "Number",
          "valueDescription": "Total number of frames outputted by the output thread"
        },
        {
          "valueName": "webSocketSessionIncomingMessages",
          "valueType": "Number",
          "valueDescription": "Total number of messages received by obs-websocket from the client"
        },
        {
          "valueName": "webSocketSessionOutgoingMessages",
          "valueType": "Number",
          "valueDescription": "Total number of messages sent by obs-websocket to the client"
        }
      ]
    },
    {
      "description": "Broadcasts a `CustomEvent` to all WebSocket clients. Receivers are clients which are identified and subscribed.",
      "requestType": "BroadcastCustomEvent",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [
        {
          "valueName": "eventData",
          "valueType": "Object",
          "valueDescription": "Data payload to emit to all receivers",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Call a request registered to a vendor.\n\nA vendor is a unique name registered by a third-party plugin or script, which allows for custom requests and events to be added to obs-websocket.\nIf a plugin or script implements vendor requests or events, documentation is expected to be provided with them.",
      "requestType": "CallVendorRequest",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [
        {
          "valueName": "vendorName",
          "valueType": "String",
          "valueDescription": "Name of the vendor to use",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "requestType",
          "valueType": "String",
          "valueDescription": "The request type to call",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "requestData",
          "valueType": "Object",
          "valueDescription": "Object containing appropriate request data",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "{}"
        }
      ],
      "responseFields": [
        {
          "valueName": "vendorName",
          "valueType": "String",
          "valueDescription": "Echoed of `vendorName`"
        },
        {
          "valueName": "requestType",
          "valueType": "String",
          "valueDescription": "Echoed of `requestType`"
        },
        {
          "valueName": "responseData",
          "valueType": "Object",
          "valueDescription": "Object containing appropriate response data. {} if request does not provide any response data"
        }
      ]
    },
    {
      "description": "Gets an array of all hotkey names in OBS",
      "requestType": "GetHotkeyList",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "hotkeys",
          "valueType": "Array<String>",
          "valueDescription": "Array of hotkey names"
        }
      ]
    },
    {
      "description": "Triggers a hotkey using its name. See `GetHotkeyList`",
      "requestType": "TriggerHotkeyByName",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [
        {
          "valueName": "hotkeyName",
          "valueType": "String",
          "valueDescription": "Name of the hotkey to trigger",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Triggers a hotkey using a sequence of keys.",
      "requestType": "TriggerHotkeyByKeySequence",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [
        {
          "valueName": "keyId",
          "valueType": "String",
          "valueDescription": "The OBS key ID to use. See https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Not pressed"
        },
        {
          "valueName": "keyModifiers",
          "valueType": "Object",
          "valueDescription": "Object containing key modifiers to apply",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Ignored"
        },
        {
          "valueName": "keyModifiers.shift",
          "valueType": "Boolean",
          "valueDescription": "Press Shift",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Not pressed"
        },
        {
          "valueName": "keyModifiers.control",
          "valueType": "Boolean",
          "valueDescription": "Press CTRL",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Not pressed"
        },
        {
          "valueName": "keyModifiers.alt",
          "valueType": "Boolean",
          "valueDescription": "Press ALT",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Not pressed"
        },
        {
          "valueName": "keyModifiers.command",
          "valueType": "Boolean",
          "valueDescription": "Press CMD (Mac)",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Not pressed"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sleeps for a time duration or number of frames. Only available in request batches with types `SERIAL_REALTIME` or `SERIAL_FRAME`.",
      "requestType": "Sleep",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "requestFields": [
        {
          "valueName": "sleepMillis",
          "valueType": "Number",
          "valueDescription": "Number of milliseconds to sleep for (if `SERIAL_REALTIME` mode)",
          "valueRestrictions": ">= 0, <= 50000",
          "valueOptional": true,
          "valueOptionalBehavior": "Unknown"
        },
        {
          "valueName": "sleepFrames",
          "valueType": "Number",
          "valueDescription": "Number of frames to sleep for (if `SERIAL_FRAME` mode)",
          "valueRestrictions": ">= 0, <= 10000",
          "valueOptional": true,
          "valueOptionalBehavior": "Unknown"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all inputs in OBS.",
      "requestType": "GetInputList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputKind",
          "valueType": "String",
          "valueDescription": "Restrict the array to only inputs of the specified kind",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "All kinds included"
        }
      ],
      "responseFields": [
        {
          "valueName": "inputs",
          "valueType": "Array<Object>",
          "valueDescription": "Array of inputs"
        }
      ]
    },
    {
      "description": "Gets an array of all available input kinds in OBS.",
      "requestType": "GetInputKindList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "unversioned",
          "valueType": "Boolean",
          "valueDescription": "True == Return all kinds as unversioned, False == Return with version suffixes (if available)",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "false"
        }
      ],
      "responseFields": [
        {
          "valueName": "inputKinds",
          "valueType": "Array<String>",
          "valueDescription": "Array of input kinds"
        }
      ]
    },
    {
      "description": "Gets the names of all special inputs.",
      "requestType": "GetSpecialInputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "desktop1",
          "valueType": "String",
          "valueDescription": "Name of the Desktop Audio input"
        },
        {
          "valueName": "desktop2",
          "valueType": "String",
          "valueDescription": "Name of the Desktop Audio 2 input"
        },
        {
          "valueName": "mic1",
          "valueType": "String",
          "valueDescription": "Name of the Mic/Auxiliary Audio input"
        },
        {
          "valueName": "mic2",
          "valueType": "String",
          "valueDescription": "Name of the Mic/Auxiliary Audio 2 input"
        },
        {
          "valueName": "mic3",
          "valueType": "String",
          "valueDescription": "Name of the Mic/Auxiliary Audio 3 input"
        },
        {
          "valueName": "mic4",
          "valueType": "String",
          "valueDescription": "Name of the Mic/Auxiliary Audio 4 input"
        }
      ]
    },
    {
      "description": "Creates a new input, adding it as a scene item to the specified scene.",
      "requestType": "CreateInput",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to add the input to as a scene item",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the new input to created",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputKind",
          "valueType": "String",
          "valueDescription": "The kind of input to be created",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputSettings",
          "valueType": "Object",
          "valueDescription": "Settings object to initialize the input with",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Default settings used"
        },
        {
          "valueName": "sceneItemEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether to set the created scene item to enabled or disabled",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "True"
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "ID of the newly created scene item"
        }
      ]
    },
    {
      "description": "Removes an existing input.\n\nNote: Will immediately remove all associated scene items.",
      "requestType": "RemoveInput",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to remove",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the name of an input (rename).",
      "requestType": "SetInputName",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Current input name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "newInputName",
          "valueType": "String",
          "valueDescription": "New name for the input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the default settings for an input kind.",
      "requestType": "GetInputDefaultSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputKind",
          "valueType": "String",
          "valueDescription": "Input kind to get the default settings for",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "defaultInputSettings",
          "valueType": "Object",
          "valueDescription": "Object of default settings for the input kind"
        }
      ]
    },
    {
      "description": "Gets the settings of an input.\n\nNote: Does not include defaults. To create the entire settings object, overlay `inputSettings` over the `defaultInputSettings` provided by `GetInputDefaultSettings`.",
      "requestType": "GetInputSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to get the settings of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputSettings",
          "valueType": "Object",
          "valueDescription": "Object of settings for the input"
        },
        {
          "valueName": "inputKind",
          "valueType": "String",
          "valueDescription": "The kind of the input"
        }
      ]
    },
    {
      "description": "Sets the settings of an input.",
      "requestType": "SetInputSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the settings of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputSettings",
          "valueType": "Object",
          "valueDescription": "Object of settings to apply",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "overlay",
          "valueType": "Boolean",
          "valueDescription": "True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings.",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "true"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the audio mute state of an input.",
      "requestType": "GetInputMute",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of input to get the mute state of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputMuted",
          "valueType": "Boolean",
          "valueDescription": "Whether the input is muted"
        }
      ]
    },
    {
      "description": "Sets the audio mute state of an input.",
      "requestType": "SetInputMute",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the mute state of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputMuted",
          "valueType": "Boolean",
          "valueDescription": "Whether to mute the input or not",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Toggles the audio mute state of an input.",
      "requestType": "ToggleInputMute",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to toggle the mute state of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputMuted",
          "valueType": "Boolean",
          "valueDescription": "Whether the input has been muted or unmuted"
        }
      ]
    },
    {
      "description": "Gets the current volume setting of an input.",
      "requestType": "GetInputVolume",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to get the volume of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputVolumeMul",
          "valueType": "Number",
          "valueDescription": "Volume setting in mul"
        },
        {
          "valueName": "inputVolumeDb",
          "valueType": "Number",
          "valueDescription": "Volume setting in dB"
        }
      ]
    },
    {
      "description": "Sets the volume setting of an input.",
      "requestType": "SetInputVolume",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the volume of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputVolumeMul",
          "valueType": "Number",
          "valueDescription": "Volume setting in mul",
          "valueRestrictions": ">= 0, <= 20",
          "valueOptional": true,
          "valueOptionalBehavior": "`inputVolumeDb` should be specified"
        },
        {
          "valueName": "inputVolumeDb",
          "valueType": "Number",
          "valueDescription": "Volume setting in dB",
          "valueRestrictions": ">= -100, <= 26",
          "valueOptional": true,
          "valueOptionalBehavior": "`inputVolumeMul` should be specified"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the audio balance of an input.",
      "requestType": "GetInputAudioBalance",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to get the audio balance of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputAudioBalance",
          "valueType": "Number",
          "valueDescription": "Audio balance value from 0.0-1.0"
        }
      ]
    },
    {
      "description": "Sets the audio balance of an input.",
      "requestType": "SetInputAudioBalance",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the audio balance of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputAudioBalance",
          "valueType": "Number",
          "valueDescription": "New audio balance value",
          "valueRestrictions": ">= 0.0, <= 1.0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the audio sync offset of an input.\n\nNote: The audio sync offset can be negative too!",
      "requestType": "GetInputAudioSyncOffset",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to get the audio sync offset of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputAudioSyncOffset",
          "valueType": "Number",
          "valueDescription": "Audio sync offset in milliseconds"
        }
      ]
    },
    {
      "description": "Sets the audio sync offset of an input.",
      "requestType": "SetInputAudioSyncOffset",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the audio sync offset of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputAudioSyncOffset",
          "valueType": "Number",
          "valueDescription": "New audio sync offset in milliseconds",
          "valueRestrictions": ">= -950, <= 20000",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the audio monitor type of an input.\n\nThe available audio monitor types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`",
      "requestType": "GetInputAudioMonitorType",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to get the audio monitor type of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "monitorType",
          "valueType": "String",
          "valueDescription": "Audio monitor type"
        }
      ]
    },
    {
      "description": "Sets the audio monitor type of an input.",
      "requestType": "SetInputAudioMonitorType",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to set the audio monitor type of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "monitorType",
          "valueType": "String",
          "valueDescription": "Audio monitor type",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the enable state of all audio tracks of an input.",
      "requestType": "GetInputAudioTracks",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "inputAudioTracks",
          "valueType": "Object",
          "valueDescription": "Object of audio tracks and associated enable states"
        }
      ]
    },
    {
      "description": "Sets the enable state of audio tracks of an input.",
      "requestType": "SetInputAudioTracks",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "inputAudioTracks",
          "valueType": "Object",
          "valueDescription": "Track settings to apply",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the items of a list property from an input's properties.\n\nNote: Use this in cases where an input provides a dynamic, selectable list of items. For example, display capture, where it provides a list of available displays.",
      "requestType": "GetInputPropertiesListPropertyItems",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "propertyName",
          "valueType": "String",
          "valueDescription": "Name of the list property to get the items of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "propertyItems",
          "valueType": "Array<Object>",
          "valueDescription": "Array of items in the list property"
        }
      ]
    },
    {
      "description": "Presses a button in the properties of an input.\n\nSome known `propertyName` values are:\n\n- `refreshnocache` - Browser source reload button\n\nNote: Use this in cases where there is a button in the properties of an input that cannot be accessed in any other way. For example, browser sources, where there is a refresh button.",
      "requestType": "PressInputPropertiesButton",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "propertyName",
          "valueType": "String",
          "valueDescription": "Name of the button property to press",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the status of a media input.\n\nMedia States:\n\n- `OBS_MEDIA_STATE_NONE`\n- `OBS_MEDIA_STATE_PLAYING`\n- `OBS_MEDIA_STATE_OPENING`\n- `OBS_MEDIA_STATE_BUFFERING`\n- `OBS_MEDIA_STATE_PAUSED`\n- `OBS_MEDIA_STATE_STOPPED`\n- `OBS_MEDIA_STATE_ENDED`\n- `OBS_MEDIA_STATE_ERROR`",
      "requestType": "GetMediaInputStatus",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the media input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "mediaState",
          "valueType": "String",
          "valueDescription": "State of the media input"
        },
        {
          "valueName": "mediaDuration",
          "valueType": "Number",
          "valueDescription": "Total duration of the playing media in milliseconds. `null` if not playing"
        },
        {
          "valueName": "mediaCursor",
          "valueType": "Number",
          "valueDescription": "Position of the cursor in milliseconds. `null` if not playing"
        }
      ]
    },
    {
      "description": "Sets the cursor position of a media input.\n\nThis request does not perform bounds checking of the cursor position.",
      "requestType": "SetMediaInputCursor",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the media input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "mediaCursor",
          "valueType": "Number",
          "valueDescription": "New cursor position to set",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Offsets the current cursor position of a media input by the specified value.\n\nThis request does not perform bounds checking of the cursor position.",
      "requestType": "OffsetMediaInputCursor",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the media input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "mediaCursorOffset",
          "valueType": "Number",
          "valueDescription": "Value to offset the current cursor position by",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Triggers an action on a media input.",
      "requestType": "TriggerMediaInputAction",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the media input",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "mediaAction",
          "valueType": "String",
          "valueDescription": "Identifier of the `ObsMediaInputAction` enum",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the status of the virtualcam output.",
      "requestType": "GetVirtualCamStatus",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        }
      ]
    },
    {
      "description": "Toggles the state of the virtualcam output.",
      "requestType": "ToggleVirtualCam",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        }
      ]
    },
    {
      "description": "Starts the virtualcam output.",
      "requestType": "StartVirtualCam",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Stops the virtualcam output.",
      "requestType": "StopVirtualCam",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Gets the status of the replay buffer output.",
      "requestType": "GetReplayBufferStatus",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        }
      ]
    },
    {
      "description": "Toggles the state of the replay buffer output.",
      "requestType": "ToggleReplayBuffer",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        }
      ]
    },
    {
      "description": "Starts the replay buffer output.",
      "requestType": "StartReplayBuffer",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Stops the replay buffer output.",
      "requestType": "StopReplayBuffer",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Saves the contents of the replay buffer output.",
      "requestType": "SaveReplayBuffer",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Gets the filename of the last replay buffer save file.",
      "requestType": "GetLastReplayBufferReplay",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "savedReplayPath",
          "valueType": "String",
          "valueDescription": "File path"
        }
      ]
    },
    {
      "description": "Gets the list of available outputs.",
      "requestType": "GetOutputList",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputs",
          "valueType": "Array<Object>",
          "valueDescription": "Array of outputs"
        }
      ]
    },
    {
      "description": "Gets the status of an output.",
      "requestType": "GetOutputStatus",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputReconnecting",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is reconnecting"
        },
        {
          "valueName": "outputTimecode",
          "valueType": "String",
          "valueDescription": "Current formatted timecode string for the output"
        },
        {
          "valueName": "outputDuration",
          "valueType": "Number",
          "valueDescription": "Current duration in milliseconds for the output"
        },
        {
          "valueName": "outputCongestion",
          "valueType": "Number",
          "valueDescription": "Congestion of the output"
        },
        {
          "valueName": "outputBytes",
          "valueType": "Number",
          "valueDescription": "Number of bytes sent by the output"
        },
        {
          "valueName": "outputSkippedFrames",
          "valueType": "Number",
          "valueDescription": "Number of frames skipped by the output's process"
        },
        {
          "valueName": "outputTotalFrames",
          "valueType": "Number",
          "valueDescription": "Total number of frames delivered by the output's process"
        }
      ]
    },
    {
      "description": "Toggles the status of an output.",
      "requestType": "ToggleOutput",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        }
      ]
    },
    {
      "description": "Starts an output.",
      "requestType": "StartOutput",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Stops an output.",
      "requestType": "StopOutput",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the settings of an output.",
      "requestType": "GetOutputSettings",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "outputSettings",
          "valueType": "Object",
          "valueDescription": "Output settings"
        }
      ]
    },
    {
      "description": "Sets the settings of an output.",
      "requestType": "SetOutputSettings",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "requestFields": [
        {
          "valueName": "outputName",
          "valueType": "String",
          "valueDescription": "Output name",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "outputSettings",
          "valueType": "Object",
          "valueDescription": "Output settings",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the status of the record output.",
      "requestType": "GetRecordStatus",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputPaused",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is paused"
        },
        {
          "valueName": "outputTimecode",
          "valueType": "String",
          "valueDescription": "Current formatted timecode string for the output"
        },
        {
          "valueName": "outputDuration",
          "valueType": "Number",
          "valueDescription": "Current duration in milliseconds for the output"
        },
        {
          "valueName": "outputBytes",
          "valueType": "Number",
          "valueDescription": "Number of bytes sent by the output"
        }
      ]
    },
    {
      "description": "Toggles the status of the record output.",
      "requestType": "ToggleRecord",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Starts the record output.",
      "requestType": "StartRecord",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Stops the record output.",
      "requestType": "StopRecord",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputPath",
          "valueType": "String",
          "valueDescription": "File name for the saved recording"
        }
      ]
    },
    {
      "description": "Toggles pause on the record output.",
      "requestType": "ToggleRecordPause",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Pauses the record output.",
      "requestType": "PauseRecord",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Resumes the record output.",
      "requestType": "ResumeRecord",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "record",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Gets a list of all scene items in a scene.\n\nScenes only",
      "requestType": "GetSceneItemList",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to get the items of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItems",
          "valueType": "Array<Object>",
          "valueDescription": "Array of scene items in the scene"
        }
      ]
    },
    {
      "description": "Basically GetSceneItemList, but for groups.\n\nUsing groups at all in OBS is discouraged, as they are very broken under the hood. Please use nested scenes instead.\n\nGroups only",
      "requestType": "GetGroupSceneItemList",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the group to get the items of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItems",
          "valueType": "Array<Object>",
          "valueDescription": "Array of scene items in the group"
        }
      ]
    },
    {
      "description": "Searches a scene for a source, and returns its id.\n\nScenes and Groups",
      "requestType": "GetSceneItemId",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene or group to search in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to find",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "searchOffset",
          "valueType": "Number",
          "valueDescription": "Number of matches to skip during search. >= 0 means first forward. -1 means last (top) item",
          "valueRestrictions": ">= -1",
          "valueOptional": true,
          "valueOptionalBehavior": "0"
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        }
      ]
    },
    {
      "description": "Creates a new scene item using a source.\n\nScenes only",
      "requestType": "CreateSceneItem",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to create the new item in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to add to the scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemEnabled",
          "valueType": "Boolean",
          "valueDescription": "Enable state to apply to the scene item on creation",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "True"
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        }
      ]
    },
    {
      "description": "Removes a scene item from a scene.\n\nScenes only",
      "requestType": "RemoveSceneItem",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Duplicates a scene item, copying all transform and crop info.\n\nScenes only",
      "requestType": "DuplicateSceneItem",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "destinationSceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to create the duplicated item in",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "`sceneName` is assumed"
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the duplicated scene item"
        }
      ]
    },
    {
      "description": "Gets the transform and crop info of a scene item.\n\nScenes and Groups",
      "requestType": "GetSceneItemTransform",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemTransform",
          "valueType": "Object",
          "valueDescription": "Object containing scene item transform info"
        }
      ]
    },
    {
      "description": "Sets the transform and crop info of a scene item.",
      "requestType": "SetSceneItemTransform",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemTransform",
          "valueType": "Object",
          "valueDescription": "Object containing scene item transform info to update",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the enable state of a scene item.\n\nScenes and Groups",
      "requestType": "GetSceneItemEnabled",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether the scene item is enabled. `true` for enabled, `false` for disabled"
        }
      ]
    },
    {
      "description": "Sets the enable state of a scene item.\n\nScenes and Groups",
      "requestType": "SetSceneItemEnabled",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemEnabled",
          "valueType": "Boolean",
          "valueDescription": "New enable state of the scene item",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the lock state of a scene item.\n\nScenes and Groups",
      "requestType": "GetSceneItemLocked",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemLocked",
          "valueType": "Boolean",
          "valueDescription": "Whether the scene item is locked. `true` for locked, `false` for unlocked"
        }
      ]
    },
    {
      "description": "Sets the lock state of a scene item.\n\nScenes and Group",
      "requestType": "SetSceneItemLocked",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemLocked",
          "valueType": "Boolean",
          "valueDescription": "New lock state of the scene item",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the index position of a scene item in a scene.\n\nAn index of 0 is at the bottom of the source list in the UI.\n\nScenes and Groups",
      "requestType": "GetSceneItemIndex",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemIndex",
          "valueType": "Number",
          "valueDescription": "Index position of the scene item"
        }
      ]
    },
    {
      "description": "Sets the index position of a scene item in a scene.\n\nScenes and Groups",
      "requestType": "SetSceneItemIndex",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemIndex",
          "valueType": "Number",
          "valueDescription": "New index position of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the blend mode of a scene item.\n\nBlend modes:\n\n- `OBS_BLEND_NORMAL`\n- `OBS_BLEND_ADDITIVE`\n- `OBS_BLEND_SUBTRACT`\n- `OBS_BLEND_SCREEN`\n- `OBS_BLEND_MULTIPLY`\n- `OBS_BLEND_LIGHTEN`\n- `OBS_BLEND_DARKEN`\n\nScenes and Groups",
      "requestType": "GetSceneItemBlendMode",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "sceneItemBlendMode",
          "valueType": "String",
          "valueDescription": "Current blend mode"
        }
      ]
    },
    {
      "description": "Sets the blend mode of a scene item.\n\nScenes and Groups",
      "requestType": "SetSceneItemBlendMode",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item",
          "valueRestrictions": ">= 0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "sceneItemBlendMode",
          "valueType": "String",
          "valueDescription": "New blend mode",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all scenes in OBS.",
      "requestType": "GetSceneList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentProgramSceneName",
          "valueType": "String",
          "valueDescription": "Current program scene"
        },
        {
          "valueName": "currentPreviewSceneName",
          "valueType": "String",
          "valueDescription": "Current preview scene. `null` if not in studio mode"
        },
        {
          "valueName": "scenes",
          "valueType": "Array<Object>",
          "valueDescription": "Array of scenes"
        }
      ]
    },
    {
      "description": "Gets an array of all groups in OBS.\n\nGroups in OBS are actually scenes, but renamed and modified. In obs-websocket, we treat them as scenes where we can.",
      "requestType": "GetGroupList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "groups",
          "valueType": "Array<String>",
          "valueDescription": "Array of group names"
        }
      ]
    },
    {
      "description": "Gets the current program scene.",
      "requestType": "GetCurrentProgramScene",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentProgramSceneName",
          "valueType": "String",
          "valueDescription": "Current program scene"
        }
      ]
    },
    {
      "description": "Sets the current program scene.",
      "requestType": "SetCurrentProgramScene",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Scene to set as the current program scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the current preview scene.\n\nOnly available when studio mode is enabled.",
      "requestType": "GetCurrentPreviewScene",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentPreviewSceneName",
          "valueType": "String",
          "valueDescription": "Current preview scene"
        }
      ]
    },
    {
      "description": "Sets the current preview scene.\n\nOnly available when studio mode is enabled.",
      "requestType": "SetCurrentPreviewScene",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Scene to set as the current preview scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Creates a new scene in OBS.",
      "requestType": "CreateScene",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name for the new scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Removes a scene from OBS.",
      "requestType": "RemoveScene",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to remove",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the name of a scene (rename).",
      "requestType": "SetSceneName",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene to be renamed",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "newSceneName",
          "valueType": "String",
          "valueDescription": "New name for the scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the scene transition overridden for a scene.",
      "requestType": "GetSceneSceneTransitionOverride",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Name of the overridden scene transition, else `null`"
        },
        {
          "valueName": "transitionDuration",
          "valueType": "Number",
          "valueDescription": "Duration of the overridden scene transition, else `null`"
        }
      ]
    },
    {
      "description": "Sets the scene transition overridden for a scene.",
      "requestType": "SetSceneSceneTransitionOverride",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "requestFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Name of the scene transition to use as override. Specify `null` to remove",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "Unchanged"
        },
        {
          "valueName": "transitionDuration",
          "valueType": "Number",
          "valueDescription": "Duration to use for any overridden transition. Specify `null` to remove",
          "valueRestrictions": ">= 50, <= 20000",
          "valueOptional": true,
          "valueOptionalBehavior": "Unchanged"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the active and show state of a source.\n\n**Compatible with inputs and scenes.**",
      "requestType": "GetSourceActive",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "sources",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to get the active state of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": [
        {
          "valueName": "videoActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the source is showing in Program"
        },
        {
          "valueName": "videoShowing",
          "valueType": "Boolean",
          "valueDescription": "Whether the source is showing in the UI (Preview, Projector, Properties)"
        }
      ]
    },
    {
      "description": "Gets a Base64-encoded screenshot of a source.\n\nThe `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept.\nIf `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source.\n\n**Compatible with inputs and scenes.**",
      "requestType": "GetSourceScreenshot",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "sources",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to take a screenshot of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "imageFormat",
          "valueType": "String",
          "valueDescription": "Image compression format to use. Use `GetVersion` to get compatible image formats",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "imageWidth",
          "valueType": "Number",
          "valueDescription": "Width to scale the screenshot to",
          "valueRestrictions": ">= 8, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Source value is used"
        },
        {
          "valueName": "imageHeight",
          "valueType": "Number",
          "valueDescription": "Height to scale the screenshot to",
          "valueRestrictions": ">= 8, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Source value is used"
        },
        {
          "valueName": "imageCompressionQuality",
          "valueType": "Number",
          "valueDescription": "Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk)",
          "valueRestrictions": ">= -1, <= 100",
          "valueOptional": true,
          "valueOptionalBehavior": "-1"
        }
      ],
      "responseFields": [
        {
          "valueName": "imageData",
          "valueType": "String",
          "valueDescription": "Base64-encoded screenshot"
        }
      ]
    },
    {
      "description": "Saves a screenshot of a source to the filesystem.\n\nThe `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept.\nIf `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source.\n\n**Compatible with inputs and scenes.**",
      "requestType": "SaveSourceScreenshot",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "sources",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to take a screenshot of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "imageFormat",
          "valueType": "String",
          "valueDescription": "Image compression format to use. Use `GetVersion` to get compatible image formats",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "imageFilePath",
          "valueType": "String",
          "valueDescription": "Path to save the screenshot file to. Eg. `C:\\Users\\user\\Desktop\\screenshot.png`",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "imageWidth",
          "valueType": "Number",
          "valueDescription": "Width to scale the screenshot to",
          "valueRestrictions": ">= 8, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Source value is used"
        },
        {
          "valueName": "imageHeight",
          "valueType": "Number",
          "valueDescription": "Height to scale the screenshot to",
          "valueRestrictions": ">= 8, <= 4096",
          "valueOptional": true,
          "valueOptionalBehavior": "Source value is used"
        },
        {
          "valueName": "imageCompressionQuality",
          "valueType": "Number",
          "valueDescription": "Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk)",
          "valueRestrictions": ">= -1, <= 100",
          "valueOptional": true,
          "valueOptionalBehavior": "-1"
        }
      ],
      "responseFields": [
        {
          "valueName": "imageData",
          "valueType": "String",
          "valueDescription": "Base64-encoded screenshot"
        }
      ]
    },
    {
      "description": "Gets the status of the stream output.",
      "requestType": "GetStreamStatus",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "stream",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputReconnecting",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is currently reconnecting"
        },
        {
          "valueName": "outputTimecode",
          "valueType": "String",
          "valueDescription": "Current formatted timecode string for the output"
        },
        {
          "valueName": "outputDuration",
          "valueType": "Number",
          "valueDescription": "Current duration in milliseconds for the output"
        },
        {
          "valueName": "outputCongestion",
          "valueType": "Number",
          "valueDescription": "Congestion of the output"
        },
        {
          "valueName": "outputBytes",
          "valueType": "Number",
          "valueDescription": "Number of bytes sent by the output"
        },
        {
          "valueName": "outputSkippedFrames",
          "valueType": "Number",
          "valueDescription": "Number of frames skipped by the output's process"
        },
        {
          "valueName": "outputTotalFrames",
          "valueType": "Number",
          "valueDescription": "Total number of frames delivered by the output's process"
        }
      ]
    },
    {
      "description": "Toggles the status of the stream output.",
      "requestType": "ToggleStream",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "stream",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "New state of the stream output"
        }
      ]
    },
    {
      "description": "Starts the stream output.",
      "requestType": "StartStream",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "stream",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Stops the stream output.",
      "requestType": "StopStream",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "stream",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Sends CEA-608 caption text over the stream output.",
      "requestType": "SendStreamCaption",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "stream",
      "requestFields": [
        {
          "valueName": "captionText",
          "valueType": "String",
          "valueDescription": "Caption text",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets an array of all available transition kinds.\n\nSimilar to `GetInputKindList`",
      "requestType": "GetTransitionKindList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "transitionKinds",
          "valueType": "Array<String>",
          "valueDescription": "Array of transition kinds"
        }
      ]
    },
    {
      "description": "Gets an array of all scene transitions in OBS.",
      "requestType": "GetSceneTransitionList",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "currentSceneTransitionName",
          "valueType": "String",
          "valueDescription": "Name of the current scene transition. Can be null"
        },
        {
          "valueName": "currentSceneTransitionKind",
          "valueType": "String",
          "valueDescription": "Kind of the current scene transition. Can be null"
        },
        {
          "valueName": "transitions",
          "valueType": "Array<Object>",
          "valueDescription": "Array of transitions"
        }
      ]
    },
    {
      "description": "Gets information about the current scene transition.",
      "requestType": "GetCurrentSceneTransition",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Name of the transition"
        },
        {
          "valueName": "transitionKind",
          "valueType": "String",
          "valueDescription": "Kind of the transition"
        },
        {
          "valueName": "transitionFixed",
          "valueType": "Boolean",
          "valueDescription": "Whether the transition uses a fixed (unconfigurable) duration"
        },
        {
          "valueName": "transitionDuration",
          "valueType": "Number",
          "valueDescription": "Configured transition duration in milliseconds. `null` if transition is fixed"
        },
        {
          "valueName": "transitionConfigurable",
          "valueType": "Boolean",
          "valueDescription": "Whether the transition supports being configured"
        },
        {
          "valueName": "transitionSettings",
          "valueType": "Object",
          "valueDescription": "Object of settings for the transition. `null` if transition is not configurable"
        }
      ]
    },
    {
      "description": "Sets the current scene transition.\n\nSmall note: While the namespace of scene transitions is generally unique, that uniqueness is not a guarantee as it is with other resources like inputs.",
      "requestType": "SetCurrentSceneTransition",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Name of the transition to make active",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the duration of the current scene transition, if it is not fixed.",
      "requestType": "SetCurrentSceneTransitionDuration",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [
        {
          "valueName": "transitionDuration",
          "valueType": "Number",
          "valueDescription": "Duration in milliseconds",
          "valueRestrictions": ">= 50, <= 20000",
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Sets the settings of the current scene transition.",
      "requestType": "SetCurrentSceneTransitionSettings",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [
        {
          "valueName": "transitionSettings",
          "valueType": "Object",
          "valueDescription": "Settings object to apply to the transition. Can be `{}`",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "overlay",
          "valueType": "Boolean",
          "valueDescription": "Whether to overlay over the current settings or replace them",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "true"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets the cursor position of the current scene transition.\n\nNote: `transitionCursor` will return 1.0 when the transition is inactive.",
      "requestType": "GetCurrentSceneTransitionCursor",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "transitionCursor",
          "valueType": "Number",
          "valueDescription": "Cursor position, between 0.0 and 1.0"
        }
      ]
    },
    {
      "description": "Triggers the current scene transition. Same functionality as the `Transition` button in studio mode.",
      "requestType": "TriggerStudioModeTransition",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [],
      "responseFields": []
    },
    {
      "description": "Sets the position of the TBar.\n\n**Very important note**: This will be deprecated and replaced in a future version of obs-websocket.",
      "requestType": "SetTBarPosition",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "requestFields": [
        {
          "valueName": "position",
          "valueType": "Number",
          "valueDescription": "New position",
          "valueRestrictions": ">= 0.0, <= 1.0",
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "release",
          "valueType": "Boolean",
          "valueDescription": "Whether to release the TBar. Only set `false` if you know that you will be sending another position update",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "`true`"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets whether studio is enabled.",
      "requestType": "GetStudioModeEnabled",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "studioModeEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether studio mode is enabled"
        }
      ]
    },
    {
      "description": "Enables or disables studio mode",
      "requestType": "SetStudioModeEnabled",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "studioModeEnabled",
          "valueType": "Boolean",
          "valueDescription": "True == Enabled, False == Disabled",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Opens the properties dialog of an input.",
      "requestType": "OpenInputPropertiesDialog",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to open the dialog of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Opens the filters dialog of an input.",
      "requestType": "OpenInputFiltersDialog",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to open the dialog of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Opens the interact dialog of an input.",
      "requestType": "OpenInputInteractDialog",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input to open the dialog of",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        }
      ],
      "responseFields": []
    },
    {
      "description": "Gets a list of connected monitors and information about them.",
      "requestType": "GetMonitorList",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [],
      "responseFields": [
        {
          "valueName": "monitors",
          "valueType": "Array<Object>",
          "valueDescription": "a list of detected monitors with some information"
        }
      ]
    },
    {
      "description": "Opens a projector for a specific output video mix.\n\nMix types:\n\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_PREVIEW`\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_PROGRAM`\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_MULTIVIEW`\n\nNote: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.",
      "requestType": "OpenVideoMixProjector",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "videoMixType",
          "valueType": "String",
          "valueDescription": "Type of mix to open",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "monitorIndex",
          "valueType": "Number",
          "valueDescription": "Monitor index, use `GetMonitorList` to obtain index",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "-1: Opens projector in windowed mode"
        },
        {
          "valueName": "projectorGeometry",
          "valueType": "String",
          "valueDescription": "Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with `monitorIndex`",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "N/A"
        }
      ],
      "responseFields": []
    },
    {
      "description": "Opens a projector for a source.\n\nNote: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.",
      "requestType": "OpenSourceProjector",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "requestFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source to open a projector for",
          "valueRestrictions": null,
          "valueOptional": false,
          "valueOptionalBehavior": null
        },
        {
          "valueName": "monitorIndex",
          "valueType": "Number",
          "valueDescription": "Monitor index, use `GetMonitorList` to obtain index",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "-1: Opens projector in windowed mode"
        },
        {
          "valueName": "projectorGeometry",
          "valueType": "String",
          "valueDescription": "Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with `monitorIndex`",
          "valueRestrictions": null,
          "valueOptional": true,
          "valueOptionalBehavior": "N/A"
        }
      ],
      "responseFields": []
    }
  ],
  "events": [
    {
      "description": "The current scene collection has begun changing.\n\nNote: We recommend using this event to trigger a pause of all polling requests, as performing any requests during a\nscene collection change is considered undefined behavior and can cause crashes!",
      "eventType": "CurrentSceneCollectionChanging",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "sceneCollectionName",
          "valueType": "String",
          "valueDescription": "Name of the current scene collection"
        }
      ]
    },
    {
      "description": "The current scene collection has changed.\n\nNote: If polling has been paused during `CurrentSceneCollectionChanging`, this is the que to restart polling.",
      "eventType": "CurrentSceneCollectionChanged",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "sceneCollectionName",
          "valueType": "String",
          "valueDescription": "Name of the new scene collection"
        }
      ]
    },
    {
      "description": "The scene collection list has changed.",
      "eventType": "SceneCollectionListChanged",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "sceneCollections",
          "valueType": "Array<String>",
          "valueDescription": "Updated list of scene collections"
        }
      ]
    },
    {
      "description": "The current profile has begun changing.",
      "eventType": "CurrentProfileChanging",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "profileName",
          "valueType": "String",
          "valueDescription": "Name of the current profile"
        }
      ]
    },
    {
      "description": "The current profile has changed.",
      "eventType": "CurrentProfileChanged",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "profileName",
          "valueType": "String",
          "valueDescription": "Name of the new profile"
        }
      ]
    },
    {
      "description": "The profile list has changed.",
      "eventType": "ProfileListChanged",
      "eventSubscription": "Config",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "config",
      "dataFields": [
        {
          "valueName": "profiles",
          "valueType": "Array<String>",
          "valueDescription": "Updated list of profiles"
        }
      ]
    },
    {
      "description": "A source's filter list has been reindexed.",
      "eventType": "SourceFilterListReindexed",
      "eventSubscription": "Filters",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "dataFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source"
        },
        {
          "valueName": "filters",
          "valueType": "Array<Object>",
          "valueDescription": "Array of filter objects"
        }
      ]
    },
    {
      "description": "A filter has been added to a source.",
      "eventType": "SourceFilterCreated",
      "eventSubscription": "Filters",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "dataFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter was added to"
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter"
        },
        {
          "valueName": "filterKind",
          "valueType": "String",
          "valueDescription": "The kind of the filter"
        },
        {
          "valueName": "filterIndex",
          "valueType": "Number",
          "valueDescription": "Index position of the filter"
        },
        {
          "valueName": "filterSettings",
          "valueType": "Object",
          "valueDescription": "The settings configured to the filter when it was created"
        },
        {
          "valueName": "defaultFilterSettings",
          "valueType": "Object",
          "valueDescription": "The default settings for the filter"
        }
      ]
    },
    {
      "description": "A filter has been removed from a source.",
      "eventType": "SourceFilterRemoved",
      "eventSubscription": "Filters",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "dataFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter was on"
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter"
        }
      ]
    },
    {
      "description": "The name of a source filter has changed.",
      "eventType": "SourceFilterNameChanged",
      "eventSubscription": "Filters",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "dataFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "The source the filter is on"
        },
        {
          "valueName": "oldFilterName",
          "valueType": "String",
          "valueDescription": "Old name of the filter"
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "New name of the filter"
        }
      ]
    },
    {
      "description": "A source filter's enable state has changed.",
      "eventType": "SourceFilterEnableStateChanged",
      "eventSubscription": "Filters",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "filters",
      "dataFields": [
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the source the filter is on"
        },
        {
          "valueName": "filterName",
          "valueType": "String",
          "valueDescription": "Name of the filter"
        },
        {
          "valueName": "filterEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether the filter is enabled"
        }
      ]
    },
    {
      "description": "OBS has begun the shutdown process.",
      "eventType": "ExitStarted",
      "eventSubscription": "General",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "dataFields": []
    },
    {
      "description": "An input has been created.",
      "eventType": "InputCreated",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "inputKind",
          "valueType": "String",
          "valueDescription": "The kind of the input"
        },
        {
          "valueName": "unversionedInputKind",
          "valueType": "String",
          "valueDescription": "The unversioned kind of input (aka no `_v2` stuff)"
        },
        {
          "valueName": "inputSettings",
          "valueType": "Object",
          "valueDescription": "The settings configured to the input when it was created"
        },
        {
          "valueName": "defaultInputSettings",
          "valueType": "Object",
          "valueDescription": "The default settings for the input"
        }
      ]
    },
    {
      "description": "An input has been removed.",
      "eventType": "InputRemoved",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        }
      ]
    },
    {
      "description": "The name of an input has changed.",
      "eventType": "InputNameChanged",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "oldInputName",
          "valueType": "String",
          "valueDescription": "Old name of the input"
        },
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "New name of the input"
        }
      ]
    },
    {
      "description": "An input's active state has changed.\n\nWhen an input is active, it means it's being shown by the program feed.",
      "eventType": "InputActiveStateChanged",
      "eventSubscription": "InputActiveStateChanged",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "videoActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the input is active"
        }
      ]
    },
    {
      "description": "An input's show state has changed.\n\nWhen an input is showing, it means it's being shown by the preview or a dialog.",
      "eventType": "InputShowStateChanged",
      "eventSubscription": "InputShowStateChanged",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "videoShowing",
          "valueType": "Boolean",
          "valueDescription": "Whether the input is showing"
        }
      ]
    },
    {
      "description": "An input's mute state has changed.",
      "eventType": "InputMuteStateChanged",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "inputMuted",
          "valueType": "Boolean",
          "valueDescription": "Whether the input is muted"
        }
      ]
    },
    {
      "description": "An input's volume level has changed.",
      "eventType": "InputVolumeChanged",
      "eventSubscription": "Inputs",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "inputVolumeMul",
          "valueType": "Number",
          "valueDescription": "New volume level multiplier"
        },
        {
          "valueName": "inputVolumeDb",
          "valueType": "Number",
          "valueDescription": "New volume level in dB"
        }
      ]
    },
    {
      "description": "The audio balance value of an input has changed.",
      "eventType": "InputAudioBalanceChanged",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the affected input"
        },
        {
          "valueName": "inputAudioBalance",
          "valueType": "Number",
          "valueDescription": "New audio balance value of the input"
        }
      ]
    },
    {
      "description": "The sync offset of an input has changed.",
      "eventType": "InputAudioSyncOffsetChanged",
      "eventSubscription": "Inputs",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "inputAudioSyncOffset",
          "valueType": "Number",
          "valueDescription": "New sync offset in milliseconds"
        }
      ]
    },
    {
      "description": "The audio tracks of an input have changed.",
      "eventType": "InputAudioTracksChanged",
      "eventSubscription": "Inputs",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "inputAudioTracks",
          "valueType": "Object",
          "valueDescription": "Object of audio tracks along with their associated enable states"
        }
      ]
    },
    {
      "description": "The monitor type of an input has changed.\n\nAvailable types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`",
      "eventType": "InputAudioMonitorTypeChanged",
      "eventSubscription": "Inputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "monitorType",
          "valueType": "String",
          "valueDescription": "New monitor type of the input"
        }
      ]
    },
    {
      "description": "A high-volume event providing volume levels of all active inputs every 50 milliseconds.",
      "eventType": "InputVolumeMeters",
      "eventSubscription": "InputVolumeMeters",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "inputs",
      "dataFields": [
        {
          "valueName": "inputs",
          "valueType": "Array<Object>",
          "valueDescription": "Array of active inputs with their associated volume levels"
        }
      ]
    },
    {
      "description": "A media input has started playing.",
      "eventType": "MediaInputPlaybackStarted",
      "eventSubscription": "MediaInputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        }
      ]
    },
    {
      "description": "A media input has finished playing.",
      "eventType": "MediaInputPlaybackEnded",
      "eventSubscription": "MediaInputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        }
      ]
    },
    {
      "description": "An action has been performed on an input.",
      "eventType": "MediaInputActionTriggered",
      "eventSubscription": "MediaInputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "media inputs",
      "dataFields": [
        {
          "valueName": "inputName",
          "valueType": "String",
          "valueDescription": "Name of the input"
        },
        {
          "valueName": "mediaAction",
          "valueType": "String",
          "valueDescription": "Action performed on the input. See `ObsMediaInputAction` enum"
        }
      ]
    },
    {
      "description": "The state of the stream output has changed.",
      "eventType": "StreamStateChanged",
      "eventSubscription": "Outputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "dataFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputState",
          "valueType": "String",
          "valueDescription": "The specific state of the output"
        }
      ]
    },
    {
      "description": "The state of the record output has changed.",
      "eventType": "RecordStateChanged",
      "eventSubscription": "Outputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "dataFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputState",
          "valueType": "String",
          "valueDescription": "The specific state of the output"
        },
        {
          "valueName": "outputPath",
          "valueType": "String",
          "valueDescription": "File name for the saved recording, if record stopped. `null` otherwise"
        }
      ]
    },
    {
      "description": "The state of the replay buffer output has changed.",
      "eventType": "ReplayBufferStateChanged",
      "eventSubscription": "Outputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "dataFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputState",
          "valueType": "String",
          "valueDescription": "The specific state of the output"
        }
      ]
    },
    {
      "description": "The state of the virtualcam output has changed.",
      "eventType": "VirtualcamStateChanged",
      "eventSubscription": "Outputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "dataFields": [
        {
          "valueName": "outputActive",
          "valueType": "Boolean",
          "valueDescription": "Whether the output is active"
        },
        {
          "valueName": "outputState",
          "valueType": "String",
          "valueDescription": "The specific state of the output"
        }
      ]
    },
    {
      "description": "The replay buffer has been saved.",
      "eventType": "ReplayBufferSaved",
      "eventSubscription": "Outputs",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "outputs",
      "dataFields": [
        {
          "valueName": "savedReplayPath",
          "valueType": "String",
          "valueDescription": "Path of the saved replay file"
        }
      ]
    },
    {
      "description": "A scene item has been created.",
      "eventType": "SceneItemCreated",
      "eventSubscription": "SceneItems",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item was added to"
        },
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the underlying source (input/scene)"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        },
        {
          "valueName": "sceneItemIndex",
          "valueType": "Number",
          "valueDescription": "Index position of the item"
        }
      ]
    },
    {
      "description": "A scene item has been removed.\n\nThis event is not emitted when the scene the item is in is removed.",
      "eventType": "SceneItemRemoved",
      "eventSubscription": "SceneItems",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item was removed from"
        },
        {
          "valueName": "sourceName",
          "valueType": "String",
          "valueDescription": "Name of the underlying source (input/scene)"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        }
      ]
    },
    {
      "description": "A scene's item list has been reindexed.",
      "eventType": "SceneItemListReindexed",
      "eventSubscription": "SceneItems",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene"
        },
        {
          "valueName": "sceneItems",
          "valueType": "Array<Object>",
          "valueDescription": "Array of scene item objects"
        }
      ]
    },
    {
      "description": "A scene item's enable state has changed.",
      "eventType": "SceneItemEnableStateChanged",
      "eventSubscription": "SceneItems",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        },
        {
          "valueName": "sceneItemEnabled",
          "valueType": "Boolean",
          "valueDescription": "Whether the scene item is enabled (visible)"
        }
      ]
    },
    {
      "description": "A scene item's lock state has changed.",
      "eventType": "SceneItemLockStateChanged",
      "eventSubscription": "SceneItems",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        },
        {
          "valueName": "sceneItemLocked",
          "valueType": "Boolean",
          "valueDescription": "Whether the scene item is locked"
        }
      ]
    },
    {
      "description": "A scene item has been selected in the Ui.",
      "eventType": "SceneItemSelected",
      "eventSubscription": "SceneItems",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene the item is in"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        }
      ]
    },
    {
      "description": "The transform/crop of a scene item has changed.",
      "eventType": "SceneItemTransformChanged",
      "eventSubscription": "SceneItemTransformChanged",
      "complexity": 4,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scene items",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "The name of the scene the item is in"
        },
        {
          "valueName": "sceneItemId",
          "valueType": "Number",
          "valueDescription": "Numeric ID of the scene item"
        },
        {
          "valueName": "sceneItemTransform",
          "valueType": "Object",
          "valueDescription": "New transform/crop info of the scene item"
        }
      ]
    },
    {
      "description": "A new scene has been created.",
      "eventType": "SceneCreated",
      "eventSubscription": "Scenes",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the new scene"
        },
        {
          "valueName": "isGroup",
          "valueType": "Boolean",
          "valueDescription": "Whether the new scene is a group"
        }
      ]
    },
    {
      "description": "A scene has been removed.",
      "eventType": "SceneRemoved",
      "eventSubscription": "Scenes",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the removed scene"
        },
        {
          "valueName": "isGroup",
          "valueType": "Boolean",
          "valueDescription": "Whether the scene was a group"
        }
      ]
    },
    {
      "description": "The name of a scene has changed.",
      "eventType": "SceneNameChanged",
      "eventSubscription": "Scenes",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "oldSceneName",
          "valueType": "String",
          "valueDescription": "Old name of the scene"
        },
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "New name of the scene"
        }
      ]
    },
    {
      "description": "The current program scene has changed.",
      "eventType": "CurrentProgramSceneChanged",
      "eventSubscription": "Scenes",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene that was switched to"
        }
      ]
    },
    {
      "description": "The current preview scene has changed.",
      "eventType": "CurrentPreviewSceneChanged",
      "eventSubscription": "Scenes",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "sceneName",
          "valueType": "String",
          "valueDescription": "Name of the scene that was switched to"
        }
      ]
    },
    {
      "description": "The list of scenes has changed.\n\nTODO: Make OBS fire this event when scenes are reordered.",
      "eventType": "SceneListChanged",
      "eventSubscription": "Scenes",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "scenes",
      "dataFields": [
        {
          "valueName": "scenes",
          "valueType": "Array<Object>",
          "valueDescription": "Updated array of scenes"
        }
      ]
    },
    {
      "description": "The current scene transition has changed.",
      "eventType": "CurrentSceneTransitionChanged",
      "eventSubscription": "Transitions",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "dataFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Name of the new transition"
        }
      ]
    },
    {
      "description": "The current scene transition duration has changed.",
      "eventType": "CurrentSceneTransitionDurationChanged",
      "eventSubscription": "Transitions",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "dataFields": [
        {
          "valueName": "transitionDuration",
          "valueType": "Number",
          "valueDescription": "Transition duration in milliseconds"
        }
      ]
    },
    {
      "description": "A scene transition has started.",
      "eventType": "SceneTransitionStarted",
      "eventSubscription": "Transitions",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "dataFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Scene transition name"
        }
      ]
    },
    {
      "description": "A scene transition has completed fully.\n\nNote: Does not appear to trigger when the transition is interrupted by the user.",
      "eventType": "SceneTransitionEnded",
      "eventSubscription": "Transitions",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "dataFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Scene transition name"
        }
      ]
    },
    {
      "description": "A scene transition's video has completed fully.\n\nUseful for stinger transitions to tell when the video *actually* ends.\n`SceneTransitionEnded` only signifies the cut point, not the completion of transition playback.\n\nNote: Appears to be called by every transition, regardless of relevance.",
      "eventType": "SceneTransitionVideoEnded",
      "eventSubscription": "Transitions",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "transitions",
      "dataFields": [
        {
          "valueName": "transitionName",
          "valueType": "String",
          "valueDescription": "Scene transition name"
        }
      ]
    },
    {
      "description": "Studio mode has been enabled or disabled.",
      "eventType": "StudioModeStateChanged",
      "eventSubscription": "Ui",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "ui",
      "dataFields": [
        {
          "valueName": "studioModeEnabled",
          "valueType": "Boolean",
          "valueDescription": "True == Enabled, False == Disabled"
        }
      ]
    },
    {
      "description": "A screenshot has been saved.\n\nNote: Triggered for the screenshot feature available in `Settings -> Hotkeys -> Screenshot Output` ONLY.\nApplications using `Get/SaveSourceScreenshot` should implement a `CustomEvent` if this kind of inter-client\ncommunication is desired.",
      "eventType": "ScreenshotSaved",
      "eventSubscription": "Ui",
      "complexity": 2,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.1.0",
      "category": "ui",
      "dataFields": [
        {
          "valueName": "savedScreenshotPath",
          "valueType": "String",
          "valueDescription": "Path of the saved image file"
        }
      ]
    },
    {
      "description": "An event has been emitted from a vendor.\n\nA vendor is a unique name registered by a third-party plugin or script, which allows for custom requests and events to be added to obs-websocket.\nIf a plugin or script implements vendor requests or events, documentation is expected to be provided with them.",
      "eventType": "VendorEvent",
      "eventSubscription": "Vendors",
      "complexity": 3,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "dataFields": [
        {
          "valueName": "vendorName",
          "valueType": "String",
          "valueDescription": "Name of the vendor emitting the event"
        },
        {
          "valueName": "eventType",
          "valueType": "String",
          "valueDescription": "Vendor-provided event typedef"
        },
        {
          "valueName": "eventData",
          "valueType": "Object",
          "valueDescription": "Vendor-provided event data. {} if event does not provide any data"
        }
      ]
    },
    {
      "description": "Custom event emitted by `BroadcastCustomEvent`.",
      "eventType": "CustomEvent",
      "eventSubscription": "General",
      "complexity": 1,
      "rpcVersion": "1",
      "deprecated": false,
      "initialVersion": "5.0.0",
      "category": "general",
      "dataFields": [
        {
          "valueName": "eventData",
          "valueType": "Object",
          "valueDescription": "Custom event data"
        }
      ]
    }
  ]
}