Changelog

Every FNSTools release, newest first. Each line names a tool, the version it moved to, and what changed. The updater shows the same note next to an update inside TouchDesigner.

v3.2.76 2026-10-21

Every tool's About page now carries a Help button that opens its documentation page and a Link button that opens the author's page, beside the author's name and the package version. Tools that already had their own author link keep it.

The documentation site's search results open the page they name again: every result pointed one folder too high and landed on a 404.

The CommandKit, CommandRegistry and CommandPalette pages each explain how the four command pieces fit, the kit, the registry, the palette and the launcher, and link each other early. The CommandKit page now documents the explicit spec form, what the kit does on load and how to check that commands arrived.

The install picker also matches search tags kept per tool in the catalog, scored like operator-family tags, so a tool outside the operator family can rank for the words people mean it by: TDXMap now comes first for midi and controller.

v3.2.75 2026-10-19

QuickExt: a parameter declared with CustomParHelper (ParFloat, ParInt and the other Par fields) now takes its label, help, ranges and default when it is created and keeps what you set in the Component Editor after that, so an edit there survives the reload it triggers. Read-only and menu names stay in step with the tool. A tool whose parameters nobody edits can set _parRefresh = 'all' to re-apply them on every init, and CustomParHelper.RefreshDeclared() re-applies the declarations once.

FNSTools has a Perform Mode, a switch on the toolkit's own parameter page (FNSTools, next to FNS Tab in OP Create). While it is on, the tools that only serve the network editor stop: Cook Bar, QuickMarks pins, POP Overlay and the overlay that shows them, the scene changers' Cook While Editing watch and the radial menu, and Autosave skips. No tool setting changes, so switching it off brings back exactly what was on. It is saved with the project and never carried to other projects, and by default it follows TouchDesigner's Perform Mode (F1): entering turns it on, leaving puts back what it was. Measured on a dense network, the overlays cost 7.7 ms a frame in Designer mode and still 0.7 ms behind TouchDesigner's perform window; Perform Mode takes both to zero.

The toolkit's built-in browser stops checking every frame whether its viewer is open while FNSTools Perform Mode is on.

The toolkit's logger holds its records while FNSTools Perform Mode is on and writes them out when perform ends.

The installer no longer carries the last page the author's built-in browser was sent to.

Every package ships its registration readouts blank (Cfregstatus, Tbregstatus, Hbregstatus and the host Regstatus under them), with none of the author's project paths in them, and its nested components carry no leftover drag-in paths to the author's disk (ColorUI, OpFamily, PreviewPanel and PaneTypeRegistry had some).

v3.2.74 2026-10-17

The install picker keeps your place when a Patreon sign-in or "I just pledged" refreshes it: your ticks stay, an open install step re-plans with the tools the sign-in unlocked, and the newly unlocked tool is announced on your next visit instead of in the middle of the install.

The install picker never gets stuck waiting on Patreon: a membership check gives up after a minute with a clear message, a browser sign-in after ten, a refused check says why at once, and a new Cancel button stops the wait. Your ticks and step stay as they are either way. A sign-in made right after pledging gets one quiet re-check half a minute later, so a pledge Patreon had not confirmed yet still shows up without pressing anything.

v3.2.73 2026-10-17

The install picker's one-line note after a starting point ("16 tools ticked...") sits above the footer; it used to cover the footer's buttons for a few seconds.

The install picker's last step names the Patreon picks it cannot install yet: the plan carries a "Waiting for Patreon" line with the sign-in, recheck or join action, and the installed report keeps the one-line note; before, a locked pick was recorded as wanted and left unmentioned there.

v3.2.72 2026-10-17

The install picker is a wizard whose home is the list of tools: a start screen with the starting points, then the catalog with your picks ticked and your set as a drawer over it, then an install screen that shows the plan, the progress and the result and brings you back to the tools; the Patreon chips and the With Patreon label have their own colour, apart from the one that marks a ticked tool.

The toolkit now ships an agent skill: a reference bundle for a coding agent (Claude Code, and any agent that reads the Agent Skills format) with one page per public package listing its promoted API, quick-launch commands, hotkeys and parameters, rendered from the manifest at every build, checked against the release build before a release can ship, and placed into a project by the Install agent skill command.

v3.2.71 2026-10-17

The shipped toolbar, navbar, menu and hub tab places are now each tool's defaults, so every tool with a place on those surfaces is re-released with this fix.

Pick Tools questionnaire: "How do you like to work?" takes more than one answer, the components question asks about Python and custom parameters separately (custom parameters recommends Custom Par Tools), and the result list drops the "because" lines.

The toolkit's web browser panel no longer raises an error when its window closes.

Released tools no longer carry the old Info Header blocks (author machine and project name) at the top of their scripts: the release export strips them from every package and refuses to ship one it cannot strip.

The toolkit container has a new Remove Patreon Tools pulse on its FNSTools page, for a project file you publish, sell or share: it removes every Patreon tool from the project, installed or placed in your networks. The first press lists them in the Textport and a second within 10 seconds removes them (arrives with the next installer and bootstrap rebuild).

Every registry, and every tool that carries a registry host: placed in a project without the toolkit (a standalone copy of a tool, or a registry from the developer kit), the host switches its cloning off instead of crashing TouchDesigner on its next parameter write, and switches it back on when the toolkit arrives.

