This is a working version of the old 2015-2022 chat system forked from a ~2016 version. It uses TextChatService, has a functional bubblechat, and hooks into the coregui chat button so it seamlessly works.
Known Issues:
-Fading had to be disabled due to the logic breaking.
i noticed i had member status while browsing an update post so i decided im going to share something i made yesterday when i was bored. the chat window is based on the newest version of the chat system i could find that was still a single script, but bubblechat was taken straight from chat service.
features:
-supports both the old commands and the new ones (mostly)
-supports the coregui chat button without topbar+
-has classic bubble chat
known issues:
-displaynames don’t currently work
-fading had to be disabled as its a bit broken
-though it didnt occur, i dont know if the bubblechat glitch exists in the version i modified
Old chat system? I used the old chat system once. But then they replaced it. They replaced it with a new chat system. And the new chat system makes me miss the
Yooo this is awesome i hope theres a finished version of this because it looks really good!
(also that it doesnt cut off NPC dialogue like legacychatsystem does for some reason)
The NPC dialogue part is a core script and it would be hard to make a one-size-fits-all solution for that, it just hasnt been updated in 8 years so the bug in an engine update that made bubble chat need patched broke that too
Forgive me for not testing this myself before posting this, I just don’t have the means to test it right now.
The legacy chat system had issues on mobile (for me, anyways. With a relatively old phone), one of which being an issue with text wrapping. Sometimes when the final word or two of a message landed outside the right-side edge of the chatbox, instead of text wrapping to the next line, those words were cut off completely.
I don’t remember off the top of my head if this has been an issue with the new TextChatService system, I don’t think it has. But would it be safe to assume your resource won’t reinstate those old legacy issues? Or at the very least, the text wrapping issue? Is this mainly for visuals or legacy functionality too? i.e. no emoji list, command previews, etc.
(Bubble chat would still show the entirety of the message, it’s just an annoying bug regardless. Especially when the person you’re trying to read messages from isn’t nearby and their message is cut short.)
This is quite literally just the backend being changes slightly so it probably has those issues if it didnt start before 2016/2017 (and wasnt caused by lua updates with no chat fixes)
if you give me an accurate reproduction instructions thing I can try and fix it if it exists as I did no know of the bug
Reproducing the issue using Legacy chat is pretty easy. You can test it with various NPCs with different length names (although name length shouldn’t matter, it still helps tests), have them send a message in chat that’s a random length (aiming for messages that would typically be close to the point of dropping to a new line), and if it happens to land in that bug’s sweet spot, it should occur and cut off the ending of their message in the chatbox.
If it doesn’t, then I’d say it’s safe to assume it won’t happen with your resource (at least until someone gets it and reports it). I’ll give it a test whenever I can get the time. But if you also get the time, it’d probably be worth testing it out yourself as well.
Edit: Here’s a thread from 2019 that addressed the bug I’m referring to. Has a prime example screenshot and helpful information on the bug.
if someone need just the old bubble chat then here is the script for this
local tcs = game:GetService("TextChatService")
local uis = game:GetService("UserInputService")
local players = game:GetService("Players")
local player = players.LocalPlayer
--tcs:WaitForChild("ChatWindowConfiguration").Enabled = false
--tcs:WaitForChild("ChatInputBarConfiguration").Enabled = false
if tcs:CanUserChatAsync(player.UserId) then
local bubblechat = require(script:WaitForChild("BubbleChat"))
tcs:WaitForChild('BubbleChatConfiguration').Changed:Connect(function(prop)
if prop == "Enabled" then
script:SetAttribute("BubbleChat", tcs.BubbleChatConfiguration.Enabled)
end
end)
script:GetAttributeChangedSignal("BubbleChat"):Connect(function()
tcs.BubbleChatConfiguration.Enabled = script:GetAttribute("BubbleChat")
end)
local function isUDim2Value(value)
return typeof(value) == "UDim2" and value or nil
end
local function isBubbleChatOn()
return not script:GetAttribute("ClassicChat") and script:GetAttribute("BubbleChat")
end
tcs.OnIncomingMessage = function(msg)
bubblechat(msg)
end
else
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false)
end