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)) 5 2