I’d try printing a line when you require the module
local module = require(id)
if module then
print("Test")
end
Then I’d try different values for the arguments, like a number or variable stored on the script.
If it’s attempting to call a nil value for just the string value, then it’s indicating that string values might not be able to be passed to a module script.
This doesnt seem to be the issue as putting the module in the script that requires it and replacing require(id) with require(script.ModuleScript) gives no errors. Both of the functions work and “a b” gets printed.