Az értékadás <cél> = <kifejezés> alakú, ahol a cél lehet változónév, tulajdonság vagy tömbindex. Tulajdonságok és tömbindexek segítségével elérhetjük összetett értékek komponenseit, mint amilyenek a tömbök vagy háromdimenziós pontok. Értékadásra példák:
Az index- és tulajdonságelérők vonatkozhatnak blokk-kifejezésre is, például:
Két változóérték felcserélésére beépített függvényt nyújt a MAXScript swap <cél> <cél> szintaxissal.
A MAXScript nyelvben nincs üres utasítás.
A programszöveg kifejezésekből áll (legalább egyből), ezeket sortörés vagy ; jel választja el.
Blokkifejezés létrehozható kerek zárójelpár között (az utasítások elválasztására továbbra is a sortörés vagy a ; jel szolgál), például:
A nyelv érdekessége, hogy a nyelvi konstrukciók kifejezésekként használhatók. Így sok más nyelvtől eltérően egy blokk-kifejezés lehet operandus, azaz szerepelhez valamely kifejezés részeként. Egy blokk-kifejezés ilyenkor visszatér egy értékkel, amely az utolsó blokkbeli kifejezés által meghatározott. A következő példában a blokk-kifejezés eredménye a végső if kifejezés, amely értékül adódik egy koordinátának:
Az feltétel szerinti elágaztatás, illetve az esetszétválasztás is lehetséges a nyelvben. A feltétel szerinti elágaztatásnak két alakja van: if <kifejezés> then <kifejezés> [else <kifejezés>] vagy if <kifejezés> do <kifejezés>, amely alakokban az első kifejezések tesztkifejezések, melyeknek true vagy false értékre kell kiértékelődniük, azaz például logikai kifejezések vagy összehasonlítások. Az elágazás maga is egy kifejezés, értéke a feltétel igaz volta esetén az igaz ágban lévő kifejezés értéke, egyéb esetben az opcionális else ág kifejezéséé. Amennyiben nincs else ág, vagy a do-s alakot használjuk és a feltétel hamisra értékelődik ki, akkor undefined értéket kap az if kifejezés.
Esetszétválasztásnál egy kifejezés alapján tekinthetjük az egyes eseteket, az egyes esetek lehetnek számliterálok, névliterálok, string-literálok, változók, vagy blokk-kifejezések. Végrehajtáskor először kiértékelődik a szelektor kifejezés, majd az egyes ágakhoz tartozók addig, amíg megfelelően illeszkedőt nem talál a program. Minden címkének összehasonlíthatónak kell lennie a szelektorkifejezéssel. Opcionálisan megadható default ág is.
A szelektor kifejezés (teszt kifejezés) opcionális, ahogy az a következő példában láthatjuk:
A ciklusok között megtalálhatók a normál elöl- és hátultesztelős ciklusok, illetve a léptetős for ciklus is. Az elöl- és hátultesztelős ciklusok szintaxisa: do <kifejezés> while <kifejezés> vagy while <kifejezés> do <kifejezés>. A ciklusmag végrehajtása addig ismétlődik, amíg a while után írt kifejezés true-ra nem értékelődik ki, a do-val kezdődő alak esetén a ciklusmag legalább egyszer végrehajtásra kerül.
A for ciklus végigiterálhat számintervallumon, időértékeken vagy értékek sorozatán (így például tömb vagy objektumhalmaz esetén). A for ciklus szintaxisa: for <változónév> ( in | = ) <sorozat> ( do | collect ) <expr>. A változónév lesz ez esetben a ciklusváltozó, a sorozat pedig attól függ, milyen adatokon szeretnénk használni a ciklust (lásd a példát alább). Ennek a fajta ciklusnak két módja van: a do kulcsszó esetén minden lépésben kiértékelődik a kifejezés, a collect kulcsszó használata esetén azonban a kifejezések értékét a program egy tömbben el is tárolja, majd azt, mint a for kifejezés értékeként visszaadja (yield).
Egy ciklus következő végrehajtására ugorhatunk a continue kulcsszó segítségével:
Ciklusból való kilépésre használható az exit [with <kifejezés>]:
Exit segítségével kilépni egy ciklusból nagyon ellenjavalt, ugyanis ehhez a végrehajtás során belsőleg egy try/catch részt használ a program, amely viszont jelentős mértékben lassíthatja a kód futását!