I made a personal message GUI, and inside a button is this LocalScript. However, I don't know how to parent the PM GUI it makes to the recipient's PlayerGui. I did this script.
function pm() local n = game.Players.LocalPlayer.Name local m = script.Parent.Parent.username.Text local b = script.Parent.Parent.pm.Text local p = game.ReplicatedStorage.pm:Clone() p.Frame.author.Text = "from " .. n p.Frame.text.Text = "" .. m p.Parent = game.Players:FindFirstChild(m).PlayerGui end script.Parent.MouseButton1Down:connect(pm)
I need to know how I would do line 8 correctly. Can anyone help?
function pm() local n = game.Players.LocalPlayer.Name local m = script.Parent.Parent.username.Text local b = script.Parent.Parent.pm.Text local p = game.ReplicatedStorage.pm:Clone() p.Frame.author.Text = "from " .. n p.Frame.text.Text = "" .. m p.Parent = game.Players:FindFirstChild(m).PlayerGui end script.Parent.MouseButton1Down:connect(pm)
Well, there's not always a Player in Players named what m is. Say I put something like nibzor in the textbox and there's no nibzor in the game. What happens? It returns an ugly error. So how do we fix this? We check if there is someone with said name. But how do we do that? by using an If Statement.
So, it would look like this.
if game.Players:FindFirstChild(m) then p.Parent = game.Players:FindFirstChild(m).PlayerGui else print("No one with that name was found") end
And your finished code..
function pm() local n = game.Players.LocalPlayer.Name local m = script.Parent.Parent.username.Text local b = script.Parent.Parent.pm.Text local p = game.ReplicatedStorage.pm:Clone() p.Frame.author.Text = "from " .. n p.Frame.text.Text = "" .. m if game.Players:FindFirstChild(m) then p.Parent = game.Players:FindFirstChild(m).PlayerGui else print("No one with that name was found") end end script.Parent.MouseButton1Down:connect(pm)