--[[ 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 --") 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("SayMessageRequest") local getmsg = game:GetService("ReplicatedStorage"):WaitForChild("DefaultChatSystemChatEvents"):WaitForChild("OnMessageDoneFiltering") 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.ChatChannelParentFrame.Size.Y)