UNPKG

@bottobot/td-mcp

Version:

TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit

1,087 lines 47.2 kB
{ "id": "websocket_dat", "name": "WebSocket DAT", "displayName": "WebSocket DAT", "category": "DAT", "subcategory": "Network", "version": "", "lastUpdated": "2025-08-07T07:50:12.168Z", "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\WebSocket_DAT.htm", "url": "", "description": "The WebSocket DAT receives and parses WebSocket messages. WebSockets are fast an efficient two way communication protocol used by web servers and clients. Each message is parsed and appended as a row in the DAT's table. The table is FIFO \"first-in first-out\" and limited to parameter-set number of lines. An optional script may be run for each packet received. Secure (tls) websocket servers are also supported.\t\t\nConnections to different WebSocket sites are supported without requiring manual header setup.", "summary": "The WebSocket DAT receives and parses WebSocket messages. WebSockets are fast an efficient two way communication protocol used by web servers and clients. Each message is parsed and appended as a row ", "details": "", "usage": "", "tips": [], "warnings": [], "parameters": [ { "id": null, "name": "Active", "label": "Active", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe WebSocket receives and parses WebSocket messages. WebSockets are fast an efficient two way communication protocol used by web servers and clients. Each message is parsed and appended as a row in the 's table. The table is FIFO \"first-in first-out\" and limited to parameter-set number of lines. An optional script may be run for each packet received. Secure (tls) websocket servers are also supported.\t\t\nConnections to different WebSocket sites are supported without requiring manual header setup.\t\t\t\nThe WebSocket prints status and error messages to the TouchDesigner text console. The text console can be enabled by setting the environment variable TOUCH_TEXT_CONSOLE=1 (see: https://docs.derivative.ca/Variables#System_Environment_Variables). The text console will open the next time TouchDesigner is launched.\nFor SocketIO support see the SocketIO DAT.\nSee also: TCP/IP DAT\nExample project: chat with WebSockets\nwebsocketDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - While on, the receives information sent to the network port. While Off, no updating occurs. Data sent to the port is lost.\n\n\n\t\t\n netaddress - The network address of the server computer. This address is a standard WWW address, such as foo or foo.bar.com. You can put an IP address (e.g. 100.123.45.78). If you put localhost, it means the other end of the connection is on the same computer.\n\n\n\t\t\n port - The port in which the will accept messages.\tPort 443 implies a secure connection. If attempting a secure connection not using port 443 then a \"wss://\" prefix is required on the Network Address parameter.\n\n\n\t\t\n timeout - Time in milliseconds the WebSocket will wait to connect to the server.\n\n\n\n\n\n callbacks - The Callbacks will execute once for each message coming in.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location. callbacks - The script is executed from the location of the specified in the Callbacks parameter. op - The script is executed from the operator specified in the From Operator parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when Execute from is set to Specified . This operator is also the path that the script will be executed from if the Execute from parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the WebSocket can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditorwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=WebSocket_DAT&oldid=29663\"\n\t\tCategory: DATs", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.165Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Active", "label": "Active", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe WebSocket receives and parses WebSocket messages. WebSockets are fast an efficient two way communication protocol used by web servers and clients. Each message is parsed and appended as a row in the 's table. The table is FIFO \"first-in first-out\" and limited to parameter-set number of lines. An optional script may be run for each packet received. Secure (tls) websocket servers are also supported.\t\t\nConnections to different WebSocket sites are supported without requiring manual header setup.\t\t\t\nThe WebSocket prints status and error messages to the TouchDesigner text console. The text console can be enabled by setting the environment variable TOUCH_TEXT_CONSOLE=1 (see: https://docs.derivative.ca/Variables#System_Environment_Variables). The text console will open the next time TouchDesigner is launched.\nFor SocketIO support see the SocketIO DAT.\nSee also: TCP/IP DAT\nExample project: chat with WebSockets\nwebsocketDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - While on, the receives information sent to the network port. While Off, no updating occurs. Data sent to the port is lost.\n\n\n\t\t\n netaddress - The network address of the server computer. This address is a standard WWW address, such as foo or foo.bar.com. You can put an IP address (e.g. 100.123.45.78). If you put localhost, it means the other end of the connection is on the same computer.\n\n\n\t\t\n port - The port in which the will accept messages.\tPort 443 implies a secure connection. If attempting a secure connection not using port 443 then a \"wss://\" prefix is required on the Network Address parameter.\n\n\n\t\t\n timeout - Time in milliseconds the WebSocket will wait to connect to the server.\n\n\n\n\n\n callbacks - The Callbacks will execute once for each message coming in.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location. callbacks - The script is executed from the location of the specified in the Callbacks parameter. op - The script is executed from the operator specified in the From Operator parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when Execute from is set to Specified . This operator is also the path that the script will be executed from if the Execute from parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the WebSocket can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditorwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=WebSocket_DAT&oldid=29663\"\n\t\tCategory: DATs", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.166Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Active", "label": "Active", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "The WebSocket receives and parses WebSocket messages. WebSockets are fast an efficient two way communication protocol used by web servers and clients. Each message is parsed and appended as a row in the 's table. The table is FIFO \"first-in first-out\" and limited to parameter-set number of lines. An optional script may be run for each packet received. Secure (tls) websocket servers are also supported.\t\t\nConnections to different WebSocket sites are supported without requiring manual header setup.\t\t\t\nThe WebSocket prints status and error messages to the TouchDesigner text console. The text console can be enabled by setting the environment variable TOUCH_TEXT_CONSOLE=1 (see: https://docs.derivative.ca/Variables#System_Environment_Variables). The text console will open the next time TouchDesigner is launched.\nFor SocketIO support see the SocketIO DAT.\nSee also: TCP/IP DAT\nExample project: chat with WebSockets\nwebsocketDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n active - While on, the receives information sent to the network port. While Off, no updating occurs. Data sent to the port is lost.\n\n\n\t\t\n netaddress - The network address of the server computer. This address is a standard WWW address, such as foo or foo.bar.com. You can put an IP address (e.g. 100.123.45.78). If you put localhost, it means the other end of the connection is on the same computer.\n\n\n\t\t\n port - The port in which the will accept messages.\tPort 443 implies a secure connection. If attempting a secure connection not using port 443 then a \"wss://\" prefix is required on the Network Address parameter.\n\n\n\t\t\n timeout - Time in milliseconds the WebSocket will wait to connect to the server.\n\n\n\n\n\n callbacks - The Callbacks will execute once for each message coming in.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location. callbacks - The script is executed from the location of the specified in the Callbacks parameter. op - The script is executed from the operator specified in the From Operator parameter below.\n\t\t\n fromop - The operator whose state change will trigger the to execute its script when Execute from is set to Specified . This operator is also the path that the script will be executed from if the Execute from parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()\n\n\n\t\t\n bytes - Outputs the raw bytes of the message in a separate column.\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the WebSocket can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditorwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=WebSocket_DAT&oldid=29663\"", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Active", "label": "Active", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "active - While on, the receives information sent to the network port. While Off, no updating occurs. Data sent to the port is lost.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Network Address", "label": "Network Address", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "netaddress - The network address of the server computer. This address is a standard WWW address, such as foo or foo.bar.com. You can put an IP address (e.g. 100.123.45.78). If you put localhost, it means the other end of the connection is on the same computer.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Network Port", "label": "Network Port", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "port - The port in which the will accept messages.\tPort 443 implies a secure connection. If attempting a secure connection not using port 443 then a \"wss://\" prefix is required on the Network Address parameter.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Connection Timeout", "label": "Connection Timeout", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "timeout - Time in milliseconds the WebSocket will wait to connect to the server.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Callbacks DAT", "label": "Callbacks DAT", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "callbacks - The Callbacks will execute once for each message coming in.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Execute from", "label": "Execute from", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location. callbacks - The script is executed from the location of the specified in the Callbacks parameter. op - The script is executed from the operator specified in the From Operator parameter below.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Current Node", "label": "Current Node", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "current - The script is executed from the current node location. callbacks - The script is executed from the location of the specified in the Callbacks parameter. op - The script is executed from the operator specified in the From Operator parameter below.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.167Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "From Operator", "label": "From Operator", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "fromop - The operator whose state change will trigger the to execute its script when Execute from is set to Specified . This operator is also the path that the script will be executed from if the Execute from parameter is set to Specified .", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Clamp Output", "label": "Clamp Output", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Maximum Lines", "label": "Maximum Lines", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "maxlines - Limits the number of messages, older messages are removed from the list first.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Clear Output", "label": "Clear Output", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "clear - Deletes all lines except the heading. To clear with a python script op(\"opname\").par.clear.pulse()", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Bytes Column", "label": "Bytes Column", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "bytes - Outputs the raw bytes of the message in a separate column.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Language", "label": "Language", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Input", "label": "Input", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "input - The uses the inputs script language. node - The uses it's own script language.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Edit/View Extension", "label": "Edit/View Extension", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "dat", "label": "dat", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Custom Extension", "label": "Custom Extension", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "customext - Specifiy the custom extension.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Word Wrap", "label": "Word Wrap", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Input", "label": "Input", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:50:12.168Z", "rawData": {}, "sourceElement": null } ], "parameterGroups": {}, "codeExamples": [], "pythonExamples": [], "expressions": [], "commonInputs": [], "commonOutputs": [], "relatedOperators": [], "workflowPatterns": [], "images": [], "videos": [], "assets": [], "keywords": [ "websocket", "dat", "receives", "parses", "messages.", "websockets", "fast", "efficient", "communication", "protocol" ], "tags": [ "DAT", "TouchDesigner", "WebSocket DAT" ], "searchWeight": 1, "contentHash": "", "processingDate": "2025-08-07T07:50:12.168Z", "processingVersion": "1.0.0", "isValid": true, "validationErrors": [] }