Docs Core

OpFamily

The FNS tab in the OP Create dialog: an operator family whose members are FNS tools placed from the store as one node each, with stubs for projects that travel and in-place updates that keep retained parameters and state. Built with TDFam.

◈ Core

What it is

Open the OP Create dialog and there is an FNS tab beside COMP, TOP, CHOP and the rest. Every entry on it is an FNS tool that reads as one operator: inputs on the left, outputs on the right, its own parameters, placed into the network you are working in like any stock type. Random, SimpleSceneChanger, ProSceneChanger, SwitchTools, MixSequencer, OpSequencer and CamSequencer are the first members.

The installer adds the family with the first of its operators and removes it with the last. A project without FNS operators has no FNS tab, no family registry and no family folder.

The tab is optional. When you tick a family operator in Pick Tools, the selection bar shows Add FNS tab to OP Create. Untick it to keep the operators in your palette only. To turn the tab off later, untick FNS Tab in OP Create on the FNSTools page of the toolkit's parameters, untick the same switch in Pick Tools, or run the Remove Operator Family quick-launch command. The toggle turns it back on too, as long as at least one family operator is installed. Your FNS tools stay installed either way, and the choice sticks: installing another family operator, or setting up a new project like the last one, keeps the tab off until you tick the switch again.

The family is the same component wherever it runs: this package is a TDFam family named FNS, coloured brick red (0.569 0.265 0.188), installed on project start, and its registry promotes itself to /sys the way TDFam designs it.

Where the operators come from

Members are the packages you already know, mirrored from the machine's store into the family's operator folder (FNSTools/FNS/ in your palette folder), one tox per member under its plain name with a manifest beside it. The same folder shows up in TouchDesigner's own Palette as FNSTools > FNS. The FNS updater keeps that folder in step with the store: every install and update pass that leaves the store complete runs the sync, so the FNS tab lists every member the machine holds, and only those.

Because the store only holds the packages your account is entitled to, a Pro-tier member appears on the tab for Pro members and not for Base members, with no extra gate anywhere. A member you never installed is still on the tab once the store holds it, since the store is complete by default (see the updater's Keep the Whole Release in the Store toggle).

A member can also be an operator alternative: create a Noise CHOP with the alternatives shortcut held and Random is offered. Two doors, one tox.

Stubs and updates

Two things a pane package could not do before:

  • Stubs. Before a project travels to a machine without the toolkit, stub the FNS operators: each placed member becomes a light placeholder that keeps its wiring, position, retained parameters and retained state. On a machine with the family, replace the stubs and the real operators come back. Both are commands on this package.
  • Updates in place. A placed member is frozen at its spawn version. Update Family Operators upgrades every placed member to the newest version in the family folder, applying each member's retained parameters and state.

Which parameters and which state survive a stub or an update is declared per member in its manifest.

The same three actions, plus a resync of the family folder, are quick-launch commands: Stub Family Operators, Replace Family Stubs, Update Family Operators and Sync Family From Store. A fifth, Remove Operator Family, takes the tab away (see above). They act without dialogs and report what they did, and each can be limited to the network you are looking at. The toolkit's own copies of the members are never stubbed or updated this way, by these commands or by the pulses below: those copies belong to the FNS updater.

Credits

Built with TDFam by Lyell Hintz (dotsimulate) and Dan Molnar (Function Store), Apache-2.0. The licence and notice ship inside the package.

Parameters

Family

ControlType / defaultWhat it does
Family NameFamily textempty The family name: the tab the operators appear under in the OP Create dialog.
VersionVersionread-only textempty The version of the family registry.
InstallInstall on / offon Install the family into the OP Create dialog.
Install On StartInstallonstart on / offon Install the family every time the project opens.
ColorColor colour0.569 The family's colour in the OP Create dialog and on its operators.
IndexIndex number9 Position of the family's tab among the OP Create dialog's tabs.
Compatible Op FamiliesCompatibletypes menu, editableempty Which operator families the family's operators connect to, for filtering in the dialog.
Options: COMP, TOP, CHOP, SOP, POP, MAT, DAT, FNS
Op CompOpcomp operatorempty The COMP holding the family's operators.
Create Op CompCreateopcomp button Create an empty COMP for the family's operators and point Op Comp at it.
[ .tox ] Op FolderOpfolder folder pathempty A folder of .tox operators to add to the family.
Color .tox from FolderColorfileops on / offoff Colour the operators loaded from the folder in the family colour.
Version Regex MatchNamingconventionread-only menu, editableempty How version numbers are read from .tox file names.
Options: name_vX.Y.Z (default), name_X.Y.Z, name-X.Y.Z, No versioning
Ensure ManifestsEnsuremanifests button Give every operator in the family a manifest if it lacks one.
FamUI COMPFamuicomp operatorempty The COMP that draws the family's UI in the dialog.

Stubs

ControlType / defaultWhat it does
Create Stubs For AllCreatestuball button Create a stub for every operator in the family.
Replace Stubs For AllReplacestuball button Replace every stub in the project with the current operator.
Update AllUpdateall button Update every family operator in the project to the current version.
Target OpTargetop operatorempty Operator to stub or stub to replace
Create Stub For OpCreatestubop button Create stub for target operator
Replace Stub For OpReplacestubop button Replace target stub with full operator
Update OpUpdateop button Update the selected operator to the current version.
Target CompTargetcomp operatorempty Network container to process
Create Stubs In CompCreatestubscomp button Stub all operators in target network
Replace Stubs In CompReplacestubcomp button Regenerate all stubs in target network
Update Ops In CompUpdatecomp button Update every family operator inside a COMP.
Target TypeTargettype menu, editableempty The operator type Update Type acts on.
Update TypeUpdatetype button Update every placed operator of Target Type.

Callbacks

ControlType / defaultWhat it does
Callback DATCallbackdat operatorempty The DAT holding the family's callbacks.
Create CallbacksCreatecallbacks button Create a callbacks DAT from the template and point Callback DAT at it.

About

ControlType / defaultWhat it does
AboutAbout button Show the about text.
LicenseLicense button Show the license.
Dev ModeDevmode on / offoff Development mode, for authoring the family itself.
SupportTdfamcreators0support button Open the support page of a TDFam creator.
SupportTdfamcreators1support button Open the support page of a TDFam creator.

Edit this page on GitHub →