So I’ve attempted to use FocusLost for a chat system, and it doesn’t seem to work on console devices.
First Attempt
self:NewEventSignal(Message.FocusLost:Connect(function(Enter) -- Basic Event Signal (works the same any other way.)
if Enter then -- False when trying what I did on the video below.
local Trimmed = Strip(Message.Text)
Message.Text = ""
if Trimmed ~= "" then
GetTextChannel(IsTeamChat):SendAsync(Trimmed)
end
end
CloseMessage()
end))
Second Attempt - Tried to make a Console-only version for “TextBoxFocusReleased”
-- Consoles
self:NewEventSignal(UserInputService.TextBoxFocusReleased:Connect(function(TextBox)
if TextBox == Message then
if Settings:OnConsole() then -- Console only
local Trimmed = Strip(Message.Text)
Message.Text = ""
if Trimmed ~= "" then
GetTextChannel(IsTeamChat):SendAsync(Trimmed)
end
end
CloseMessage()
end
end))
-- Other Devices
self:NewEventSignal(Message.FocusLost:Connect(function(Enter)
if Enter and not Settings:OnConsole() then -- Stops consoles
local Trimmed = Strip(Message.Text)
Message.Text = ""
if Trimmed ~= "" then
GetTextChannel(IsTeamChat):SendAsync(Trimmed)
end
end
CloseMessage()
end))
That also didn’t work (shocker)
I’ve discovered whenever the player uses the “Done” button on Xbox or PlayStation, it does not register as FocusLost properly in-game.
I tested the controller on Xbox and PC. When I open the Console Menu on PC, it counts FocusLost.
Exiting the menu, it doesn’t.
Example - On PC, but it has the same effect on other devices.
Apologies if this isn’t the easiest to understand; I was having trouble explaining it.
If you have any inquiries, please let me know.
Note: I didn’t know if I should submit this in Bug Reports because I’m not entirely sure this is a bug or my own error.

