Shared/Global Functions called from local scripts

Is it possible to have a module script create shared or global functions that you are able to call from a local script?

Example:

-- Module Script
local Module = {}
function Module:Start()
shared["PrintHello"] = function() print("Hello!") end
end
return Module
-- Server Script
local module = require(ModuleIDHere)
module:Start()
-- Local script
shared.PrintHello()

With hiding the require part within server scripts, it would start the server with the module required before an exploiter would potentially be able to scan for required modules.

Would this be possible? If it is, it could make hiding functions, variables, etc from exploiters MUCH easier.

the server and clients don’t share the same environment, but if you want to send over all of the global variables, you could work with getfenv() and setfenv()