Установка среды в основном изменит текущие определения большинства глобальных переменных.
Например, если вы сделали
setfenv(0, {});
Вы не сможете использовать множество встроенных функций, включая «setfenv, print, warn, error и т. Д. И т. Д. И т. П.».
Хотя, если в таблицу, которая нужна sefenv в качестве аргумента, вместо пустой таблицы вы добавляете что-то вроде
setfenv(0, {["print"] = print, ["kek"] = function() print("hi") end}); -- We can define 'print' to 'print' here because we are defining things in the table before the environment is set.
А потом, если вы сделали
kek();
Ваша консоль будет:
script: 'hi'
Следуя этой логике, да, вы сможете настроить среду вашего скрипта на среду ModuleScript, чтобы использовать его функции, но было бы проще, и я думаю, что более эффективно просто сделать
api = require(module);
api.kek();
В любом случае, оба они верны, но второй может быть проще. Надеюсь, мой ответ поможет!