- OPERATORS
- MODIFIERS
File Out
v1.0.0The File Out operator saves the contents of a connected input DAT to disk. It supports multiple file formats, automatic timestamped versioning, periodic or change-based auto-saving, and configurable subfolder structures for organizing exports by date, agent name, or custom path.
Input/Output
Section titled “Input/Output”Inputs
Section titled “Inputs”Connect any DAT containing the data you want to export. This is typically a conversation table from a Chat operator, but any table DAT works.
Outputs
Section titled “Outputs”One output carrying the connected input DAT through for further chaining.
Usage Examples
Section titled “Usage Examples”Manual Save
Section titled “Manual Save”- Connect a DAT with your conversation data to the File Out input.
- On the File Output page, toggle Save to Specific Folder on and set Save Folder to your desired directory.
- Enter a name in Base Filename (e.g.,
session_log). - Choose a File Type such as
JSONorDAT. - Toggle Auto Versioning on to append a timestamp to each file and avoid overwrites.
- Pulse Save Now to write the file immediately.
The Status field at the bottom of the page shows the full path of the saved file, or an error message if something went wrong.
Periodic Auto-Save
Section titled “Periodic Auto-Save”- Connect your conversation DAT and configure the save folder as above.
- Set Auto Save to
Every N Minutes. - Set Auto Save Interval to your desired frequency (1 to 60 minutes).
- Enable Auto Versioning so each save creates a new timestamped file rather than overwriting the previous one.
The Last Save field updates with the timestamp of the most recent auto-save.
Organizing Exports with Subfolders
Section titled “Organizing Exports with Subfolders”- Toggle Use Subfolders on.
- Choose a Subfolder Structure:
- Date — creates a subfolder named with the current date (e.g.,
2026-02-28). - Agent — uses the value in the Agent Name field as the subfolder name, useful for separating logs per agent.
- Custom — uses whatever you type into Custom Subfolder.
- Date — creates a subfolder named with the current date (e.g.,
Subfolders are created automatically inside the configured save folder. Combined with auto-versioning, this lets you build a clean archive of conversation history over time.
File Formats
Section titled “File Formats”- DAT — native TouchDesigner DAT file format.
- JSON — each row is exported as a JSON object keyed by column headers, written as a JSON array.
- CSV — comma-separated values with headers.
- TSV — tab-separated values with headers.
- TXT — plain text with tab-separated columns, one row per line.
Troubleshooting
Section titled “Troubleshooting”- Nothing happens when pulsing Save Now — make sure Save Folder is set. The operator silently skips the save if no folder is configured.
- Files keep overwriting — toggle Auto Versioning on so each save gets a unique timestamped filename.
- Auto-save not triggering — verify that Auto Save is not set to
Offand that the interval has elapsed since the last save.
Parameters
Section titled “Parameters”File Output
Section titled “File Output”op('file_out').par.Savepulse Pulse - Default:
False
op('file_out').par.Filename Str - Default:
"" (Empty String)
op('file_out').par.Autosaveinterval Float - Default:
0.0- Range:
- 1 to 60
- Slider Range:
- 1 to 60
op('file_out').par.Autoversion Toggle - Default:
False
op('file_out').par.Savetofolder Toggle - Default:
False
op('file_out').par.Savefolder Folder - Default:
"" (Empty String)
op('file_out').par.Usesubfolders Toggle - Default:
False
op('file_out').par.Agentname Str - Default:
"" (Empty String)
op('file_out').par.Customsubfolder Str - Default:
"" (Empty String)
op('file_out').par.Lastautosave Str - Default:
"" (Empty String)
op('file_out').par.Outputdisplay Str - Default:
"" (Empty String)
Changelog
Section titled “Changelog”v1.0.02024-11-06
Initial release