local _t = {}; local lrget = rawget; local lrset = rawset; local lsetmeta = setmetatable; local lIsCore = is_core; local securedTables = {}; local function lRawGet(t,k) return lrget(t,k) end local function lRawSet(t,k,v) local answer answer = lIsCore(); if answer==true then return lrset(t,k,v) else error("Non core attempt to use lRawSet, with key: " .. k); end end local function lSetMeta(t, m) if lIsCore then lsetmeta(t,m) end end rawget = lRawGet; rawset = lRawSet; setmetatable = lSetMeta; xpcall = nil; debug = nil; os = nil; module = nil; package = nil; pcall = nil; require = nil; dofile = nil; load = nil; loadfile = nil; coroutine = nil; io = nil; file = nil; loadstring = nil; setfenv = nil; getfenv = nil; collectgarbage(); for k,v in pairs(_G) do _t[k] = v; end; local mt = {}; function mt.__index(t,k) return lRawGet(_t,k); end function mt.__newindex(t,k,v) if (t == nil or k == nil or v == nil) then _t.log_string("Bad call to newindex with key: " .. k) end lRawSet(_t,k,v) end; for k,v in _t.pairs(_G) do if k ~= '_G' then _G[k] = nil; end; end; _t.setmetatable(_G,mt); _G = _t;