You are on page 1of 4

--[[

Simple Chat Spy

Type "spy" to enable or disable the chat spy.

Only tested if this works executed with Synapse (should work with other exploits though)

--]]

print("-- Chat Spy Executed --")

print("Type \"spy\" to enable or disable the chat spy.")

print("Only tested if this works executed with Synapse (should work with other exploits though)")

print("https://github.com/dehoisted/Chat-Spy")

-- Config

Config = {

enabled = true,

spyOnMyself = true,

public = false,

publicItalics = true

-- Customizing Log Output

PrivateProperties = {

Color = Color3.fromRGB(0,255,255);

Font = Enum.Font.SourceSansBold;

TextSize = 18;

}
local StarterGui = game:GetService("StarterGui")

local Players = game:GetService("Players")

local player = Players.LocalPlayer

local saymsg =
game:GetService("ReplicatedStorage"):WaitForChild("DefaultChatSystemChatEvents"):WaitForChild("Say
MessageRequest")

local getmsg =
game:GetService("ReplicatedStorage"):WaitForChild("DefaultChatSystemChatEvents"):WaitForChild("On
MessageDoneFiltering")

local instance = (_G.chatSpyInstance or 0) + 1

_G.chatSpyInstance = instance

local function onChatted(p,msg)

if _G.chatSpyInstance == instance then

if p==player and msg:lower():sub(1,4)=="/spy" then

Config.enabled = not Config.enabled

wait(0.3)

PrivateProperties.Text = "{SPY "..(Config.enabled and "EN" or


"DIS").."ABLED}"

StarterGui:SetCore("ChatMakeSystemMessage", PrivateProperties)

elseif Config.enabled and (Config.spyOnMyself==true or p~=player) then

msg = msg:gsub("[\n\r]",''):gsub("\t",' '):gsub("[ ]+",' ')

local hidden = true

local conn = getmsg.OnClientEvent:Connect(function(packet,channel)

if packet.SpeakerUserId==p.UserId and
packet.Message==msg:sub(#msg-#packet.Message+1) and (channel=="All" or (channel=="Team" and
Config.public==false and Players[packet.FromSpeaker].Team==player.Team)) then
hidden = false

end

end)

wait(1)

conn:Disconnect()

if hidden and Config.enabled then

if Config.public then

saymsg:FireServer((Config.publicItalics and "/me " or


'').."{SPY} [".. p.Name .."]: "..msg,"All")

else

PrivateProperties.Text = "{SPY} [".. p.Name .."]: "..msg

StarterGui:SetCore("ChatMakeSystemMessage",
PrivateProperties)

end

end

end

end

end

for _,p in ipairs(Players:GetPlayers()) do

p.Chatted:Connect(function(msg) onChatted(p,msg) end)

end

Players.PlayerAdded:Connect(function(p)

p.Chatted:Connect(function(msg) onChatted(p,msg) end)

end)
PrivateProperties.Text = "{SPY "..(Config.enabled and "EN" or "DIS").."ABLED}"

StarterGui:SetCore("ChatMakeSystemMessage", PrivateProperties)

local chatFrame = player.PlayerGui.Chat.Frame

chatFrame.ChatChannelParentFrame.Visible = true

chatFrame.ChatBarParentFrame.Position =
chatFrame.ChatChannelParentFrame.Position+UDim2.new(UDim.new(),chatFrame.ChatChannelParentFr
ame.Size.Y)

You might also like