Skip to content

Releases: function-store/FunctionStore_tools

v2.10.1 minor update

03 Jul 01:30
Compare
Choose a tag to compare

New Features:

  • Added POP support to ColorUI
  • ParRandomizer: in 2025+ versions ui.rolloverParGroup is available for randomizing ParGroups
  • ParRandomizer: Ctrl+RightClick-> reset all params; Ctrl+Shift+RightClick-> set current params as default
  • New special case for CustomParTools Shift/Alt+Drag an index parameter -> maximum will be the number of inputs to the switchOP (presumably) --- This is a precursor for a general support for this special case.

Fixed:

  • Promoting ParGroups now with correct label (via diamond button or otherwise)
  • Promoting ParGroupPulse (like Reset + ResetPulse together) will promote both parameters correctly
  • Fixed ColorUI auto-import from json file

v2.10.0 POPs support

08 Jun 19:54
Compare
Choose a tag to compare

POPs support added to the toolkit

You can still update to this version for TD2023.18800+ projects, as all changes have been made to be backwards compatible --- and I intend to keep it that way as long as I can, or at least until official release of TD2025.

🟣 POPs support added to the following components: 🟣

  • OpTemplates
  • ResetPLS
  • OpMenu IOFilter
  • AltSelect
  • iop lister/select
  • GlobalOutSelect
  • OpStore

Fixed:

  • MidiMapper and OscMapper for POPs version

⚠️ Please let me know if you face any issues or have ideas for improvement here and please give as much detail as possible when doing so!

v2.9.4

03 Jun 01:58
Compare
Choose a tag to compare

This release is largely optimization and fixes, read the previous release notes for latest features!

Important:

- Disabled QuickOp due to weird unsolvable bugs (for now)

Improvements:

  • Reduced ambient cook time for the toolkit (should be around 0.04 ms)
  • Added undo action for CustomParTools

Fixes:

v2.9.3

09 May 00:24
0fb8a41
Compare
Choose a tag to compare

