Chat channel tabs not showing up

I recently got a commission where I ironed out a few bugs. I was able to get most of them, but this one I just couldn’t place.

When one joins the game and the chat opens, the channel tabs are just… gone. The issue used to occur only on mobile, but now it happens on desktop as well. Here’s a screenshot:

image

There should be the channel tabs “All” and “System”. There’s no errors in the Output or anything, but I think the bug is coming from this part of this module (I didn’t make it):

ChatSettings.WindowChatSettings = {
	--// Chat Behavior \\--
	WindowDraggable = false, --	Determine whether clients can freely move their chat windows. // Type: Boolean // Default: False
	WindowResizable = false, -- Spawns a tab in the bottom-right corner of the chat window, allowing the user to push or pull it to change the size of their chat window. // Type: Boolean // Default: False
	ShowChannelsBar = true, --A list of non-private chat channels will be shown at the top of the chat window. Further behaviour modifications available. // Type: Boolean // Default: False
	GamepadNavigationEnabled = false, --This allows for navigation of the chat window with game pads. A strong doubt you’d ever need it, but someone may. // Type: Boolean // Default: False
	AllowMeCommand = false, --Enable the dreaded /me [text] command for players to use. Added due to abuse by bad actors. // Type: Boolean // Default: False
	ShowUserOwnFilteredMessage = true, --Determines if users see their own messages as filtered or not. Still appear filtered to other users. You should probably just leave this alone. // Type: Boolean // Default: True
	ChatOnWithTopBarOff = true, -- If you ever use SetCore(“TopbarEnabled”, false) but want the chat to still work, this is for you. // Type: Boolean // Default: False
	ScreenGuiDisplayOrder = 6, --Modifies the order of display for the ScreenGui. You probably won’t need to touch this. // Type: Number // Default: 6
	ShowFriendJoinNotification = true, --Will send a message to your window if a friend joins your game. // Type: Boolean // Default: True
	BubbleChatEnabled = true, --Enables BubbleChat. Self explanatory. // Type: Boolean // Default: True
	ClassicChatEnabled = true, --Enables ClassicChat. // Type: Boolean // Default: True

	--// Text \\--
	ChatWindowTextSize = 18, --Size of chats in the chat area. // Type: Number // Default: 18
	ChatChannelsTabTextSize = 18, --Size of the channel labels. // Type: Number // Default: 18
	ChatBarTextSize	 = 18, --Size of the text you type in the bar. // Type: Number // Default: 18
	ChatWindowTextSizePhone = 14, --ChatWindowTextSize for mobile. // Type: Number // Default: 14
	ChatChannelsTabTextSizePhone = 18, --ChatChannelsTabTextSize for mobile. // Type: Number // Default: 18
	ChatBarTextSizePhone = 16, --ChatBarTextSize for mobile. // Type: Number // Default: 14

	--// Font \\--
	DefaultFont = Enum.Font.SourceSansBold, --Universal font. // Type: Enum.Font // Default: SourceSansBold
	ChatBarFont = Enum.Font.SourceSansBold, --Font for the chat bar. // Type: Enum.Font // Default: SourceSansBold

	--// Colors \\--
	BackGroundColor	 = Color3.new(0, 0, 0), --Chat window background. // Type: Color3 // Default: new(0, 0, 0)
	DefaultMessageColor = Color3.new(1, 1, 1), --Default message colour if ExtraData not set. // Type: Color3 // Default: new(1, 1, 1)
	DefaultNameColor = Color3.new(1,1,1), --Default name colour if ExtraData not set. // Type: // Color3 // Default: new(1, 1, 1)
	ChatBarBackGroundColor = Color3.new(0, 0, 0), --Background surrounding chat bar. // Type: Color3 // Default: new(0, 0, 0)
	ChatBarBoxColor = Color3.new(1, 1, 1), --Actual chat box. // Type: // Default: Color3 new(1, 1, 1)
	ChatBarTextColor = Color3.new(0, 0, 0), --Text inputted into the chat bar. // Type: Color3 // Default: new(0, 0, 0)
	ChannelsTabUnselectedColor = Color3.new(0, 0, 0), --Unselected channels. Use if ShowChannelsBar is on. // Type: Color3 // Default: new(0, 0, 0)
	ChannelsTabSelectedColor = Color3.fromRGB(30, 30, 30), --Same as above, except for a selected channel. // Type: Color3 // Default: fromRGB(30, 30, 30)
	DefaultChannelNameColor = Color3.fromRGB(35, 76, 142), --Self explanatory. // Type: Color3 // Default: fromRGB(35, 76, 142)
	WhisperChannelNameColor = Color3.fromRGB(102, 14, 102), --Channel when a whisper is open. // Type: Color3 // Default: fromRGB(102, 14, 102)
	ErrorMessageTextColor = Color3.fromRGB(245, 50, 50), --Errors sent in the chat area. // Type: Color3 // fromRGB(245, 50, 50)

	--// Window \\--
	MinimumWindowSize = UDim2.new(0.3, 0, 0.25, 0), --Type: UDim2 // Default: {0.3, 0}, {0.25, 0}
	MaximumWindowSize = UDim2.new(1, 0, 1, 0), --Type: UDim2 // Default: {1, 0}, {1, 0}
	DefaultWindowPosition = UDim2.new(0, 0, 0, 0), --Type: UDim2 // Default: {0, 0}, {0, 0}
	extraOffset = 24, --Calculation to fit chat bar. // Type: Number // Default: (7 * 2) + (5 * 2) or 24
	DefaultWindowSizePhone = UDim2.new(0.4, 0, 0.45, 24), --Type: UDim2 // Default: {0.5, 0}, {0.5, extraOffset}
	DefaultWindowSizeTablet = UDim2.new(0.4, 0, 0.45, 24), --Type: UDim2 // Default: {0.4, 0}, {0.3, extraOffset}
	DefaultWindowSizeDesktop = UDim2.new(0.4, 0, 0.45, 24), --Type: UDim2 // Default: {0.3, 0}, {0.25, extraOffset}

	--// Fade \\--
	ChatWindowBackgroundFadeOutTime = 0.5, --Time until background fades. // Type: Number // Default: 0.5
	ChatWindowTextFadeOutTime = 30, --Time before window fades if no interaction with the chat window is made. // Type: Number // 30
	ChatDefaultFadeDuration = 0.8, --How long fades last. // Type: Number // Default: 0.8
	ChatShouldFadeInFromNewInformation = false, --Show chat if new information is sent. // Type: Boolean // Default: False
	ChatAnimationFPS = 20, --Type: Number // Default: 20.0

	--// Channel \\--
	GeneralChannelName = "All", --Main chat room. Set to nil to remove or another string for a new name. Allows you to manage chatting yourself by adding your own channels. // Type: String or nil // Default: All
	EchoMessagesInGeneralChannel = true,--Determines if messages from other channels should show up in the general channel. Set to false if ShowChannelsBar is true to keep messages in their respective rooms. // Type: Boolean // Default: True
	ChannelsBarFullTabSize = 6,--Number of channels that can be fit into the bar before scrolling enables. // Type: Number // Default: 4
	MaxChannelNameLength = 12, --Maximum characters a channel name can have. // Type: Number // Default: 12
	RightClickToLeaveChannelEnabled = false, --Use with ShowChannelsBar as true. Self explanatory. // Type: Boolean // Default: False
	MessageHistoryLengthPerChannel = 50, --How many messages are shown before old chats are deleted. // Type: Number // Default: 50
	ShowJoinAndLeaveHelpText = false, --If help text for joining and leaving channels should be shown. Useful only for custom channels. // Type: Boolean // Default: False

	--// Message \\--
	MaximumMessageLength = 200, --Maximum characters in a chat line. Probably should leave this alone. // Type: Number // Default: 200
	DisallowedWhiteSpace = {}, --Prevent this type of whitespace from being entered into chats. // Type: Table // Default: {n, r, t, v, f}
	ClickOnPlayerNameToWhisper = true, --Clicking on a name enters a whisper channel with the other player. // Type: Boolean // Default: True
	ClickOnChannelNameToSetMainChannel = true, --Click a channel to change to it. // Type: Boolean // Default: True

	--// Misc \\--
	WhisperCommandAutoCompletePlayerNames = true --Typing /w [partialName] autocompletes and enters a whisper with that user. // Type: Boolean // Default: True
}

