Rigging Utils

PEN Rigging Utils is a set of scripts with a unified user interface. This tool set provides tools for aiding in the rigging and setup process for character and mechanical systems a like.

PEN Rigging Utils has finaly been updated to support Dot Net, both versions are here for down load, For people using versions of Max that are 32 bit and Max 8 or older use V:4.01 all others use V:5.00. Thanks goes to Kevin Ala-Pantti for updating the script for me.

Download Installation:

Place PEN_Rigging_Utils_4-01.mcr in the UI\macroScripts folder.
Place all the .ms files in the stdPlugins\stdScripts folder.
Add PEN Rigging Utils to your favorite menu from the PEN Tools category.

All Closed: 

All Closed: When all the tools are rolled up just the tabs show to reduce screen space taken up. To close all tools use the “None” tab.



Controllers section. This has allot of tools for me to list here. It takes a bit of getting used to but it does allot. I need to update the controller choices one of these days as it only lists a couple of things that I needed at the time that I created it.

List Controllers Names: List of all the controllers in the lists on the selected objects.

Remove List Controllers: Sets the controllers back to the default.

Zero Out Objects: Adds a list controller to all the selected objects and adds a second controller to the list. Sets the second controller to be active and names the first one Zero and the second one Animation.

Add Controllers: Add/Replace/Rename controllers in a list by the index of the list or just adding to the available track. Add a name to the name field to name controllers on creation.

Set/Del Controllers: Set controllers to be active by either name or index, you can select the controller you want with the List Controllers Names drop down list at the top.

Set first will set the first controller active and Set Top will set the last controller active.
Resets: This will make the value of the currently active controller [0,0,0]


Note: Using Zero Out Objects with a list controller already set up on the object will make the value of the second controller [0,0,0] and add any value that was in the second controller to the first. This means that the object wouldn’t move.

Edit Controllers:

Edit controllers is a life saver. It will find and display any controllers that have a dialog box that can be opened. You have all kinds of filtering ability. Just select the object that is displayed in the first window and it will show you all the controllers in the second. Double click on the controller to open the dialog.

Show info never got refined so don’t trust it and I know that Link Constraints don’t show up either thanks to Alan Noon for pointing that out. There might be a problem with controllers on some IK solved bones but that may have been fixed at some point.

Edit Attributes:

Edit Attributes:
For every one that is tired of using the current custom attributes tool in Max here is a solution that has complete control. You will have to write the CA in max script by hand but that means that you can do any thing that you could do with a scripted modifier but have it contained in the file.


Note: Materials are not supported. I started a complete rewrite but have not been able to get back to it but it will support all possible places you could put a CA.

Current Attribute Definitions: Shows all the current attributes on the selected objects for modifiers and base objects. Double click on the CA and it will open it in a script window. This file is automatically saved to a temp file when the CA is found and deleted why another object is selected.

Open Definition: Opens the currently selected CA in the list.

Redefine Definition: Edit the opened script and save over the temp file and press redefine will update the CA with the new code. If there is an error in the code the script might die. It needs a bit more error checking in places.

Make Unique: Makes the CA unique to others of the same name.

Delete Definition: Deletes definition with the whole rollout.

Loaded Attribute Definitions: Contains a list of CA definitions that have been loaded from session to session of Max. You can save your favorite definition and load it and it will always be there for you.

Load Definition: Loads a new saved definition and stores if for the next session of Max.

Remove from List: Removes selected CA’s from Load list.

Open Definition: Opens the CA to a Max script window for editing.

Add New Definition: Add the selected CA in the load to the selected object. The CA is added to the currently selected level in the modifier stack.

Redefine Definition: Redefine the definition that is selected in the Current Attribute list with the one that is selected in the Loaded Attribute list. Be careful not to over write a completely different attribute as it allows for this.

Download Example Custom Attribute Definitions:

Download Example Custom Attribute Definitions:

Link Info:

Link Info: Just makes it easier to work with setting the Link and Inherit info. Doesn’t need much explaining and saves a lot of button clicks.

Works on all selected objects.


A bunch of stuff that I need to do all the time. Nothing ground breaking but useful.

Select Bones: Selects all the bones in the scene.

Fix Nub Bones: Sets the length width and height of end bones to match the width of the parent bone.

IK Enable/Disable: Turns IK on and off of all selected IK solvers.

Make Point Helpers: Makes a point helper aligned to each selected object.

Spline On: Sets the view port render to on with the diameter of the spinner.

Colour Objects Left Right: Colours the objects green and red for starboard and port or for you non sea fairing types, right and left. Different values of the colours are used for different object classes.

Skin On/Off: Turns the always deform check button on and off for ALL the skin modifiers in the scene. D Don’t use this if the scene has been animated!

Goal Size: Sets the size of the goal end of selected IK solvers.

Point Size: Sets the size of selected point helpers.

Bone Length: Sets the length of all selected bones as a relative value.

Select CNT Objects: Selects all objects with “CNT” in thier name in the scene. This is how I identify control objects.

Open/Close Groups: Opens/Closes all groups in the scene.

Select Mirror Object: Selects the object that has the selected axis value mirrored. An example would be the right and left forarm.