Egy függvénydefiníció szintaxisa: [mapped] (function | fn) <függvény_név> { <parameter> } = <expr>. A mapped kulcsszó segítségével készíthetünk olyan függvényeket, amelyek automatikusan alkalmazhatók majd gyűjteményekre. A függvények lehetnek rekurzívak is. A függvények nem feltétlen kötődnek osztályokhoz, vagy struct-okhoz, lehetnek globálisak is, mint amilyen a 3ds Max rendszer által felkínált rendszerfüggvények nagy része.
A MAXScript nyelvben vannak függvényváltozók is: egy változóhoz hozzárendelhetünk egy függvényt, így például tömbben tárolhatunk függvényeket, amelyek kiértékelése során a tárolt függvény értékelődik ki az átadott paraméterekre. Függvény továbba lehet paraméter is, azaz átadható magasabbrendű függvényeknek (olyan függvény, amelynek valamely argumentuma vagy eredménye is függvény), hasonlatosan a funkcionális nyelvekben megszokott viselkedéshez.
A MAXScipt alapértelmezés szerint érték szerint kapja meg a paramétereket, azonban lehetőség van referencia szerinti paraméterátadásra is, a C++-ban megszokott módon, a paramétert & jellel megelőzve. A referenciákkal nem dolgozhatunk azonban közvetlenül, szükség van dereferáló prefix operátorra, a * operátorra. Függvény értékét visszaadni return <kifejezés> kifejezés segítségével tudjuk, azonban teljesítményokokból a ciklusból való kilépéshez hasonlóan ellenjavalt a használata!