Here’s what runs it (client-side):

if not game:IsLoaded() then
	game.Loaded:Wait()
end

local Chat = game:GetService("Chat")
local SettingsModule = require(game:GetService("ReplicatedStorage"):WaitForChild("ChatSettings"))

--// Normal Chat \\--
Chat:RegisterChatCallback(Enum.ChatCallbackType.OnCreatingChatWindow, function()
	task.wait(1) -- I added this but it didn't seem to do anything. (Ty_Scripts)
	return SettingsModule.WindowChatSettings
end)

Anyone have any idea what’s going on here? There’s potentially other scripts causing this, I can show them on request.

2 Likes

Hello just wondering if anyone knows how to fix this I can provide proof on what it supposed to look like.

2 Likes

image

We found this error coming up on the Dev Console, so it seems like a Roblox script is erroring. I tried forking it but it broke other Roblox scripts. Any idea what’s going oh ere?

1 Like

Sorry for the bump, but I noticed that this topic wasn’t solved so I figured I would provide a solution.

Create a local script in StarterPlayerScripts and paste this in:

-- Require the ChatSettings module (wait for it to load)
local Chat = game:GetService("Chat")
local ClientChatModules = Chat:WaitForChild("ClientChatModules")
local ChatSettings = require(ClientChatModules:WaitForChild("ChatSettings"))

ChatSettings.ShowChannelsBar = true -- This is what you want

Whenever you want to modify any of ChatSettings, just use this format.

For example, if I wanted to make the WindowsResizable, I would simply add a new line on the local script and paste this in:

ChatSettings.WindowResizable = true
5 Likes