Private Chat.

What Im asking for Is basically a chat room in game. Lets say I wanted to chat privately with a friend or two In a chat room, so I would press F1-F12 one of those keys just depends on what I bind It to. This chat room Is just a derma menu that pops up and It lets you Invite,kick or ban a player from your chat room. I know there’s steam chat but what If you don’t have them on your buddy list at that time? So when I press F4 or some other key I bind It to the window pops up allowing me to invite someone and when that player is invited only me and that player are able to hear each other until the window is closed. You get what I’m saying?

You are very needy…

You can already talk to people privately (I think)

A chat room would be nice though

Ya I get that a lot but hey I’m a needy person >=P

I will have a go at this and see what i can come up with

I found somthing usefull!
Its a program every one has already too!

Its called STEAM! Infact most people PLAY Gmod off of it already! But a “hidden” feature it has is to invite people to private\out of game chats that can happen between multiple people!

Ain’t I sooooo good at writing scripts to solve meaningless problems! ;D

dun dun dun

It isn’t exactly what you want, but what you requested needs to have a serverside part to it which to be honest, I can’t be bothered making.

I made this when I was first learning lua, the chat encrypter :stuck_out_tongue:

Bind a key to crypt, and type your message.

Use crypt_priv to set which “Channel” or “Level” of encryption you are using. A number around 35 is almost impossible to crack. Go above that, and it breaks for some reason.

FPtje already made one. FCHat is it’s name i think…

Flapjack would you mind re-posting it, I would to mess around with the code ^^


Product: Cryptochat
Author:¦FlapJack¦ - Stoned

local priv = CreateClientConVar(“crypt_priv” , 1 , true , false)
local chattext

function CryptFrame()
CryptMain = vgui.Create(“DFrame”)

TextCrypt = vgui.Create("DTextEntry" , CryptMain)
TextCrypt:SetSize(230 , 20)
TextCrypt:SetPos(10 , 25)
TextCrypt.OnEnter = function()
	local chattext = TextCrypt:GetValue()
	local text = "cc"..DoCrypt(chattext,priv:GetInt())
	RunConsoleCommand( "say", text )

concommand.Add(“crypt” , CryptFrame)

function Fetch(player, text, team, dead)
if string.sub(text,0,2) == “cc” then
local chat = string.sub(text,3)
local msg = DoCrypt(chat,-priv:GetInt())
local name = player:Name()
msg = name…": "…msg
hook.Add(“OnPlayerChat” ,“LULZ FATCH”, Fetch)

function DoCrypt(arg,cmd)
local text = {}
for i, char in pairs(string.ToTable(arg)) do
local byte = string.byte(char)
byte = byte + cmd
text* = string.char(byte)
return table.concat(text,"")

–[[function AddToKillaz(text)

they have a swep called Buddy Finder, it does PMs

Just Shift-Tab, then find the player and chat away.

Not everyone has the Steam overlay bound to Shift+Tab.
I personally have it bound to F10.

But anyone who has rebound the steam overlay knows what he means with “shift-tab” :slight_smile:

And yes I did make FChat, but it sucked dick. It was buggy as hell.

What if you want to PM someone who you do not have on steam?
Maybe you want to tell someone how you had his girlfriend last night? Wouldn’t want him on my Steam Friends just to tell him that.


This should work, !pm name message is the command, just say it.

Example, sending to me, !pm ogan Hey mate

*Note: It ignores case sensitivity so you can do LoGan for my name partial for example.

function PM( ply, text, toall )
    if string.Left(text, 3) == "!pm" then
		local SplitData = string.Explode(" ", text)
		if #SplitData < 3 then
			ply:PrintMessage(HUD_PRINTTALK, "[Syntax] !pm name_partial message.")
			return ""
		local Partial = SplitData[2]
		local StorePlayers = {}
		local AmountOfPlayers = 0
		local Message = ""

		for k, v in pairs(SplitData) do
			if k > 2 then
				Message = Message .. v

		for k, v in pairs(player.GetAll()) do
			if string.match(string.lower(v:Nick()), string.lower(Partial)) ~= nil then
				AmountOfPlayers = AmountOfPlayers + 1
				StorePlayers[AmountOfPlayers] = v

		if AmountOfPlayers < 1 then
			ply:PrintMessage(HUD_PRINTTALK, "Player not found.")
			return "" 
		if AmountOfPlayers > 1 then
			ply:PrintMessage(HUD_PRINTTALK, "More than one player found with name partial.")
			return "" 

		if StorePlayers[1] == ply then
			ply:PrintMessage(HUD_PRINTTALK, "You cannot PM yourself.")
			return "" 

		StorePlayers[1]:PrintMessage(HUD_PRINTTALK, "[Private] " .. ply:Nick .. ": " .. Message)
		ply:PrintMessage(HUD_PRINTTALK, "Private Message Sent to " .. StorePlayers[1]:Nick())		
        	return ""  

hook.Add( "PlayerSay", "PM", PM)

eyes widen in deep thought Ill get back to you in a few day. SteamID Is MGinshe Add Me

This would be useful