i gone through the roblox wiki and made a custom chat, but when i write something in chat it first gets into chat input instead of the main chat.

-- ROBLOX Services
local ContextActionService = game:GetService("ContextActionService")
 
-- Static variables
local MAX_MESSAGES = 10
local MESSAGE_HEIGHT = 25
 
-- Local variables
local player = game.Players.LocalPlayer
local messages = {}
local chatMessageEvent = game.ReplicatedStorage.SendMessages
 
-- Variables for GUI elements
local chatScreen = script.Parent
local chatFrame = chatScreen.ChatFrame
local chatInput = chatFrame.ChatInput
local messageFrame = chatFrame.MessageFrame
-- Make a copy of the message that will be used later
local messageTemplate = messageFrame.Message:Clone()
messageFrame.Message:Destroy()
 
 
local function addMessage(sender, message)
	-- Check if the number of messages has hit the maximum
	if #messages >= MAX_MESSAGES then
		-- If so remove the oldest message from the table
		table.remove(messages, #messages):Destroy()
	end
 
	-- Shift all of the messages up one slot
	for i = 1, #messages do
		local y = (MAX_MESSAGES - i - 1) * MESSAGE_HEIGHT
		messages[i].Position = UDim2.new(0, 0, 0, y)
	end	
 
	-- Create new message GUI elements and add to the message table
	local newMessage = messageTemplate:Clone()
	newMessage.NameLabel.Text = sender.Name .. ": "
	newMessage.Content.Text = message
	newMessage.Parent = messageFrame
	newMessage.Position = UDim2.new(0, 0, 0, (MAX_MESSAGES - 1) * MESSAGE_HEIGHT)
	table.insert(messages, 1, newMessage)
end
 
-- Function when the input TextBox looses focus
local function onFocusLost(enterPressed, inputObject)
	-- Check if TextBox lost focus because the user pressed "Enter"
	if enterPressed then
		-- Add the message to the GUI (no need to filter messages from the local player)
		addMessage(player, chatInput.Text) --THIS IS THE PROBLEM,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		-- Send message to the server to get filtered and sent to other players
		chatMessageEvent:FireServer(chatInput.Text)
		-- Reset TextBox text
		chatInput.Text = "Enter text here"
	end
end
 
-- Function when the player presses the slash key
local function onSlashPressed(actionName, inputState, inputObject)
	if inputState == Enum.UserInputState.End then
		-- If key up then capture focus in the TextBox so the user can start typing
		chatInput:CaptureFocus()
	end
end
 
 
-- Bind functions
chatMessageEvent.OnClientEvent:connect(addMessage)
chatInput.FocusLost:connect(onFocusLost)
ContextActionService:BindAction("Chatting", onSlashPressed, false, Enum.KeyCode.Slash)