<!--
{
  "availability" : [
    "FxPlug: 3.1.1 -"
  ],
  "documentType" : "symbol",
  "framework" : "professional_video_applications",
  "identifier" : "/documentation/professional_video_applications/FxParameterCreationAPI_v5",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Professional Video Applications"
    ],
    "preciseIdentifier" : "c:objc(pl)FxParameterCreationAPI_v5"
  },
  "title" : "FxParameterCreationAPI_v5"
}
-->

# FxParameterCreationAPI_v5

Defines the methods provided by the host application to create parameters.

```
protocol FxParameterCreationAPI_v5
```

## Overview

A plug-in uses the methods defined in this protocol (along with those defined in `FxOptionalParameterAPI.h`) to populate its parameter list. Each parameter is created with a unique numeric parameter ID. The host application uses this parameter ID to identify a parameter, and stores the parameter ID in a saved project file. If a new version of a plug-in removes a parameter, the host application will then ignore any saved parameter data for that obsolete parameter in a project that was saved while using the old version of the plug-in. This implies that a new version plug-in should never change the ID of a given parameter unless it intentionally wants to obsolesce old value data in saved projects. Similarly, it should not introduce a new parameter with an ID that has already been obsolesced.

This is version 5 of the Parameter Creation API. This version 5 protocol is not a superset of version 4.

> Important:
> Parameter IDs must be in the range of `[1, 9998]`. IDs outside of this range are invalid.

## Topics

### Instance Methods

[`func addAngleSlider(withName: String, parameterID: UInt32, defaultDegrees: Double, parameterMinDegrees: Double, parameterMaxDegrees: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addAngleSlider(withName:parameterID:defaultDegrees:parameterMinDegrees:parameterMaxDegrees:parameterFlags:))

Creates an angle slider parameter and adds it to the plug-in’s parameter list.

[`func addColorParameter(withName: String, parameterID: UInt32, defaultRed: Double, defaultGreen: Double, defaultBlue: Double, defaultAlpha: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addColorParameter(withName:parameterID:defaultRed:defaultGreen:defaultBlue:defaultAlpha:parameterFlags:))

Creates an RGBA color value and adds it to the plug-in’s parameter list.

[`func addColorParameter(withName: String, parameterID: UInt32, defaultRed: Double, defaultGreen: Double, defaultBlue: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addColorParameter(withName:parameterID:defaultRed:defaultGreen:defaultBlue:parameterFlags:))

Creates an RGB color parameter and adds it to the plug-in’s parameter list.

[`func addCustomParameter(withName: String, parameterID: UInt32, defaultValue: any NSCopying & NSSecureCoding & NSObjectProtocol, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addCustomParameter(withName:parameterID:defaultValue:parameterFlags:))

Creates a custom parameter and adds it to the plug-in’s parameter list.

[`func addFloatSlider(withName: String, parameterID: UInt32, defaultValue: Double, parameterMin: Double, parameterMax: Double, sliderMin: Double, sliderMax: Double, delta: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addFloatSlider(withName:parameterID:defaultValue:parameterMin:parameterMax:sliderMin:sliderMax:delta:parameterFlags:))

Creates a floating point slider parameter and adds it to the plug-in’s parameter list.

[`func addFontMenu(withName: String, parameterID: UInt32, fontName: String, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addFontMenu(withName:parameterID:fontName:parameterFlags:))

Creates a font menu button parameter and adds it to the plug-in’s parameter.

[`func addGradient(withName: String, parameterID: UInt32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addGradient(withName:parameterID:parameterFlags:))

Creates a gradient parameter.

[`func addHelpButton(withName: String, parameterID: UInt32, selector: Selector, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addHelpButton(withName:parameterID:selector:parameterFlags:))

Creates a help push button parameter and adds it to the plug-in’s parameter.

[`func addHistogram(withName: String, parameterID: UInt32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addHistogram(withName:parameterID:parameterFlags:))

Creates a histogram parameter.

[`func addImageReference(withName: String, parameterID: UInt32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addImageReference(withName:parameterID:parameterFlags:))

Creates an image reference parameter and adds it to the plug-in’s parameter list.

[`func addIntSlider(withName: String, parameterID: UInt32, defaultValue: Int32, parameterMin: Int32, parameterMax: Int32, sliderMin: Int32, sliderMax: Int32, delta: Int32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addIntSlider(withName:parameterID:defaultValue:parameterMin:parameterMax:sliderMin:sliderMax:delta:parameterFlags:))

Creates an integer slider parameter and adds it to the plug-in’s parameter list.

[`func addPathPicker(withName: String, parameterID: UInt32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addPathPicker(withName:parameterID:parameterFlags:))

Creates a parameter for choosing an image mask path.

[`func addPercentSlider(withName: String, parameterID: UInt32, defaultValue: Double, parameterMin: Double, parameterMax: Double, sliderMin: Double, sliderMax: Double, delta: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addPercentSlider(withName:parameterID:defaultValue:parameterMin:parameterMax:sliderMin:sliderMax:delta:parameterFlags:))

Creates a percentage floating point slider parameter and adds it to the plug-in’s parameter list.  A parameter value of 1.0 corresponds to a slider value of 100%.

[`func addPointParameter(withName: String, parameterID: UInt32, defaultX: Double, defaultY: Double, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addPointParameter(withName:parameterID:defaultX:defaultY:parameterFlags:))

Creates a position point parameter and adds it to the plug-in’s parameter list.

[`func addPopupMenu(withName: String, parameterID: UInt32, defaultValue: UInt32, menuEntries: [Any], parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addPopupMenu(withName:parameterID:defaultValue:menuEntries:parameterFlags:))

Creates a popup menu parameter and adds it to the plug-in’s parameter list.

[`func addPushButton(withName: String, parameterID: UInt32, selector: Selector, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addPushButton(withName:parameterID:selector:parameterFlags:))

Creates a push button parameter and adds it to the plug-in’s parameter list.

[`func addStringParameter(withName: String, parameterID: UInt32, defaultValue: String, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addStringParameter(withName:parameterID:defaultValue:parameterFlags:))

Creates a string parameter and adds it to the plug-in’s parameter list.

[`func addToggleButton(withName: String, parameterID: UInt32, defaultValue: Bool, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/addToggleButton(withName:parameterID:defaultValue:parameterFlags:))

Creates a checkbox toggle button parameter and adds it to the plug-in’s parameter.

[`func endParameterSubGroup() -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/endParameterSubGroup())

Closes current parameter subgroup. You should always pair this with a preceding [`startParameterSubGroup(_:parameterID:parameterFlags:)`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/startParameterSubGroup(_:parameterID:parameterFlags:)) message.

[`func startParameterSubGroup(String, parameterID: UInt32, parameterFlags: FxParameterFlags) -> Bool`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/startParameterSubGroup(_:parameterID:parameterFlags:))

Starts a new parameter subgroup. All subsequent parameter additions are placed in this group until you send an [`endParameterSubGroup()`](/documentation/professional_video_applications/FxParameterCreationAPI_v5/endParameterSubGroup()) message.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)