I Need HELP with a Mic Tool! (Its not putting it on the part)

So What it does it Puts it on another Part.
Heres the script.

repeat wait() until script.Parent.Parent == game.Players.LocalPlayer.PlayerGui

local main = script.Parent.Main

main:TweenSizeAndPosition(UDim2.new(0, 300, 0, 180),UDim2.new(0.4, 0, 0.35, 0),"Out","Quad",0.5)

main.Broadcast.MouseButton1Click:connect(function()
	if main.MessageBox.Text ~= "> Insert Message Here <" then
		if main.TitleBox.Text ~= "> Insert Title / Subject Here <" then
			for i,v in pairs(game.Workspace:GetChildren()) do
				if v.Name == "RoTV" then
					if v:FindFirstChild("Title") then
						v.Player.Value = game.Players.LocalPlayer.Name
						v.Title.Value = main.TitleBox.Text
						v.Message.Value = main.MessageBox.Text
					end
				end
			end
		end
	end
end)

Is the problem that it’s not replicating to the clients?

Yea like When you Put the text in the microphone and it doesn’t go on the surface GUIS in the parts.

  1. Make sure you send the text through a remote event and that you filter the text on the Server otherwise your game could get taken down for not filtering text.
  2. Try setting the Surface GUI from the Server when you fire to a remote event.

How would I do both of those? How do I add filter the text?

local t = script.Parent.Parent.Parent.Title
local m = t.Parent.Message
local p = t.Parent.Player

function Message()
	script.Parent.Title.Text = t.Value
	script.Parent.Body.Text = m.Value
	script.Parent.From.Text = p.Value
	for i = 1,0,-0.1 do
		script.Parent.Body.TextTransparency = i
		script.Parent.Body.TextStrokeTransparency = i
		script.Parent.Title.TextTransparency = i
		script.Parent.Title.TextStrokeTransparency = i
		script.Parent.From.TextTransparency = i
		script.Parent.From.TextStrokeTransparency = i
		wait()
	end
end

t.Changed:connect(function()
	Message()
end)

m.Changed:connect(function()
	Message()
end)

This is whats in the one in the part is there maybe done something wrong with that.