You can write your topic however you want, but you need to answer these questions:
What do you want to achieve?
I want to be able to sync up my local gui by changing the gui from the server.
What is the issue?
If I attempt to change the gui on the server side where the gui is already the same property, the gui changed from the local side still remain unchanged.
What solutions have you tried so far?
What I have done so far is make it so I change the property to some other unrelated value and change it to the property I want it to change to.
-- On Server
TextLabel.Text = "Jack"
-- On Client
TextLabel.Text = "Bob"
-- Server Script
TextLabel.Text = "Jack"
-- The Text on TextLabel on Client Side is still "Bob"
-- My current solution:
TextLabel.Text = ""
TextLabel.Text = "Jack"
-- The Text on TextLabel on Client Side will now change to "Jack"
I would like a different approach without needing an extra line to the code.
I don’t see a complete reason for why you would want to change it from the server?
Never tested such a thing myself, anyways you can fire a RemoteEvent from the server to the client that needs the GUI changed and listen for that even in the client LocalScript, pass any parameters you want specified and change the GUI accordingly.
I’m creating a shop system where the buy button is interacted with from the server side. This will fire a remote server where it verifies the purchase from the server side. At the same time, if the verification process is finished, I want to change the ui to the same function as the verification process. I could call back the RemoteEvent again, but I would need to go back and forth between the scripts.
RemoteFunctions are made for this, you Invoke the server when the player clicks it on their client, from a LocalScript, then you check on a server script “OnServerInvoke”, and you can return the necessary information back to the client. For example make it show “Owned” or whatever, example: (typing from mobile)
Edit; place the RemoteFunction in a place such as ReplicatedStorage where both Client and Server can reach it.
— Client
Button.MouseButton1Click:Connect(function()
if Player.Cash.Value >= NeededCash then
local ProcessedPurchase = RemoteFunction:InvokeServer(“Item1”)
if ProcessedPurchase == true then
ItemText.Text = “Owned”
else
warn(“not enough cash.”)
end
end
end)
— Server
local Item1 = 10
RemoteFunction.OnServerInvoke = function(ItemName)
if Player.Cash.Value > ItemName then
return true
else
return false
end
end