How can I send a message to 1 player (all other players can't see)

I’ve been trying to read up but I can’t find what I’m looking for.

Any ideas or links to read up?

What do you mean by a “message”? A GUI that shows a text? You can use remote events using the :FireClient method to, for example, update a piece of GUI from the Server to a certain client. A guide can help you.

Eh, I want to somehow not show chat in all chat (if player is in party) and how do I get the chat message that is typed?

To make the system say a message for a user you would need to do this on the client

game:GetService(“StarterGUI”):SetCore(“ChatMakeSystemMessage”, text,colour,font,size)

Okay, how do I get the users text?

And how can I delete or prevent the regular chat from showing (since I wanna basically make a private chat system)

So all text will be sent via this method, but not shown as normal text. Almost erased, and then the text chat string be sent via this method?

To get the users text you would need to create your own events if your doing a private chat sys

If you want to use a private chat system you would need to forget about what i just said above because that will only work with the default chat system

in order to hide the current chat system you would need to do this

game.StarterGui:SetCoreGuiEnabled(“Chat”,false)

1 Like

Portray this step by step:

  1. Sender tells server they are sending a message with a target recipient through RemoteEvent:FireServer(target, message) – order can be flipped
  2. Server processes message with appropriate filter, the filter is directed to the target
  3. Server sends the message to the target through RemoteEvent:FireClient(target, message)
  4. Recipient receives the message

Cool, finally. How do I get the message? What is the event for when a player types chat? So I can get their chat string?

The roblox one is .Chatted as simple as that but i thought you were doing a private system

Client:

local RemoteEvent = game.ReplicatedStorage.RemoteEvent
local function Message(SendText) do 
game:GetService(“StarterGUI”):SetCore(“ChatMakeSystemMessage”,SendText,colour,font,size)
end
RemoteEvent.OnClientEvent:Connect(Message)

Server:

local RemoteEvent = game.ReplicatedStorage.RemoteEvent
for i,v in pairs(game.Players:GetPlayers()) do
if v:IsA("Player") then
if v.Name == "Roblox" then
RemoteEvent:FireClient(v,"Message")
end
end
end
1 Like

I am, but how do I prevent normal chat from being emitted?

Like, if I’m going to show the text as “Party Chat: X”

How do I stop the normal chat message from being sent to the server? So I don’t get x2 chats being sent if that makes sense?

You can grab the client script for chat, and edit them and create an if statement. And if player is typing in “Party Chat” then it fires an event to the server to relay message to others in the same party.

And if player is not in party chat then resume normal functions

I don’t think I am explaining good enough.

Like if they are in party chat.

They will type lets say “Hello!”

How do I stop “Hello” from being shown to everyone. Because ROBLOX chat by default will be shown to the server. This part I don’t know how to do.

Cause if I don’t find a way to stop the regular chat, then it defeats the purpose.

Yes I just explained how you could possibly do this in my reply.

In the client code for the chat, you can find the part where it sends the message to server. And there you can add your own if statement to check if the player is messaging party chat, in which case add your own remote and fire it.

Yea but that’s what I’m asking. Where is this “client code” located? For me to edit? I have no idea :confused:

Anyone know?
/////////////////////////////////

Hello? :confused:
/////////////////////

1 Like

Roblox does have that feature in its chat. Its called whispering/private messaging. To do that, basically type /w username message
Late, but idk if you still need that.