Currently I give away all my motion scripts for free. If you've found them useful and would like to support future development, you can do so here → To get updates on future ones, follow me on LinkedIn →
How to use the script
Always check code before running it on your computer. Even basic scripts like this one. If you’re not a developer, ask an LLM like ChatGPT, Claude, or Gemini to verify it for you.
Option 1: Install to your AE Folder
Download this and install the below .jsx file in your After Effects Script folder. You can then run it using the scripts menu, or by using a launcher like Quick Menu 3.
Option 2: Adapt the script yourself
Alternatively copy the code below and develop your own version. If you’re not a developer you can do this easily with an LLM like ChatGPT.
replaceText.jsx1.5KB
/*
Changes the source text of selected text layers to user input.
Adds a hold keyframe if the layer has existing keyframes.
Script by Jack Vaughan (jackvaughan.com/tools)
*/
(function() {
var comp = app.project.activeItem;
if (!(comp && comp instanceof CompItem)) {
alert("Please select a composition.");
return;
}
var selectedLayers = comp.selectedLayers;
if (selectedLayers.length === 0) {
alert("Please select at least one text layer.");
return;
}
var newText = prompt("Enter new text:", "");
if (newText === null) {
// User canceled the prompt
return;
}
app.beginUndoGroup("Replace Text");
for (var i = 0; i < selectedLayers.length; i++) {
var layer = selectedLayers[i];
var sourceTextProp = layer.property("Source Text");
if (sourceTextProp instanceof Property) {
if (sourceTextProp.numKeys > 0) {
// Add a hold keyframe at the current time
sourceTextProp.setValueAtTime(comp.time, newText);
sourceTextProp.setInterpolationTypeAtKey(
sourceTextProp.numKeys,
KeyframeInterpolationType.HOLD
);
} else {
// Set the source text without adding a keyframe
sourceTextProp.setValue(newText);
}
} else {
alert("Layer \"" + layer.name + "\" is not a text layer.");
}
}
app.endUndoGroup();
})();