Skip to main content
Tabish Rafiq
New Member
July 8, 2026
Solved

[Bug] Auto-keyframe doesn't trigger for position/rotation changes via Plugin API (Motion Beta)

When auto-keyframe mode is enabled in Figma Motion, property changes made through the Plugin API behave inconsistently:

  • Stroke width (strokeWeight) — changing this via plugin correctly adds a keyframe at the current playhead position 
  • Position (x, y) and Rotation (rotation) — changing these via plugin does NOT add a keyframe, even with auto-keyframe toggled on 

Steps to reproduce:

  1. Enable Motion mode and turn on the auto-keyframe toggle
  2. Select a node
  3. From a plugin, set node.strokeWeight = someValue → keyframe is added automatically
    From the same plugin, set node.x = someValue or node.rotation = someValue → no keyframe added

Expected behavior: All property changes made via the Plugin API should respect the auto-keyframe toggle, just like changes made through the UI do.

Workaround: Manually call applyManualKeyframeTrack for TRANSLATION_X, TRANSLATION_Y, and ROTATION at the desired time — but this requires knowing the current playhead position, which is also not exposed in the Plugin API (a separate gap worth addressing).

Jaycee Lewis
Jaycee LewisSolution
Figmate
July 29, 2026

Hey hey ​@Tabish Rafiq 🤩 Guess what? Playhead position is available in the Plugin API! Please try it out and let me know what you think. Have fun testing! — Jaycee

3 replies

Jaycee Lewis
Figmate
Figmate
July 8, 2026

Hey ​@Tabish Rafiq 👋 Thank you so much for the thoughtful and complete example. I took your main feedback and your comments about the workaround to the team that owns these features. I’ll follow up here if I get us any additional guidance. Talk soon! – Jaycee 

Tabish Rafiq
New Member
July 9, 2026

​@Jaycee Lewis Thank you! Looking forward.

Jaycee Lewis
Figmate
Jaycee LewisSolution
Figmate
July 29, 2026

Hey hey ​@Tabish Rafiq 🤩 Guess what? Playhead position is available in the Plugin API! Please try it out and let me know what you think. Have fun testing! — Jaycee