Soulburnscripts For 3dsMax

Updated: Mar 20th 2014

Would you like to be notified the next time I add scripts to this page?
Join the SoulburnScripts Mailing List!

Click here to Subscribe to the list. Click here to Unsubscribe. Send the resulting email (no subject or body necessary) and you'll be added.


The SoulburnScripts for 3dsmax is a collection of scripts that I've written for my personal artwork at home. Some of their concepts are based on scripts I wrote during my time at Blur Studio and released publicly as BlurScripts (however the SoulburnScripts have been completely rewritten from scratch, giving them more features and better functionality), others are totally new concepts. Thanks to the blur folk for giving me the inspiration to learn how to code.


Feel free to install and use these scripts, however, I can't be held responsible for any problems that arise from their use. I will try and fix bugs or add features that people want, but I have limited free time and so can only promise to do my best. Thanks.


All the scripts come packaged into a single zip file of interconnected scripts,, which includes all the scripts in the rest of the table below. Please download the most recent zip file only, and extract them into your 3dsmax root directory, for example, c:\3dsmax. Make sure you have recurse sub directories on (it's also called "Use Folder Names" in more recent copies of winzip). You may need administrator privileges to install these scripts if running on Windows Vista or Windows 7. Windows should give you an error if you're not allowed to install the scripts, so if you don't get an error, then the scripts should be installed properly. If you do get an error, either contact your Administrator, or log on as Admin and then unzip the contents of the zipfile into a writable directory, then copy the contents into your 3dsmax root directory.

The zip will then install a bunch of files and directories (Max 9 to Max 2012, this example using Windows Vista)...
The zip will then install a bunch of files and directories (Max 2013 to Max 2014, this example using Windows 7)...
To uninstall the scripts, just delete all the files mentioned above. To install a new collection, just download the new zip and unzip them again into your 3dsmax directory, saying overwrite current files.


All of these scripts are run as macroscripts, ie, as buttons, keyboard shortcuts, quad menus, etc, just go to Customize, Customize User Interface, category SoulburnScripts. The SoulburnScripts CANNOT be run by choosing the "MAXScript" menu and "Run Script" and then a script. You can also choose to run the macroscript called "soulburnScriptsLister" to run any SoulburnScript. All scripts can be run in one of three modes...
Make sure to choose the version of the script with a "UI" at the end of it's name when making a button, a quadmenu or keyboard shortcut if you want to run the UI version of the script.

For quick tutorials on how to use these scripts, click the "Help" button on the UI mode of any script.


If you encounter any bugs running these scripts, perform the following checklist...

Name Date Description
03/20/14 The SoulburnScripts For 3dsMax Collection 79, compatible with max 9, 2008, 2009, 2010, 2011, 2012, 2013, 2014 (both 32-bit and 64-bit)
Updated Scripts: blendedBoxMapMaker, blendedCubeProjectionMaker, nameManager, objectReplacer, objectPainter, iDSetter, sLib
02/17/14 The SoulburnScripts For 3dsMax Collection 78, compatible with max 9, 2008, 2009, 2010, 2011, 2012, 2013, 2014 (both 32-bit and 64-bit)
New Script: iDSetter
Updated Scripts:
texmapBaker, blendedBoxMapMaker, blendedCubeProjectionMaker, findInstances, putPivot
01/26/14 The SoulburnScripts For 3dsMax Collection 77, compatible with max 9, 2008, 2009, 2010, 2011, 2012, 2013, 2014 (both 32-bit and 64-bit)
New Script: geometryBanger
Updated Scripts:
texmapBaker, cameraFromPerspView, blendedBoxMapMaker, blendedCubeProjectionMaker, sLib 03/07/09
An older collection that's compatible with 3dsmax 8.

Aligns one object to another. Similar to the Align tool in max, but optimized to allow a variety of aligns with the least number of mouse clicks necessary.

Aligns the viewport to the selected face.
Takes your current selection and attaches the objects together. Works on geometry and splines.
Collects all the scene bitmaps and places them into a single directory, updating your scene to point to their new home.

The Bitmap Pager controls have been removed from the preferences of Max2010. This script gives you some of that control back, especially the ability to turn it off, which may speed up renders on 64bit OS's that have lots of RAM.
Creates a Blended Box Map for your selected objects. Basically, it's box mapping, but the edges of the box are blended so you can place the map on a curved surface and not have horrible seams.

Applies 6 projections (Front, Back, Left, Right, Top, Bottom) to the selected objects, hooks the projections up to 6 maps, and then blends between each map. Great for projecting details onto a set of objects, like box mapping, but each side can be a seperate map, and the edges of the box are blended so you can place the map on a curved surface and not have horrible seams.

Launches the calculator. Great for having quick access to the calculator from inside the max interface, assign it to a hotkey.
Changes an active perspective viewport into a camera viewport.

Will render out templates for all cameras associated with a single cameraMapGeminiRenderer modifier. Automates the process so you're not stuck rendering a lot of cameras and changing lots of render resolutions by hand.
Similar to array, but always rotates your objects to make a complete circle.

Selects edges of a mesh based on the angle between adjacent faces, and then converts them to a vertex map. For example, you can select all the corner edges of a mesh and then convert them to a vertex map for use with a bump map or a mask to blend between textures.
Splits an Edge you select in an Editable Poly into equal parts.
Selects edges of a mesh based on the angle between adjacent faces. For example, you can select all the edges of a mesh for chamfer by placing a value of 90.
Toggles, or turns on or off the face normal display for objects.

Finds all objects that are assigned the currently active material in the medit and does various things to them such as selecting them, printing their names, isolating them, etc.
Finds instances of the selected object and does various things to them such as selecting them, printing their names, isolating them, etc.

Finds objects in your selection that are unique, ie, that don't have any instances of themselves, and then does various things to them such as selecting them, printing their names, isolating them, etc.

Chooses a % of vertexes in an object and moves them around randomly. Good for adding subtle bangs and bumps to your geometry. The advantage this has over say the Noise modifier is it only affect some verts, which will give a more realistic result. Object Size Compensation tries to bang smaller objects less, and large objects more.
Gets the material from the currently selected object and places it in the material editor. If multiple objects are selected, chooses the material from the first selected object.

Prints the Class or SuperClass of selected nodes.

Takes selected objects and groups or ungroups them by linking them to a point helper instead of using the max group method. Very similar to the way maya handles grouping.

Takes all selected objects and applies a material modifier, modifies their object ID, or modifies their User Defined Properties to either a random ID between the high and low value, or a sequential set of IDs based on selection order.

Creates a set of 2d image planes you can use to create a 3d model.

Takes a selection and reduces the selection to include only a single instance from each set of instances.
Takes any selected instanced / referenced geometry and makes it unique.
Takes all selected objects and applies a material modifier to them with a random ID between the high and low value.
Displays various pieces of information regarding material properties of selected objects or the active material (such as the name of the Material on the selected object, the used MatIDs on the selected object, the map channels the active material is currently using, etc).

Lets you move materials from one place to another. Some common uses: apply a flat grey material (standard, Raytrace, Brazil, mentalray, etc) to all scene objects in one button press. Clear out your material editor with blank materials. Move all the scene materials into the material editor. Move all scene materials to a matlib. Assign a random material from the material editor to a set of scene objects.
Removes the materials from the selected objects.

Mirrors the selected object along the X, Y or Z world axis, with options for copy or instance. Like the mirror tool, but lets you do some common mirror operations with far fewer mouseclicks.

Lets you perform various modifier related tasks on a set of selected objects. For example, takes all the selected objects and adds / removes seperate instances of a specific modifier. Or lets you find any objects in the current selection that contains a specific modifier. Add modifiers to your Favorites area for faster access.
Lets you increase or decrease the number of subdiv iterations for selected objects.

Lets you rename various things in your scene using a variety of functions.

Takes selected objects (meshs, polys or splines) and seperates all their elements into seperate objects.

Lets you drop objects onto another object. For example, will drop a bunch of rocks onto an uneven ground surface.
This script lets you paint objects (geometry, splines, lights, helpers, etc) onto a piece of geometry. Like for example, you can make 10 different rocks, and then paint them in a random fashion onto a terrain.

Replaces a selection of objects with a new object, or randomly from a set of objects.

Allows you to change parameter values for all selected objects as a group. For example, you can change the radius of a bunch of spheres together, even though they're not instances of each other. Or you can change the bend value for all selected objects that have a bend modifier.

Selects any objects that are not parented to anything. This is really useful if you want to select all the top level parents in your scene or selection, maybe to later link them to a master dummy object.
Even after deleting a PFlow Source object from your scene, you can sometimes end up with cruft nodes that are invisible to you, but exist in your scene, and can be viewed if you try and merge your current scene into a fresh scene. This scene flushes all of those nodes out of the scene. Also includes some tools for finding and printing out the nodes in case you need to delete them by hand.

Attaches a point to a selected vertex and bakes out the position information.

Selects objects based on their facecount.
Lets you modify the render and viewport approximation controls on all selected Powersolids objects.

Places the pivot of the selected objects in one of 27 spots such as center, bottom, top, high left side, etc. You can also align pivot to currently selected vert, edge or face.

This script simulates the Selection Highlighting mode from Silo in max. The idea is if you hover over an object, the object is selected, if you hover over a vertex, it selects the vertex, if you hover over an edge, the edge is selected, etc. No need for extra mouseclicks. Autodesk has half added this feature, this script goes all the way to adding full silo style selection highlighting.

Will randomly select objects based on a value provided.
Toggles, or turns on or off the soft selection tool for objects.
Lets you run any of the SoulburnScripts from a handy dropdownlist.

Takes all selected splines and converts all their knots to a specific knot type such as "Smooth", "Corner", "Bezier" or "Bezier Corner".
Takes all selected splines and places a specified object at their knots.

Lets you modify various controls for all selected splines.

This script lets you paint splines on the surface of another piece of geometry.

Quickly assigns a subdiv modifier (meshsmooth or turbosmooth) to all scene or selected objects. This is good if say you want to have all objects in your scene converted into subdivs at rendertime without the need to constantly select objects, find the right modifier, assign the modifier, etc.
Lets you modify various subdivision controls on all selected objects (both polyobjects and meshsmooth modifiers)

This script allows you to move one object along the surface of a second object. Great for placing objects on a terrain.

Bakes any arbitrary map tree on a series of selected objects. So say you have a vertex color map running through a warp texture, and you want to use it as a bump. Well, vertex maps don't create proper bumps, so you bake the texture using this script, and then plug the resulting bitmap into the bump slot, and now because it's a baked texture map instead of procedural, the bump map will work properly. Or say you have a super complex diffuse map, you can bake part of the diffuse map network into a texture to speed render times up. 
Does a render of the currently selected texmap from the material editor on the objects that it's applied to in the scene. Think of it as something similar to the "Show Map In Viewport" function, except it works with all procedurals (Show Map In Viewport does not always produce correct results) and does a full render instead of doing the openGL viewport preview.

Finds and selects faces that are really tall and thin. Good for finding thin faces in a complex mesh, faces that may be best to subdivide to make all your faces more square.

Lets you translate, rotate and scale a group of objects or modifier gizmos by a random amount.

Resets the position, rotation and / or scale of the selected objects.
Lets you select objects based on their position, rotation or scale.

Creates an orthogonal 2D Plan view of your scene, perfect for creating 2d elements using max's tools.

Prints the area of the currently selected UV faces.

Lets you flatten a selection of UVs, or in other words aligns all selected UVs horizontally or vertically. The advantage of using this tool over the one provided in the Unwrap UVW editor is you can choose to align the UVs to the average, the min or the max.

Lets you modify the positions of selected uvs using a handy dialog box.

Transfers uvs from one object to the next. Useful if you have two identical meshes, but their vertex order is messed up (like perhaps in the situation where you exported the object to a seperate application for uving and that application messed up the vertex order.) This script can transfer the uvs from the new object to your original object in max, even if the order is different.

Copies a UVWMapping Modifier from one object to the current selected objects. This works in world space (unlike the current method of copying the modifier in the modifier stack) so you can get exactly the same uvwmapping modifier in exactly the same worldspace position on all your objects.

Performs a number of Connect functionality in one script. For example, in vanilla max, you can't assign the same hotkey to both connect an edge and connect a vertex. You also can't have one hotkey that both connects in an EditablePoly and an EditPoly. This script allows you to have one hotkey to do all of that, and it detects what mode you're in to choose what action to perform.
Toggles or turns on or off the vertex map viewport display for all scene or selected objects.

Allows you to move the vertexes in an object or the knots in a spline to a single value, either the average of the current values, or a specific value. Good for flattening out groups of vertexes.

Places objects at the positions of the currently selected vertexes.

Lets you control the view you're currently seeing in the viewport in a handy dialog box.
Creates a number of wires that travel through various target objects. Useful for making bundles of wires for robots or other mechanical devices in a few simple clicks.
Changes the wirecolor of all selected objects to a random value.

Scripts I use the most for my own work (for the curious): aligner, attachSelectedObjects, blendedBoxMapMaker, blendedCubeProjectionMaker, cameraFromPerspView, cameraMapGeminiRenderer, cornerEdgeToVertexMap, edgeDivider, modifierUtilities, modifySubdivIters, nameManager, objectReplacer, putPivot, texmapPreview, transformRandomizer, uVFlattener, vertexAndEdgeConnector, vertPlacer

This site is ©2014 by Neil Blevins, All rights are reserved.
Back to