Action Sets

An action set saves several actions in the order you want to run them. It lets you repeat the same preparation or production steps on selected glyphs and layers, or reuse them in another project, without writing a script. Sets are stored as JSON files, so you can save and share them.

Building a set

Open Tools > Actions and show the action-set sidebar. Select an action, configure it, then use + to add that configured step to the set. Add the remaining steps in the order they should operate.

Select a set entry to review its parameters. Remove an unwanted step with −, or clear the set deliberately before building another sequence. The cumulative preview helps show how one step's result becomes the next step's input.

Scaling and raising a glyph

A capital L makes the effect of two actions easy to see. Work in a saved practice copy of a font, using a glyph with ordinary contours and no anchors.

  1. Select the glyph and open Tools > Actions. Set the glyph scope to Selected and the layer scope to Current.
  2. Open the action-set sidebar with the button at the top right. Begin with an empty set.
  3. Select Scale in Basics. Set horizontal and vertical scale to 80%, choose the bottom-left point of the nine-point origin control, and leave Scale metrics off.
  4. Click + to add this configured step.
  5. Select Shift, set the horizontal shift to 0 and the vertical shift to 100 font units, then click + again.
  6. Check that the saved steps are Scale, then Shift, and inspect their values.

The preview should show a smaller drawing lifted above its original position. It shows the cumulative result on the current layer; choosing a broader layer scope does not give you a preview of every affected layer. Inspect the spacing as well as the outline before using the transformed glyph in text.

Choosing the order

For example, a copy prepared for an outline effect might remove overlaps, apply the intended corner treatment, then autohint the resulting design. The order matters: inspect hint coverage after geometry-changing operations even when name-based instructions survive the structural edit. This example is a deliberate preparation sequence, not a universal recipe for every font.

Running the set

Before running:

  1. Review every step and its parameters.
  2. Confirm the glyph and layer scope.
  3. Check the status bar identifies the intended set.
  4. Preview representative content and retain a source snapshot where needed.
  5. Run the set, then inspect the final geometry and affected data.

When the set sidebar is open and contains entries, Run or OK executes the set. Closing the sidebar or using an empty set returns the single-action behavior. Do not assume the currently displayed parameter page is the only pending operation.

Click Run to apply the set and keep the dialog open, or OK to apply it and close the dialog. If only one operation runs, check whether the sidebar was closed or empty. If more glyphs or layers change than expected, check the scope controls and the status bar.

Saving and reusing a set

Save the set as JSON for reuse or handoff. The user data folder's Actions directory provides the normal library location; use Open to load a set stored elsewhere. Give it a name that states its purpose and keep project-specific assumptions beside it.

Click Save and use a descriptive name, such as Scale 80 then raise 100. Run it on a small sample when moving to another font: a shift of 100 units can have a different visual effect at a different units-per-em value.

A saved set stores operations and parameters, not proof that they are appropriate for another glyph set or another UPM. Review its scope and dependencies whenever you reuse it.

Repeat Actions can repeat the recent configured operation. Treat that as another batch execution, with its retained settings, rather than a harmless preview.

Adding script logic

Python scripting in Python Scripting can invoke the Actions system through flPackage.runActions() (see The Python API and Libraries) and add logic around it, but an action set is often the clearer solution when a fixed, reviewable sequence is all the project needs.