💻New minimum TD version requirement updated to 2023.11880

  • NEW: NavBar mods revamped and more powerful!

    • Hovering over a parent in the pathbar and holding Alt shows available shortcuts (Global, Parent, iop) [buggy on Mac!]
    • Holding Ctrl also shows all parameters and their values (hit Ctrl again to poll values) [works on Mac]
      • This retains the popup window until clicked
    • Clicking on any of the items will copy a reference to that object
      • You can then paste this to any expression or script
    • Right-Clicking on any of the parameters will open the parameter customization window of that param
    • ‼️Middle-Clicking on a parent in the pathbar opens parameters!
    • ‼️‼️Long-Middle-Clicking on a parent in the pathbar opens parent customization!
    • If you don't have a 3 button mouse handy, alt+RightClick equates to middle clicking
  • NEW: QuickParCustom: parameter hover actions to promote/customize parameters

    • alt.x hovered param: Promote to parent (Bind by default, hold shift as well to use Expression instead)
      • If parameter is already promoted this shortcut will open the promoted param's customization
    • alt.\ hovered param: Customize parameter (if it's a Custom Par it will customize its owner comp, otherwise the promoted owner)
    • ctrl.alt.\ hovered param: Toggle between Bind and Expression modes
  • NEW: ExprHotStrings special parent shortcut

    • If enabled #! will resolve to the closest parent shortcut
      • and #!! will also add a .par after it
    • #!.par.Something -> parent.Project.par.Something (for example)
    • #!!Something -> parent.Project.par.Something (for example)
    • Encouraging even more to use parent shortcuts (which you can easily add by ctrl+shift-clicking on the diamond button
  • FIXED: HotkeyManager unwanted prompts

    • Really hope this is fixed, let me know!
  • Added more Active toggles to main params of the toolkit

  • Other minor fixes and improvements

v2.9.2

13 Apr 02:19
Compare
Choose a tag to compare

📈 This is a small update to the latest major release, see those notes below!

You can also heck the release notes video

  • NEW: 💧 HydroHomie: reminds you to drink water every 45 minutes

    • This feature is off by default. It is optional (but recommended) to turn this on under the toolkit UI custom par page
    • Shows a small alert icon in the toolbar to remind you taking a few sips of water. Important!
      • Clicking the icon will make it go away until the next reminder
    • The interval can be changed from the default 45 minutes right clicking on the icon that opens the settings
    • If it was enabled, can also be disabled in the same menu
    • Thank me later 💦
  • NEW: ⌨️HotkeyManager: externalized toolkit hotkeys

    • Any hotkey changes made are now externalized into your user palette FNSTools_ext/tables folder so they are retained and synced between your projects
    • Hotkeys can be changed for most tools --- find them inside the toolkit in the marked area!
    • This is ground-work for a future actual hotkey manager
    • Can always revert or force to default hotkeys
  • Improvement/fix: 🛂 BorderlessTD (see below or wiki for more info)

    • Fix Fullscreen On Start on by default since TD doesn't start full screen for whatever reason
    • Force Full Screen (always) can be turned off to have TD borderless in a fancy zone for example. It is on by default though.
    • Both settable on top level custom par page UI
    • Fixed default startup state and file name display
    • When in borderless mode, clicking on the displayed file name saves the file!
  • Improvement/fix: 🔝CustomParCustomize (see below or wiki for more info)

    • Order of text fields changed to resemble the Component Editor behavior more, but with some improved UX
      • Meaning the par name is first and can be any string that will be stripped from illegal characters
        • But the original text is used for the parameter label
    • Fixed custom promoting Pulse parameters
  • Fix: iopPromote

    • iOP Promoting tables/dats fixed from previous release

Previous v2.9.x release notes below:

🚀 The last big feature update before the POPs era begins! Major refactor incoming—stay tuned!

🚀 New Features:

  • NEW: 🖼️ Paste From Clipboard by DotSimulate (Windows only): copy an image to your clipboard and paste it directly in TD with alt+v shortcut

    • You will be met with three options (hotkeys 1,2,3): 🟢 Paste as Movie File In, 🔵 Paste as locked Script TOP, 🟠 Paste as Annotate
    • When pasting as Movie File, the image also gets saved in the folder specified by toolkit settings (default: Assets/clipboard_images) 📂
    • The other two options will produce a locked TOP which increases your .toe file size but avoids external dependencies
    • WINDOWS ONLY — if anyone knows of a native Mac solution (not using external Python libs), let us know!
  • NEW: 📌 QuickMarks by Alex Guevara: jump between different spots in your project file/network quickly

    • Save QuickMark: Ctrl+Alt+{number}, on Mac Ctrl+Option+{number}
    • Recall QuickMark: Ctrl+{number}
    • Remove QuickMark: Ctrl+Alt+Shift+{number} (on Mac Option instead of Alt)
    • QuickMarks persist with your project file, so they’ll be there next time you open it 📁
  • NEW: 📦 QuickCollapse: Quickly collapse selected nodes into a BaseCOMP for better organization and reuse.

    • Ctrl+W: Collapse selected nodes into a BaseCOMP (base1)
    • Ctrl+Shift+W: Dialog pops up to name the BaseCOMP and Parent Shortcut before collapsing
  • NEW: ⚙️ CustomParCustomize: A fast way to customize parameter promotion—name it, set min/max values, and tweak clamping.

    • Label and ParName for all params, and for slider-type params: min, max values, clamping tickboxes, and default value
    • Invoked by holding Ctrl or Alt(Opt) while drag-and-dropping a parameter onto the diamond button or a parent in the path bar
    • Quickly jump between text fields by pressing Tab and Shift+Tab
  • NEW: 🖥️ BorderlessTD: For a cleaner TouchDesigner look. More screen space is better!

    • F7: Toggle Windows title bar (Windows only)
    • Alt+F7 or Opt+F7 for Mac: Toggle showing Timeline
    • Can also be toggled by Right- or Middle-Clicking (respectively) on the Toggle Network Grid icon in the toolbar.
    • Startup default for both can be set in toolkit settings
  • NEW: 🎨 ColorUI: Recolor any TouchDesigner UI element, create presets, import/export, and share!

    • Available as a new tab in MY_UI (Fx symbol 🎛️)
    • Includes recoloring OP Families (looking at you, POPs)
    • Or any UI element by choosing from the dropdown
    • Saving colors locally saves them to the component and can be auto-loaded on startup
    • Export to JSON, and import — imported settings take precedence over local
  • NEW: 🎹 ResetMIDIPls: Bypass and un-bypass MIDI operators to unstick them (requested by Jacopo)

    • Built into midiMapper and its button on the toolbar
    • 🎛️ In midiMapper, a new button resets the selected Device ID
    • 🖱️ Middle-click the midiMapper toolbar button to reset all
    • Can be set to auto-reset all on startup
  • Added new feature to drop tables to promote as ParMenus as suggested by Alphamoonbase.Berlin

    • optional headers as name and label in whichever order
    • if these headers are missing first column is name second column is label but that can also be ommitted
  • New hotkey to reset hovered parameter to default as suggested by gibberish: Ctrl+Shift+R

    • Ctrl+Alt+Shift+R will reset all parameters of the active page of the hovered parameter

🛠️ Improvements/Fixes:

  • Fixed Paste from Clipboard in hotfix

  • Hopefully fixed ColorUI bug?

  • 🍥 RayTK Hotkey Conflict Solution: when both toolkits are installed and there is a conflict with ParReset tool's hotkeys you will be greeted with a popup to change either tool's hotkeys

  • 📌 Promoting parameters always defaults to the currently active page of the target (parent)

    • Also other minor improvements around this feature
    • Can now promote full pages of any operator by dragging an operator onto the diamond button
  • Promoting single pars of ParGroups will promote the whole group

  • 🔄 Refactored Greg's OpMenu IOFilters to inject themselves instead of cloning the whole UI. Re-enabled by default.

  • 🖥️ VSCodeTools: Default interpreter is set to the TD version if a POP build is available for the workspace file (since those come with typing support)

    • In VSCode/Cursor, you might still have to change manually to the workspace-defined interpreter, as this cannot be automated
  • 📜 QuickExt stubs/typing: Added feature to deploy QuickExt stubs/typing

    • Can be deployed to interpreter typings
  • QuickTime: Middle-clicking the toolbar icon now resets internal timers

  • 🔄 GlobalOutSelect: Now requires manual refresh by clicking the button in its UI for optimization reasons

  • 🖼️ Perform Window Tool: Alpha is now automatically preserved for NDI/Spout

  • 🐞 Various minor improvements and bug fixes

⚠️ Known Issues:

  • 📝 Stubbing to a local VSCode workspace folder negates the TD interpreter-provided typings (if available and set)
  • 🍎 Parent Shortcut pathbar pop-menus act weird on Mac
  • 🛠️ CustomParCustomize pop-menu can act unpredictably on Mac
    • Promoting single pars of ParGroups will promote the whole group

🔜 This is the last major feature update before starting a major toolkit refactor and integrating POPs features. This will be a big undertaking but will greatly improve the ability to invite others to integrate their tools and for users to customize their experience.
The toolkit will also be renamed. But that's for the future! 🚧

v2.9.1 (hotfix)

08 Apr 19:28
Compare
Choose a tag to compare

🚀 The last big feature update before the POPs era begins! Major refactor incoming—stay tuned!
(this is also a hotfix of v2.9.1 with two new features too)

🚀 New Features:

  • NEW: 🖼️ Paste From Clipboard by DotSimulate (Windows only): copy an image to your clipboard and paste it directly in TD with alt+v shortcut

    • You will be met with three options (hotkeys 1,2,3): 🟢 Paste as Movie File In, 🔵 Paste as locked Script TOP, 🟠 Paste as Annotate
    • When pasting as Movie File, the image also gets saved in the folder specified by toolkit settings (default: Assets/clipboard_images) 📂
    • The other two options will produce a locked TOP which increases your .toe file size but avoids external dependencies
    • WINDOWS ONLY — if anyone knows of a native Mac solution (not using external Python libs), let us know!
  • NEW: 📌 QuickMarks by Alex Guevara: jump between different spots in your project file/network quickly

    • Save QuickMark: Ctrl+Alt+{number}, on Mac Ctrl+Option+{number}
    • Recall QuickMark: Ctrl+{number}
    • Remove QuickMark: Ctrl+Alt+Shift+{number} (on Mac Option instead of Alt)
    • QuickMarks persist with your project file, so they’ll be there next time you open it 📁
  • NEW: 📦 QuickCollapse: Quickly collapse selected nodes into a BaseCOMP for better organization and reuse.

    • Ctrl+W: Collapse selected nodes into a BaseCOMP (base1)
    • Ctrl+Shift+W: Dialog pops up to name the BaseCOMP and Parent Shortcut before collapsing
  • NEW: ⚙️ CustomParCustomize: A fast way to customize parameter promotion—name it, set min/max values, and tweak clamping.

    • Label and ParName for all params, and for slider-type params: min, max values, clamping tickboxes, and default value
    • Invoked by holding Ctrl or Alt(Opt) while drag-and-dropping a parameter onto the diamond button or a parent in the path bar
    • Quickly jump between text fields by pressing Tab and Shift+Tab
  • NEW: 🖥️ BorderlessTD: For a cleaner TouchDesigner look. More screen space is better!

    • F7: Toggle Windows title bar (Windows only)
    • Alt+F7 or Opt+F7 for Mac: Toggle showing Timeline
    • Can also be toggled by Right- or Middle-Clicking (respectively) on the Toggle Network Grid icon in the toolbar.
    • Startup default for both can be set in toolkit settings
  • NEW: 🎨 ColorUI: Recolor any TouchDesigner UI element, create presets, import/export, and share!

    • Available as a new tab in MY_UI (Fx symbol 🎛️)
    • Includes recoloring OP Families (looking at you, POPs)
    • Or any UI element by choosing from the dropdown
    • Saving colors locally saves them to the component and can be auto-loaded on startup
    • Export to JSON, and import — imported settings take precedence over local
  • NEW: 🎹 ResetMIDIPls: Bypass and un-bypass MIDI operators to unstick them (requested by Jacopo)

    • Built into midiMapper and its button on the toolbar
    • 🎛️ In midiMapper, a new button resets the selected Device ID
    • 🖱️ Middle-click the midiMapper toolbar button to reset all
    • Can be set to auto-reset all on startup
  • Added new feature to drop tables to promote as ParMenus as suggested by Alphamoonbase.Berlin

    • optional headers as name and label in whichever order
    • if these headers are missing first column is name second column is label but that can also be ommitted
  • New hotkey to reset hovered parameter to default as suggested by gibberish: Ctrl+Shift+R

    • Ctrl+Alt+Shift+R will reset all parameters of the active page of the hovered parameter

🛠️ Improvements/Fixes:

  • Fixed Paste from Clipboard in hotfix

  • Hopefully fixed ColorUI bug?

  • 🍥 RayTK Hotkey Conflict Solution: when both toolkits are installed and there is a conflict with ParReset tool's hotkeys you will be greeted with a popup to change either tool's hotkeys

  • 📌 Promoting parameters always defaults to the currently active page of the target (parent)

    • Also other minor improvements around this feature
    • Can now promote full pages of any operator by dragging an operator onto the diamond button
  • Promoting single pars of ParGroups will promote the whole group

  • 🔄 Refactored Greg's OpMenu IOFilters to inject themselves instead of cloning the whole UI. Re-enabled by default.

  • 🖥️ VSCodeTools: Default interpreter is set to the TD version if a POP build is available for the workspace file (since those come with typing support)

    • In VSCode/Cursor, you might still have to change manually to the workspace-defined interpreter, as this cannot be automated
  • 📜 QuickExt stubs/typing: Added feature to deploy QuickExt stubs/typing

    • Can be deployed to interpreter typings
  • QuickTime: Middle-clicking the toolbar icon now resets internal timers

  • 🔄 GlobalOutSelect: Now requires manual refresh by clicking the button in its UI for optimization reasons

  • 🖼️ Perform Window Tool: Alpha is now automatically preserved for NDI/Spout

  • 🐞 Various minor improvements and bug fixes

⚠️ Known Issues:

  • 📝 Stubbing to a local VSCode workspace folder negates the TD interpreter-provided typings (if available and set)
  • 🍎 Parent Shortcut pathbar pop-menus act weird on Mac
  • 🛠️ CustomParCustomize pop-menu can act unpredictably on Mac
    • Promoting single pars of ParGroups will promote the whole group

🔜 This is the last major feature update before starting a major toolkit refactor and integrating POPs features. This will be a big undertaking but will greatly improve the ability to invite others to integrate their tools and for users to customize their experience.
The toolkit will also be renamed. But that's for the future! 🚧

v2.9.0

08 Apr 16:20
Compare
Choose a tag to compare

🚀 The last big feature update before the POPs era begins! Major refactor incoming—stay tuned!

🚀 New Features:

  • NEW: 🖼️ Paste From Clipboard by DotSimulate (Windows only): copy an image to your clipboard and paste it directly in TD with alt+v shortcut

    • You will be met with three options (hotkeys 1,2,3): 🟢 Paste as Movie File In, 🔵 Paste as locked Script TOP, 🟠 Paste as Annotate
    • When pasting as Movie File, the image also gets saved in the folder specified by toolkit settings (default: Assets/clipboard_images) 📂
    • The other two options will produce a locked TOP which increases your .toe file size but avoids external dependencies
    • WINDOWS ONLY — if anyone knows of a native Mac solution (not using external Python libs), let us know!
  • NEW: 📌 QuickMarks by Alex Guevara: jump between different spots in your project file/network quickly

    • Save QuickMark: Ctrl+Alt+{number}, on Mac Ctrl+Option+{number}
    • Recall QuickMark: Ctrl+{number}
    • Remove QuickMark: Ctrl+Alt+Shift+{number} (on Mac Option instead of Alt)
    • QuickMarks persist with your project file, so they’ll be there next time you open it 📁
  • NEW: 📦 QuickCollapse: Quickly collapse selected nodes into a BaseCOMP for better organization and reuse.

    • Ctrl+W: Collapse selected nodes into a BaseCOMP (base1)
    • Ctrl+Shift+W: Dialog pops up to name the BaseCOMP and Parent Shortcut before collapsing
  • NEW: ⚙️ CustomParCustomize: A fast way to customize parameter promotion—name it, set min/max values, and tweak clamping.

    • Label and ParName for all params, and for slider-type params: min, max values, clamping tickboxes, and default value
    • Invoked by holding Ctrl or Alt(Opt) while drag-and-dropping a parameter onto the diamond button or a parent in the path bar
    • Quickly jump between text fields by pressing Tab and Shift+Tab
  • NEW: 🖥️ BorderlessTD: For a cleaner TouchDesigner look. More screen space is better!

    • F7: Toggle Windows title bar (Windows only)
    • Alt+F7 or Opt+F7 for Mac: Toggle showing Timeline
    • Can also be toggled by Right- or Middle-Clicking (respectively) on the Toggle Network Grid icon in the toolbar.
    • Startup default for both can be set in toolkit settings
  • NEW: 🎨 ColorUI: Recolor any TouchDesigner UI element, create presets, import/export, and share!

    • Available as a new tab in MY_UI (Fx symbol 🎛️)
    • Includes recoloring OP Families (looking at you, POPs)
    • Or any UI element by choosing from the dropdown
    • Saving colors locally saves them to the component and can be auto-loaded on startup
    • Export to JSON, and import — imported settings take precedence over local
  • NEW: 🎹 ResetMIDIPls: Bypass and un-bypass MIDI operators to unstick them (requested by Jacopo)

    • Built into midiMapper and its button on the toolbar
    • 🎛️ In midiMapper, a new button resets the selected Device ID
    • 🖱️ Middle-click the midiMapper toolbar button to reset all
    • Can be set to auto-reset all on startup

🛠️ Improvements/Fixes:

  • 🍥 RayTK Hotkey Conflict Solution: when both toolkits are installed and there is a conflict with ParReset tool's hotkeys you will be greeted with a popup to change either tool's hotkeys

  • 📌 Promoting parameters always defaults to the currently active page of the target (parent)

    • Also other minor improvements around this feature
    • Can now promote full pages of any operator by dragging an operator onto the diamond button
  • Promoting single pars of ParGroups will promote the whole group

  • 🔄 Refactored Greg's OpMenu IOFilters to inject themselves instead of cloning the whole UI. Re-enabled by default.

  • 🖥️ VSCodeTools: Default interpreter is set to the TD version if a POP build is available for the workspace file (since those come with typing support)

    • In VSCode/Cursor, you might still have to change manually to the workspace-defined interpreter, as this cannot be automated
  • 📜 QuickExt stubs/typing: Added feature to deploy QuickExt stubs/typing

    • Can be deployed to interpreter typings
  • QuickTime: Middle-clicking the toolbar icon now resets internal timers

  • 🔄 GlobalOutSelect: Now requires manual refresh by clicking the button in its UI for optimization reasons

  • 🖼️ Perform Window Tool: Alpha is now automatically preserved for NDI/Spout

  • 🐞 Various minor improvements and bug fixes

⚠️ Known Issues:

  • 📝 Stubbing to a local VSCode workspace folder negates the TD interpreter-provided typings (if available and set)
  • 🍎 Parent Shortcut pathbar pop-menus act weird on Mac
  • 🛠️ CustomParCustomize pop-menu can act unpredictably on Mac
    • Promoting single pars of ParGroups will promote the whole group

🔜 This is the last major feature update before starting a major toolkit refactor and integrating POPs features. This will be a big undertaking but will greatly improve the ability to invite others to integrate their tools and for users to customize their experience.
The toolkit will also be renamed. But that's for the future! 🚧

v2.8.1f

28 Oct 01:20
Compare
Choose a tag to compare

This release is v2.8.0f with some more QuickExt functionality.

v2.8.0f notes below
New features:

  • QuickExt has been mega-updated with ExtUtils - containing CustomParHelper and NoNode for the ultimate Python extension experience - Please read the wiki if you use Python Extensions - and if not this is where it gets more user-friendly!
  • CustomParTools is now added to each pane in the NavBar
  • Ctrl+Shift+Click on CustomParTools to add Parent Shortcut
  • Cleaned up window placement dialog (popMenus)

Fixes:

  • Fixed ExprHotStrings syncing
  • macOS: Attempted to fix NavBar popMenus focus problem. This made it usable again, however inconsistent in the extra features... gotta hit up Derivative for this.
  • macOS: fixed VSCodeTools fallback location thanks to @rosofo
  • Added a static exception to ResetPLS to ignore sceneChanger by default

v2.8.0f

27 Oct 00:29
Compare
Choose a tag to compare

New features:

  • QuickExt has been mega-updated with ExtUtils - containing CustomParHelper and NoNode for the ultimate Python extension experience - Please read the wiki if you use Python Extensions - and if not this is where it gets more user-friendly!
  • CustomParTools is now added to each pane in the NavBar
  • Ctrl+Shift+Click on CustomParTools to add Parent Shortcut
  • Cleaned up window placement dialog (popMenus)

Fixes:

  • Fixed ExprHotStrings syncing
  • macOS: Attempted to fix NavBar popMenus focus problem. This made it usable again, however inconsistent in the extra features... gotta hit up Derivative for this.
  • macOS: fixed VSCodeTools fallback location thanks to @rosofo
  • Added a static exception to ResetPLS to ignore sceneChanger by default

v2.7.1 hotfix

25 Sep 02:51
Compare
Choose a tag to compare

Changes:

  • Huge update to QuickExt with a lot of new features to streamline working with Extensions through CustomParTools !
    • New on-extension-init configurable self.par{Parname}, self.eval{Parname} attributes and on{Parname} callbacks!
    • These automatically created attributes are non-promoted (callbacks used to be)
    • There's a lot of configurability
    • Please check the Wiki for more info!!!
  • Updated the default path for ScriptSyncFile in VSCodeTools to create a folder with the parent name if externalizing an Extension script
  • Externalized all major scripts and extensions --- let the AIs feed off my code online!
  • Collected OpMenu mods into one COMP for better overview - (creates dependency from OpTemplates though)
  • Updated UPDATER to skip major version changes by default, unless forced with the f at the end of the tag --- this release is a live test of that feature
  • Toolbar icons can be reordered and disabled
    • Currently by pulsing the custom parameter Open Toolbar Definition (which links to the table /FunctionStore_tools/FNS_Toolbar/ToolbarDef where you can define these)
    • This config does not yet sync globally between project files!
  • Also updated VSCodeTools.tox standalone release

Bugfixes:

  • Fixed conflict with T3D OpMenu mods

  • Fixed ResetPLS Timeline Reset for local timelines

  • Fixed a bug in config saving/loading --- need to add Seq support!

  • Hotfix: added callbacks for full Sequence Blocks

  • Hotfix: fixed non-promoted ParGroup callbacks