InsetFix Modifier

16 votes
Author Name: 
Vojtech Cada

An inset-by-SG type modifier that works similar to Chamfer modifier when set to zero tension. However, the max chamfer modifier is highly topology dependent and doesn't work well with diagonal and unconnected edges. This modifier fixes that behavior:

The insetFixChamferStack scripted modifier automates the process of using the InsetSGFix modifier with a Chamfer modifier for a quick and clean rounded edges effect.

Additional Info: 

The issues of the max chamfer modifier also exhibit when applied to an object with face groups inset by smoothing group - the chamfer will create peaks at the corners where different smoothing groups meet and inset creates diagonal edges there (see the top of the pic below). When applied after InsetFix instead, everything works as expected (bottom part of the pic):

Installation: Copy the .ms file to your scripts\startup folder or run as a script if you only want to try it out. If you want to be able to use it from the modifier sets panel, place the .ms file instead inside the stdplugs/stdscripts folder in the 3ds max root folder. Upon running, the modifier will be available in the modifier stack. If you put it inside the stdscripts folder before evaluating it, you can add it to a modifier set for easier accessibility.

Version Requirement: 
3ds max 2016
InsetFix.ms11.49 KB
InsetFixChamferStack.ms15.68 KB
InsetFixQuadChamferStack.ms14.89 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
C_Man777's picture

Error messages with 3DS Max 2017; Unknown property: Chamfer Modi

First of all thanks for sharing this script. I copied all 3 scripts into the stdplugs/stdscripts folder and when accessing the modifier menu for the first time, got the following error: "--Type error: Call neesds function or class, got undefined" and the max listener window opened to line 396, highlighting the chamferModifier = ....statement.  After exiting the error dialogue, the modifier panel was OK, but when selecting the InsetFixChamferStack got the error message "--Unknown property: "ChamferMod" in InsetChamferParams:InsetChamferParams  " and the listener window opens to line 470 of the script highlighting "emptyModifier.insetChamferParams.chamferMod = RefTargetContainer()".

I have to remove the top modifier "InsetChamfer" modifier in the stack to successfully collapse the stack to an editable poly.   The lower parts of the stack seem to do their job well in that I get a much better result than I have before using basic max modifiers, but I cant take advantage of the "InsetChamfer" modifier in the stack.   Is this a known bug? 


Swordslayer's picture


Depends, the Inset modifier only does inset, InsetFix also corrects the corners (see the image in this post) - because when you have diagonals coming to the corner (which is bound to happen with regular inset) and you apply chamfer modifier on top, the resulting chamfer radius at the corner will be smaller. InsetFix... well, fixes that - but it's a maxscript modifier so the speed cost might be too much for some people - if you don't really care about using chamfer on top or don't mind inconsistent chamfer radius, use just the inset modifier, if you don't work with complex meshes or don't mind the speed difference, use the insetFix modifier.

obaida's picture


i got confused with your 2 posts (InsetFix Modifier - Inset by Smoothing Group)!?
Same scripts names , but different posts!?
so , witch one i have to use .
Thanks for this important scripts.

Most of My Scripts Now are Free.

Youtube, Gumroad

pixamoon's picture


yes, you right. this will work. thanks !

Swordslayer's picture


What about making the 'sharp' edges (borders of smoothing groups) selected? In that case, the result would be the same and you wouldn't have to select the edges beforehands.

Edit: I've updated the script to do exactly that, and also added a InsetFixChamferStack modifier that includes the InsetSGFix modifier (just pick one of them, this one adds InsetSGFix AND InsetFixChamferStack ) - when you add the InsetFixChamferStack modifier, it will build the modifier stack with chamfer modifier and a simple interface to control everything on top. Basically the same as here:

Redownload it and see if it helps.

pixamoon's picture


I have one suggestion. Can it keep selection from lower modifier? Right now is selecting new edges. It will be beter if it keeps lower selection - so next modifier (here chamfer) will apply to same selection as below. This could be just as a checkbox: "Keep selection". What you think ?

So cool to have Inset as modifier :) Thanks

pixamoon's picture


Great work! Thanks!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.