Die Skriptsprache Lua wird für allgemeine prozedurale Programmierungen verwendet. Damit fällt sie bei den Programmierparadigmen in die Rubrik der imperativen Skriptsprachen. Sie ist als Bibliothek in C implementiert und bietet Funktionen wie den Lua-Code sowie ein Muster-Hostprogramm (namens lua), das einen eigenständigen Lua-Interpreter zur Verfügung stellt.
Als Skriptsprache besitzt Lua kein eigenes Hauptprogramm. Sie arbeitet ausschließlich eingebettet in einer Host-Anwendung. Diese kann dann über den Lua-Code die oben genannten Funktionen aufrufen. Dank der C-Funktion lässt sich Lua um zahlreiche Funktionen erweitern, um die ebenso zahlreichen Anforderungen in der Programmierung abzudecken. Die Programmiersprache lässt sich sehr leicht anpassen, sodass ein gemeinsames syntaktisches Framework gewährleistet ist.
Wer bereits Kenntnisse in Pascal besitzt, hat auch keine Probleme mit der Syntax von Lua, denn die Programmiersprachen sind in diesem Punkt sehr ähnlich gehalten: Mehrere Befehle lassen sich in einer Skriptzeile mit Semikolon trennen. Insgesamt hat Lua 20 definierte Keywords, die einfach erlernbar sind. Ein kurzer Einblick: Allgemein wird in Lua mit Funktionsblöcken gearbeitet, die mit Keywords wie goto starten und mit end, elseif oder else enden. local kennzeichnet lokale Variablen, die nur für den Funktionsblock gültig sind, in dem das Schlüsselwort vorkommt. Funktionsblöcke können auch ineinander verschachtelt werden.
Lua kann mit den Datentypen table, userdata, function, thread, nil, boolean, string und number arbeiten. Ersterer (table = Tabelle) ist auch der einzige strukturierte Datentyp. Die Variablentypen werden beim Skriptablauf bestimmt, lassen sich aber bei Bedarf jederzeit umwandeln.