Ochrestack

Actionyard for Blender

Blender 4.5 with Blender Studio's Rain in her Attack_Heavy pose on the left; in the middle her NLA editor, with the active Attack_Heavy action, a Locomotion track and a column of 16 [Action Stash] tracks below it holding Death_v1, Dodge_v1, Block_v1, Attack_Heavy_v2, Attack_Heavy_v1, Jump_v1, Run_v2, Run_v1, Walk_v2, Walk_blockout, Idle_v1 and older strips; on the right the Actionyard sidebar tab, filtered to Stashed, reading '47 actions, 13 stashed, 0 with no users' above the list of stashed actions and the Action Stashes panel

When many stashed actions exist, they clutter the NLA editor, and Purge won't remove them. Actionyard lists every action with where it is used, and clears the stashes you pick, previewed first.

$12, one-time, every future version included, source included (GPL-3.0-or-later). For Blender 4.4 and later; tested on Blender 4.4, 4.5 LTS and 5.2 LTS.

Buy for $12

Polar checkout · 14-day refund · no license check · details

Above: Blender Studio's Rain with a game move set, in Blender 4.5 LTS with Actionyard 1.1.0. Each older take sits on its own [Action Stash] track, and the tab lists the 13 stashed actions.

How these images were made

The character is Rain, Blender Studio's free production rig (CC BY 4.0, credit below), in her own file as downloaded from studio.blender.org, with its 19 face actions and their Action constraints. Her file already holds 5 [Action Stash] tracks. We added a game move set keyed on her controls: 17 final actions (Idle, Walk, Run, Sprint, Jump, three attacks, Block, Dodge and more), each kept with Fake User, and 11 older takes, each stashed with Blender's own Stash operator, as New Action does. The result is 47 actions and 16 [Action Stash] tracks. Every image and GIF on this page is a capture of a real Blender 4.5.15 LTS window on Linux at 1920x960, with Actionyard 1.1.0 installed from its zip through Blender's extension installer. The mouse and keyboard input is scripted. The GIFs are cut from screen recordings of the same session, in real time. A check after every step compared the file's data with what the screen shows: 21 checks, all passed.

Watch it work

The demo, 39 s, captions only, no sound. Rain's file in Blender 4.5 LTS with Actionyard 1.1.0: Purge leaves the 16 stash tracks, then the list, Used by, the Clear Stashes preview, the result, and Ctrl+Z. It is a real Blender window: her animation captured frame by frame, the clicks recorded at 60 fps. Rain Rig (CC) Blender Foundation | studio.blender.org. The Clear Stashes moment as a looping GIF (7 MB).
Looping GIF cut from the demo: in Rain's file, Whole File and Clear Stashes are clicked, the preview reads 'Removes 13 Action Stash tracks from 1 data-block', Walk_blockout's keep tick is cleared, Clear Stashes is confirmed and 13 stash tracks leave the NLA editor while the tab reads '47 actions, 0 stashed, 1 with no users'; then Ctrl+Z brings every track back
The Clear Stashes moment from the demo, as a looping GIF (13 s, 7 MB).
Where it matters. Press New Action and Blender stashes the previous take on a muted [Action Stash] track. A file built take by take ends up with a column of them. Purge won't clear them out: a stashed action still has a user, so Purge leaves it in the file. Deleting the stashed actions themselves is no better. Blender removes the actions but leaves every [Action Stash] track behind, each holding a strip with no action.
Blender's File > Clean Up > Purge Unused Data dialog over Rain's viewport: Local Data-blocks: 1 Text; Linked Data-blocks: None; Recursive Delete; Cancel and Delete. Beside it, her NLA editor with the column of 16 [Action Stash] tracks
Blender's own Purge on Rain's file. With 16 [Action Stash] tracks in the NLA editor, it offers to delete 1 text block and no actions. After Delete, the file still had all 47 actions and all 16 stash tracks.
Who needs it, and who doesn't. Blender already lists every action with its user count (Outliner, Blender File mode), toggles Fake User, purges actions with no users (Outliner, Unused Data, Purge), deletes a stash track by hand in the NLA editor, and remaps users (Action menu). A buyer with a few actions on one rig needs none of this. With many actions and stashes, the buyer pays for one list that names, per action, every object, NLA track, Action Stash and Action constraint that uses it, and for removing chosen stashes in one previewed, undoable step, which Purge does not do because a stashed action is still in use. Version one does not show onion skins and does not lock channels.
Screen recording: in the Action Stashes panel, Whole File is chosen and Clear Stashes is clicked; the preview lists 'Removes 13 Action Stash tracks from 1 data-block', each take with a keep-with-Fake-User tick, and each track; the tick for Walk_blockout is cleared, the dialog is confirmed, and 13 of the stash tracks disappear from the NLA editor (the 3 holding strips with no action stay) while the status bar reports the result; then Ctrl+Z brings every track back
Clear Stashes on Rain's file, in real time: the preview, one take let go (Walk_blockout), confirm, then Ctrl+Z brings it all back. The two face actions on the list are still used by her face rig, so the preview says "no change" for them.

