Pseudo Effect Maker | User Guide

The Pseudo Effect Maker makes it simple to create custom effect controls, also known as 'pseudo effects'. These controls can then be used to drive expressions and layers within your After Effects Project and be saved as presets so that others can use the tools you create.

It is important to remember that Pseudo Effects are not real effects. They do not have any control over a composition without being linked to another property through expressions. You can use your pseudo effect to drive real effects, however you cannot hide the real effects, they will/must always be visible along with your custom control.

Basic Info about the Pseudo Effect Maker and the controls it creates

There is often confusion about what exactly you can do with the controls made by the Pseudo Effect Maker and what versions of After Effects support them. This section will go over some basics of the Pseudo Effect Maker and pseudo effects in general.

The Pseudo Effect Maker is an extension for After Effects. It is not a Script, Script UI Panel or a plugin. An extension allows greater felxibility and functionality within the interface of the tool. Because extensions are different, they have a different method for being installed, so if you haven't used any extensions before, be sure to read the 'Installing' section carefully

Extension panels were not supported in After Effects until After Effects CC 2014. Because of this, you must be running at least CC 2014 in order to use the Pseudo Effect Maker. What is important to know is that although the Pseudo Effect Maker itself requires at least CC 2014, the controls that it creates are backwards compatible and can be used seamlessly back to After Effects CC and even earlier version with minor hiccups. Backwards compatibility of pseudo effects can be a little confusing. If you save a pseudo effect directly from the Pseudo Effect Maker, that file (a .ffx file) is backwards compatible. If you create a pseudo effect and apply it (explained later in this file) and then save it as a preset using After Effects, the .ffx file that After Effects creates is not backwards compatible.

So, if you need your control to work in After Effects CC , for example, open the Pseudo Effect Maker in any version of After Effects, CC 2014 or newer. Create your control. Save it from the Pseudo Effect Maker. Then open After Effects CC and import your preset. Connect your preset using expressions, then save a new preset from there. A preset saved in After Effects CC is forward compatible, so it will work in any newer version.

Can other people use my pseudo effect without any issues?

This is a common question, and yes, this is the whole point of the Pseudo Effect Maker. You have options for sharing it. For one, you can include your custom control within and After Effects project file. Anyone else can open that project file and use your custom control with no issues. Another option is to save a preset as a .ffx file by dragging your control along with any supporting expressions, effects and layers into the Effects & Presets panel. That .ffx file can be shared and opened by anyone without issue, assuming they are using the same or a newer version of After Effects

If you need to target After Effects CS6 or older, there can be issues when using pseudo effects. If the pseudo effect is not included in the user's PresetEffects.xml file, a 'Missing' warning will appear when the user loads the preset. Everything will still work normally, but the warning can be annoying. The warning can be removed by adding the XML to the PresetEffects.xml file, so if you require support for AE CS6 or earlier, you will have to include the XML along with your control. Some features of pseudo effects created by the Pseudo Effect Maker are not supported by older versions and may not work properly.

Installing

For in depth details on installing the Pseudo Effect Maker and other extensions, please check out the tool installation guide

Install Overview

To install the Pseudo Effect Maker, you must be running After Effects CC 2014 or higher.

The Pseudo Effect Maker is an extension, not a script or a plugin. When you download the Pseudo Effect Maker, you will see a file that has the .zxp file type. This is the extension file.

Extensions are not installed as simply as some other After Effects tools, so to take care of everything for you, head over to aescripts.com and download the free ZXP Installer. The ZXP Installer helps you manage all of your extensions.

Once the ZXP Installer is running, simply open the Pseudo Effect Maker zxp file and it will install the extension for all compatible versions of After Effects on your system

After the Pseudo Effect Maker has been added, open After Effects and go to Window > Extensions. You will see 'Pseudo Effect Maker' in the list which you can click to open the panel

New Features in version 2.00

Undo/Redo: Undo and Redo functionality has been added. (about time)

Enhanced Customization: Many improvements have been made in this update to provide a more customized experience while building controls. You can now customize the order of slider properties while editing. Everyone seems to have a different idea of what the best order for the properties is, and now everyone can arrange them as they see fit. You also have the option to view and edit slider-min and -max values directly in the effect panel. More customization features are available as well.

