Module:No globals

This module causes an error if any nil global is read or if any global is written to, with the exception of arg. To use, add require('Module:No globals') to the top of the module using it. The arg variable is excluded because it is necessary for Scribunto's require function to work properly. (See the Scribunto source code here.)

See also

  • Module:Log globals – adds all nil global reads/writes to the lua log

local mt = getmetatable(_G) or {}function mt.__index (t, k)if k ~= 'arg' thenerror('Tried to read nil global ' .. tostring(k), 2)endreturn nilendfunction mt.__newindex(t, k, v)if k ~= 'arg' thenerror('Tried to write global ' .. tostring(k), 2)endrawset(t, k, v)endsetmetatable(_G, mt)