A developer kit, FNSTools-DevKit.zip, is a new download beside the installer: the eleven registries, each as its own tox, with a README, for building a tool against FNSTools without installing the toolkit. Linked from the website, the getting-started guide and the repository README.

v3.2.70 2026-10-13

The /get page has a download icon on each free tool's card: the tool on its own as a single .tox, with a one-time note that an install keeps it up to date.

Tools no longer ship the notes written on their own networks; only their licence notes stay inside.

Tools that keep a log inside them (ColorUI, HotkeyManager, PasteFromClipboard) ship with it empty.

v3.2.69 2026-10-12

v3.2.68 2026-10-12

The picker no longer announces a new tool you already have. A tool picked on the website and installed by the paste used to greet you again in TouchDesigner as "already picked"; the installer now records an installed tool as shown, and the console's new-tools count leaves installed tools out.

Tools now carry their licence inside the file, as a note in their network, each from its next release on: the MIT licence in full for free tools, the Patreon licence for the rest, so a copy that travels on says what it is. The terms now say plainly that a Patreon tool may not be built into a tool, template or pack you hand on, and that handing a client a project that uses one, so they can run it, is fine.

Global tools carry a small guard from their next release on: dropped into a project whose toolkit already has it, it releases its shortcut so the toolkit keeps working, and takes it back wherever no toolkit copy exists.

The picker no longer installs a second copy of a tool that is already in the project as a single download: it says where the copy is and points at Take over in the console (arrives with the next installer rebuild). A copy with its FNS:GLOBAL tag removed is treated as your own and left alone. A new guide, Working with FNSTools in your project, says what an update replaces and how to keep your own version of a tool.

Group switches on the toolbar, navbar and main menu now show their state: a lighter background while the group is open, a darker one while it is collapsed.

New installs get one deliberate toolbar layout: every FNS button inside an FNSTools group, sorted into Project, Control, Network and Parameters groups, with TouchDesigner's own buttons left as they are. Before, each tool shipped wherever it last sat in the author's own bar, two tools could share one slot, and the group disappeared when Perform or HydroHomie was not installed.

Tools with a two-part parameter such as XY or RGB no longer raise a script error when it changes, from each tool's next release on.

v3.2.67 2026-10-07

v3.2.66 2026-10-06

v3.2.65 2026-10-06

v3.2.64 2026-10-06

A new machine that installs FNSTools through TDX Launcher Ultra, a pasted script or any other rail that skips the picker no longer sees "New since you last looked" the first time it opens the picker. That install now counts as the first run it is, so every current tool starts out as already shown.

v3.2.63 2026-10-05

From this release on, a tool's About page is its last parameter page when it ships: a page added after About while the tool was being built no longer sits behind it. Each tool picks this up the next time it is released.

The install picker's search now reads each tool's documentation, its tags and the operators it stands in for, survives a typo, and lists the best match first in one ranked list (Enter ticks the top one); a hit found only in the docs says which words found it. A Compact toggle beside the filters shows title-only tiles, with the description on hover.

v3.2.62 2026-09-30

v3.2.61 2026-09-30

FNS_Installer: offers "Install " as a command in the command palette and the launcher for every tool this project does not have and your account can install. Running it installs the tool, downloading it first when needed.

The tools with a toolbar button (BorderlessTD, CustomParTools, GlobalVolControl, HydroHomie, Misc, OpTemplates, Output, ParOPDrop, ParRandomizer, QuickTime, Remote, ResetPLS, SetSmoothness, SwapOps, VSCodeTools, midiMapper) ship with that link, so each one downloaded on its own loads without a warning.

v3.2.60 2026-09-27

v3.2.59 2026-09-27

v3.2.58 2026-09-26

v3.2.57 2026-09-26

The picker no longer lists tools by other creators among ours: one line points to the console's Community tab (or to functionstore.tools/community/ outside the console).

The picker inside the console is quieter: the Patreon line appears only when something needs doing (signed out, link lost, nothing unlocked) with its one fix and a link to how unlocking works, Expand and Collapse sit on the filter row, and the count says how many picks need Patreon.

v3.2.56 2026-09-25

v3.2.55 2026-09-25

When a release adds tools, the picker says so once: a "New since you last looked" window lists them with a tick each, and they keep a New badge. A first install is never shown the whole catalog. The installer also downloads a family operator it has on record but no longer has the file for.

The tool categories are reorganised into two groups: Working in TouchDesigner (Interface, Network, Parameters, Project, Developer, Miscellaneous) and Making the piece (Time & sequencing, Control & mapping, CHOPs & sensing, Visual, 3D and Particles, Show & output). The picker shows the two groups as headings. Operators moved out of Control and Media & Output into categories of their own, and links to the old docs sections still land on their successors.

The guided setup's questionnaire separates two meanings that shared one tag: its point-and-click answer now recommends tools with a window, tab or pane to work in, and the image effects, particles and scene changers are recommended to people who make live visuals or generative art.

The guided setup asks a new question, what you build with: CHOPs, image effects, particles and 3D, sequencing, cameras and sensors, MIDI controllers, OSC or phone control, or scenes and show playback. Each answer leads to its own tools, and "just the editor tools" leaves the operators out.

