Learning 3DS Max Scripting Languages

Up until now, everything in my career has revolved around Maya, or engine tools/shaders. I’ve been looking at TA positions in other studios and seeing a fair few Max based pipelines. I’m wondering if anybody has advice on how best to learn Max scripting, I know there is python for Max now, so do people even use MaxScript much now? I barely touch Mel these days thanks to Python/Pymel. Just looking for opinions/advice really on where to spend most of my time when tackling Max.

Compared to maya/mel/python,
max and max script feels like a hackey kludge (especially the help files. tip: use the index not the search)
some simple thing are surprisingly obtuse to code
some complex things can be surprisingly easy

CG talk is the best place to ask Max Script related questions

There are some very sharp users there

and old intro to MXS:

CG Academy released some good DVDs several years ago but the web site is dead (rumour has it they jilted the authors)
Fragments can be found on you tube https://www.youtube.com/channel/UC-o7FeODeSmvUfETGSKXf2g
Unscroupulous people can find bittorrents, but I would never suggest that…

if you are forced to use max for dealing with animation and or rigging,
note that “freeze transform” means something different to Max and Maya
spend some time exploring the 3DS Max animation controller stack
and read everything Paul Neale wrote http://www.paulneale.com/

Max Script i s “sort of” object oriented
the closet thing to Classes / OOP is Max script’s Struct method.
if you are building complex tools read this thread
http://forums.cgsociety.org/showthread.php?f=98&t=1101320&page=1&pp=15&highlight=struct+tool

This book, comes to mind: 3ds Max MAXScript Essentials. Also Autodesk has free C++ API training online, which could be relevant if you want to go the MaxPlus (Python) route.

“I know there is python for Max now, so do people even use MaxScript much now?”

We try to use Max Python as much as possible, but there are still a lot of things you just can’t do with it. So we end up writing a few scripts entirely in MaxScript or using MaxPlus.Core.EvalMAXScript() more than we’d like. Really there is no way around some Max Script right now, at least if your only alternative is Python. The C# API, might be better developed than the Python API, but I’ve no experience with it, so can’t really say.

Like Mambo4 mentioned, MaxScript is quite inconsistent. This makes it harder to master and makes the documentation harder to “quick browse”. At times it seems like every feature was designed by a separate team, but of course Max is a really old lady by now.

One interesting thing in Max script is the surprising amount of NET C# Things you can do.
So if your C# skills are good, it opens up some options.