-
After Effects
compCode
compCode
compCode converts your design to a dynamic and shareable After Effects script. Simply select your composition (or layers), hit the compCode button and it will magicaly convert it to an executable After Effects script that is backwards compatible to CS6. No coding skills are required!
The resulting script can optionally be customized with user tokens. You can specify what the end user can modify, such as layer and composition names, new footage sources or custom text for text layers.
compPack
Included is the compPack feature which allows you to package together multiple scripts into one beautiful, searchable UI panel. Have folders of scripts inside of other folders, compPack is smart enough to rebuild the UI to match your existing folder structure.
In addition add artwork and information buttons to polish your UI, and get it ready to share with others in a professional looking tool.
For the After Effects user:
This is as close to Photoshop actions as you will ever get in After Effects. Turn your comps or layers into executable code that can be used as is or modified as needed.
For the After Effects template author:
compCode is perfect for delivering After Effects template projects which are much easier to use and are version agnostic back to CS6. It can also be used to deliver corporate branding packages in easy to use (and deploy), beautiful, searchable UI panels.
Consider these features for your next AE template.
- The user chooses what they need from your template, instead of having to import a huge AEP with hundreds of elements when they only need a few;
- No more duplicate items in the end users project. All existing project items can be reused;
- Search option is built into the tool;
- Your template is backwards compatible to CS6. With some additional adjustments, it can be compatible with even CS3;
- You choose to either create a new composition for your design or target currently active one;
- Your branding and information about the template are available in the toolkit.

