The door itself opens, but the GUI doesn't appear. Here's the main code.
local door1 = script.Parent.Parent.Door1
local door2 = script.Parent.Parent.Door2
local walkforwardgui = script.Parent.Parent.HitDetector.WalkforwardGUI
local player = game.Players.LocalPlayer
script.Parent.Touched:Connect(function(hit)
if hit.Parent.Name == "Eco" or hit.Parent.Name == "FC" then
door1.CanCollide = false
door1.Transparency = 1
door2.CanCollide = false
door2.Transparency = 1
wait(3)
door1.CanCollide = true
door1.Transparency = 0
door2.CanCollide = true
door2.Transparency = 0
local walkforwardguiclone = walkforwardgui:Clone()
walkforwardgui.Parent = player.PlayerGui
walkforwardgui.Main.Visible = true
walkforwardgui.Main.Text.Text = "Walk forward, "..player.Name
end
end)
https://www.screencast.com/t/nffWdEpXHW < Explorer screenshot

4 comments
so I change local player to that location and make local player = game.Players.LocalPlayer? And what do you mean by "get player character here" that whole thing confuses me.
You don't use LocalPlayer at all; instead, you use game.Players:GetPlayerFromCharacter(character). I don't know how you would find the character, though; if you need help, post a screenshot of the character hierarchy.
ok sorry im a little confused, what do I put in (character)
What zenith is saying is that, you can't use the phrase "game.Players.LocalPlayer" in a normal script. You can only use that in a local script.