Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Overwriting a default chat script?

Asked by 5 years ago

As a default, when joining a server in Roblox, a message always appears saying, "Chat '/?' or '/help' for a list of chat commands."

I want to remove this and replace it with my own custom welcome message.

I have managed to create my own new welcome message using: game.StarterGui:SetCore("ChatMakeSystemMessage", {Text = "Welcome message."})

However, the default message still remains. I was browsing through the default scripts that load when a player joins and found the relevant script.

In the script Chat>ChatModules>ChatCommandsTeller there is a line that creates this message.

I want to know if it is possible to overwrite this default script or somehow prevent it from running.

(Default script provided by Roblox)

--  // 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 = {} end

if not ChatLocalization.FormatMessageToSend or not ChatLocalization.LocalizeFormattedMessage then
    function ChatLocalization:FormatMessageToSend(key,default) return default end
end

local function Run(ChatService)

    local function ShowJoinAndLeaveCommands()
        -- Irrelevant function
    end

    local function ProcessCommandsFunction(fromSpeaker, message, channel)
        -- Irrelevant function
    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:FormatMessageToSend("GameChat_ChatCommandsTeller_AllChannelWelcomeMessage","Chat '/?' or '/help' for a list of chat commands.")
        end
    end
end

return Run

1 answer

Log in to vote
1
Answered by 5 years ago
Edited 5 years ago

Good news, I know I am late, but I was searching for something else and stumbled upon this question. After messing around a bit I figured out it has something to do with the localization table. So if you change this part "GameChat_ChatCommandsTeller_AllChannelWelcomeMessage" to anything else such as ""GameChat_ChatCommandsTeller_CustomChatMessage" It will allow you to change the text. Here is the script.


-- // 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 = {} end if not ChatLocalization.FormatMessageToSend or not ChatLocalization.LocalizeFormattedMessage then function ChatLocalization:FormatMessageToSend(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:FormatMessageToSend("GameChat_ChatCommandsTeller_Desc","These are the basic chat commands."), channel) if ChatSettings.AllowMeCommand then speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_MeCommand","/me <text> : roleplaying command for doing actions."), channel) end speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_SwitchChannelCommand","/c <channel> : switch channel menu tabs."), channel) if ShowJoinAndLeaveCommands() then speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_JoinChannelCommand","/join <channel> or /j <channel> : join channel."), channel) speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_LeaveChannelCommand","/leave <channel> or /l <channel> : leave channel. (leaves current if none specified)"), channel) end speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_WhisperCommand","/whisper <speaker> or /w <speaker> : open private message channel with speaker."), channel) speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_MuteCommand","/mute <speaker> : mute a speaker."), channel) speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("GameChat_ChatCommandsTeller_UnMuteCommand","/unmute <speaker> : unmute a speaker."), channel) local player = speaker:GetPlayer() if player and player.Team then speaker:SendSystemMessage(ChatLocalization:FormatMessageToSend("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:FormatMessageToSend("GameChat_ChatCommandsTeller_CustomChatMessage","----------------------CUSTOM MESSAGE HERE-----------------------------------") end end end return Run
Ad

Answer this question