GUI not going into Players Gui when cloned

Howdy! I am trying to make a code where, when a player steps on a part, it fires a remote event, found in ReplicatedStorage. When fired, it should clone a gui, also found in rep storage, and paste it into the PlayerGui. However the below code doesn’t seem to be working and the gui never appears in the players gui.

Code
game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function(plr)
	local clone = gui:Clone()
	clone.Parent = plr.PlayerGui
	typewrite(textLabel,text)
	wait(1)
	typewrite(textLabel,text2)
end)

Here is the code that fires the remote event:

Code2
part.Touched:Connect(function(plr)
	if plr.Parent:FindFirstChild("Humanoid") then
		local player = game.Players:FindFirstChild(plr.Parent.Name)
		
		if player:FindFirstChild("Tag") then
			print("Tag")
			game.ReplicatedStorage:FindFirstChild("RemoteEvent"):FireClient(player)
		else
			print("No Tag")
		end
	end
end)

Any guidance would be most appreciated, as I am slowly getting back into coding.

Where are the scripts located?

I don’t really think there is a need to go into the hassle of using remote events.
After checking if it is a player just clone the GUI from replicated Storage to that player’s “PlayerGui”.

The local script, checking for the remote event is inside of the text label in the gui.
The server script is in serverscriptservices.

Also, the text would start typewriting even when it is in Rep Storage

When you pick up the remote event on the client, you’ve giver plr as the parameter. Your code should look like this:

local plr = game.Players.LocalPlayer

game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function()
	local clone = gui:Clone()
	clone.Parent = plr.PlayerGui
	typewrite(textLabel,text)
	wait(1)
	typewrite(textLabel,text2)
end)

Instead of cloning the UI, I’d recommend just enabling it when you pick up the remote event.

For more info:
RemoteEvent.OnClientEvent (roblox.com)