Basically, im reworking a localscript to work on the server for a game im creating. What I have set up is a function that takes an instance, sends it to the client to identify and get certain client-only properties (such as absolutesize and absoluteposition), and send it back. The code is here:
serverscript:
function GetAbsolutePosition(instance2) print(instance2) game.ReplicatedStorage.Events.GetAbsolutePosition:FireClient(Player, instance2) local AbsolutePosition = nil; game.ReplicatedStorage.Events.ReturnPosition.OnServerEvent:connect(function(player, AbPosition) print("Got Result") AbsolutePosition = AbPosition end) while true do if AbsolutePosition ~= nil then return AbsolutePosition end wait() if AbsolutePosition ~= nil then break; end wait() end end
localscript:
spawn(function() game.ReplicatedStorage.Events.GetAbsolutePosition.OnClientEvent:connect(function(instance) print(instance.ClassName) game.ReplicatedStorage.Events.ReturnPosition:FireServer(instance.AbsolutePosition) end) end)
The above code currently works. I modified it to also get the absolute size of the GUI object, but this time on the client side, it gives a nil instance error. Server Size Code:
function GetAbsoluteSize(instance) print(instance.ClassName .. " Is Sizing") if instance == nil then print("NIL INSTANCE NHJSHBJFBHJKBKHJSFKBHJSFKBHJFSBKHJ") end game.ReplicatedStorage.Events.GetAbsoluteSize:FireClient(Player, instance) local AbsoluteSize = nil; game.ReplicatedStorage.Events.ReturnSize.OnServerEvent:connect(function(player, AbSize) print("Got Result") AbsoluteSize = AbSize end) while true do if AbsoluteSize ~= nil then return AbsoluteSize end wait() if AbsoluteSize ~= nil then break; end wait() end end
LocalScript:
spawn(function() game.ReplicatedStorage.Events.GetAbsoluteSize.OnClientEvent:connect(function(instance2) print(instance2.ClassName .. " has reached renderstepped") game.ReplicatedStorage.Events.ReturnSize:FireServer(instance2.AbsoluteSize) end) end)
The two are practically the same code, so im very confused on why the bottom one does not work. I've tried almost everything I know at this point, and nothing seems to work.