Slider Auto Correct - Removed: In previous version of the Pseudo Effect Maker, invalid Slider Control values would be auto-corrected while making changes. This could cause frustrating issues depending on the order that values are being entered. In version 2, auto correction is gone. Now, if values are invalid, you will see an error message and the control will be marked in the effect panel to let you know there is an issue.

Better Drag and Drop: Drag and Drop functionality has been reworked from the ground up to provide a better and more consistent experience.

Invisible Controls: Invisible controls are now supported. Every control type except for Angle can be made invisible. This can be useful for storing data that the user shouldn't be able to change. (Text controls also can't be invisible, but there would be no point.)

Auto Save - Modified: The Auto Save indicator has been removed, but the Pseudo Effect Maker will still save your progress after a short period of inactivity. In version 2, the auto save will now include your undo history in addition to your current project.

The Interface

Effect Panel

The 'Effect Panel' is on the left side of the interface. This gives you an approximate visual representation of how your pseudo effect will look once its in the actual After Effects 'Effects Panel'. The Pseudo Effect Maker 'Effect Panel' also allows you to set some of the default settings of your control by interacting with the values just as you would in After Effects. You can also visually drag and drop your controls to rearrange them and bring them in or out of groups.

Selecting Controls

Once you have controls added to the effect (explained below) can select any of the controls simply by clicking anywhere within the control's area. Once you click on a control, you will see the 'Control Options' section, on the right, change to match the details of the selected control.

Moving Controls in the Effect Panel

You can visually rearrange your controls using the 'Effect Panel'. When you hover over any control, a 'handle' will appear on the left side of the control. (If the control is within a group, the handle for the current control and any parent groups will be shown.)

To move a control, click and drag on the handle for the desired control. You can then move the control to anywhere in the pseudo effect.

Selecting Multiple Controls

The 'Effect Panel' also gives you the ability to manipulate multiple controls at the same time. Ctrl+ or Cmd+Click any control to add it to the selection. Shift+Click any control to select all controls between the previously active control and the one you've selected. Once you have your selection, you have a few options.

  • Drag and drop the entire selection: Select the handle of any control within the selection and drag it to the desired position. While dragging, only the item you have selected will be visually dragged, however on dropping, the entire selection will be moved to that location, maintaining the order of controls within the selection.
  • Delete: The entire selection can be deleted by clicking on the trash can icon in the control panel on the right.
  • Duplicate: The entire selection can be duplicated by clicking on the duplicate icon in the control panel on the right. Duplicated controls are automatically renamed by adding an incrememnted number after the control name

Reset

At the top of the 'Effect Panel' there is a blue reset button. In After Effects, this button will reset all of your controls to their default values. In the Pseudo Effect Maker, it will clear out the current effect so you can start creating from scratch. With the added Undo/Redo functionality, the resetting is now undo-able

Control Panel

The 'Control Panel' is on the right side of the interface. The control panel contians options that may not be available in the 'Effect Panel'. The control panel also contians the buttons for adding new controls, applying control and many other functions.

Control Buttons

The control buttons are used to add controls to your effect. You have two different options for adding control. First, you can simply click on one of the buttons to add it to the bottom of the currently selected group. You can also click and drag on any of the buttons and then drop it into the 'Effect Panel' exactly where you need it. (Keep in mind that you can use either option as controls can always be repositioned later on.) At the top right hand corner of the Control Button section, you will see two small icons. The first button will toggle between displaying the buttons with or without text labels. The second will hide the control buttons completely to give you more space in the 'Control Panel'.

Menu Actions

At the top right of the Control Panel, you will see a hamburger menu icon. Clicking it will open the menu on the right. This menu shows all of the available commands for managing your pseudo effect. Most of these commands can be added to the 'Quick Access Button' list (explained in the next section)

Undo / Redo

Undo and Redo do exactly what you'd expect. There is a limit of 99 levels of undo that are tracked. Undo and Redo will only affect changes to your pseudo effect, it will not undo preferences changes or interface changes.

Apply

The apply button will take the control you've created in the Pseudo Effect Maker and add it to the currently selected layer in After Effects. The matchname of the effect will be randomly generated. If you would like to specify a matchname, use the 'Save' option.

Save

The save button will allow you to save your control as an After Effects preset file (.ffx) which can then be loaded and applied to a layer through the 'Effects and Presets' panel. When you save a preset, you have the ability to use a custom matchname (discussed in more detail below), however you can also leave the matchname option blank to have a randomly generated matchname.

