Keyfast
Script
Free

Remove Keyframes

By Jack Vaughan
Updated 11/1/2025

About

Removes all keyframes from all properties on selected layers, including sub-attributes like position.x and position.y. Useful for clearing animation before starting fresh.

Code

// Cavalry Script: Keyfast - Remove Keyframes
// For each selected layer, removes all keyframes from all properties, including sub-attributes (e.g., position.x, position.y)
var selectedLayers = api.getSelection();
if (selectedLayers.length === 0) {
console.warn("No layers are selected. Please select some layers first.");
} else {
console.info("Removing all keyframes from " + selectedLayers.length + " selected layer(s)...");
for (var i = 0; i < selectedLayers.length; i++) {
var layerId = selectedLayers[i];
var layerName = api.getNiceName(layerId);
try {
// Get all attributes for this layer
var allAttributes = api.getAttributes(layerId);
var totalKeyframesRemoved = 0;
console.log("Processing layer: " + layerName + " (" + allAttributes.length + " attributes)");
// Check each attribute for keyframes
for (var j = 0; j < allAttributes.length; j++) {
var attrName = allAttributes[j];
try {
// Get keyframe times for this attribute
var keyframeTimes = api.getKeyframeTimes(layerId, attrName);
if (keyframeTimes.length > 0) {
console.log(" Removing " + keyframeTimes.length + " keyframes from " + attrName);
// Delete each keyframe
for (var k = 0; k < keyframeTimes.length; k++) {
var frameTime = keyframeTimes[k];
try {
api.deleteKeyframe(layerId, attrName, frameTime);
totalKeyframesRemoved++;
} catch (deleteError) {
console.warn(" ✗ Failed to delete keyframe at frame " + frameTime + ": " + deleteError);