Az NSIS rendszer alapesetben (kiegészítők használata nélkül) nem támogat semmilyen különösebb vezérlési szerkezetet, prograozási stílusa talán az Assembly-hez áll a legközelebb. Az elágazások például flag-eket állító utasításokkal és ugrásokkal (Jump) oldható meg.
A címkék a Goto utasítások, vagy a különböző elágazási utasítások (például IfErrors, MessageBox, IfFileExists és StrCmp). A címkéknek szekción vagy függvényen belül kell elhelyezkednie. A címkék láthatósága lokális, tehát csak az őket körülvevő függvényben, vagy szekcióban használhatóak. Egy címke deklarálása a következőképpen lehetséges:
A címkéke nem kezdődhetnek -, +, !, $ vagy számokat. Címkék használatakor - azok hivatkozásakor - az üres szöveg ("") és a 0 címkék a következő utasítást jelölik (tehát Goto 0 azt jelenti, mintha nem is lenne ugrás). A - jellel kezdődő címkék globálisak, így bármely függvényből vagy szekcióból oda lehet ugrani (ez alól van egy kivétel: nem lehet telepítő szakcióból eltávolító szekcióba ugrani és fordítva).
A címkékkel ellentétben a relatív ugrások - ahogy a név is sugallja - relatívak a hívásuk helyéhez. Ilyen ugrások bárhol használhatóak, ahol címkék is. A relatív ugrások számokkal jelölhetőek: +1 a következő utasításra ugrik (a futás normál haladása), +2 átugrik egy utasítást, és a futás az azt követő utasítással folytatódik. A -2 kettő utasítással hátrébb ugrik (így kialakíthatóak ciklusok is).
Utasításnak számít minden, ami futásidőben ténylegesen lefut. Ilyenek például a MessageBox, Goto, GetDLLVersion, FileRead. Az AddSize, Section, SectionGroup, SectionEnd, SetOverwrite, Name, SetFont, LangString, valamint minden fordítói flag nem számít utasításnak, mert fordításidőben hajtódnak végre.
Példa:
A File utasítás:
Az Abort paranccsal megszakíthatjuk a telepítési folyamatot. Az utasításnak megadható egy argumentum is, mely a felhasználó tájékoztatására szolgál, az itt megadott üzenet a telepítői felületen megjelenik.
A MessageBox utasítás egy üzenetablakot mutat a felhasználó számára. Az utasítással megadható a megjelenő üzenetablak stílusa (például a rajta megjelenő ikon: hiba, információ...), a megjelenített gombok, valamint megadható, hogy a lenyomott gomb alapján hol folytatódjon a kód futása. Példa:
A Return utasítás visszatér az adott szekcióból, függvényből.
Mivel a rendszer rengeteg utasíátst tartalmaz a telepítés közbeni teendőkkel kapcsolatosan (léteznek például beépített utasítások a rendszerleíró adatbázis, illetve INI fájlok manipulálására is), itt csak a legfontosabbak kerültek bemutatásra. Az összes beépített funkció leírása megtalálható az NSIS dokumentációjában.