Well for starters you wouldn't need a bone for every shape.But, ... would it allow do new things that cannot be done with sort_sahpes_by_bones embedded script?
Suppose you have 20 shapes on a layer and you only want to sort shapes 5 through 10 as a group, meaning they would stay the same in relation to the other shapes but would reorder within the group 5 to 10. You would only need those 5 named bones identified as "bone.shp5, bone.shp6... etc".
The shape list is created on frame 0 ONLY if the table list is = to nil (file is just opened). If the list already exists then the shape order is "reset" based on the ORIGINAL order based on the bone names and the original order the table was created when first opened.
The shape list table is created on frame 0 initially so that shapes without a matching bone are left "as is" in the relative shape order but still have an "original" order placement associated with the unique "userdata" value. On frames above 0 shape order with the "5 to 10" grouping are reordered based on bone movement.
I just wish there was some way to know when the program is closed or the file is closed within lua. Or some way to force a reset.
If the file is saved and closed while on a frame other than 0 the file would be "wrecked". All the ordering would be "messed up". The bones wouldn't match the shapes they were suppose to reorder.
This too me is a deal breaker. I might use this myself but it would be way too dangerous to rely on.
-vern