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.