v3.2.54 2026-09-24

The tool picker is redesigned. Patreon tools now sit last in every section, behind a "With Patreon" divider. Beside the search, All / Free / Patreon narrows the list, with a count on each choice. Selected shows only what you picked, and New shows the packages new in this release line. A results line names what is shown, with a removable chip per filter, and Select all / Clear act on exactly that list. Each section has its own Select section. Inside TouchDesigner each card says whether Apply will install it, keep it or remove it. The count in the footer opens a tray of everything you picked, grouped by what Apply does with it. Section headers work from the keyboard, and "/" jumps to the search.

Some tools can now be placed in one project without becoming part of your setup: their cards carry "place in this project only", and "Set up like last time" leaves them out of the next project. Every FNS family operator has it, and so do TDXMap and ParHoverMIDI_VSN1. The picker's new Placeable filter lists the tools you drop into a network as nodes.

v3.2.53 2026-09-24

Every parameter of every tool now has a tooltip, and the tool pages on functionstore.tools document each control from it.

v3.2.52 2026-09-24

Fourteen tools ported into the toolkit from the root PORT TOOLS bench, adopted as packages with unprefixed names. Thirteen are FNS operator family members (the FNS tab of the OP Create dialog); ThresholdColor is the Threshold TOP alternative.

ParHoverMIDI_VSN1: new foreign package. Parameter control by hovering with endless MIDI encoders, built for the Intech Studio VSN1; mirrored from its own GitHub releases, lands at the network root, explicit pick only, updates itself.

v3.2.51 2026-09-23

A registry host stamped by drop-to-register takes its canonical name from the component it lands in by expression, so a pasted copy of that component registers under its own name instead of taking over the original entry. Existing hosts whose name simply repeated their owner are switched to the expression on init; hand-authored names are left alone.

v3.2.50 2026-09-22

v3.2.49 2026-09-22

v3.2.48 2026-09-21

v3.2.47 2026-09-21

v3.2.46 2026-09-21

The install command on the website works again. It wrote your picks into the toolkit's old palette folder, which the toolkit then renamed out from under it, so the install either lost the file naming your picks or fell back to an older catalog that happened to be on the machine. It now writes to the current folder.

v3.2.45 2026-09-19

v3.2.44 2026-09-19

v3.2.43 2026-09-19

A clean start no longer installs an old release. The package store is

machine-wide and outlives every project, so a store left behind by an

earlier install kept being used as the catalog: a fresh project could

install a release several versions old, correct in every byte and wrong

in every version, and the FNS operator family could still drop copies

into your network because that is what the old catalog asked for. The

silent "set up like last time" install now refreshes the catalog before

it plans, which is what the Pick Tools picker has always done.

A tool that installs without being placed anywhere, like the FNS

operator family, is now recorded as installed, so Pick Tools stops

offering it every time.

v3.2.42 2026-09-18

Installing an FNS family tool no longer drops a copy into the network you are working in. The tools are released as family members precisely so you can create them from the FNS tab of the OP Create dialog when you want one, and they are now in the TouchDesigner palette too; installing makes them available rather than placing one.

The toolkit's machine-wide folder in the TouchDesigner user palette is now FNSTools; the old FNStools_ext folder is renamed into place the first time any tool looks, so the store, your settings, tables and template library all move without a download or a re-save. The FNS operator family lives flat in FNSTools/FNS, one tox per tool under its plain name with its manifest beside it, and that same folder is what TouchDesigner's Palette shows.

v3.2.41 2026-09-18

Installing an FNS family tool no longer drops a copy into the network you are working in. The tools are released as family members precisely so you can create them from the FNS tab of the OP Create dialog when you want one, and they are now in the TouchDesigner palette too; installing makes them available rather than placing one.

v3.2.40 2026-09-18

Four more tools stop shipping our version-history apparatus: FNS_OpFamily, FNS_RandomCHOP, FNS_iopBrowser and FNS_ParentHierarchy had no pre-release step at all, so they kept the Version Ctrl page and its tables. They are now cleaned up like every other tool, and open on their first parameter page.

v3.2.39 2026-09-18

Every tool now opens on its first parameter page instead of whichever page happened to be selected when it was built, and none of them carry the version-history apparatus from our own checkout any more. This is the same clean-up the scene changers and sequencers got last release, applied across the whole toolkit.

v3.2.38 2026-09-18

v3.2.37 2026-09-18

The tool picker says so when the catalog cannot be fetched, instead of promising that the page refreshes itself. The reason used to be written where only a developer reading the page source would find it. Its install plan also keeps Install and Close visible however many tools you pick.

v3.2.36 2026-09-17

v3.2.35 2026-09-17

The tool picker no longer goes dead under an open window. The browser that draws it now treats its own open window as reason enough to keep rendering, so the page keeps taking clicks whatever else lets go, and the picker identifies its window by the address it served rather than by a port number that can move underneath it.

v3.2.34 2026-09-17

The picker stays alive while its window is open. Reading the Installed dialog without touching the mouse used to count as an abandoned page: the picker server stopped, the browser render went dormant, and the dialog sat on screen taking no clicks with no way back. An open picker window now outranks silence, and the server stops when the window is closed.

