Here's my personal collection of JSX scripts for After Effects. These scripts were created to automate repetitive production tasks since I often work with hundreds of comps in my projects. The aim is to reduce the amount of manual effort required so that I can instead focus my energies on creative experiments. These scripts save me a significant amount of time.
Also included in this repo are articles sharing my experience with Rendering Multiple Instances of Aerender and Wiggle Expressions.
After downloading a JSX script, move it to the following location:
- Windows:
Program Files\Adobe\Adobe After Effects <version>\Support Files\Scripts - MasOS:
Applications\Adobe After Effects <version>\Scripts
To run a JSX script within After Effects...
Open After Effects >>> File menu >>> Scripts >>> choose a script to execute
- Isosceles_ChangeAlphaToIgnore.jsx - This script will set “Alpha: Ignore” (within the Interpret Footage window) for all the selected footage items in the Project window.
- Isosceles_ChangeAlphaToPremultiplied.jsx - This script will set “Alpha: Premultiplied” (within the Interpret Footage window) for all the selected footage items in the Project window.
- Isosceles_ChangeAlphaToStraight.jsx - This script will set “Alpha: Straight” (within the Interpret Footage window) for all the selected footage items in the Project window.
- Isosceles_ChangeFootageFrameRate.jsx - This script will prompt the user for the desired frame rate and then apply it to all selected footage items in the Project window.
- Isosceles_MakeSeamlessLoop.jsx - This script will create a seamless loop (with user-defined crossfade length) for the selected comps in the project window. You must precompose the main comp before executing this script.
- Isosceles_MoveTimeIndicatorFrames.jsx - This script will open the selected comps in the Project window and move the Current Time Indicator to the target frame.
- Isosceles_MoveTimeIndicatorSeconds.jsx - This script will open the selected comps in the Project window and move the Current Time Indicator to the target time.
- Isosceles_PasteClipboardIntoComps.jsx - This script will paste the clipboard contents into each comp that is selected in the Project window. This has only been tested with pasting a layer (footage, adjustment layer, or solid layer) since this was the original use-case. I would recommend executing this script only with 100 comps selected at a time. Any more and After Effects will freeze. Not sure why.
- Isosceles_PasteClipboardIntoFootage.jsx - This script will paste the clipboard contents (such as effects or masks) into each of the footage layers within a comp. The footage file extension is determined by the user. This operation will be executed for the selected comps in the Project window. Supports both single footage files and frame sequences.
- Isosceles_PrecompAllSelectedComps.jsx - This script will precomp all layers into a single precomp. This will be applied to the selected comps in the Project window. This differs from the built-in way to do this in After Effects, since this technique is entirely automated.
- Isosceles_PrerenderedFootageIntoMatchingComps.jsx - This script will search for a footage item with the same name as the original source comp and then add it as the top-most layer in the comp. This is known as pre-rendering (or freezing). Works with both video footage and image sequences. This operation will be executed for the selected comps in the Project window. You should import the footage into After Effects before executing this script.
- Isosceles_RandomizeRotation.jsx - This script will randomize all rotation keyframes of the selected layer within a comp.
- Isosceles_RandomizeSeeds.jsx - This script will look at the selected comps in the Project window and then randomize the seed value for all wiggle expressions (in all layers).
- Isosceles_RemoveEffectsViaDelete.jsx - This script will delete all effects from all layers within a comp. Effects inside nested comps are unaffected. This operation is executed for the selected comps in the Project window.
- Isosceles_RemoveEffectsViaDisable.jsx - This script will disable all effects on all layers within selected comps. Effects inside nested comps are unaffected. This operation is executed for the selected comps in the Project window.
- Isosceles_RemoveExpressions.jsx - This script will remove all expressions from all layers. This operation will be executed for the selected comps in the Project window.
- Isosceles_RenameAndSerialize.jsx - This script will batch rename the selected comps in the Project window with user-defined prefix, suffix, numbering, padding, and separator.
- Isosceles_RenderQueueSplitIntoSeperateProjects.jsx - This script takes all selected comps in the Project panel, splits them into fixed-size batches (N per batch), adds each batch to the Render Queue, and saves a separate After Effects project file for each batch. Why? This is useful because the AE render engine can gradually slow down during long uninterrupted renders. My theory is that heavy RAM pressure, especially when running multiple AE render instances and consistently maxing out available memory, may lead to inefficient memory behavior over time. The hardware load balancer in the AE render engine is quite good but occasionally teeters when running x4 instances concurrently. So by reloading the whole AE render engine every so often, it stays refreshed and maintains consistent performance and avoid slow downs. Also if you’re rendering somewhere over 600+ comps, then you’ll run into a known bug with After Effects 2026 (and prior versions) where if you try to add too many comps into the render queue then the GUI will overflow and glitch out. This is because the current UI framework only supports a panel being 30,000 pixels wide or long. I've reported this bug to Adobe.
- Isosceles_StretchFootageInComps.jsx - This script will apply a user-defined Stretch percentage to all footage layers within selected comps in the Project window.
- Isosceles_TrimCompToWorkArea.jsx - This script will trim the comp to its work area. This operation will be executed for the selected comps in the Project window.
- Isosceles_WorkAreaEndExtendByNFrames.jsx - This script extends the "Work Area End" point by a user-defined number of frames for selected comps in the Project window.
- Isosceles_WorkAreaEndShortenByNFrames.jsx - This script shortens the "Work Area End" point by a user-defined number of frames for selected comps in the Project window.
- Isosceles_WorkAreaEndToFootageEnd.jsx - This script will move the "Work Area End" to the end of the contained footage of the comp. This will be applied to the comps that are selected in the Project window.
- Isosceles_WorkAreaStartToFootageStart.jsx - This script will move the "Work Area Start" to the earliest contained footage start in the comp. This will be applied to the comps that are selected in the Project window.
- Isosceles_WorkAreaStartToSpecificFrame.jsx - This script will move the "Work Area Start" to a user-defined frame for all selected comps in the Project window.
- rd_RenderLayers_IsoscelesFix.jsx - This is a well known script within the Motion Design community and is very useful in certain situations. But for several years the script was no longer functional due to changes in new versions of After Effects. So I did some tests and was able to determine what was causing the issue. From there I crafted up a text prompt and ChatGPT was able to fix the script. The original authors website is offline <redefinery.com> and yet the broken version of the script is freely distributed on <aescripts.com>. That left me in a bit of an awkward situation regarding distribution of the modified version of this script. But a comment included within the script from the original author gave a feeling of openness: "I'm just trying to share knowledge with and help out my fellow AE script heads". Seeing as how this script was released in 2013, I've decided to share this modified version of the script to keep it alive and useful for others to enjoy.
These scripts were vibecoded using the various model versions of ChatGPT (free version). Each script was created for a specific issue I was facing at the time and so these scripts have actually been used in production (using After Effects 2026). That said, some of these scripts have a specific use-case and may not behave as expected in different scenarios. Use these scripts at your own risk. If a script isn't working correctly for your needs then I'd recommend pasting it into ChatGPT and telling it what you need tweaked or the error you're seeing.
I'm unable to provide support or guarantee compatibility with future versions of After Effects. Please feel free to fork and modify these scripts to suit your needs. Shared using the GPL-3.0 license. Cheers!