Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Player Gui Appear On Touched, Wont Work?

Making A Gui Appear On Touch From The Player Gui, But It Aint Working, Anybody Got Any Ideas? Here Is My Script:

local plr = game.Players.LocalPlayer

function onTouched(part)
	plr.PlayerGui.GameGui.SwordShop1.Visible = true
end

script.Parent.Touched:connect(onTouched)

2 answers

✓ Accepted answer

You can’t get the local player on a server script. A server script is just a regular script. You can get the player within the touched event by calling a function :GetPlayerFromCharacter()

A character is just the interactive and visual appearance of the player, like the hats, the shirts and everything else. Whenever a character touches a brick only their body parts (head, torso, right arm) will be seen as “touched”.

To get a player from the character you get the character which is part.Parent. You can store it in a variable too. You also need to check if “part” is actually part of the parent. I included that for you.

Your script fixed will be:


function onTouched(part)
     if part.Parent:FindFirstChild(“Humanoid”) then
    	  local Player = game.Players:GetPlayerFromCharacter(part.Parent)
          Player.PlayerGui.GameGui.SwordShop1.Visible = true
     end
end

script.Parent.Touched:connect(onTouched)

3 comments

0

Where'd you get these quotation marks? “”

0

I have no idea.

0

holy you are right, it's probably a rare bug

In order to get the PlayerGui with a server script, try using RemoteEvents. Here, let me show you the ServerScript.

  1. First, place a RemoteEvent inside ReplicatedStorage.

  2. Get the .Touched script and write this;

script.Parent.Touched:Connect(function(hit)
	if hit.Parent:WaitForChild('Humanoid') then
		game.ReplicatedStorage.RemoteEvent:FireClient()
	end
end)
  1. Now, place a LocalScript inside of your SwordShop1 and write;
game.ReplicatedStorage.OnClientEvent:Connect(function()
	script.Parent.Visable = true
end)

Voila! I hope I helped. If you don't understand something, then feel free to ask me on the comments.

1 comment

0

Visible not visable

This discussion is preserved as it was. New answers, comments, and votes are closed.