Run it
Copy the script and paste it into your executor.
FakeChatStorage FakeChatStorage.UI FakeChatStorage.Connections
FakeChatStorage.UI:()
i,v , FakeChatStorage.Connections
v:()
().FakeChatStorage = {Connections = {},UI = }
setthreadlevel = .set_thread_identity set_thread_identity setidentity setthreadidentity
getthreadlevel = .get_thread_identity get_thread_identity getidentity getthreadidentity
ReplicatedStorage = :()
UserInputService = :()
TweenService = :()
ChatService = :()
CoreGui = :()
Players = :()
rs = :()
Players.LocalPlayer
Players:():()
lp = Players.LocalPlayer
connections = FakeChatStorage.Connections
plrlist = {}
connections[] = Players.PlayerAdded:((plr)
plrlist[plr] = plr
)
connections[] = Players.PlayerRemoving:((plr)
plrlist[plr] =
)
i,v , Players:()
plrlist[v] = v
(instance, properties, children)
obj = .(instance)
i, v , properties {}
obj[i] = v
_, child , children {}
child.Parent = obj;
obj;
NAME_COLORS = {
.(/,/,/),
.(/,/,/),
.(/,/,/),
BrickColor.().Color,
BrickColor.().Color,
BrickColor.().Color,
BrickColor.().Color,
BrickColor.().Color
}
(pName)
value =
index = ,#pName
cValue = .(.(pName,index,index))
reverseIndex = #pName - index +
#pName% ==
reverseIndex = reverseIndex -
reverseIndex% >=
cValue = - cValue
value = value + cValue
value
(pName)
NAME_COLORS[((pName) % #NAME_COLORS) + ]
(plr,msg,whisper)
plrname = plr.Name
data = {
ID = .(),
FromSpeaker = plr.DisplayName,
SpeakerUserId = plr.UserId,
OriginalChannel = whisper ..plrname ,
IsFiltered = ,
MessageLength = .(msg),
Message = msg,
MessageType = ,
Time = .()+,
ExtraData = plr.Team plr.Team.TeamColor.Color {NameColor = (plrname)}
}
plr plr.Character plr.Character:()
ChatService:(plr.Character:(),msg,)
data
classtypes = {
[] = ()
{lp}
,
[] = ()
plrlistCache = plrlist
plrlistCache[lp] =
plrlistCache
,
[] = ()
plrlist
}
(str)
targs = {}
classtypes[str:()]
classtypes[str:()]()
i,v , plrlist
v.Name:():(, #str) == str:() v.DisplayName:():(,#str) == str:()
.(targs, v)
targs
DefaultChatSystemChatEvents = ReplicatedStorage:()
SayMessageRequest = DefaultChatSystemChatEvents:()
OnMessageDoneFilteringOnClientEvent = DefaultChatSystemChatEvents:().OnClientEvent
(signal,data)
old = ()
()
(signal,data)
(old)
cmdlist = {
[] = (msg,args,cmd,fakemessage)
target = (args[])
i,v , target
(OnMessageDoneFilteringOnClientEvent,(v,fakemessage,))
,
[] = (msg,args,cmd,fakemessage)
target = (args[])
i,v , target
(OnMessageDoneFilteringOnClientEvent,(v,fakemessage,))
}
cmdlist[] = cmdlist[]
cmdlist[] = cmdlist[]
FakeChatStorage.UI = (,{ResetOnSpawn = ,Parent = (gethui ()) CoreGui:() CoreGui})
UI = FakeChatStorage.UI
CmdBarBackground = (,{Parent = UI,BackgroundColor3 = .(,,),BorderSizePixel = ,Position = .(, -, , ),Size = .(, , , )})
Main = (,{Parent = CmdBarBackground,BackgroundTransparency = ,Position = .(, , , ),Size = .(, -, , -)})
TextBox = (,{Parent = Main,BackgroundColor3 = .(,,),BorderSizePixel = ,BackgroundTransparency = ,Size = .(, , , ),Font = .Font.Ubuntu,Text = ,TextColor3 = .(,,),TextScaled = ,TextSize = ,TextWrapped = })
(,{CornerRadius = .(, ),Parent = CmdBarBackground})
(,{CornerRadius = .(, ),Parent = Main})
info = TweenInfo.(, .EasingStyle.Bounce)
show = TweenService:(CmdBarBackground, info, {Position = .(, -CmdBarBackground.AbsoluteSize.X/, , -)})
hide = TweenService:(CmdBarBackground, info, {Position = .(, -CmdBarBackground.AbsoluteSize.X/, , )})
tweening =
()
tweening
tweening =
CmdBarBackground.Position.X.Offset ==
hide:()
TextBox:()
TextBox.Text =
hide.Completed:()
show:()
TextBox:()
show.Completed:()
tweening =
TextBox.FocusLost:((enterPressed)
tweening =
enterPressed
originalstring = TextBox.Text
args = originalstring:()
args[]
cmd = args[]:()
#cmd+#args[]+ <= #originalstring
msg = originalstring:(#cmd+#args[]+,#originalstring)
cmdlist[cmd]
cmdlist[cmd](originalstring,args,cmd,msg)
hide:()
TextBox:()
TextBox.Text =
hide.Completed:()
tweening =
)
UserInputService.InputBegan:((input, gp)
gp
input.UserInputType == .UserInputType.Keyboard
key = input.KeyCode
key == .KeyCode.Quote
rs.Heartbeat:()
()
)basically jus makes other people chat

Universal