--BROUGHT TO YOU BY RobloxScripter.com!--
local Players = game:GetService("Players");
local ReplicatedStorage = game:GetService("ReplicatedStorage");
local client = Players.LocalPlayer;
local clientLib = require(ReplicatedStorage.Scripts.ClientLib);
local targetScript = client.PlayerGui.PermGui.RealPhysicsFPS;
local oldTraceback;
oldTraceback = hookfunction(debug.traceback, newcclosure(function()
return targetScript:GetFullName() .. ":1";
end))
local register = syn.secure_call(clientLib.A, targetScript);
local callRemoteFunction = syn.secure_call(clientLib.GetCall, targetScript, register);
hookfunction(debug.traceback, oldTraceback);
local function CallRemote(remote, ...)
return syn.secure_call(callRemoteFunction, targetScript, remote, ...);
end
local oldNameCall;
oldNameCall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
if (checkcaller() and self.Parent == ReplicatedStorage.Remote) then
local method = getnamecallmethod();
if (method == "FireServer") then
CallRemote(self, ...);
elseif (method == "InvokeServer") then
local thread = coroutine.running();
task.spawn(function(...)
coroutine.resume(thread, CallRemote(self, ...));
end, ...)
return coroutine.yield();
end
end
return oldNameCall(self, ...);
end))