Custom Chat problem

Hello, I have this custom chat that when I join the game, I am sending a text it works but it sends 2 messages when i type 1. When there are like 3 players in game it sends 3 messages and when there are like 10 it sends 10 but only 3 of them appear. How can i fix it so when you type for example idk it will send idk 1 time and not two or more.

local Folder = ReplicatedStorage.CustomChat


Folder.Twitter.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Twt:Clone()
	Tweet.Message.Text = text
	Tweet.Plrname.Text = "@"..Plr.Name
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Rob.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Rob:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Ad.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Ad:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Police.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Police:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.System.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.System:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Ekab.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Ekab:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.BubleChat.OnServerEvent:Connect(function(Plr, message)
	game:GetService("Chat"):Chat(Plr.Character.Head, message)
end)Folder.Ekab.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Ekab:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.BubleChat.OnServerEvent:Connect(function(Plr, message)
	game:GetService("Chat"):Chat(Plr.Character.Head, message)
end)

And here is the other script called MessageHandle.

local CustomChatFolder = ReplicatedStorage.CustomChat
local Plr = game.Players.LocalPlayer
local SendButton = script.Parent.Text.SendMessageButton
local Message = script.Parent.Text.Message
local UIS = game:GetService("UserInputService")
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false)

Message.FocusLost:Connect(function(enterPressed)
	
	if not enterPressed then return end
	
	if Message.Text == ";cmdbar on" or Message.Text == ";cmdbar off" or Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " or Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " or Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " or Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" or Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " or Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
		if Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " then
			local text = Message.Text:sub(8)
			CustomChatFolder.Twitter:FireServer(text)
		end
		if Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " then
			local text = Message.Text:sub(6)
			CustomChatFolder.Rob:FireServer(text)
		end
		if Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " then
			local text = Message.Text:sub(5)
			CustomChatFolder.Ad:FireServer(text)	
		end
		if Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" then
			local text = Message.Text:sub(9)
			CustomChatFolder.Police:FireServer(text)
		end
		if Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " then
			local text = Message.Text:sub(9)
			CustomChatFolder.System:FireServer(text)
		end
		if Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
			local text = Message.Text:sub(7)
			CustomChatFolder.Ekab:FireServer(text)
		end
		if Message.Text == ";cmdbar on" then
			Plr.PlayerGui.HDAdminGUIs.CmdBar.Visible = true
		end
		if Message.Text == ";cmdbar off" then
			Plr.PlayerGui.HDAdminGUIs.CmdBar.Visible = false
		end
		if Message.Text == "/Staff" or Message.Text == "/staff" then
			if Plr.IsAdmin.Value == true then
				Plr.PlayerGui.EazyAdminByM1ke.Enabled = true
			else
				print("You are not an Admin!")
			end
		end
	else
		local message = Message.Text
		CustomChatFolder.BubleChat:FireServer(message)
	end
	
	Message.Text = ""
	Message.TextTransparency = 1
	script.Parent.Text.BackgroundTransparency = 1
	SendButton.ImageTransparency = 1
end)

SendButton.MouseButton1Click:Connect(function()
	if Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " or Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " or Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " or Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" or Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " or Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
		if Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " then
			local text = Message.Text:sub(8)
			CustomChatFolder.Twitter:FireServer(text)
		end
		if Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " then
			local text = Message.Text:sub(6)
			CustomChatFolder.Rob:FireServer(text)
		end
		if Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " then
			local text = Message.Text:sub(5)
			CustomChatFolder.Ad:FireServer(text)	
		end
		if Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" then
			local text = Message.Text:sub(9)
			CustomChatFolder.Police:FireServer(text)
		end
		if Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " then
			local text = Message.Text:sub(9)
			CustomChatFolder.System:FireServer(text)
		end
		if Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
			local text = Message.Text:sub(7)
			CustomChatFolder.Ekab:FireServer(text)
		end
	else
		local message = Message.Text
		CustomChatFolder.BubleChat:FireServer(message)
	end
	
	
	Message.Text = ""
	Message.TextTransparency = 1
	script.Parent.Text.BackgroundTransparency = 1
	SendButton.ImageTransparency = 1
	Message.Text = ""
end)

Message.Focused:Connect(function()
	Message.TextTransparency = 0
	script.Parent.Text.BackgroundTransparency = 0.4
	SendButton.ImageTransparency = 0
end)

script.Parent.MouseEnter:Connect(function()
	Message.TextTransparency = 0
	script.Parent.Text.BackgroundTransparency = 0.4
	SendButton.ImageTransparency = 0
end)

UIS.InputBegan:Connect(function(Key, MhnBagaris)
	
	if MhnBagaris then return end
	
	if Key.KeyCode == Enum.KeyCode.Slash then
		
		wait()
		Message:CaptureFocus()
	end
end)

