Scripts vs Extensions vs Plugins
If you're looking to buy or develop a 3rd party tool for an Adobe app like After Effects, Premiere Pro, or Photoshop, you'll often see these three terms thrown around: Scripts, Extensions, and Plugins.
They're not a one-size-fits all, while there are some similarities, they have some important differences. Having a basic grasp on these differences will help you find what you need to either buy or develop for your team.
If all you need is to automate a few consistent tasks to save your team on their number of clicks, scripts are perfect for this. One thing to note is that scripts are not available in all Adobe apps, for instance Premiere Pro does not have scripts, only extensions.
If you're interested in writing your own scripts, check out our post on Building Adobe Scripts.
Additionally, extensions run on Node.js, which unlocks the ability to include a multitude of libraries to achieve practically any workflow. Extensions are typically packaged in .zxp files and installed with a ZXP installer.
If you're interested in writing your own extensions, check out our post on Building Adobe Extensions and once you're familiar with the process, try out our custom boilerplate for building Adobe Extensions Faster: Bolt CEP.
Pro IO - a tool we developed at Hyper Brew to automate the importing and exporting process. Firstly we had to build as an extension in order for it to run in both After Effects and Premiere Pro, but additionally, we used animated buttons and complex custom-UIs that were only achievable inside an extension.
Plugins are the most powerful yet most complicated of the three. While they can typically perform most workflow functions that scripts or extensions can, they are mainly used if you are looking to create an effect for After Effects or Premiere Pro that modifies the actual pixels being rendered, something that scripts and extensions cannot do. Plugins can also be used to add compatibility for media formats not supported natively in Adobe apps, add custom buttons to existing menus, and add even add entire render engines.
Plugins are written in C++ and compiled with Adobe's provided SDKs for Visual Studio on Windows and Xcode on Mac. Since developing and maintaining C++ plugins typically take much longer to develop and maintain, unless your project requires them, extensions or scripts make for a more flexible development process.
Here's a side by side comparison of each:
|Change Pixels (Effects)||No||No||Yes|
|Format||.jsx, .jsxbin||.zxp||.aex, .plugin|
Still a bit confused on which type of tool you need? Here's a few common Q&As:
I just need to automate a couple clicks to avoid repetition in my workflow, what should I use?
Script is the answer! As long as the application supports scripts, like After Effects or Photoshop, scripts are the perfect solution to enhance predictable areas of your workflow.
I just need a UI with simple buttons and text fields, what should I use?
Script again is the answer! The ScriptUI library contains all the most common UI components you'll need regularly such as buttons, text fields, treeviews and more.
I want my tool to look slick with a custom UI like a website, what should I choose?
My tool needs to communicate over the internet or be updated from online sources, what should I use?
I want to create an effect for Premiere or After Effects that I can adjust my footage with, what should I use?
Plugins are the way! This is simple since C++ plugins are the only option for creating effects.