Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Player Gui Appear On Touched, Wont Work?

Asked by 5 years ago

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

Log in to vote
0
Answered by 5 years ago

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)
0
Where'd you get these quotation marks? “” Tymberlejk 143 — 5y
0
I have no idea. Sensei_Developer 298 — 5y
0
holy you are right, it's probably a rare bug 123nabilben123 499 — 5y
Ad
Log in to vote
0
Answered by 5 years ago

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)

3) 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.

0
Visible not visable greatneil80 2647 — 4y

Answer this question