You’re connecting the event twice here.

Fixed code:

local Folder = ReplicatedStorage.CustomChat


Folder.Twitter.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Twt:Clone()
	Tweet.Message.Text = text
	Tweet.Plrname.Text = "@"..Plr.Name
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Rob.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Rob:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Ad.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Ad:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Police.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Police:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.System.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.System:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.Ekab.OnServerEvent:Connect(function(Plr, text)
	local Tweet = script.Ekab:Clone()
	Tweet.Message.Text = text
	Tweet.Parent = script.Parent.Scroll
	wait(30)
	Tweet:Destroy()
end)

Folder.BubleChat.OnServerEvent:Connect(function(Plr, message)
	game:GetService("Chat"):Chat(Plr.Character.Head, message)
end)

It works, but when there are 2 players it sends 2 messages instead of 1 and I want to fix it too. For example if there are 3 players in game and you send something it sends 3 messages or the same content. But I need 1 message to appear.

Can you solve the above, when there are 2 players it sends 2 messages and when there is 1 it sends one, when there are 3 players it sends 3 messages etc.

You connected the events twice here too.

Fixed code:

local CustomChatFolder = ReplicatedStorage.CustomChat
local Plr = game.Players.LocalPlayer
local SendButton = script.Parent.Text.SendMessageButton
local Message = script.Parent.Text.Message
local UIS = game:GetService("UserInputService")
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false)

Message.FocusLost:Connect(function(enterPressed)

	if not enterPressed then return end

	if Message.Text == ";cmdbar on" or Message.Text == ";cmdbar off" or Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " or Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " or Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " or Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" or Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " or Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
		if Message.Text == ";cmdbar on" then
			Plr.PlayerGui.HDAdminGUIs.CmdBar.Visible = true
		end
		if Message.Text == ";cmdbar off" then
			Plr.PlayerGui.HDAdminGUIs.CmdBar.Visible = false
		end
		if Message.Text == "/Staff" or Message.Text == "/staff" then
			if Plr.IsAdmin.Value == true then
				Plr.PlayerGui.EazyAdminByM1ke.Enabled = true
			else
				print("You are not an Admin!")
			end
		end
	end

	Message.Text = ""
	Message.TextTransparency = 1
	script.Parent.Text.BackgroundTransparency = 1
	SendButton.ImageTransparency = 1
end)

SendButton.MouseButton1Click:Connect(function()
	if Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " or Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " or Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " or Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" or Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " or Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
		if Message.Text:sub(1, 7) == "/tweet " or Message.Text:sub(1, 7) == "/Tweet " then
			local text = Message.Text:sub(8)
			CustomChatFolder.Twitter:FireServer(text)
		end
		if Message.Text:sub(1, 5) == "/rob " or Message.Text:sub(1, 5) == "/Rob " then
			local text = Message.Text:sub(6)
			CustomChatFolder.Rob:FireServer(text)
		end
		if Message.Text:sub(1, 4) == "/ad " or Message.Text:sub(1, 4) == "/Ad " then
			local text = Message.Text:sub(5)
			CustomChatFolder.Ad:FireServer(text)	
		end
		if Message.Text:sub(1, 8) == "/police " or Message.Text:sub(1, 8) == "/Police" then
			local text = Message.Text:sub(9)
			CustomChatFolder.Police:FireServer(text)
		end
		if Message.Text:sub(1, 8) == "/system " or Message.Text:sub(1, 8) == "/System " then
			local text = Message.Text:sub(9)
			CustomChatFolder.System:FireServer(text)
		end
		if Message.Text:sub(1, 6) == "/ekab " or Message.Text:sub(1, 6) == "/Ekab " then
			local text = Message.Text:sub(7)
			CustomChatFolder.Ekab:FireServer(text)
		end
	else
		local message = Message.Text
		CustomChatFolder.BubleChat:FireServer(message)
	end


	Message.Text = ""
	Message.TextTransparency = 1
	script.Parent.Text.BackgroundTransparency = 1
	SendButton.ImageTransparency = 1
	Message.Text = ""
end)

Message.Focused:Connect(function()
	Message.TextTransparency = 0
	script.Parent.Text.BackgroundTransparency = 0.4
	SendButton.ImageTransparency = 0
end)

script.Parent.MouseEnter:Connect(function()
	Message.TextTransparency = 0
	script.Parent.Text.BackgroundTransparency = 0.4
	SendButton.ImageTransparency = 0
end)

UIS.InputBegan:Connect(function(Key, MhnBagaris)

	if MhnBagaris then return end

	if Key.KeyCode == Enum.KeyCode.Slash then

		task.wait()
		Message:CaptureFocus()
	end
end)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.