Docs Core

ConfigRegistry

Settings persistence registry: one aggregated JSON in the user palette, so preferences follow you across projects and survive updates. The raw master, promoted to /sys.

◈ Core

Settings UI

Every installed tool's settings, on one page in your browser:

op.FNS_CONFIGREGISTRY.OpenSettingsUI()

This is the toolkit's settings panel, the replacement for the hand-authored control parameters that used to live on the toolkit root. It lists every tool that is registered, with its version and its parameters, and writing a value there goes through the same filters and persistence as any other change, so the page and the components can never disagree.

The page's HTML holds no hardcoded list of tools or parameters. It asks the registry what exists and renders that, which is why it is always correct for the subset of tools you actually installed and never grows dead entries for ones you removed. Each tool's Registry page is skipped; that is registration plumbing.

The page is served by Console, the toolkit's web front and a core package of its own, on 127.0.0.1, first free port in 36710-36759, only while you are looking at it (see FNS_Console.md). This registry only answers the console's /api/* calls: UiState, UiSet, UiExport, UiImport, UiScope. op.FNS_CONFIGREGISTRY.OpenSettingsUI() still works; it forwards to op.FNS_CONSOLE.Open().

Tools carry a host copy of the registry, but every host forwards to the promoted /sys global, so there is exactly one source of settings however many tools you have installed.

Syncing/Externalizing

ConfigRegistry aggregates every installed tool's Custom Parameters (plus optional extra state, e.g. from OpTemplates or ExprHotStrings) into one JSON file inside your User Palette (FNSTools/config/FNStools_config.json by default, overridable per-install via the master's Configfile par), so your settings follow you across projects and stay out of the .toe.

Each tool loads its own section once per session, ~30 frames after it registers (Autoload, on by default per tool; turn it off on a tool that should keep project-local settings instead, e.g. one whose state should migrate with the project folder). Saving happens automatically on project pre-save, via the Save All pulse on any tool's Registry page (forwards to the ConfigRegistry master), and right before the updater replaces a package.

Custom Parameters

ConfigRegistry is one of the toolkit's core packages, always installed. Core is the six surface registries (Config, Toolbar, Navbar, MainMenu, OpMenu, PaneType) plus Console and Updater. It ships as its own package, promoted to /sys (global shortcut op.FNS_CONFIGREGISTRY). Every tool that wants its settings to persist carries a small host copy of it, visible as the tool's own Registry page (the Cf-prefixed section; every control in it is listed under What it adds to a registered tool). Removing a tool's host means that tool's settings stop syncing, and nothing else breaks.

Use Save All / Load All (on the ConfigRegistry master, or any host's forwarded pulse) to explicitly sync all tool settings to/from the JSON at once, handy after a significant change you want to carry into other projects.

Get it

Tick it on the install page and it installs with the rest of your setup and stays up to date.

Download FNS_ConfigRegistry.tox Version 3.2.8, the tool on its own. It works in any project, and this copy never updates itself.

Parameters

Registration

ControlType / defaultWhat it does
Tool COMPComp operator.. Tool COMP whose settings are persisted. Defaults to the parent component (the host lives inside the tool it publishes).
Canonical NameCanonicalname textempty Unique name for this tool's section in the config file.
Callback DATCallback operatorempty Optional config_callbacks DAT for state beyond parameters (onConfigSave/onConfigLoad).
Create CallbacksCreatecallbacks button Spawn a 'config_callbacks' DAT into this tool from the registry's template and wire this host's Callback parameter to it. Safe to pulse again: an existing DAT is adopted, never overwritten.
Auto-registerAutoregister on / offoff When on, keep this tool published into the global config registry while this component exists.
RegisterRegister button Publish once into the global config registry, even if Auto-register is off.
UnregisterUnregister button Take this tool's contribution back out of the registry and turn Autoregister off, so it stays out. Register puts it back.
Registration StatusRegstatusread-only textempty Read-only status of this host registration.
Auto-loadAutoload on / offon Apply this tool's saved section from the config file once per session, shortly after the tool registers. Turn off for a tool whose settings should stay project-local.
Persist ParametersPersistpars on / offon Snapshot and restore the tool COMP's custom parameters (value, expression, bind + mode). Meta pages (About, Version Ctrl, Info, Callbacks, Common) are always skipped; missing parameters are never created on load.
Exclude ParsExcludepars textempty Space-separated name patterns (tdu.match) of custom parameters to leave out of persistence, e.g. 'Spoutactive Ndi*'. Use for parameters that must boot at their defaults.
Exclude PagesExcludepages textempty Space-separated page-name patterns to leave out of persistence entirely.
Help URLHelpurl textempty The tool's wiki/help page. Informational for config; leave empty to skip.
Promote ParametersPromotepars on / offon When on, the host mirrors its key Registration parameters onto the parent tool as a bound 'Registry' page. Turn off before shipping a tool that should not expose registry controls.
Pre-Save HealPresaveheal on / offon Before each project save, re-check this registry: update entries whose component moved, drop entries whose component is gone, and republish a host that initialised before the global registry existed. Off skips the sweep for this registry only.

Config

ControlType / defaultWhat it does
Config ScopeConfigscope menuGlobal (user palette, roams) Follows the toolkit root's Config Scope (op.FNS, FNSTools page) through a guarded expression, and reads 'project' when there is no root: a standalone tool release keeps its settings in the .toe. Author on the root; the root par is the record. Where FNSTools' persisted settings and bar layouts live: global roams through one file in the user palette, project never reads or writes it.
Options: Global (user palette, roams), Project (.toe only)
Config FileConfigfile file pathempty Override the config file location. Empty = the user palette default (FNSTools/config/FNStools_config.json). Evaluated by the /sys global; set it on the FNS_Config master so promotion carries it.
Save All NowSaveall button Snapshot every registered tool into the config file now (forwards to the global).
Load All NowLoadall button Re-apply every registered tool's saved section now (forwards to the global).

What it adds to a registered tool

Every tool that registers gets these on its own Registry page.

ControlType / defaultWhat it does
Create CallbacksCreatecallbacks button Spawn a 'config_callbacks' DAT into this tool from the registry's template and wire this host's Callback parameter to it. Safe to pulse again: an existing DAT is adopted, never overwritten.
Auto-registerAutoregister on / offoff When on, keep this tool published into the global config registry while this component exists.
RegisterRegister button Publish once into the global config registry, even if Auto-register is off.
UnregisterUnregister button Take this tool's contribution back out of the registry and turn Autoregister off, so it stays out. Register puts it back.
Registration StatusRegstatusread-only textempty Read-only status of this host registration.
Auto-loadAutoload on / offon Apply this tool's saved section from the config file once per session, shortly after the tool registers. Turn off for a tool whose settings should stay project-local.
Persist ParametersPersistpars on / offon Snapshot and restore the tool COMP's custom parameters (value, expression, bind + mode). Meta pages (About, Version Ctrl, Info, Callbacks, Common) are always skipped; missing parameters are never created on load.
Exclude ParsExcludepars textempty Space-separated name patterns (tdu.match) of custom parameters to leave out of persistence, e.g. 'Spoutactive Ndi*'. Use for parameters that must boot at their defaults.
Exclude PagesExcludepages textempty Space-separated page-name patterns to leave out of persistence entirely.

Edit this page on GitHub →