i mean, just read the title.
when you press the button on roblox chat ingame, it doesnt pop out
i mean, just read the title.
when you press the button on roblox chat ingame, it doesnt pop out
i really need it to work, just i dont know how i deleted it
I’m pretty sure thats roblox studio being weird, just restart or re install studio this happened to me a few months ago
all i did was insert some modulescripts for the Teams in leaderboard, then chat didnt even try to work
no. ingame its also broken so uhh
It’s a studio bug. Roblox has not messed with the chat at all.
Try deleting the module and see what happens. It could be the module causing the issue.
chat is back but, i need leaderboard teams like “Start” and “Winner!” that work
You don’t need a script in order to insert leaderboard teams. In explorer, close to the bottom, you’ll see a teams section. Hover over the teams section and click on the plus. Add the team item, and then you can mess around with the properties to make it the way you want it.
no. i already did that BUT when u touch the winpad of a tower, it will change your team from Start to Winner!
issue is it doesnt work when u touch that winpad
Then I would recommend checking out this Developer Article to learn on how to do that.
Can you show us the module code? Chances are that the module uses a SetCore
method.
ChatCommandsTeller:
– // FileName: ChatCommandsTeller.lua
– // Written by: Xsitsu
– // Description: Module that provides information on default chat commands to players.
local Chat = game:GetService(“Chat”)
local ReplicatedModules = Chat:WaitForChild(“ClientChatModules”)
local ChatSettings = require(ReplicatedModules:WaitForChild(“ChatSettings”))
local ChatConstants = require(ReplicatedModules:WaitForChild(“ChatConstants”))
local ChatLocalization = nil
pcall(function() ChatLocalization = require(game:GetService(“Chat”).ClientChatModules.ChatLocalization) end)
if ChatLocalization == nil then ChatLocalization = { Get = function(key,default) return default end } end
local function Run(ChatService)
local function ShowJoinAndLeaveCommands()
if ChatSettings.ShowJoinAndLeaveHelpText ~= nil then
return ChatSettings.ShowJoinAndLeaveHelpText
end
return false
end
local function ProcessCommandsFunction(fromSpeaker, message, channel)
if (message:lower() == "/?" or message:lower() == "/help") then
local speaker = ChatService:GetSpeaker(fromSpeaker)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_Desc","These are the basic chat commands."), channel)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_MeCommand","/me <text> : roleplaying command for doing actions."), channel)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_SwitchChannelCommand","/c <channel> : switch channel menu tabs."), channel)
if ShowJoinAndLeaveCommands() then
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_JoinChannelCommand","/join <channel> or /j <channel> : join channel."), channel)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_LeaveChannelCommand","/leave <channel> or /l <channel> : leave channel. (leaves current if none specified)"), channel)
end
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_WhisperCommand","/whisper <speaker> or /w <speaker> : open private message channel with speaker."), channel)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_MuteCommand","/mute <speaker> : mute a speaker."), channel)
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_UnMuteCommand","/unmute <speaker> : unmute a speaker."), channel)
local player = speaker:GetPlayer()
if player and player.Team then
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatCommandsTeller_TeamCommand","/team <message> or /t <message> : send a team chat to players on your team."), channel)
end
return true
end
return false
end
ChatService:RegisterProcessCommandsFunction("chat_commands_inquiry", ProcessCommandsFunction, ChatConstants.StandardPriority)
if ChatSettings.GeneralChannelName then
local allChannel = ChatService:GetChannel(ChatSettings.GeneralChannelName)
if (allChannel) then
allChannel.WelcomeMessage = ChatLocalization:Get("GameChat_ChatCommandsTeller_AllChannelWelcomeMessage","Chat '/?' or '/help' for a list of chat commands.")
end
end
end
return Run
ExtraDataInitializer:
– // FileName: ExtraDataInitializer.lua
– // Written by: Xsitsu
– // Description: Module that sets some basic ExtraData such as name color, and chat color.
local SpecialChatColors = {
Groups = {
{
— ROBLOX Interns group
GroupId = 2868472,
Rank = 100,
ChatColor = Color3.new(175/255, 221/255, 1),
},
{
— Stravolent
GroupId = 4406211,
Rank = 50,
ChatColor = Color3.new(1, 215/255, 0),
},
{
— ROBLOX Admins group
GroupId = 1200769,
ChatColor = Color3.new(1, 215/255, 0),
},
},
Players = {
{
--- Left as an example
-- UserId = 2231221,
-- ChatColor = Color3.new(205/255, 0, 0)
}
}
}
local tagColors = {
Mod=Color3.fromRGB(0,255,255),
Dev=Color3.fromRGB(236,178,249),
Owner=Color3.fromRGB(101,103,117),
}
local function MakeIsInGroup(groupId, requiredRank)
assert(type(requiredRank) == “nil” or type(requiredRank) == “number”, “requiredRank must be a number or nil”)
return function(player)
if player and player.UserId then
local userId = player.UserId
local inGroup = false
local success, err = pcall(function() -- Many things can error is the IsInGroup check
if requiredRank then
inGroup = player:GetRankInGroup(groupId) > requiredRank
else
inGroup = player:IsInGroup(groupId)
end
end)
if not success and err then
print("Error checking in group: " ..err)
end
return inGroup
end
return false
end
end
local function ConstructIsInGroups()
if SpecialChatColors.Groups then
for _, group in pairs(SpecialChatColors.Groups) do
group.IsInGroup = MakeIsInGroup(group.GroupId, group.Rank)
end
end
end
ConstructIsInGroups()
local Players = game:GetService(“Players”)
function GetSpecialChatColor(speakerName)
if SpecialChatColors.Players then
local playerFromSpeaker = Players:FindFirstChild(speakerName)
if playerFromSpeaker then
for _, player in pairs(SpecialChatColors.Players) do
if playerFromSpeaker.UserId == player.UserId then
return player.ChatColor
end
end
end
end
if SpecialChatColors.Groups then
for _, group in pairs(SpecialChatColors.Groups) do
if group.IsInGroup(Players:FindFirstChild(speakerName)) then
return group.ChatColor
end
end
end
end
local function Run(ChatService)
local NAME_COLORS =
{
Color3.new(253/255, 41/255, 67/255), – BrickColor.new(“Bright red”).Color,
Color3.new(1/255, 162/255, 255/255), – BrickColor.new(“Bright blue”).Color,
Color3.new(2/255, 184/255, 87/255), – BrickColor.new(“Earth green”).Color,
BrickColor.new(“Bright violet”).Color,
BrickColor.new(“Bright orange”).Color,
BrickColor.new(“Bright yellow”).Color,
BrickColor.new(“Light reddish violet”).Color,
BrickColor.new(“Brick yellow”).Color,
}
local function GetNameValue(pName)
local value = 0
for index = 1, #pName do
local cValue = string.byte(string.sub(pName, index, index))
local reverseIndex = #pName - index + 1
if #pName%2 == 1 then
reverseIndex = reverseIndex - 1
end
if reverseIndex%4 >= 2 then
cValue = -cValue
end
value = value + cValue
end
return value
end
local color_offset = 0
local function ComputeNameColor(pName)
return NAME_COLORS[((GetNameValue(pName) + color_offset) % #NAME_COLORS) + 1]
end
local function GetNameColor(speaker)
local player = speaker:GetPlayer()
if player then
if player.Team ~= nil then
return player.TeamColor.Color
end
end
return ComputeNameColor(speaker.Name)
end
ChatService.SpeakerAdded:connect(function(speakerName)
local speaker = ChatService:GetSpeaker(speakerName)
local plr = game.Players:FindFirstChild(speakerName)
if not speaker:GetExtraData("NameColor") then
speaker:SetExtraData("NameColor", GetNameColor(speaker))
end
if not speaker:GetExtraData("ChatColor") then
local specialChatColor = GetSpecialChatColor(speakerName)
if specialChatColor then
speaker:SetExtraData("ChatColor", specialChatColor)
end
end
if not speaker:GetExtraData("Tags") then
local tags = {}
if plr then
if tagColors[plr:GetRoleInGroup(4406211)] then
table.insert(tags,{TagText=plr:GetRoleInGroup(4406211),TagColor=tagColors[plr:GetRoleInGroup(4406211)]})
end
end
speaker:SetExtraData("Tags", tags)
end
end)
local PlayerChangedConnections = {}
Players.PlayerAdded:connect(function(player)
local changedConn = player.Changed:connect(function(property)
local speaker = ChatService:GetSpeaker(player.Name)
if speaker then
if property == "TeamColor" or property == "Neutral" or property == "Team" then
speaker:SetExtraData("NameColor", GetNameColor(speaker))
end
end
end)
PlayerChangedConnections[player] = changedConn
end)
Players.PlayerRemoving:connect(function(player)
local changedConn = PlayerChangedConnections[player]
if changedConn then
changedConn:Disconnect()
end
PlayerChangedConnections[player] = nil
end)
end
return Run
TeamChat:
– // FileName: TeamChat.lua
– // Written by: Xsitsu
– // Description: Module that handles all team chat.
local Chat = game:GetService(“Chat”)
local ReplicatedModules = Chat:WaitForChild(“ClientChatModules”)
local ChatSettings = require(ReplicatedModules:WaitForChild(“ChatSettings”))
local ChatConstants = require(ReplicatedModules:WaitForChild(“ChatConstants”))
local ChatLocalization = nil
pcall(function() ChatLocalization = require(game:GetService(“Chat”).ClientChatModules.ChatLocalization) end)
if ChatLocalization == nil then ChatLocalization = {} function ChatLocalization:Get(key,default) return default end end
local errorTextColor = ChatSettings.ErrorMessageTextColor or Color3.fromRGB(245, 50, 50)
local errorExtraData = {ChatColor = errorTextColor}
local function Run(ChatService)
local Players = game:GetService("Players")
local channel = ChatService:AddChannel("Team")
channel.WelcomeMessage = ChatLocalization:Get("GameChat_TeamChat_WelcomeMessage","This is a private channel between you and your team members.")
channel.Joinable = false
channel.Leavable = false
channel.AutoJoin = false
channel.Private = true
local function TeamChatReplicationFunction(fromSpeaker, message, channelName)
local speakerObj = ChatService:GetSpeaker(fromSpeaker)
local channelObj = ChatService:GetChannel(channelName)
if (speakerObj and channelObj) then
local player = speakerObj:GetPlayer()
if (player) then
for i, speakerName in pairs(channelObj:GetSpeakerList()) do
local otherSpeaker = ChatService:GetSpeaker(speakerName)
if (otherSpeaker) then
local otherPlayer = otherSpeaker:GetPlayer()
if (otherPlayer) then
if (player.Team == otherPlayer.Team) then
local extraData = {
NameColor = player.TeamColor.Color,
ChatColor = player.TeamColor.Color,
ChannelColor = player.TeamColor.Color
}
otherSpeaker:SendMessage(message, channelName, fromSpeaker, extraData)
else
--// Could use this line to obfuscate message for cool effects
--otherSpeaker:SendMessage(message, channelName, fromSpeaker)
end
end
end
end
end
end
return true
end
channel:RegisterProcessCommandsFunction("replication_function", TeamChatReplicationFunction, ChatConstants.LowPriority)
local function DoTeamCommand(fromSpeaker, message, channel)
if message == nil then
message = ""
end
local speaker = ChatService:GetSpeaker(fromSpeaker)
if speaker then
local player = speaker:GetPlayer()
if player then
if player.Team == nil then
speaker:SendSystemMessage(ChatLocalization:Get("GameChat_TeamChat_CannotTeamChatIfNotInTeam","You cannot team chat if you are not on a team!"), channel, errorExtraData)
return
end
local channelObj = ChatService:GetChannel("Team")
if channelObj then
if not speaker:IsInChannel(channelObj.Name) then
speaker:JoinChannel(channelObj.Name)
end
if message and string.len(message) > 0 then
speaker:SayMessage(message, channelObj.Name)
end
speaker:SetMainChannel(channelObj.Name)
end
end
end
end
local function TeamCommandsFunction(fromSpeaker, message, channel)
local processedCommand = false
if message == nil then
error("Message is nil")
end
if channel == "Team" then
return false
end
if string.sub(message, 1, 6):lower() == "/team " or message:lower() == "/team" then
DoTeamCommand(fromSpeaker, string.sub(message, 7), channel)
processedCommand = true
elseif string.sub(message, 1, 3):lower() == "/t " or message:lower() == "/t" then
DoTeamCommand(fromSpeaker, string.sub(message, 4), channel)
processedCommand = true
elseif string.sub(message, 1, 2):lower() == "% " or message:lower() == "%" then
DoTeamCommand(fromSpeaker, string.sub(message, 3), channel)
processedCommand = true
end
return processedCommand
end
ChatService:RegisterProcessCommandsFunction("team_commands", TeamCommandsFunction, ChatConstants.StandardPriority)
local function GetDefaultChannelNameColor()
if ChatSettings.DefaultChannelNameColor then
return ChatSettings.DefaultChannelNameColor
end
return Color3.fromRGB(35, 76, 142)
end
local function PutSpeakerInCorrectTeamChatState(speakerObj, playerObj)
if playerObj.Neutral or playerObj.Team == nil then
speakerObj:UpdateChannelNameColor(channel.Name, GetDefaultChannelNameColor())
if speakerObj:IsInChannel(channel.Name) then
speakerObj:LeaveChannel(channel.Name)
end
elseif not playerObj.Neutral and playerObj.Team then
speakerObj:UpdateChannelNameColor(channel.Name, playerObj.Team.TeamColor.Color)
if not speakerObj:IsInChannel(channel.Name) then
speakerObj:JoinChannel(channel.Name)
end
end
end
ChatService.SpeakerAdded:connect(function(speakerName)
local speakerObj = ChatService:GetSpeaker(speakerName)
if speakerObj then
local player = speakerObj:GetPlayer()
if player then
PutSpeakerInCorrectTeamChatState(speakerObj, player)
end
end
end)
local PlayerChangedConnections = {}
Players.PlayerAdded:connect(function(player)
local changedConn = player.Changed:connect(function(property)
local speakerObj = ChatService:GetSpeaker(player.Name)
if speakerObj then
if property == "Neutral" then
PutSpeakerInCorrectTeamChatState(speakerObj, player)
elseif property == "Team" then
PutSpeakerInCorrectTeamChatState(speakerObj, player)
if speakerObj:IsInChannel(channel.Name) then
speakerObj:SendSystemMessage(
string.gsub(
ChatLocalization:Get(
"GameChat_TeamChat_NowInTeam",
string.format("You are now on the '%s' team.", player.Team.Name)
),
"{RBX_NAME}",player.Team.Name
),
channel.Name
)
end
end
end
end)
PlayerChangedConnections[player] = changedConn
end)
Players.PlayerRemoving:connect(function(player)
local changedConn = PlayerChangedConnections[player]
if changedConn then
changedConn:Disconnect()
end
PlayerChangedConnections[player] = nil
end)
end
return Run
Team:
– // FileName: Team.lua
– // Written by: Partixel/TheGamer101
– // Description: Team chat bar manipulation.
local PlayersService = game:GetService(“Players”)
local TEAM_COMMANDS = {"/team ", "/t ", "% "}
function IsTeamCommand(message)
for i = 1, #TEAM_COMMANDS do
local teamCommand = TEAM_COMMANDS[i]
if string.sub(message, 1, teamCommand:len()):lower() == teamCommand then
return true
end
end
return false
end
local teamStateMethods = {}
teamStateMethods.__index = teamStateMethods
local util = require(script.Parent:WaitForChild(“Util”))
local TeamCustomState = {}
function teamStateMethods:EnterTeamChat()
self.TeamChatEntered = true
self.MessageModeButton.Size = UDim2.new(0, 1000, 1, 0)
self.MessageModeButton.Text = “[Team]”
self.MessageModeButton.TextColor3 = self:GetTeamChatColor()
local xSize = self.MessageModeButton.TextBounds.X
self.MessageModeButton.Size = UDim2.new(0, xSize, 1, 0)
self.TextBox.Size = UDim2.new(1, -xSize, 1, 0)
self.TextBox.Position = UDim2.new(0, xSize, 0, 0)
self.OriginalTeamText = self.TextBox.Text
self.TextBox.Text = " "
end
function teamStateMethods:TextUpdated()
local newText = self.TextBox.Text
if not self.TeamChatEntered then
if IsTeamCommand(newText) then
self:EnterTeamChat()
end
else
if newText == “” then
self.MessageModeButton.Text = “”
self.MessageModeButton.Size = UDim2.new(0, 0, 0, 0)
self.TextBox.Size = UDim2.new(1, 0, 1, 0)
self.TextBox.Position = UDim2.new(0, 0, 0, 0)
self.TextBox.Text = “”
—Implement thien setting cursor positon is a thing.
—self.TextBox.Text = self.OriginalTeamText
self.TeamChatEntered = false
—Temporary until setting cursor position…
self.ChatBar:ResetCustomState()
self.ChatBar:CaptureFocus()
end
end
end
function teamStateMethods:GetMessage()
if self.TeamChatEntered then
return "/t " …self.TextBox.Text
end
return self.TextBox.Text
end
function teamStateMethods:ProcessCompletedMessage()
return false
end
function teamStateMethods:Destroy()
self.MessageModeConnection:disconnect()
self.Destroyed = true
end
function teamStateMethods:GetTeamChatColor()
local LocalPlayer = PlayersService.LocalPlayer
if LocalPlayer.Team then
return LocalPlayer.Team.TeamColor.Color
end
if self.ChatSettings.DefaultChannelNameColor then
return self.ChatSettings.DefaultChannelNameColor
end
return Color3.fromRGB(35, 76, 142)
end
function TeamCustomState.new(ChatWindow, ChatBar, ChatSettings)
local obj = setmetatable({}, teamStateMethods)
obj.Destroyed = false
obj.ChatWindow = ChatWindow
obj.ChatBar = ChatBar
obj.ChatSettings = ChatSettings
obj.TextBox = ChatBar:GetTextBox()
obj.MessageModeButton = ChatBar:GetMessageModeTextButton()
obj.OriginalTeamText = “”
obj.TeamChatEntered = false
obj.MessageModeConnection = obj.MessageModeButton.MouseButton1Click:connect(function()
local chatBarText = obj.TextBox.Text
if string.sub(chatBarText, 1, 1) == " " then
chatBarText = string.sub(chatBarText, 2)
end
obj.ChatBar:ResetCustomState()
obj.ChatBar:SetTextBoxText(chatBarText)
obj.ChatBar:CaptureFocus()
end)
obj:EnterTeamChat()
return obj
end
function ProcessMessage(message, ChatWindow, ChatBar, ChatSettings)
if ChatBar.TargetChannel == “Team” then
return
end
if IsTeamCommand(message) then
return TeamCustomState.new(ChatWindow, ChatBar, ChatSettings)
end
return nil
end
return {
[util.KEY_COMMAND_PROCESSOR_TYPE] = util.IN_PROGRESS_MESSAGE_PROCESSOR,
[util.KEY_PROCESSOR_FUNCTION] = ProcessMessage
}
the chat is back, however i need to make Teams so uhh