What it does

Actionyard is a sidebar tab in the NLA editor and the Dope Sheet.

In Blender, for real

Captured on Rain's file in Blender 4.5.15 LTS with Actionyard 1.1.0. The panel and dialog captures are shown at real size on a wide screen; tap an image for the full capture.

Screen recording of the Actionyard tab at real size: 'lips_roll' typed in the search field, Rain_Lips_Roll_Lower clicked (16 uses, 16 users), and its Used by list scrolled: 16 places, first an Action Stash on RIG-rain (track [Action Stash], strip Rain_LipRoll_Lower, Legacy Slot), then Action constraints on RIG-rain, bones P-GRP-Lip_Bot.M, GRP-Lip_Bot.M, P-BB-Lip_Bot_Bot.M and more, constraint Action_Lips_Lower_Roll, each with its slot
Used by on one of Rain's face actions: 1 Action Stash and 15 Action constraints in her face rig, each with bone, constraint and slot. Clearing its stash track leaves it in use, and the preview says so.
The Clear Stashes dialog at real size: 'Removes 13 Action Stash tracks from 1 data-block. Only Action Stash tracks are removed; other NLA tracks stay as they are.' Actions on these tracks: Rain_Lips_Roll_Lower still used by 15 other places, no change; Rain_Eyelid_Twist_Upper still used by 6 other places, no change; Idle_v1 keep in the file with Fake User, kept; Walk_blockout unticked, becomes unused; Walk_v2, Run_v1, Run_v2, Jump_v1, Attack_Heavy_v1, Attack_Heavy_v2, Block_v1, Dodge_v1 and Death_v1 kept. Then each of the 13 Action Stash tracks with its own tick
The preview before anything changes: each take kept with Fake User unless you untick it (Walk_blockout here), and each track with its own tick.
The same Blender window after Clear Stashes: Rain's NLA editor now shows Attack_Heavy, the Locomotion track and three [Action Stash] tracks (.004, .003, .001) whose strips have no action; the Actionyard tab reads '47 actions, 0 stashed, 1 with no users' and 'No Action Stash tracks here'; the status bar says 'Cleared 13 Action Stash tracks from 1 data-block; 10 actions kept with Fake User, 1 left unused'
After: 13 stash tracks gone, the Locomotion track untouched, all 47 actions still in the file, and the summary in the status bar. Three [Action Stash] tracks remain. They come with Rain's file as downloaded and hold strips with no action. Actionyard 1.1.0 neither lists them nor clears them (see Known limits).
Screen recording of the Actionyard list at real size: 'attack' typed in the search field shows 5 actions; the search is cleared; the Show menu is set to Stashed (13 shown), then to Fake User only; finally the list is sorted by Uses, putting Rain_Lips_UpDown (58 uses) and Rain_Lips_Wide (54) on top
Search, the filters and the sort by number of uses, in real time.

Character: Rain Rig (CC) Blender Foundation | studio.blender.org, used under CC BY 4.0. We added the game actions and the stashed takes. Rain is not included with Actionyard.

Blender's way against Actionyard

Measured on a file with two rigs, each with 5 takes stashed by Blender's Stash operator and 1 active take, and one stash on a mesh's shape keys: 13 actions and 11 [Action Stash] tracks to begin with. Blender 4.5 LTS and 5.2 LTS gave the same numbers.

What you doActions left[Action Stash] tracks leftStrips with no action
Blender: Purge13110
Blender: delete the 11 stashed actions as data-blocks (what the Outliner's Delete does)21111
Actionyard: Clear Stashes, Whole File, defaults, then Purge13 (every take kept with Fake User)00
Actionyard: Clear Stashes, Whole File, keep unticked, then Purge200
Actionyard: Delete Action Everywhere on the same 11200

On Rain's file, in the real Blender window: Purge deleted 1 text block and left all 47 actions and 16 stash tracks. Clear Stashes (Whole File, one take let go) removed the 13 stash tracks that hold actions, left the Locomotion track and all 47 actions in place, kept 10 takes with Fake User and left 1 with no users. One Ctrl+Z brought every track and every Fake User flag back.

Big files: a file with 12 rigs of 200 bones, 800 actions and 792 NLA tracks is scanned in under half a second in our test suite, on every tested Blender version.

Details

Documentation

The manual (README.md) is inside the zip: open the zip to read it, but install the zip itself, as it is. A one-page guide is online: Actionyard quick start.

Install

  1. Download actionyard-1.1.0.zip. Do not unzip it.
  2. In Blender 4.4 or newer, open Edit > Preferences > Get Extensions.
  3. Open the drop-down menu (⌄) at the top right, choose Install from Disk... and pick the zip.
  4. In the NLA editor or the Dope Sheet, press N and open the Actionyard tab.

If Get Extensions asks about internet access, Continue Offline is fine: Actionyard needs none.

Words used on this page

Known limits