How do I get namecall method?

__namecall is a hidden optimisation might I add. With the update of LuaVM a couple of years ago, method name is no longer passed as a consequence of further optimisation efforts. Even before, Roblox didn’t approve of it in production code because of possible breaking changes.

__index can mimic it just fine.

local proxy = newproxy(true)
local meta = getmetatable(proxy)

function meta:__index(key)
	if key == "print" then
		return function(self, ...)
			print(...)
		end
	end
	return self[key]
end

proxy.print(proxy, "OK") --> OK
proxy:print("OK") --> OK
print(proxy.print) --> function: 0x...