v3.2.33 2026-09-17

v3.2.32 2026-09-17

The picker waits for a Patreon sign-in properly. The browser round trip can take as long as it takes, the page notices when the sign-in lands and refreshes itself, and every wait carries a Reload picker button, since the panel inside TouchDesigner has no reload of its own. It also notices a sign-in that unlocks nothing, which used to look like nothing happening at all.

v3.2.31 2026-09-17

v3.2.30 2026-09-17

v3.2.29 2026-09-17

v3.2.28 2026-09-17

The picker inside FNSTools.tox can show recommended tools by other creators again. It used to ask the download server for that list directly, which the browser inside TouchDesigner blocks; it now gets the list through the toolkit, which keeps a copy up to date in the background and drops a removed recommendation within minutes.

v3.2.27 2026-09-17

The picker inside FNSTools.tox checks for a newer release every time it opens. A machine that already had a store from an earlier release used to keep showing that release's package list; now the list updates itself, or offers a reload if you had already started picking. Clicking Install while that check or a background download is still running now waits for it instead of failing.

v3.2.26 2026-09-17

Released tools no longer carry Private Investigator markers. Every exported tox is scrubbed of the pi_suspect and FNS_externalized tags and of Vcoriginal, so a tool placed from the store or updated in place is never mistaken for a tracked development original by Private Investigator. Nothing else in the tools changes.

v3.2.25 2026-09-17

v3.2.24 2026-09-17

v3.2.23 2026-09-17

v3.2.22 2026-09-17

TDXMap is no longer counted among the free tools. The picker, the website and its page now say what it is: a 14-day trial, then a Base or Pro licence; it still installs for everyone from the picker.

v3.2.21 2026-09-16

v3.2.20 2026-09-16

A new toggle on the toolkit root, Always Set Up Like Last Time: with it on, dropping FNSTools.tox into a new project installs the tools of the project you saved last with nothing to click, no picker and no window, progress in the Textport. It roams with your settings, so it applies to every new project on the machine.

v3.2.19 2026-09-16

A toolkit that lands somewhere you were not looking is now shown to you. After a drop into a network inside a component, and after an install pasted into the Textport, it is placed above the topmost operator at the top of the project, the network editor goes there, and the toolkit is selected.

v3.2.18 2026-09-16

Dropping FNSTools.tox into a network inside a component moves the toolkit to the top of the project as before, and now takes the network editor there with it and selects the toolkit, so it is easy to find. The questionnaire's result names its Patreon tools once, and its count matches what it ticks.

v3.2.17 2026-09-16

The tool picker now leads with what is free, and names the Patreon tools with the tier they unlock at. Recommended, Everything and the other starting points leave out a Patreon tool the account cannot install yet, ticking one by hand explains how it unlocks and offers sign-in, and an install never waits on a Patreon tool the account does not include. Closing the install dialog now closes it.

v3.2.16 2026-09-16

A fresh install from the website opens the tool picker again. Dropping FNSTools.tox into a new project had shown an empty browser and installed nothing, so the toolkit arrived without its Hub or anything else.

v3.2.15 2026-09-15

v3.2.14 2026-09-14

v3.2.13 2026-09-14

v3.2.12 2026-09-14

Most tools are lighter inside: they drop a set of unused internal helpers (NoNode and its callback operators) and register their quick-launch commands themselves. Nothing changes in how any tool works or which commands it offers.

v3.2.11 2026-09-14

v3.2.10 2026-09-14

v3.2.9 2026-09-14

Inside the Hub the picker keeps its chip row at every width instead of switching to the site's side rail, which spent a column on seven chips and left it empty below them.

v3.2.8 2026-09-13

Inside the Hub the install action sits at the top: the selection count and the Review install button take the spot the docs link had, the supporter status and Check again fold into the Plus line, and the sticky footer is gone.

v3.2.7 2026-09-13

The word "Plus" is gone. Tools that need a membership are marked with the lowest Patreon tier that unlocks them, Patreon:Base, Patreon:Pro or Patreon:Coaching, in the picker and on the website, and licence keys are called Gumroad licence keys. The sign-in button reads Sign in with Patreon. The explainer page moved to functionstore.tools/patreon/, and the old /plus/ address redirects there.

v3.2.6 2026-09-13

The install plan reads as what will happen: how many tools install and with how much core, each as a chip by its title, removals and problems called out, what is already in the project folded into one line.

The Hub's Console tab renders at its own size. The toolkit's browser panel was a fixed 1280 by 720 page scaled down into the tab, which made the text small and left black bands above and below; it now takes the size of the area that shows it.

The picker is calmer inside TouchDesigner: a selected tool shows as a filled checkbox on a lifted card instead of a yellow border on every card, the Plus strip is one quiet line with the explanation as a tooltip, the category pitches step back, the category rail steps aside (the section headers carry the counts), the footer is one short line with one action, unlocked Plus chips are outlined instead of filled, the duplicate Show only Plus link is gone (the toolbar button does that), and Copy list is gone everywhere (the paste script and Download selection.json cover it).

v3.2.5 2026-09-13

Docs links in the picker work inside TouchDesigner: every external link, including each tool in the install report (click a tool to read its docs), opens your system browser instead of vanishing into a blocked popup.

