--when the player touch this brick it will give him a gui , but if the player already have one this script wont give it to him and this is what I want . the only problem is in line 14 , I cant access the playergui and I don't know how to fix it
function onPJ(plr) local humanoid = plr.Parent:FindFirstChild("Humanoid") if humanoid then local player = game.Players:GetPlayerFromCharacter(plr.Parent) local alreadygui = player.PlayerGui:FindFirstChild("Buy") if alreadygui == nil then print("nothere") local GUI = script.Buy:clone() GUI.Parent = player.PlayerGui elseif alreadygui ~= nil then print("ishere") player.PlayerGui.Buy.Frame.Visible=true end end end end script.Parent.Touched:connect(onPJ)
Through a** LocalScript**
local player = game.Players.LocalPlayer local playergui = player:WaitForChild("PlayerGui")
There is actually no way to get to the player with the touch event on the normal script. And you cant use a localScript to call a touched event. the best and probably only way is using RemoteEvents. Call the remote when the player is touched. call the remote by client
im so sorry if i explained it POORLY. if you can understand it tho, please try it.
Change this
local player = game.Players:GetPlayerFromCharacter(plr.Parent)
To this
local player = game.Players.LocalPlayer
and to access the PlayerGui just do this
local playergui = player.PlayerGui
Do this with a localscript