Why wont my remote event remove the gui from player

Script -

local RS = game:GetService("ReplicatedStorage")
local REs = RS:WaitForChild("REs")
local rE = REs:WaitForChild("Notify")

game.Players.PlayerAdded:connect(function(player)
if player.Team == game.Teams.Lobby then
rE:FireClient(player)
end
end)

local script -

local RS = game:GetService("ReplicatedStorage")
local REs = RS:WaitForChild("REs")
local rE = REs:WaitForChild("Notify")

local money = game.StarterGui.Money
rE.OnClientEvent:Connect(function()
	
money.Enabled = false
print("hi") -- it prints hi however.

end)

Because of this. You’re supposed to access the LocalPlayer’s PlayerGui instead.

local LocalPlayer = game.Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local money = PlayerGui:WaitForChild("Money")

The contents of StarterGui are static and get copied to PlayerGui on spawn. What you see is LocalPlayer.PlayerGui, not StarterGui.

The problem:

you’re trying to disable the GUI in the StarterGui map, the players GUI is located in plr.PlayerGui

you cannot hide money,but you can movesits parent to like RP and when your ready to add it back into game clone it back to Workspace

This doesn’t do anything? You can hide the money Gui, OP was indexing the wrong container (StarterGui over PlayerGui). There’s no need to change the Gui’s parent in any case and Workspace shouldn’t be involved at all.