TextChannel:DisplaySystemMessage() won't work

I assume whenever a ‘message’ is sent to a TextChannel it carries a ‘status’, which in your case it was Enum.TextChatMessageStatus.Success which means the message was delivered. Quite odd and I’m not quite sure why it’d print ‘success’.

Just make sure you have your ChatVersion on TextChatService:
image

And I’m not sure why you’re using
local RBXGeneral = TextChannels and TextChannels.RBXSystem.
Just use:

local textChannels = TextChatService:WaitForChild("TextChannels")
local generalChannel = textChannels:WaitForChild("RBXGeneral")

Do you really need a remote event for this? The client uses the PlayerAdded event too you know. No server script is needed for this.

i am so confused rn still doesn’t work Status prints Success btw

local TextChatService = game:GetService("TextChatService")
local TextChannels = TextChatService:WaitForChild("TextChannels")
local RBXGeneral = TextChannels:WaitForChild("RBXGeneral")

game:GetService("ReplicatedStorage").RemoteEvent.OnClientEvent:Connect(function(msg, playername)
	print("Hello?")
	print(msg, playername)
	local Result = RBXGeneral:DisplaySystemMessage(msg..playername)
	print(Result.Status)
end)

that’s not even the problem rn

Ok.

-- client:

game.Players.PlayerAdded:Connect(function(player)
    game.TextChatService.TextChannels.RBXGeneral:DisplaySystemMessage(`{player.Name} just joined the game.`)
end)

This is really all you need.

does that show to the other players?

Indeed it should display to other clients perfectly fine.

If you’re testing this in a solo place. Try adding a yield before firing to all clients, such as:

game:GetService("Players").PlayerAdded:Connect(function(player)
    task.wait(2)

    game:GetService("ReplicatedStorage").RemoteEvent:FireAllClients("Welcome ", player.Name)
end)

player added doesn’t even work on the client

game:GetService("Players").PlayerAdded:Connect(function()
	print("Client Player ADded")
end)

image

players.PlayerAdded does indeed work on the client. But you’re probably testing this in a solo place. Which means that the event loads in after the player joins, therefore the event doesn’t get fired for your own player. But for other players, it will display it.


OMGGGG FINALLY MAN! TSYM

1 Like

You should still avoid using a RemoteEvent, you don’t need it. The client will not fire PlayerAdded for itself though. But, why would one need a welcome message for theirself?

btw is there a way to customize the text? like changing the colors, font, etc

1 Like

There might be a way to but I’m not entirely sure how. You ‘might’ be able to use RichText however I’m not sure if it supports it. You can try though.

its just a test btw so don’t worry about it :slight_smile:

btw last question do you know how could i get the color of this?
image

1 Like

You mean how you can get the color of the label you’re circling? It seems to be b480ff in hexadecimal.

i mean like is there any property or method for that? like player:GetChatColor() or something
cuz i have a trail and the color will be based on what color on there chattextcolor

1 Like

I’m not sure if this is deprecated, however I found this topic:

And you can use the ComputeNameColor function down below:

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
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.