Features
- One button click solution to covert After Effects projects to reusable After Effects Scripts;
- Tokens ("//value", text:", "file:", "name:") can be used to prompt the end user for input once they execute the script;
- Supports expressions and all layer and property types;
- Final script can target current composition, or create a new one;
- Final script is compatible with at least CS6;
- No programming experience is required;
- Use compPack feature to collect exported scripts into standalone toolkit.
- Search scripts function is automatically added to final toolkit.
- Format your scripts directory any way you want to - compPack will respect your folder structure and rebuild it perfectly;
- Add branding artwork and information buttons to final script.
How to use it.
Select a composition or a hand full of layers and hit compCode button. Done. That's it. Enjoy the rest of you day. The result you get is actual After Effects script that you can execute via Run Script File button and it will recreate your original design from the code. Also, you can run it on After Effects CS6, and you should be fine.
Follow these complicated steps to harvest the power of compCode tokens.
- Use "//value" token in expression to promt user for any value.
- Apply "text:" token to the text layers name, like "text:someLayerName", and the end user will be prompted to enter custom text once he executes the script.
- Use "file:" token on footage item in project panel such as image, image sequence, video or audio, like "file:someFileName.extension", to prompt the end user to select file upon the script launch.
- Append "name:" token at the beginning of item, layer, or property name to allow the end user to set custom name for them.
Fire up the compPack feature to collect your scripts library into one toolkit. Simply navigate to the folder and your done. You can also add brand logo and text info to give your toolkit that extra touch. Done. Ship it out.
Products and tools in which compCode is involved
compCode allows me to focus on the creation and design side of development and tools, and not worry about the coding. I’ve never been a strong coder, so this really saves me hours and hours.- Mikey Borup
At the moment, I don't have a need for CompCode just yet. But I definitely see it in my future to package presets. It looks like it will be amazing. If you see branded script panels from me, know that they'll be the direct result of CompCode. And it's made by Tomas Sinkunas, developer of many kickass scripts like Flow, so you know it's rock solid. It's a script that can build scripts. That's some Inception-level coding.- Joe @Workbench.tv
Limitations
Not all properties are available via scripting in After Effects. Here's a small list where compCode will struggle converting compositions to javascript file:
- Master Properties are not supported
- Custom data values. Effect properties with custom data values can't be used, such as the Levels Histogram and the Hue/Saturation effect. In these cases you could use the Levels (Individual Controls) and Color Balance (HLS) effects instead;
- No data values, such as Gradient Fill and Gradient Stroke are not supported;
- Paint, Rotobrush and Puppet Pin effect values are not supported;
- Not all text properties are supported:
- Faux Bold, Faux Italic, All Caps, Small Caps, Superscript, Subscript properties are read only, so compCode will not be able to set them;
- Vertical Scale, Horizontal Scale, Baseline Shift, Tsume properties supported from 2014.2 and newer;
- Multiple text styles on one layer are not supported;
- compCode cannot import separate PSD layers due to scripting limitations. Please use separate files for each layer;
Discussions
Want to talk about it?
Head over to r/aescripts to chat with fellow users about this product.
Need Support?
Please open a support ticket to be connected directly with the author of this product
Version History
1.2.2 -
Sep 2, 2022
* compCode: support for native Drop Down Menu controls.
* compCode: support for keyframe label colors.
* compCode: button in Settings window to reset values to default.
* compCode: option to omit invocation block in the output JSX file.
Fixed:
* compCode: error when saving a PseudoEffect with "Use Existing Composition" settings enabled.
Changed:
* compCode: remove try/catch block from expressions in output JSX file.
* compCode: move try/catch block and undoGroup into global scope of output JSX file.
* compCode: massive codebase cleanup.
1.2.1 -
Aug 24, 2020
- compCode: add 'Hidden' property values to Log once composition has been processed.
Changed
- compCode: 'Hidden' and 'OuOfRange' error handling.
- compCode: skip folder creation process when necessary.
- compCode: do not display 'keyIn/OutTemporalEase().influence' errors to the user.
- licensing framework.
Fixed
- compCode: fix JSON layers throwing 'invalid text layer'.
- compCode: fix typo in 'flashVideoCuePointParameters' attribute.
1.2 -
Jun 12, 2020
- compCode: Adds 'label' and 'protectedRegion' marker properties to composition introduced in AE CC2019 (v16.00).
- compCode: Adds Marker 'label' property to a layer.
- compCode: Adds options to auto rename Untitled.ffx files when Animation Preset file is saved.
Changed
- compCode: Replaces all instances of 'typeName' property with a method that checks for 'instanceof'.
- compCode: Deselects property after applyPreset() method.
- compCode: Skips and logs Master Properties, as they are not supported due to a lack of the API on the AE side.
- Licensing framework.
Fixed
- compCode: Fixes 'threeDPerChar' for text layers.
- compCode: Fixes the issue for CC2017 up to CC2020 if none of the LS were applied in the current AE session.
- compCode: Fixes multiline SourceText keyframe value.
- compCode: Writes expressions even if setting values fails (particularly when 'property is hidden').
- compCode: Replaces @ character with _@_ if it follows after double slash //. As in '// @' into '// _@_'. Otherwise, it fails on compiling JSX into JSXBIN files.
- compCode: Fixes issue when applying 'fillColor' to a text that had 'applyFill' set to false.
- compCode: Fixes issue when last Text Animator was skipped.
- compPack: JSX file names are not sorted alphabetically in the dropdown list.
- compPack: compCode injects function parameters passed from main.js file.
- compPack: Adds a workaround for spec characters in the included file.
- compPack: Fixes 'load metadata' not parsing the file.
- compCode and compPack: uses UTF-8 encoding for read/write files.
- compCode and compPack: Save files with Unix lineFeed(LF).
1.1.2 -
Oct 30, 2018
- Converts "\" to "/" when writing file paths to file.
- Escapes alert strings compPack regarding missing FFX files.
1.1.1 -
Sep 6, 2018
1.1 -
Jun 25, 2018
NEW:
compCode
- Implements "value:" token
- Bulk converts selected compositions & compositions in selected Folders.
- Adds support for compMarkers property introduced in CC2017.
- Adds option to auto save Animation Preset when Pseudo Effect or CUSTOM_VALUE or NO_VALUE properties are encountered
- Adds option to Auto Close Composition on witch compCode is working on.
- Adds option to Auto Undo when Finished to remove compCodes side effects from project.
compPack
- Adds option to use thumbnails,
- Option to save 'metadata' file, so that later, when you want to update your compPack, you can pre-populate all the fields with the metadata file,
- Collect JSX files and thumbnails,
- Collect Animation Presets FFX files,
typePack
- Initial implementation.
checkList
- Initial implementation.
JSX Compiler
- Initial implementation.
ENHANCEMENTS
Checks if trackMatte layer is enabled,
Fixes Mask Feather for each vertex,
Layer Styles now uses app.executeCommand(ID) therefore making it AE language independent,
Removes empty Solids folder at the end of script execution,
Always sets Layer/Property names (if possible) to avoid expression errors for non-english AE interface,
Throws error if compCoding a layer that is parented to layer B, and layer B is not included in selection,
Can view LOG file without saving it,
Removes "Alert on Pseudo Effect" checkbox,
Deselects created layer,
Sets composition Resolution Factor,
Replaces Non-Breaking-Space character with simple Space character,
Fixes issue when Layer Styles “Blending Options” were ignored,
compPack: Use relative path in #include directive,
compCode: Composition items with nullLayer flag are now supported
compCode: Returns main composition object {compItem : mainComp}
compCode: Adds START and END tokens to Folder, Solids, Nulls, Footage Items, Comps creation processes in final script.
compCode: Wraps each expression to try…catch block. This fixes issues when expressions could not be applied to layers because they didn’t exist. And they didn’t exist because compCode skipped building them because of “use existing precomps” option.
OTHER
Removes AddSatticShape() function - static shapes are now coded inline.
compCode encodes Folder name
Fixes generateRunDate() function by converting arguments to string.
Fixed dropDow item size width.
Fixes "Help tip" to uppercase in "Info Tab" (compPack)
Removes checkbox "Auto Save Log" and now saves Log file automatically (if any errors are recorded) when file is saved;
Removes checkboxes "Custom Function Name" and "Function Name as Comp" and instead adds Dropdown Menu.
Ignores "CC Particle World-0105" property, as it is hidden and generates errors on Win CS6
Uses more options when searching for composition/footage/solid in the project panel.
1.0.4 -
Jul 6, 2016
1.0.3 -
May 27, 2016
1.0.2 -
May 19, 2016
1.0.1 -
May 18, 2016
1.0 -
Apr 30, 2016
Compatibility
After Effects
2022, 2021, 2020, CC 2019, CC 2018, CC 2017, CC 2015.3, CC 2015, CC 2014, CC, CS6
EULA
This software ("the Software Product") and accompanying documentation is licensed and not sold. This Software Product is protected by copyright laws and treaties, as well as laws and treaties related to other forms of intellectual property. The author owns intellectual property rights in the Software Product. The Licensee's ("you" or "your") license to download, use, copy, or change the Software Product is subject to these rights and to all the terms and conditions of this End User License Agreement ("Agreement").
Acceptance
YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT BY SELECTING THE "ACCEPT" OPTION AND DOWNLOADING THE SOFTWARE PRODUCT OR BY INSTALLING, USING, OR COPYING THE SOFTWARE PRODUCT. YOU MUST AGREE TO ALL OF THE TERMS OF THIS AGREEMENT BEFORE YOU WILL BE ALLOWED TO DOWNLOAD THE SOFTWARE PRODUCT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, YOU MUST SELECT "DECLINE" AND YOU MUST NOT INSTALL, USE, OR COPY THE SOFTWARE PRODUCT.
License Grant
This Agreement entitles you to install and use one copy of the Software Product. In addition, you may make one archival copy of the Software Product. The archival copy must be on a storage medium other than a hard drive, and may only be used for the reinstallation of the Software Product. This Agreement does not permit the installation or use of multiple copies of the Software Product, or the installation of the Software Product on more than one computer at any given time, on a system that allows shared used of applications, on a multi-user network, or on any configuration or system of computers that allows multiple users. Multiple copy use or installation is only allowed if you obtain an appropriate licensing agreement for each user and each copy of the Software Product.
Restrictions on Transfer
Without first obtaining the express written consent of the author, you may not assign your rights and obligations under this Agreement, or redistribute, encumber, sell, rent, lease, sublicense, or otherwise transfer your rights to the Software Product.
Restrictions on Use
You may not use, copy, or install the Software Product on any system with more than one computer, or permit the use, copying, or installation of the Software Product by more than one user or on more than one computer. If you hold multiple, validly licensed copies, you may not use, copy, or install the Software Product on any system with more than the number of computers permitted by license, or permit the use, copying, or installation by more users, or on more computers than the number permitted by license.
You may not decompile, "reverse-engineer", disassemble, or otherwise attempt to derive the source code for the Software Product.
Restrictions on Alteration
You may not modify the Software Product or create any derivative work of the Software Product or its accompanying documentation. Derivative works include but are not limited to translations. You may not alter any files or libraries in any portion of the Software Product.
Restrictions on Copying
You may not copy any part of the Software Product except to the extent that licensed use inherently demands the creation of a temporary copy stored in computer memory and not permanently affixed on storage medium. You may make one archival copy which must be stored on a medium other than a computer hard drive.
Disclaimer of Warranties and Limitation of Liability
UNLESS OTHERWISE EXPLICITLY AGREED TO IN WRITING BY THE AUTHOR, THE AUTHOR MAKES NO OTHER WARRANTIES, EXPRESS OR IMPLIED, IN FACT OR IN LAW, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OTHER THAN AS SET FORTH IN THIS AGREEMENT OR IN THE LIMITED WARRANTY DOCUMENTS PROVIDED WITH THE SOFTWARE PRODUCT.
The author makes no warranty that the Software Product will meet your requirements or operate under your specific conditions of use. The author makes no warranty that operation of the Software Product will be secure, error free, or free from interruption. YOU MUST DETERMINE WHETHER THE SOFTWARE PRODUCT SUFFICIENTLY MEETS YOUR REQUIREMENTS FOR SECURITY AND UNINTERRUPTABILITY. YOU BEAR SOLE RESPONSIBILITY AND ALL LIABILITY FOR ANY LOSS INCURRED DUE TO FAILURE OF THE SOFTWARE PRODUCT TO MEET YOUR REQUIREMENTS. THE AUTHOR WILL NOT, UNDER ANY CIRCUMSTANCES, BE RESPONSIBLE OR LIABLE FOR THE LOSS OF DATA ON ANY COMPUTER OR INFORMATION STORAGE DEVICE.
UNDER NO CIRCUMSTANCES SHALL THE AUTHOR, ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS BE LIABLE TO YOU OR ANY OTHER PARTY FOR INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, PUNITIVE, OR EXEMPLARY DAMAGES OF ANY KIND INCLUDING LOST REVENUES OR PROFITS OR LOSS OF BUSINESS) RESULTING FROM THIS AGREEMENT, OR FROM THE FURNISHING, PERFORMANCE, INSTALLATION, OR USE OF THE SOFTWARE PRODUCT, WHETHER DUE TO A BREACH OF CONTRACT, BREACH OF WARRANTY, OR THE NEGLIGENCE OF THE AUTHOR OR ANY OTHER PARTY, EVEN IF THE AUTHOR IS ADVISED BEFOREHAND OF THE POSSIBILITY OF SUCH DAMAGES. TO THE EXTENT THAT THE APPLICABLE JURISDICTION LIMITS THE AUTHOR'S ABILITY TO DISCLAIM ANY IMPLIED WARRANTIES, THIS DISCLAIMER SHALL BE EFFECTIVE TO THE MAXIMUM EXTENT PERMITTED.
Limitation of Remedies and Damages
Any claim must be made within the applicable warranty period. All warranties cover only defects arising under normal use and do not include malfunctions or failure resulting from misuse, abuse, neglect, alteration, problems with electrical power, acts of nature, unusual temperatures or humidity, improper installation, or damage determined by the author to have been caused by you. All limited warranties on the Software Product are granted only to you and are non-transferable. You agree to indemnify and hold the author harmless from all claims, judgments, liabilities, expenses, or costs arising from your breach of this Agreement and/or acts or omissions.
Governing Law, Jurisdiction and Costs
This Agreement is governed by the laws of New York, without regard to New York's conflict or choice of law provisions.
Severability
If any provision of this Agreement shall be held to be invalid or unenforceable, the remainder of this Agreement shall remain in full force and effect. To the extent any express or implied restrictions are not permitted by applicable laws, these express or implied restrictions shall remain in force and effect to the maximum extent permitted by such applicable laws.








