Repository navigation
Releases: function-store/FNSTools
Release list
v2.11.2 --- hotfixes
FNSTools v3 is out, for TouchDesigner 2025 and newer. It is installed from functionstore.tools and is not published as a GitHub release, so this toolkit's updater will not offer it. Moving a project over: Moving from v2. v2.11.2 stays here for TouchDesigner 2023.
Have noticed some degradation in performance of the toolkit, which comes from OpFind DATs.
Therefore: replace usage of opfind in ResetPLS with usage of findChildren for optimization.
Also fixed placement of IOFilter in OpMenu.
Check previous release notes for more: https://github.com/function-store/FunctionStore_tools/releases/tag/v2.11.0
v2.11.1 --- ResetPLS hotfix
Have noticed some degradation in performance of the toolkit, which comes from OpFind DATs.
Therefore: replace usage of opfind in ResetPLS with usage of findChildren for optimization.
Check previous release notes for more: https://github.com/function-store/FunctionStore_tools/releases/tag/v2.11.0
v2.11.0 - fixes, compatibility, some new features
✨ New
CustomParPromoter
- GLSL uniform support: promoting a
vecN valueparameter from a GLSL TOP/MAT's Vectors page now uses the uniform name (vecN name) as the promoted parameter's name and label — you getuColorinstead ofVec0value. Shader-style names (uColor,iCounter) keep their casing in the label. - Promote All on a GLSL Vectors page promotes one parameter per uniform, named after the uniform, and skips the uniform-name string parameters.
Script Externalizer
- Smarter file extensions: respects the DAT's language setting, and when that's non-specific it detects content — GLSL shaders (
.vert/.frag/.glsl), JSON, YAML, XML and HTML all get their proper extension instead of defaulting to.py. - Now also available as a standalone release module (
ScriptSyncFile.tox).
MidiMapper / OSC
- Added Active toggles for MIDI and OSC mapping.
QuickExt
- New extensions automatically enable Init Extensions On Start on the target COMP.
- The toolset is now tagged
tdn_exclude, so TDN-based externalization (Embody) skips FunctionStore_tools components instead of exporting them with your project.
🐛 Fixes
- CustomParPromoter: dropping a single member of a parameter group (e.g. just the
xof an XYZ) no longer promotes the entire group — only the dropped component is created and bound. Works for all parameter styles. - QuickExt: creating an extension no longer breaks TD autocomplete in VS Code. Project typings now extend TD's shipped interface library (
from tdi import *) instead of replacing it, with helper stubs namespaced undertypings/custom_typings/QuickExt/. (Autocomplete viatdineeds TD 2025.32820+.) - QuickExt on macOS: stub files are written to the project folder instead of a stray
typings/folder in the app's working directory. - VSCodeTools: opening VS Code no longer auto-writes
parameter.py/parameterTypes.py(wrong location on macOS; unnecessary now that typings ship with the project). - NavBar: fixed Parent Hierarchy error on newer TD builds (dependable-list indexing changed); works on old and new builds alike.
- ParRandomizer: fixed an error when triggering parameter reset with no parameter under the cursor.
- OpMenu: fixed an error and tidied the I/O filter row placement.
v2.10.4
Release Notes: v2.10.4
- Fixed annoying warning
- Fixed version number
Release Notes: v2.10.3
🐛 Bug Fixes & Compatibility
- TD2025 Support: Fixed olib functionality not working properly in TouchDesigner 2025 versions
- ParentHierarchy: Compatibility fix for improved stability
- QuickExt: Reverted to explicitly setting parent references to resolve issues
🧹 Maintenance
- Cleanup: Removed unwanted automatic "logs" folder creation
- Project Updates: Updated FNS_TDDefault_2023.toe with latest changes
📦 Technical Details
- Commits: 6 commits since v2.10.2
- Focus: Bug fixes and TouchDesigner 2025 compatibility improvements
This patch release addresses several compatibility issues and cleans up unwanted behavior, ensuring smoother operation across TouchDesigner versions.
v2.10.3 --- more 2025 compatibility fixes
Release Notes: v2.10.3
🐛 Bug Fixes & Compatibility
- TD2025 Support: Fixed olib functionality not working properly in TouchDesigner 2025 versions
- ParentHierarchy: Compatibility fix for improved stability
- QuickExt: Reverted to explicitly setting parent references to resolve issues
🧹 Maintenance
- Cleanup: Removed unwanted automatic "logs" folder creation
- Project Updates: Updated FNS_TDDefault_2023.toe with latest changes
📦 Technical Details
- Commits: 6 commits since v2.10.2
- Focus: Bug fixes and TouchDesigner 2025 compatibility improvements
This patch release addresses several compatibility issues and cleans up unwanted behavior, ensuring smoother operation across TouchDesigner versions.
v2.10.2 bugfixes
New Features
- Custom Parameter Promotion additions
- Added hotstrings (
#@!for bind,#@~for ref) - Added special case for promoting index parameters of switch-like operators: the range of the slider will automatically be the number of inputs to the switch
-
- improved ParGroupUnit/Pulse handling
- Added hotstrings (
Compatibility
- TD2025 Compatibility: Fixed critical issue with external table for toolbar in TD2025.31150, addressed parameter object comparison inconsistencies
- IMPORTANT: due to a bug in 2025.31150 some other issues might remain, hope they fix it soon!
- POPs family color shows up in ColorUI properly by default
- Mac Compatibility: Updated AltSelect to use alt key, changed navbar nugget modifier for Mac to alt as well
- Other minor fixes and tweaks
v2.10.1 minor update
New Features:
- Added POP support to ColorUI
- ParRandomizer: in 2025+ versions
ui.rolloverParGroupis 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
indexparameter -> maximum will be the number of inputs to theswitchOP(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
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
v2.9.4
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:
- Fixed unwanted AltSelect when SwapOp
- Fixed pathbar drag-drop param
- Fixed HydroHomie animation
v2.9.3
💻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
Altshows available shortcuts (Global, Parent, iop) [buggy on Mac!] - Holding
Ctrlalso shows all parameters and their values (hitCtrlagain 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+RightClickequates to middle clicking

- Hovering over a parent in the pathbar and holding
-
NEW: QuickParCustom: parameter hover actions to promote/customize parameters
alt.xhovered param: Promote to parent (Bind by default, holdshiftas 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-clickingon the diamond button
- If enabled #! will resolve to the closest parent shortcut
-
FIXED: HotkeyManager unwanted prompts
- Really hope this is fixed, let me know!
-
Added more
Activetoggles to main params of the toolkit -
Other minor fixes and improvements