It is also important to know that only controls saved directly from the Pseudo Effect Maker can be re-opened by the Pseudo Effect Maker. Controls that are saved from After Effects as a preset will not be editable. If you are working on a control that might need to be edited or updated later, make sure you save a copy from the Pseudo Effect Maker, rather than just applying it. It is not possible to get applied controls back into the editor.

Open

The open button allows you to import a pseudo effect that has been created previously with the Pseudo Effect Maker. Only .ffx files that have been created by the Pseudo Effects Maker can be read. Opening a control will overwrite any controls that are currently in the 'Effect Panel'.

Combine

This is similar to opening a control, however rather than overwriting the control that is currently in the editor, it will append it onto the end.

Read Controls

If you prefer to create your controls directly within After Effects, or if you have old control groups that you would like to convert into a pseudo effect, you can now do it with one click. Simply select the layer in After Effects that contains the expression controls. Then go to the menu and select "Read Expression Controls". Values will be imported as well as control names. Some information can not be imported, for example, slider controls will import values, however the slider minimum and maximum must be set manually.

You can even create groups with this method simply by naming your controls. For Example, if you have 2 controls you would like to group, simply name them "Group Name>Control Name". The '>' character signifies the control should be put within the group. Make sure your group names are exactly the same in order to put multiple controls into a single group.

Paste Control

If you prefer to write controls by hand, rather than using the Pseudo Effect Maker GUI, you can write controls in XML or JSON and then import them into the Pseudo Effect Maker. For formatting and available options, check the Control Writing Guide at the bottom of this document.

Copy XML

Creates an XML version of your control that is compatible with the PresetEffects.xml file in cause you need to have support for older versions of After Effects. It can also be used to save a 'human readable' version of your control rather then saving it as an FFX file.

Clicking 'Copy XML' will compile the XML for the current control and copy it into the clipboard. You can then paste the code into any text editor.

It is important to rememeber that there are some features when using the Pseudo Effect Maker that are not available when applying controls through the PresetEffects.xml file. For example, in the Pseudo Effect Maker you can set a secondary label for a 'Checkbox Control' that appears to the right of the checkbox. When you copy the XML, the <Checkbox /> node will contain a property 'label="xxxxx"'. This will not cause any issues if you decide to add it to the PresetEffects.xml file, however the property will be ignored. It can, however, be read by the Pseudo Effect Maker when using the 'Paste Control' function (described above).

Here is a full list of features that are not supported in the PresetEffects.xml:

  • 'Force Hold Keyframes' will have no effect
  • Layer controls can never have keyframes
  • Checkbox controls cannot have a secondary label
  • Point and 3D Point controls do not have the Point X, Point Y and Point Z options
  • There is currently an issue with 3D Point control default values. They are multiplied by 65536 (which might seem like a random number but it is the number of available colors in 16-bit). It is highly recommended that you set all default values to 0 (zero) when using a 3D Point control through the PresetEffects.xml file. If that is not an option, you will have to divide your percentages by 65536 which can lead to inaccurate results because of rounding.
  • Text controls will appear as empty group controls in the copied XML. Text controls do not actually exist in the PresetEffects.xml file, they are just a hack by creating a group that contains no controls.
  • 'Dim' Text controls are not available

Preferences

This will open up the preferences page, explained in the next section.

About

The about button will bring up the licensing information as well as a 'Contact Support' button if you have any comments, questions or need to report an issue.

Purchase

The purchase button will only be visible if you are running a trial version of the Pseudo Effect Maker. Clicking this button allows you to buy or apply your license key to unlock the full capabilities of the Pseudo Effect Maker.

Report a Bug

Is the Pseudo Effect Maker giving you issues? Be taken directly to the aescripts.com helpdesk to report the problem.

Effect Info

The Effect Info section is now hidden by default. To bring it up, you can either click on the control name (or anywhere along the effect name bar besides the 'Reset' button) or, you can turn on the 'Always show effect info' option in the preferences to have the effect info remain in the control panel.

Pseudo Effect Name

The name of our pseudo effect is what the user will see at the top of the control in After Effects. You can also set the name by editing it directly in the 'Effect Panel'.

Pseudo Effect Matchname

The matchname is only used when saving your pseudo effect. Matchnames are what After Effects uses to identify your pseudo effect so it is important that your matchname is unique.