v3.2.4 2026-09-13

An install never removes the toolkit root's own settings host again. It shares its name with the standalone FNS_ConfigHost package, and the picker's apply pass read it as an unchecked tool: a fresh install reported "removed FNS_ConfigHost" and that project lost its roaming root settings and its last-install record.

"Set up like last time" is the first card on a first run and installs on that one click; there is no review step for a list you already chose in a project you saved. The install report is a report now: the number of tools installed up front, each tool as a chip by its title, removals struck through and failures marked, core folded into the label.

v3.2.3 2026-09-12

A pasted install now says in the Textport what it did and what it is opening, waits for the FNS console to come up before handing over, and says so when it opens the picker instead.

The picker's Close button no longer dies a minute after an install: the installer's server now stops only after the page has gone quiet (the page reports itself in use while you are at it), and it releases the browser's render only when the browser still shows the picker, never a hold the console owns.

"Set up like last time" works: a fresh bootstrap, dropped or pasted, offers the tools your last saved project installed, pre-checked and never applied on its own. It had not fired since the toolkit root started shipping its own settings host, which the first-run test mistook for an installed tool.

v3.2.2 2026-09-12

A pasted install script now lands in the FNS console's Install & remove tab (in the Hub when the Hub is installed) once the install has finished, also when nothing but the bootstrapper was picked; a paste with Plus picks waiting still opens the sign-in picker instead. The "Set up like last time" offer appears on a root that holds core and no tools, so a pasted install sees it too.

v3.2.1 2026-09-11

The picker gains a Plus-only filter, and says what a Plus pick means where

it would otherwise surprise: on the Plus line, on the questionnaire's

result (with a Leave Plus out button), and in the paste-script dialog.

The picker's categories and the questionnaire's fits were re-read from each

tool's documentation and parameters: five tools moved category (CommandKit

to Developer, HydroHomie to Workflow, OpToClipboard and SetSmoothness to

Parameters, PreviewPanel to Surfaces), six

descriptions were corrected, and the Command, Palette and Timeline

registries are core packages now, as the catalog always said.

v3.2.0 2026-09-11

Every tool in the toolkit now reports the same version, 3.2.0. Up to now each

package carried its own number, so a catalogue where one tool read 3.0.4 and its

neighbour read 0.1.3 told you nothing about which release they came from. From

here the version is the release: if two tools disagree, one of them is behind.

Tools that gained nothing new in this release still move to 3.2.0, and that is

the point of the change, so nothing you install is left on a number that has to

be looked up.

FNS_Navbar has been dissolved into the tools it carried, so each one installs on

its own. Nothing is lost: everything that was on the pane bar is still there,

published by a smaller package.

network you are in, from a popup opened off the pane bar. The browser exists once

and every pane's button calls into it, so the bar carries 52 operators per pane

instead of the 959 the old combined widget copied into each one.

see its shortcuts, internal operators and now its extensions too; hover an

extension to expand the API TouchDesigner promotes from it, and click any row to

copy a reference you can paste, down to ext.MyExt.MyMethod(args). Adds no button

of its own. One popup serves every pane, so the bar carries 112 operators per

pane rather than the 959 the old combined widget copied into each one.

path-cell injection and drag-drop hijack that used to live in FNS_Navbar. Install

it under the new name to keep getting updates; the old package stays where it is

and stops being offered. A new Modules page switches each of the nine

sub-modules on or off on its own, so you can keep the parts you use and drop the

rest. Turning one off withdraws the surface it owns rather than leaving a dead

control behind: the two pane-bar widgets unregister and disappear from every bar,

and the button itself leaves the navbar and the toolbar once every action it

fronts is off.

or Right on a method fills the box so you can type arguments, and Enter again

runs it; Tab only ever completes. ~ext. lists the extensions on the COMP you are

on and ~ext.MyExt. narrows to one of them, listing everything reachable through

ext.MyExt rather than only what is promoted, so the lowercase half of an

extension is callable too. The accessors CustomParHelper generates for each

parameter are left out of that list, which on a big tool is the difference

between fifty rows and a thousand.

Every tool now installs under an FNS_ name. The prefix was already on about half

the toolkit and missing from the rest, which made the install list read like two

different products. Nothing about a tool changed in the renaming, but a rename is

a new package: your installed copies keep working and stop being offered updates,

so reinstall the ones you use under their new names. Four keep their old names on

purpose: PasteFromClipboard, QuickMarks, midiMapper and oscMapper.

Renamed with a new base name, so they read differently in the list: MISC is now

FNS_Misc, OUTPUT is FNS_Output, ResetPLS1 is FNS_ResetPLS, TDX_SearchPalette is

FNS_SearchPalette, FNS_OpMenu is FNS_OpMenuMods, and paste_from_clipboard is

PasteFromClipboard. Everything else simply gained the prefix.

The on/off parameter is called Active everywhere now. Most of the toolkit already

used it, which is also TouchDesigner's own name for that switch, so the five

tools that said Enable have been brought in line: FNS_HydroHomie,

FNS_BorderlessTD, FNS_Updater, FNS_ResetPLS and FNS_CustomParTools. A renamed

