This same behavior happens when creating a custom chat system too. UserInputService.InputBegan detects input from the user. If you use TextBox:CaptureFocus() within the same frame when the user presses “slash” or any other key, the TextBox.Text will also include it as a typed character.
UserInputService.InputBegan:Connect(function(Input, IsGame)
if IsGame then
return
end
if Input.KeyCode == Enum.KeyCode.Slash then
task.wait(0.1)
TextBox:CaptureFocus()
end
end)
This can be patched by adding a wait time before calling TextBox:CaptureFocus() within the UserInputService.InputBegan event.
I noticed this as well when I was playing Cabin Crew Simulator (which also has the new TextChatService), the chat box would type the “/“ when I pressed the “/“.
This also seems to be a recent problem, as this wasn’t happening at the beginning of the week if I am correct.
It seems like this issue is related to this change regarding user input frame ordering. It seems like the textbox is getting input and capturing focus before the additional input capture is called after the heartbeat step.
It would also explain why this works because the input isn’t being captured next frame.
This issue is also occurring to my custom chat system. I use task.defer to capture focus of the TextBox on the next resumption cycle to avoid capturing the “/”. This trick worked as expected up until today.
Also getting very annoyed players at my experience. Parts of my experience depends on TextChatService and I cannot revert back to the classic chat without redoing these portions. Hoping for an update on this soon.
Hi everyone, we’ve identified a fix which should be included in our release next week. The team is also taking steps to ensure this regression doesn’t happen again in the future.