When using the 'Apply' function of the Pseudo Effect Maker, the matchname property is ignored and your pseudo effect will be given a random matchname. When you save your control, your matchname will be used and your control can be refered to by that matchname when it is imported into After Effects.

Another note: All pseudo effect matchnames will always have 'Pseudo/' added at the beginning. Without this prefix there would be errors when applying the pseudo effect. You should not maually add 'Pseudo/'. It will be added for you.

Control Options

This is the last section of the 'Control Panel'. This section will change depending on the control type that is currently selected, however there are some options that are common for all controls. The control options allow you to set values for every detail of your controls. Some of the options in the 'Control Options' section can also be set from the 'Effect Panel' however there are options in the control panel that are not visible in the effects panel. All of the options for each control type will be gone over in the next section.

Common Control Buttons

Up / Down

Every control has up and down arrows that appear next to the 'name' input. (or below it depending on the control panel's size). These buttons allow you to move the active control up or down one control at a time. If the control is above or below a group, the arrows will move that control into or out of that group. Using the arrow controls on a group will move all of the contents of the group along with it.

Delete

Click on the trash icon to delete the active control

Duplicate

Click on the duplicate icon to create a copy of the active control added into the same group. Duplicated controls will automatically get an incremented name.

Common Options

These options are shared by almost all control types.

Control Name

This sets the name of the control that is visible to the user in After Effects. It can be a maximum of 30 characters long.

Allow Keyframes:

If checked, the user will be able set keyframes on the current control. Layer controls, groups and text controls can not have keyframes.

Force Hold Keyframes:

The name says it all. If this is checked, the keyframes created will always be 'hold' keyframes. (Hold keyframes are keyframes where values do not get interpolated. A value will remain constant until the next keyframe is hit, at which time its value will jump to the new value) This is really meant for checkboxes and popup controls, but can be turned on or off for any control with keyframes depending on your needs.

If keyframes are not allowed, this option has no effect.

Invisible

As is implied by the name, invisible controls are not visible to the user, however they can still hold values. Although these controls can't be seen in the interface, they can be accessed and maniuplated using expressions and scripts. All control types can be invisible except for Angle and Text controls.

Angle

Total Combined Value:

The total number of degrees in the rotation. It is the combined value of the next two options, 'Rotations' and 'Degrees'

Rotations:

Each full rotation adds 360 degrees to the total angle. This value is displayed to the user

Degrees:

Additional degrees added to the full rotations. This value is displayed to the user and controls the angle of the rotation gizmo that the user sees

Checkbox

Default Value:

Sets whether the checkbox is checked or unchecked by default

Label:

This is different from the checkbox's name. This text will display just to the right of the checkbox control

Color

Selected Color:

Shows the currently selected default color. Click on the color swatch to bring up a color picker, or use the Color Hex input

Color Hex:

Displays the hexidecimal value of the current color and allows you to directly edit the color using its hex value. (Hex values can only include the numbers 0-9 and the letters A-F)

Group

Groups do not have any options. They help you to organize complex controls by putting related controls in one place and giving the user the ability to hide/show them all together. Groups can be placed within groups, however it is not recommended to have too many nested groups as the interface will eventually become more difficult to navigate

Layer

Default Value:

Sets the default selection of the drop-down to either 'none' or the layer to which the pseudo effect is applied.

In the Pseudo Effects Maker, these are the only two options, however in After Effects, the user can additionally select any layer in the current composition

Point / Point 3D

Percent X/Y/Z:

The Point and 3D Point controls get a little confusing. There are two sets of values, the first are the 'Percent' values. These should be set to decimals between 0 and 1 that represent percentages. For example .5 is 50%. The percent values are used only when the user resets the control. So for example, if the 'Default X Percent' is set to .5, and the layer with the control is 1920px wide, when the control is reset, the Point's X value will be set to 960 (1920 x .5 = 960). This means that the default of the point will be set dynamically with the size of the layer it is applied to. It is not possible to set the defaults as explicit values, they can only be set to percents.

Point X/Y/Z:

These are explicit X. Y and Z values. Unlike the 'Default X/Y/Z Percent' values, these are not affected by the size of the layer and are not percentages. However, the values you put in here will only show when the pseudo effect is first applied. Once the control is changed or reset, there is no way to recall these values

Slider

Slider Default:

The when the Psuedo Effect is applied and the user hits the reset button, this is the value that the control will be set to.

Slider Min / Slider Max:

The min and max values are the lowest and highest values that the slider can scroll to. The output value can be lower or higher than these values by setting it manually, but these are the limits when the user drags the slider handle.

Valid Min / Valid Max:

The valid min and max are the lowest and highest possible values the control can output. Note: Valid Max cannot be less than the Slider Max and Valid Min cannot be more than Slider Min

Precision:

The number of digits after the decimal point

Display %:

Simply puts a percent symbol after the slider values. It does not affect the output values in any way, it only adds a visual element

Pixel Values:

Modifies your slider properties based on the number of Bits Per Channel in the current project.

  • 8bpc: Values multiplied by 255.
  • 16bpc: Values multiplied by 32768
  • 32bpc: Values are not multiplied, but values always have a precision of 4 (four places after the decimal)

Text

Dim Text:

If this option is unchecked, the text is displayed at the same brightness/color as the other options. If the option is turned on, the text will be set to a dim / disabled look

Preferences

Open the preferences section by clicking on the hamburger icon at the top right of the Control Panel.

At the top right of the preferences window, you will see three icons. The first is the restore defaults button. This will restore the default values of all the preferences, however they won't be applied unless they are saved. The second button is the save button, which saves and applies all preference changes. The last button closes the preferences window without saving changes.

Composition Dimensions

The composition dimensions are used to display more relevant values for Point and Point 3D controls. Both Point controls are based on percentages of the total size of the layer or composition. So, if you are working a project and would like to see values that are relative to the size you are working with, these values can be changed to match your settings.

Keep in mind that these values have no affect on the control that is created, is it solely visual reference, and users who apply your control to a composition with different dimensions will see different values.

Project BPC

This setting is used only for Slider controls with the 'Pixel Values' option checked. These values are calcualted by referencing the BPC of the project. The value you set here is only for a visual reference within the Pseudo Effect Maker. If this value is set to 32 bpc and the control is applied to a project that is set to 8bpc, the 8bpc values are what will be displayed.

Slider Properties Order

By default, slider properties in the control panel show up in the order: Slider Min, Default, Slider Max, Min Value, Max Value, Precision. Not everybody agrees on the best order for these options to be in, so the order is now customizable. Simply drag and drop the property names to reorder as you see fit.

Interface

The interface section has several toggleable options that deal with visual changes

Effect Panel Style

This is purely a visual change for personal preference or reference. There are currently four options which correspond with the mroe recent version of After Effects. Changing this value will modify the look of controls in the effect panel to mimic the look of controls in that version of AE. (No visual changes were made between CC 2017 and 2018, which is why only 2018 is an option). This option is purely a visual change within the Pseudo Effect Maker and will not affect the control that is applied to an AE layer

Control Icons Only

This option sets the default display of control buttons in the control panel to Icons Only. This can also be changed directly in the control panel using the toggle button, however this preference chooses the way it will be displayed by default each time the Pseudo Effect Maker is opened.

Always Show Effect Info

Checking this option will keep the pseudo effect's name and matchname inputs on screen at all times. Otherwise those settings can be opened by clicking on the control name in the effect panel.

Show slider valid max & min in effect panel

For quick reference and modification, this option will show slider min and max values directly in the effect panel.

Show Control Indicies

When referencing controls in expressions or scripts, it can often be helpful to know that control's index. Turning on this option will show each control's index at the top right of that control within the effect panel. You may notice, depending on your effect, that some indexes seem to be skipped. This is because controls like groups and text controls actually take up multiple indecies.

Dim Group Indicies

This option only applies if the previous option (Show Control Indicies) is turned on. This will slightly dim the indicies of group controls to make it easier to separate them from the rest of the controls.

Quick Access Buttons

These are the menu items that can be shown on screen as buttons at the top of the control panel

Display as Icons

This option can be toggled to either show icon buttons or text buttons

Visible / Available

To add buttons to the quick access section of the control panel, drag them from the 'Available' section into the 'Visible' section. To remove buttons, drag them from 'Visible' back to 'Available'

Creating Controls from XML or JSON

The Pseudo Effect Maker allows you to paste XML or JSON data, instantly converting your markup to a pseudo effect control. If you have old pseudo effect controls created in the PseudoEffects.xml file, you can easily copy and paste them into the Pseudo Effect Maker in order to edit, update or just convert them to controls that don't require PseudoEffects.xml editing.

The ability to paste XML or JSON also means that if you'd prefer, you can create your controls by writing markup, rather then by using the GUI. If you are familiar with the nodes and attributes of the PresetEffects.xml file, you can write controls exactly as you would for that. There are a few additional attributes and attribute alternatives that are described below

You will notice that some of the attributes are grouped together. Using any of these options will do the same thing, they are just for different user preferences. For example, in the Color control, these will all do the same thing:

default_red="100", red="100", r="100"

A note about JSON controls

Currently, the JSON controls are written with using an array of objects rather than by adding additional keys to a single object. Groups are written by using two separate objects, a start and end object that will contain everything in-between, rather than having controls nested within their group objects. This may (and probably will) be updated in the future.

Effect - Required

Attribute Description
name Required. (String) The name of the effect. Should not contain special characters. Maximum 30 characters
matchname Optional. (String) A custom matchname for the control. Matchnames on pseudo effects will always have the 'Pseudo/' prefix, however it will be automatically added by the Pseudo Effect Maker, so it is not necessary to include here. Maximum 24 characters NOT including the 'Pseudo/' prefix

Important: All pseudo effect XML controls must be wrapped in an Effect node. Only one effect can be imported at a time, so your control should only have a single Effect node and it must be the top level element

Example - XML

<Effect name="The Pseudo Effect" matchname="BFRM Psuedo Effect" >
     <!-- More Controls Here -->
</Effect>

Example - JSON

{
  "controlName": "The Pseudo Effect",
  "matchname": "BFRM Psuedo Effect",
  "controlArray": [{CONTROL},{CONTROL}, ...]
}

Angle

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default | value Required. (Float) The total number of degrees in the angle control.
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.

Example - XML

<Angle name="The Angle Control" value="180" keyframes="false" />

Example - JSON

{
  "type": "angle",
  "name": "The Angle Control",
  "keyframes": false,
  "default": 180
}

Checkbox

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default | checked Required. (Boolean) If true, the checkbox will be checked. If false, the checkbox will be unchecked.
label Optional. (String) If included, this text will be shown to the just to the right of the checkbox, separate from the control name.
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.
INVISIBLE | invisible Optional. (Boolean) True for an invisible control, otherwise the property can be omitted.

Example - XML

<Checkbox name="The Checkbox Control" checked="true" label="On / Off" CANNOT_TIME_VARY="true" />

Example - JSON

{
  "type": "checkbox",
  "name": "The Checkbox Control",
  "checked": true,
  "label": "On / Off",
  "keyframes": false
}

Color

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default_red | red | r Required. (Integer) Value between 0 - 255 for the red channel
default_green | green | g Required. (Integer) Value between 0 - 255 for the green channel
default_blue | blue | b Required. (Integer) Value between 0 - 255 for the blue channel
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.
INVISIBLE | invisible Optional. (Boolean) True for an invisible control, otherwise the property can be omitted.

Example - XML

<Color name="The Color Control" default_red="100" green="50" b="20" keyframes="true" hold="true" />

Example - JSON

Multiple ways to specify color values, both strings, ints or as a hex string

{
  "type": "color",
  "name": "The Color Control",
  "default_red": 100,
  "green": "50",
  "b": 20
}

{
  "type": "color",
  "name": "The Color Control",
  "color": "#643214"
}

Group

Attribute Description
name Required. (String) The name of the group. Should not contain special characters. Maximum 30 characters
INVISIBLE | invisible Optional. (Boolean) True for an invisible group, otherwise the property can be omitted.

Example - XML

Note: The group control is the only element that will contain other elements. Any control nodes placed within the group tag will be included in the group.

<Group name="The Group" >
     <!-- More Controls Here -->
</Group>

Example - JSON

{
  "type": "group",
  "name": "The Group"
},
{CONTROL},
{CONTROL},
{
  "type": "endgroup"
}

Layer

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default | default_self Required. (Boolean) If true, the layer that this control is applied to will be selected by default. If false, the layer control will be set to 'None' by default.
INVISIBLE | invisible Optional. (Boolean) True for an invisible control, otherwise the property can be omitted.

Example - XML

<Layer name="The Layer Control" default_self="true" />

Example - JSON

{
  "type": "layer",
  "name": "The Layer Control",
  "default": true,
}

Point / Point3D

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default_x | percent_x Required. (Float) Value between 0 - 1 representing a percentage of the layer width for the default X coordinate
default_y | percent_y Required. (Float) Value between 0 - 1 representing a percentage of the layer height for the default Y coordinate
default_z | percent_z Point3D Only. Required. (Float) Value between 0 - 1 representing a percentage of the layer height for the default Z coordinate
point_x Optional. (Float) X Coordinate of the point value when the control is first applied.
point_y Optional. (Float) Y Coordinate of the point value when the control is first applied.
point_z Point3D Only. Optional. (Float) Z Coordinate of the point value when the control is first applied.
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.
INVISIBLE | invisible Optional. (Boolean) True for an invisible control, otherwise the property can be omitted.

Example - XML

<Point name="The Point" default_x="0.5" default_y="0.2" point_x="960" point_y="200" /> <Point3D name="Three Dimensional Point" percent_x="0.2" percent_y="0.3" percent_z="0.4" />

Example - JSON

{
  "type": "point",
  "name": "The Point Control",
  "default_x": 0.5,
  "default_y": "0.2",
  "point_x": 960,
  "point_y": "200",
}
{
  "type": "point3d",
  "name": "The 3D Point",
  "default_x": 0.5,
  "default_y": "0.2",
  "default_z": "0",
  "point_x": 960,
  "point_y": "200",
  "point_z": "0",
}

Popup

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default | value Required. (Integer) 1 based index representing the default selection of the popup
popup_string | options Required. (String) A string that contains the selections for the popup. Separate each option with the | symbol. (- will give you a separator.
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.
INVISIBLE | invisible Optional. (Boolean) True for an invisible control, otherwise the property can be omitted.

Example - XML

<Popup name="The Popup" value="2" options="Option One|Option Two|Option 3|Option 4" keyframes="true" hold="false" />

Example - JSON

{
  "type": "popup",
  "name": "The Popup",
  "default": 1,
  "options": "Option 1|Option 2|(-|Option 3 Separated"
}

Slider

Attribute Description
name Required. (String) The name of the control. Should not contain special characters. Maximum 30 characters
default | value Required. (Float) The default value for the slider. Must be greater than the valid minimum and less than the valid maximum
slider_min | smin Required. (Float) The lowest value the slider can be dragged to
slider_max | smax Required. (Float) The highest value the slider can be dragged to
valid_min | vmin Required. (Float) The lowest possible value the control can be set to. The slider will stop at the slider minimum, but the user can input values manually as low as the valid minimum
valid_max | vmax Required. (Float) The highest possible value the control can be set to. The slider will stop at the slider maximum, but the user can input values manually as high as the valid maximum
precision Optional. (Integer) Default is 2. Sets the number of digits after the decimal point. Can be anywhere from 0 - 6.
DISPLAY_PERCENT | percent Optional. (Boolean) Default is false. If set to true, a percent (%) symbol will be shown next to your values. This does not actually affect the output value in any way, it only adds a visual element to let the user know that the value is a percentage.
DISPLAY_PIXEL | pixel Optional. (Boolean) Default is false. If set to true, your values will be multiplied based on the current bits-per-channel settings.
CANNOT_TIME_VARY Optional. (Boolean) If set to true, this control will not be allowed to have keyframes.
keyframes Optional. (Boolean) This is the same as CANNOT_TIME_VARY except that setting keyframes="true" means that keyframes will be allowed, where as a 'true' value for the previous attribute means keyframes are not allowed. Do not use both 'keyframes' and 'CANNOT_TIME_VARY'. They both do the same thing, just different options depending on your preference.
hold Optional. (Boolean) If true, forces keyframes to be hold keyframes. If false, keyframes will be standard keyframes. If the 'hold' attribute is not included with your 'angle' control, the hold value will default to false.

Example - XML

<Slider name="The Slider" default="1" smin="-10" smax="10" vmin="-100" vmax="100" precision="0" pixel="true" />

Example - JSON

{
  "type": "slider",
  "name": "The Slider",
  "default": 1,
  "smin": "-10"m
  "smax": 10,
  "vmin": -100,
  "vmax": "100",
  "precision": 0,
  "pixel": true
}

Text

Attribute Description
name | text Required. (String) The text that will be displayed. Maximum 30 Characters. Longer text must be broken up into multiple text controls
dim Optional. (Boolean) Default is false. If set to true, the text will be dimmed

Example - XML

<Text text="This is some text" dim="true" />

Example - JSON

{
  "type": "text",
  "text": "This is some text",
  "dim": true
}