In realtà non c'è niente di magico nel nil, puoi benissimo fargli lanciare un errore o fargli fare qualsiasi altra cosa tu voglia: http://www.lua.org/pil/13.4.1.html

Non so se già sei arrivato a trattare le metatables...

Puoi farlo anche a livello globale in quanto tutte le variabili globali finiscono in una table.