Reassigning Parameter IDs
The last button under the parameter list, which sports a circular arrow icon, lets you assign new IDs to all parameters in the list:
When is this operation necessary, and what are its side effects?
When developing a plug-in, it is quite common to add and remove parameters during the iterative development process. When a parameter is deleted, its ID is unlikely to be reused, and this can lead to parameter ID fragmentation. For example, you may start with the following parameter list:
- Slider (ID 100)
- Slider (ID 101)
- Angle Dial (ID 102)
- Banner Image (ID 103)
- Slider (ID 104)
- Path Chooser (ID 105)
- Font Chooser (ID 106)
- Text Field (ID 107)
Suppose that you delete the parameters with ID 104 and 105:
- Slider (ID 100)
- Slider (ID 101)
- Angle Dial (ID 102)
- Banner Image (ID 103)
- unused
- unused
- Font Chooser (ID 106)
- Text Field (ID 107)
The next parameter you add will have ID 108, thus leaving IDs 104 and 105 unused 1).
When developing more complex plug-ins, it is possible to leave enough unused IDs behind as to run out of available parameter IDs altogether (FxFactory “only” supports up to 400 standard parameters).
When you allow FxFactory to reassign parameter IDs, it will go through the parameter list and assign IDs sequentially, starting from ID 100 2).
Side Effects
One thing should immediately be obvious: when you reassign parameter IDs, the plug-in will be very different in the eyes of the host. If users had used your plug-in in a project previous to the parameter ID re-assignment, the new version of your plug-in would break compatibility and likely cause the host to crash.
To avoid the scenario described above, when FxFactory reassigns parameter IDs it also assigned a new Unique ID to the plug-in 3). Doing so ensures that your plug-in will be treated as a brand new plug-in by the host.
Presets that exists as files on disc (outside the FxPack) will also stop working after you reassign parameter IDs. Presets that have already been imported to one of the Presets parameters in the plug-in are safe: FxFactory will go through each preset and update parameter IDs in order to preserve the preset's integrity.
From the above, it also follows that if your plug-in was already shipping, it is probably best to work on a duplicate of the plug-in before assigning new parameter IDs. That way you get the best of both worlds: maintain backward compatibility and eliminate fragmentation in parameter IDs.