GUI visibility is false while it is true?

I’m trying to change a player’s WalkSpeed on the server base on a Frame visibility. And for some reason, when the frame was visible to me, the server printed its value is false. Can anybody help me?

Code block:

script.Parent.Touched:Connect(function(hit.Parent)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    showGui:FireClient(player)
    
    wait(2)

    print(player.PlayerGui.ScreenGui.Frame.Visible)
    wait(20)
    print(player.PlayerGui.ScreenGui.Frame.Visible)
end)

Output:
Screenshot_4

Frame picture when the output is printing:

Is it possible that only the client is being told that the frame is visible? Is there any code on the server that toggles the visibility?

1 Like

I only fired the showGui event from the server to toggle it so the client did it.

Try toggling the visibility on the server in addition to firing the event.

1 Like

That works but it will mess up the timing to change the player’s WalkSpeed.

Essentially, all you need to do is make sure that the server is aware that your frame is visible by toggling that property on the server. When you choose to toggle it is your choice so long as it’s before you check the value on the server (like with the prints above).

1 Like