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

How To Access the PlayerGui?

Asked by 5 years ago
Edited by Shawnyg 5 years ago

--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)
0
Format your code inside a Code block. To do that: Edit this post, Click on the blue Lua icon which will insert 2 squiggly (~) lines. Paste your code in between the two lines. xPolarium 1388 — 5y
0
^^^^ DevSersponge 5 — 5y
0
You can only get player gui from a local script LegosAreGood05 -2 — 5y
1
please.. format your code Sublivion 1 — 5y
View all comments (2 more)
0
The server does not have access to the children of any PlayerGui folder.. if you want to do UI code set up a front end Sublivion 1 — 5y
1
Edit: Placed code in a code block Shawnyg 4330 — 5y

3 answers

Log in to vote
0
Answered by 5 years ago

Through a** LocalScript**

local player = game.Players.LocalPlayer

local playergui = player:WaitForChild("PlayerGui")

Ad
Log in to vote
0
Answered by 5 years ago

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.

0
a local script can call a touched event theking48989987 2147 — 5y
0
in fact you can get the player with the touched event on the server by using :GetPlayerFromCharacter() User#23365 30 — 5y
Log in to vote
0
Answered by 5 years ago

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

Answer this question