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

How would I make this work? (don't ignore this time please)

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?

4 comments

0

Am i blind or missing something but why is Text said twice in measure 7

0

text is the name of the TextLabel. Text is the actual Text property.

0

we didn't ignore it, it was removed.

0

I recommend using a RemoteEvent instead.

1 answer

✓ Accepted answer
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)

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