parameter loses its stored setting once, so those five come back at their

defaults, which is on.

default, on, once.

They come back at their defaults, on, once.

default, on, once.

Activeall. Install it under the new name to keep getting updates.

Enable..., matching the rest of the toolkit.

the toolbar background widget and the command that opens the toolbar

configurator. Install it under the new name to keep getting updates.

FNS_Toolbar: retired. The toolbar surface itself has been built by

FNS_ToolbarRegistry for a while, so the package had shrunk to a background

widget and one command; both moved to FNS_Misc rather than staying behind a

package of their own.

The install picker now ranks minor tools last. A handful of packages are small

conveniences rather than things you go looking for, and they were taking the

same space and the same weight as everything else. Those now sort to the end of

their own category and draw in a denser, lighter card, so a category reads as

the tools you came for plus a short footnote. Nothing is hidden and nothing

moves out of its category; they are still there and still tickable.

stock operator type. Create an operator with the alternatives shortcut held

(alt ctrl by default, on the registry's new Alternatives page) and every

alternative any installed tool has declared for that type is offered: one is

placed straight away, several open a picker. What used to be OpTemplates' own

engine, watching for new operators and swapping in a template with its wiring

restored, is now the registry's, and OpTemplates is its first contributor. A

tool that is only in your store, downloaded but not in the project, is offered

too, below a divider, and placed from disk as one node; nothing is installed by

that. In the operator list, ' >>>' marks a type with an alternative in the

project and ' >>' one whose only alternatives are in the store. A tool that

stands in for several types declares its alternative once, under one key that

lists the types separated by spaces. The registry hosts inside tools no longer

carry their own copy of the shortcut, so the hotkey manager lists it once. Fixed before release: the ' >>>' mark

was computed but never applied by the dialog's node table, a pane switch was

read as a batch of new operators, an alternative could be offered inside

its own source, and a placed copy of a tool registered itself as one more

alternative. A placed chain lands with its first operator exactly where you

clicked and the rest to the right, wired as in the library even when the

paste had to rename an operator.

mark per row, so ' >>>' and ' >>' show again for every contributor.

global (one .tox in your user palette, as before), project (a component at

the network root that saves with the .toe and survives toolkit updates), or

follow the toolkit's Config Scope, the default. A missing library is created

from the set loaded at that moment; switching from project to global asks

whether to push the project set, adopt the global one or stay; Push To

Global writes the active set to the palette file behind a prompt. The

External Templates Sync toggle and the Advanced mode are retired, and a

component Advanced pointed at is adopted as the project library. The

library is also published through the op-menu registry now, which owns the

watcher, the shortcut and the placement; nothing about the templates

themselves changed. Also fixed a long-standing leak: placing a

template that is a COMP left TEMPLATE_ROOT/IN/OUT tags on the library's own

children, and a stale TEMPLATE_OUT is what the next placement wires the

outputs to. Forty-six library operators carried them; the library was cleaned

and the engine now cleans every operator it tags. The shortcut now lives on

FNS_OpMenuRegistry's Alternatives page; a Keys value you had customised is

carried over there on first start, and Keys then mirrors it.

Registries keep every registration across a global takeover. When a newer

registry replaces the live one, the live entry table wins for every name it

holds, and a master or host that is not the global no longer keeps a parallel

table of its own. Before this, an update to the Hub or Palette registry could

bring back a tool's stale tab order or visibility from the master's copy.

(Ship this release with the [All] scope: the shared RegistryBase changed, and

every registry master and every host carries an embedded copy, so a [Bumped]

release would mix the new base with the old one on installed machines.)

same frame the selection changes.

(the T3D package's bypass shortcut inside every T3D operator, 25 of them)

list as one row with a count, rebind and reset together, and no longer show

as conflicts with each other. A status readout or a stored list whose name

happens to contain "key" (TimelineTools' Keyframer status, CommandPalette's

favourites) is no longer listed as a binding. A modifier-only binding that

another tool also holds (alt, held by four tools for four different gestures)

is marked shared in a quiet yellow instead of red or nothing.

The content CMS can now declare which operator types a package is an

alternative for, on a foreign package or on a live package that carries no

op-menu host; a package with a host keeps deriving the list from its own

callbacks, and a curated list beside a host is reported at preflight.

now lands the component itself, not the bundle Derivative ships it in (a

wrapper holding the component, its icon and its help text), and hands it to

your mouse to place, exactly like a new operator from the OP Create dialog. A

row can also be pressed and dragged into a network, the Palette browser's own

gesture.

The picker on /get and in the installer folds into category sections:

the first screen is the eight categories with their pitch and counts, a

section opens on click, on a filter match or when a guided-setup preset

selects into it, and a side rail on wide screens jumps and opens. Cards

lost their surface chips (the surfaces stay searchable and ride the

tooltip) and clamp their description to two lines. The installer keeps

the raw view with every section open.

a folder you choose, grouped by the project that made them, with the disk space

they take and an estimate of the hours of work they hold; send the ones you are

finished with to the recycle bin, or delete them outright. Keep Last protects

the newest saves in every folder, and nothing is scanned until you open the tab.

label, style, page, help, menu labels and clamped range beside its value, so a

tool that edits the file with no TouchDesigner session running can show the

same controls the settings page shows and search on more than a parameter name.

The values themselves are unchanged and are still the only thing read back in;

the description beside them is presentation, and a stale one is harmless.

longer stalls the frame: the project is scanned once instead of twice, and the

out operators inside each shortcut are collected by a few lines of Python

instead of a finder stamped per shortcut, which also makes the package 262

operators smaller. The Limit Max Depth and Max Depth settings now actually

limit the scan, and changing them no longer raises an error. The header row

has a Refresh button; refreshing by clicking the corner of the list still works.

Guided setup gains "Find my set": a few questions about how you work,

then a recommended selection with the reason beside each tool, editable

before it is applied. The questions and each tool's fit are catalog

content.

drawn by the tool itself, instead of opening a browser page. That code area is

also a button: click it and the page opens in a browser on this machine,

whether or not a code is showing. With LAN access off there is no code to

scan, so the square reads "Click to open here" and the address sits beside it,

which is the way into a remote that is serving only to this machine; the

switch to allow LAN access is in the same window. The toolbar button now says

which state it is in: struck through when it is not serving, a monitor when it

serves this machine only, and a phone with waves once a phone can reach it. It

still lights while serving. Drag that button into a network and it drops a

Select CHOP of the touch channels, already pointed at the tool. On the phone,

Control is the first tab; a parameter group such as a position or a colour is

one row of editable number fields, and opens into one slider per component,

each following the other; sliders have a thumb you can actually grab and no

longer fight the page's scrolling. Drop a component on the button to make it

the one the phone controls, or hold Alt while dropping to add it to the

component list instead. Dropping a parameter exposes the component it belongs

to. Two fixes: toggling Active could re-open the pairing window by itself, and

so could dragging off the button. The phone page now has a component browser:

an author walks the project one level at a time, exposes a component with one

tap, and removes one with the cross beside its name. And there are two links.

The full link reaches everything; the client link, a second code minted beside

it, opens only the exposed controls, with no session actions and no browsing,

and the server refuses those routes on it, where the page only hides them.

Pair the Client Link switches the pairing window and its QR code between the

two, Touch on Client Link decides whether that link gets the touch pad,

Regenerate Token now renews both codes, and the WebSocket asks for the token

on its first frame, so a neighbour on the network cannot push touches into a

rig by guessing the port.

v3.1.4 2026-09-08

Every tool: every package now runs the shared export strip. Twenty-five

packages, every registry among them, had no hook for it and shipped their

authoring bookkeeping (Version Ctrl pages and tables) and the dev

project's paths in their FNS_About. The strip also writes the About

page's Owner as an expression that resolves wherever the tool lands.

v3.1.3 2026-09-08

v3.1.2 2026-09-08

Every tool: the shared ExtUtils base pointed its parameter watcher at an

absolute path into the dev project, so an install without CustomParTools

raised an error on every tool carrying one and could miss parameter

changes. It now resolves to the tool it sits in. Found on the first fresh

install of the beta.

v3.1.1 2026-09-08

This is a beta. Every tool has been used in the dev project daily, and

this is the first release where strangers install it. Four packages are

new, one is mirrored from its own site, and every tool carries a fleet

change to the shared ExtUtils base. If something wedges, especially a

download that sits at "0 done, 1 to go", leave it as it is and report

it with the Textport contents.

Listings show the public name now: the package FNS_BeatMod appears as

BeatMod in the picker, the console and the site. Shortcuts, file names

and COMP names keep the prefix.

Every tool: the shared ExtUtils base heals its watchers when a watched

operator is renamed or moved, and a pasted or copied tool initialises

its extension on its own instead of waiting for something to cook it.

Stub generation left ExtUtils, which is about 1150 fewer operators in a

full install. Every quick-launch command carries help text and says

what it acts on.

TDXMap: Mirrored from its own release at version 1.2.0. MIDI controller mapping with a live web UI. It updates itself; the toolkit updater reports it as self-managed and leaves it alone.

v3.0.14 2026-08-31

v3.0.13 2026-08-31

v3.0.12 2026-08-30

v3.0.11 2026-08-30

v3.0.10 2026-08-30

v3.0.9 2026-08-30

v3.0.8 2026-08-30

Downloads can no longer damage the store: artifacts land in a staging

file and only replace the store copy after their checksum passes, so a

failed or refused fetch leaves the previous good bytes untouched. A

gated download refused by the gate now says so honestly (instead of

reading as a checksum failure) and drops the stale download token, so

the next attempt asks for a fresh one.

The picker now finishes what the /get page started: if you copied an

install with a Plus tool checked, the pick completes on its own the

moment your account covers it -- whether you were already signed in on

this machine or sign in when prompted. A short countdown lets you

cancel; anything your tier does not cover stays visible with its

honest label instead of installing.

Signing in anywhere on the machine now counts everywhere: a session

that existed before shared sign-in shipped is published for other

Function Store products to adopt the first time it is read.

v3.0.7 2026-08-30

any FNS product (the toolkit, the TDX launcher) shares the session --

clicking Sign in when the machine is already signed in adopts it

instantly with no browser trip, and signing out anywhere signs the

machine out everywhere. Entitlement refusals, downloads and rechecks

are unchanged.

v3.0.6 2026-08-29

the shared browser's render on while its server lives, instead of the

render optimizations switching it off one frame later.

The install rails ride along fixed: the one-line installer lands the

toolkit at the project root, opens the picker by itself when a Plus

tool was picked, Pick Tools keeps its panel rendered, and Open

Settings reports what it actually did.

v3.0.5 2026-08-29

reads its parameters, gate responses route to their handlers, and

requests actually carry their bearer token. Refusals name the tier a

package unlocks at (and the lifetime key where one exists), a dead

session clears itself and re-offers the way back in, a Patreon outage

keeps a supporter entitled, and the picker narrates sign-in and

recheck outcomes and refreshes itself.

v3.0.4 2026-08-29

Documentation, and the settings page you could not reach.

Every package's docs were checked against what its code actually does

rather than what the old wiki said. Twenty-six were wrong: hotkeys that

had drifted to different modifiers, features nobody had written down,

paths still naming the pre-3.0 layout, and a few descriptions that

described the wrong behaviour entirely. ClearPars turned out to have

merged into CustomParTools during the redesign and is gone as a separate

package; its docs live there now.

FNS_ConfigRegistry ships a settings page -- every installed tool's

parameters on one page in your browser, served from inside TouchDesigner

on 127.0.0.1 and shut down again when you stop looking at it. It has been

in the code for a while, unreachable: the web server op it looks for was

never created. It builds itself on demand now, and the toolkit root grew

an Open Settings parameter to reach it, alongside Pick Tools and Open

Installer.

The one-drop bundle is now built as a copy of the development root with

the developer-only parts removed, rather than assembled separately, so the

two cannot drift apart in what they offer at the top level.

server that serves it is created on demand instead of being expected to

already exist, and a promoted copy missing the page pulls it from the

master rather than failing.

Unreleased

v3.0.1 2026-08-16

Installing from the website is now one line. Pick the tools you want on

the site, press Copy install script, and paste the single line into the

Textport: it fetches the bootstrap and your selection straight from this

release, checks every hash before writing anything to disk, and installs.

Partial installs are the theme of this drop. Tools that reach for each

other now look first and stay quiet when the other side is absent, so a

subset behaves like a deliberate configuration rather than a broken one.

Packages have also stopped assuming the toolkit root is there at all --

each one resolves through its own global shortcut, so a single dropped

tox works standalone.

Every package page was re-read against the components themselves.

Twenty-six of forty-six had something stale -- paths left over from the

rename, wrong key combinations, descriptions of how things worked before

the redesign -- and the worst of them were rewritten outright. ClearPars

lost its own page, because it lives inside CustomParTools now.

Downloads are a little leaner too: artifacts had been carrying log data

baked in from an old project, and that no longer rides along.

v3.0.0 2026-08-16

FNSTools 3.0 -- the toolkit takes its name, and core becomes the raw

registries. The whole toolkit is renamed FNSTools; the six registry

masters (FNS_ConfigRegistry, FNS_ToolbarRegistry, FNS_NavbarRegistry,

FNS_MainMenuRegistry, FNS_OpMenuRegistry, FNS_PaneTypeRegistry) ship as

their own core packages, promoted to /sys under those names -- raw,

standalone and cloneable, so the toolkit can be extended with the same

machinery it is built on. FNS_Updater (renamed from UPDATER) is the one

non-registry core. The former surface packages -- toolbar, navbar,

main-menu and OP-menu extras -- are ordinary optional tools now, and a

tool's requirements are exactly the registries it hosts. Full design

record: docs/FNSToolsRedesign.md. No migration from pre-3.0 installs;

this is the first public shape of the toolkit.

v2.12.19 2026-08-15

The picker downloads only what you pick. A lightweight bootstrap no

longer mirrors the whole release before showing the catalog: the page

appears after a manifest-only fetch (seconds), the plan says how many MB

your selection needs, and install fetches exactly those packages with

live progress. The full-mirror Refresh Store pulse remains for offline

installs and shared bindings.

v2.12.18 2026-08-15

The bootstrap installer now targets whatever container it ships in --

TD numbers a second drop into an occupied project, and matching the

parent by literal name sent that installer at the other copy's root.

The plan status also names an existing toolkit root when installing

somewhere else.

v2.12.17 2026-08-15

Registry cores: the /sys global no longer inherits the master's clone

binding at promotion -- the global owns itself, so an update destroying

and reloading the in-project master cannot dangle it.

v2.12.16 2026-08-14

v2.12.15 2026-08-14

v2.12.14 2026-08-14

v2.12.13 2026-08-14

v2.12.12 2026-08-14

Tools own their parameters now. Every parent.FNS.par reference across the

toolkit -- 31 pars in 20 packages, plus the hotkey scan root and the

IOFilter gate -- is gone: each par is a plain tool-level value, the hotkey

manager anchors to whatever container it is installed in, and IOFilter

grew its own toggle.

v2.12.11 2026-08-14

First release with the reworked bootstrap rail: the one-drop root now

ships the FNS global/parent shortcuts, the installer recooks a package

once before counting an install-time error, and the served configurator

shuts its web server down after a successful install.

v2.12.10 2026-08-14

v2.12.9 2026-08-14