Skip to content
  1. OPERATORS
  2. MODIFIERS

File Out

v1.0.0

The 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.

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.

One output carrying the connected input DAT through for further chaining.

  1. Connect a DAT with your conversation data to the File Out input.
  2. On the File Output page, toggle Save to Specific Folder on and set Save Folder to your desired directory.
  3. Enter a name in Base Filename (e.g., session_log).
  4. Choose a File Type such as JSON or DAT.
  5. Toggle Auto Versioning on to append a timestamp to each file and avoid overwrites.
  6. 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.

  1. Connect your conversation DAT and configure the save folder as above.
  2. Set Auto Save to Every N Minutes.
  3. Set Auto Save Interval to your desired frequency (1 to 60 minutes).
  4. 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.

  1. Toggle Use Subfolders on.
  2. 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.

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.

  • 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.
  • 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 Off and that the interval has elapsed since the last save.
Save Now (Savepulse) op('file_out').par.Savepulse Pulse
Default:
False
Base Filename (Filename) op('file_out').par.Filename Str
Default:
"" (Empty String)
Auto Save (Autosave) op('file_out').par.Autosave Menu
Default:
Off
Options:
Off, On Change, Every N Minutes
Auto Save Interval (min) (Autosaveinterval) op('file_out').par.Autosaveinterval Float
Default:
0.0
Range:
1 to 60
Slider Range:
1 to 60
Auto Versioning (Autoversion) op('file_out').par.Autoversion Toggle
Default:
False
Save to Specific Folder (Savetofolder) op('file_out').par.Savetofolder Toggle
Default:
False
Save Folder (Savefolder) op('file_out').par.Savefolder Folder
Default:
"" (Empty String)
Use Subfolders (Usesubfolders) op('file_out').par.Usesubfolders Toggle
Default:
False
Subfolder Structure (Subfoldermenu) op('file_out').par.Subfoldermenu Menu
Default:
Date
Options:
Date, Agent, Custom
Agent Name (Agentname) op('file_out').par.Agentname Str
Default:
"" (Empty String)
Custom Subfolder (Customsubfolder) op('file_out').par.Customsubfolder Str
Default:
"" (Empty String)
Last Save (Lastautosave) op('file_out').par.Lastautosave Str
Default:
"" (Empty String)
Status (Outputdisplay) op('file_out').par.Outputdisplay Str
Default:
"" (Empty String)
File Type (Filetype) op('file_out').par.Filetype Menu
Default:
DAT
Options:
DAT, JSON, CSV, TXT, TSV
Header
v1.0.02024-11-06

Initial release