Run it
Copy the script and paste it into your executor.
Players = :()
TextChatService = :()
UserInputService = :()
HttpService = :()
player = Players.LocalPlayer
playerGui = player:()
messages = {}
autoRandomEnabled =
AUTO_RANDOM_DELAY =
lastRandomIndex =
uiScale =
transparency =
accentColor = .(, , )
quickSentencesEnabled =
quickConfig = {}
quickFrames = {}
quickDragConnections = {}
SAVE_FILE =
SETTINGS_FILE =
oldGui = playerGui:()
oldGui
oldGui:()
()
isfile readfile (SAVE_FILE)
success, data = (()
HttpService:((SAVE_FILE))
)
success (data) ==
messages = {}
_, message (data)
(message) == message ~=
.(messages, message)
()
writefile
(()
(SAVE_FILE, HttpService:(messages))
)
()
isfile readfile (SETTINGS_FILE)
success, data = (()
HttpService:((SETTINGS_FILE))
)
success (data) ==
(data.uiScale)
uiScale = .((data.uiScale), , )
(data.transparency)
transparency = .((data.transparency), , )
(data.quickSentencesEnabled) ==
quickSentencesEnabled = data.quickSentencesEnabled
(data.quickConfig) ==
quickConfig = {}
message, config (data.quickConfig)
(message) == (config) ==
quickConfig[message] = {
x = (config.x) ,
y = (config.y) ,
locked = config.locked ==
}
()
writefile
(()
(
SETTINGS_FILE,
HttpService:({
uiScale = uiScale,
transparency = transparency,
quickSentencesEnabled = quickSentencesEnabled,
quickConfig = quickConfig
})
)
)
()
()
(message)
_, savedMessage (messages)
savedMessage == message
(index)
camera = .CurrentCamera
x =
y = + ((index - ) * )
camera
viewport = camera.ViewportSize
y > viewport.Y -
y =
x, y
(frame, x, y)
camera = .CurrentCamera
camera
x, y
viewport = camera.ViewportSize
maxX = .(, viewport.X - frame.AbsoluteSize.X)
maxY = .(, viewport.Y - frame.AbsoluteSize.Y)
.(x, , maxX),
.(y, , maxY)
(message)
message message ==
(()
channels = TextChatService:()
channels
general = channels:()
general
general:(message)
)
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
gui.ZIndexBehavior = .ZIndexBehavior.Sibling
gui.DisplayOrder =
gui.Parent = playerGui
main = .()
main.Name =
main.Size = .(, )
main.Position = .(, -, , -)
main.BackgroundColor3 = .(, , )
main.BackgroundTransparency = transparency
main.BorderSizePixel =
main.ZIndex =
main.Parent = gui
.(, main).CornerRadius = .(, )
header = .()
header.Size = .(, , , )
header.BackgroundTransparency =
header.ZIndex =
header.Parent = main
title = .()
title.Size = .(, -, , )
title.Position = .(, )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.TextSize =
title.Font = .Font.Gotham
title.TextXAlignment = .TextXAlignment.Left
title.ZIndex =
title.Parent = header
settingsButton = .()
settingsButton.Size = .(, )
settingsButton.Position = .(, -, , )
settingsButton.BackgroundTransparency =
settingsButton.Text =
settingsButton.TextColor3 = .(, , )
settingsButton.TextSize =
settingsButton.Font = .Font.GothamBold
settingsButton.ZIndex =
settingsButton.Parent = header
minimizeButton = .()
minimizeButton.Size = .(, )
minimizeButton.Position = .(, -, , )
minimizeButton.BackgroundTransparency =
minimizeButton.Text =
minimizeButton.TextColor3 = .(, , )
minimizeButton.TextSize =
minimizeButton.Font = .Font.Gotham
minimizeButton.ZIndex =
minimizeButton.Parent = header
inputBox = .()
inputBox.Name =
inputBox.Size = .(, -, , )
inputBox.Position = .(, )
inputBox.BackgroundColor3 = .(, , )
inputBox.BackgroundTransparency = transparency
inputBox.BorderSizePixel =
inputBox.PlaceholderText =
inputBox.PlaceholderColor3 = .(, , )
inputBox.Text =
inputBox.TextColor3 = .(, , )
inputBox.TextSize =
inputBox.Font = .Font.Gotham
inputBox.ClearTextOnFocus =
inputBox.ZIndex =
inputBox.Parent = main
.(, inputBox).CornerRadius = .(, )
quickToggle = .()
quickToggle.Size = .(, )
quickToggle.Position = .(, )
quickToggle.BackgroundColor3 = accentColor
quickToggle.BackgroundTransparency = transparency
quickToggle.BorderSizePixel =
quickToggle.TextColor3 = .(, , )
quickToggle.TextSize =
quickToggle.Font = .Font.GothamMedium
quickToggle.ZIndex =
quickToggle.Parent = main
.(, quickToggle).CornerRadius = .(, )
autoButton = .()
autoButton.Size = .(, )
autoButton.Position = .(, )
autoButton.BackgroundColor3 = .(, , )
autoButton.BackgroundTransparency = transparency
autoButton.BorderSizePixel =
autoButton.TextColor3 = .(, , )
autoButton.TextSize =
autoButton.Font = .Font.GothamMedium
autoButton.ZIndex =
autoButton.Parent = main
.(, autoButton).CornerRadius = .(, )
messageScroll = .()
messageScroll.Name =
messageScroll.Size = .(, -, , )
messageScroll.Position = .(, )
messageScroll.BackgroundTransparency =
messageScroll.BorderSizePixel =
messageScroll.ScrollBarThickness =
messageScroll.ScrollBarImageColor3 = .(, , )
messageScroll.CanvasSize = .(, , , )
messageScroll.ZIndex =
messageScroll.Parent = main
messageLayout = .()
messageLayout.Padding = .(, )
messageLayout.SortOrder = .SortOrder.LayoutOrder
messageLayout.Parent = messageScroll
messageLayout:():(()
messageScroll.CanvasSize = .(
,
messageLayout.AbsoluteContentSize.Y +
)
)
addButton = .()
addButton.Size = .(, )
addButton.Position = .(, -, , -)
addButton.BackgroundColor3 = accentColor
addButton.BackgroundTransparency = transparency
addButton.BorderSizePixel =
addButton.Text =
addButton.TextColor3 = .(, , )
addButton.TextSize =
addButton.Font = .Font.GothamMedium
addButton.ZIndex =
addButton.Parent = main
.(, addButton).CornerRadius = .(, )
miniCircle = .()
miniCircle.Name =
miniCircle.Size = .(, )
miniCircle.Position = .(, , , -)
miniCircle.BackgroundColor3 = .(, , )
miniCircle.BackgroundTransparency = transparency
miniCircle.BorderSizePixel =
miniCircle.Text =
miniCircle.TextColor3 = .(, , )
miniCircle.TextSize =
miniCircle.Font = .Font.GothamBold
miniCircle.Visible =
miniCircle.ZIndex =
miniCircle.Parent = gui
.(, miniCircle).CornerRadius = .(, )
settingsPanel = .()
settingsPanel.Name =
settingsPanel.Size = .(, )
settingsPanel.Position = .(, -, , -)
settingsPanel.BackgroundColor3 = .(, , )
settingsPanel.BackgroundTransparency = transparency
settingsPanel.BorderSizePixel =
settingsPanel.Visible =
settingsPanel.ZIndex =
settingsPanel.Parent = gui
.(, settingsPanel).CornerRadius = .(, )
settingsTitle = .()
settingsTitle.Size = .(, -, , )
settingsTitle.Position = .(, )
settingsTitle.BackgroundTransparency =
settingsTitle.Text =
settingsTitle.TextColor3 = .(, , )
settingsTitle.TextSize =
settingsTitle.Font = .Font.GothamMedium
settingsTitle.TextXAlignment = .TextXAlignment.Left
settingsTitle.ZIndex =
settingsTitle.Parent = settingsPanel
settingsClose = .()
settingsClose.Size = .(, )
settingsClose.Position = .(, -, , )
settingsClose.BackgroundTransparency =
settingsClose.Text =
settingsClose.TextColor3 = .(, , )
settingsClose.TextSize =
settingsClose.Font = .Font.Gotham
settingsClose.ZIndex =
settingsClose.Parent = settingsPanel
scaleLabel = .()
scaleLabel.Size = .(, -, , )
scaleLabel.Position = .(, )
scaleLabel.BackgroundTransparency =
scaleLabel.TextColor3 = .(, , )
scaleLabel.TextSize =
scaleLabel.Font = .Font.Gotham
scaleLabel.TextXAlignment = .TextXAlignment.Left
scaleLabel.ZIndex =
scaleLabel.Parent = settingsPanel
scaleMinus = .()
scaleMinus.Size = .(, )
scaleMinus.Position = .(, )
scaleMinus.BackgroundColor3 = accentColor
scaleMinus.BorderSizePixel =
scaleMinus.Text =
scaleMinus.TextColor3 = .(, , )
scaleMinus.TextSize =
scaleMinus.ZIndex =
scaleMinus.Parent = settingsPanel
.(, scaleMinus).CornerRadius = .(, )
scalePlus = .()
scalePlus.Size = .(, )
scalePlus.Position = .(, )
scalePlus.BackgroundColor3 = accentColor
scalePlus.BorderSizePixel =
scalePlus.Text =
scalePlus.TextColor3 = .(, , )
scalePlus.TextSize =
scalePlus.ZIndex =
scalePlus.Parent = settingsPanel
.(, scalePlus).CornerRadius = .(, )
transparencyLabel = .()
transparencyLabel.Size = .(, -, , )
transparencyLabel.Position = .(, )
transparencyLabel.BackgroundTransparency =
transparencyLabel.TextColor3 = .(, , )
transparencyLabel.TextSize =
transparencyLabel.Font = .Font.Gotham
transparencyLabel.TextXAlignment = .TextXAlignment.Left
transparencyLabel.ZIndex =
transparencyLabel.Parent = settingsPanel
transparencyMinus = .()
transparencyMinus.Size = .(, )
transparencyMinus.Position = .(, )
transparencyMinus.BackgroundColor3 = accentColor
transparencyMinus.BorderSizePixel =
transparencyMinus.Text =
transparencyMinus.TextColor3 = .(, , )
transparencyMinus.TextSize =
transparencyMinus.ZIndex =
transparencyMinus.Parent = settingsPanel
.(, transparencyMinus).CornerRadius = .(, )
transparencyPlus = .()
transparencyPlus.Size = .(, )
transparencyPlus.Position = .(, )
transparencyPlus.BackgroundColor3 = accentColor
transparencyPlus.BorderSizePixel =
transparencyPlus.Text =
transparencyPlus.TextColor3 = .(, , )
transparencyPlus.TextSize =
transparencyPlus.ZIndex =
transparencyPlus.Parent = settingsPanel
.(, transparencyPlus).CornerRadius = .(, )
()
quickSentencesEnabled
quickToggle.Text =
quickToggle.BackgroundColor3 = accentColor
quickToggle.Text =
quickToggle.BackgroundColor3 = .(, , )
()
scaleLabel.Text = .. .(, uiScale)
transparencyLabel.Text = ..
.(transparency * ) ..
(object, dragArea)
dragging =
dragStart
startPosition
dragArea.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPosition = object.Position
)
UserInputService.InputChanged:((input)
dragging
input.UserInputType ~= .UserInputType.MouseMovement
input.UserInputType ~= .UserInputType.Touch
delta = input.Position - dragStart
object.Position = .(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
)
(main, header)
(settingsPanel, settingsTitle)
(miniCircle, miniCircle)
refreshMessages
refreshQuickMinis
createQuickMini
(frame)
connections = quickDragConnections[frame]
connections
_, connection (connections)
(()
connection:()
)
quickDragConnections[frame] =
createQuickMini = (message, index)
quickSentencesEnabled
quickConfig[message]
x, y = (index)
quickConfig[message] = {
x = x,
y = y,
locked =
}
()
config = quickConfig[message]
frame = .()
frame.Name = .. (index)
frame.Size = .(, )
frame.Position = .(
config.x ,
config.y
)
frame.BackgroundColor3 = .(, , )
frame.BackgroundTransparency = .(transparency, , )
frame.BorderSizePixel =
frame.Active =
frame.ZIndex =
frame.Parent = gui
.(, frame).CornerRadius = .(, )
quickFrames[message] = frame
sendButton = .()
sendButton.Size = .(, -, , )
sendButton.Position = .(, )
sendButton.BackgroundTransparency =
sendButton.Text = message
sendButton.TextColor3 = .(, , )
sendButton.TextSize =
sendButton.Font = .Font.GothamMedium
sendButton.TextTruncate = .TextTruncate.AtEnd
sendButton.TextXAlignment = .TextXAlignment.Left
sendButton.ZIndex =
sendButton.Parent = frame
textPadding = .()
textPadding.PaddingLeft = .(, )
textPadding.PaddingRight = .(, )
textPadding.Parent = sendButton
lockButton = .()
lockButton.Size = .(, )
lockButton.Position = .(, -, , )
lockButton.BackgroundColor3 = .(, , )
lockButton.BackgroundTransparency = transparency
lockButton.BorderSizePixel =
lockButton.Text = config.locked
lockButton.TextColor3 = .(, , )
lockButton.TextSize =
lockButton.Font = .Font.Gotham
lockButton.ZIndex =
lockButton.Parent = frame
.(, lockButton).CornerRadius = .(, )
removeButton = .()
removeButton.Size = .(, )
removeButton.Position = .(, -, , )
removeButton.BackgroundColor3 = .(, , )
removeButton.BackgroundTransparency = transparency
removeButton.BorderSizePixel =
removeButton.Text =
removeButton.TextColor3 = .(, , )
removeButton.TextSize =
removeButton.Font = .Font.GothamBold
removeButton.ZIndex =
removeButton.Parent = frame
.(, removeButton).CornerRadius = .(, )
sendButton.Activated:(()
(message)
)
lockButton.Activated:(()
config.locked = config.locked
config.locked
lockButton.Text =
lockButton.Text =
()
)
removeButton.Activated:(()
quickConfig[message] =
(frame)
quickFrames[message] =
frame:()
()
)
dragging =
dragInput =
dragStart =
startPosition =
c1 = sendButton.InputBegan:((input)
config.locked
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPosition = frame.Position
)
c2 = sendButton.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dragInput = input
)
c3 = UserInputService.InputChanged:((input)
dragging
input ~= dragInput
delta = input.Position - dragStart
newX = startPosition.X.Offset + delta.X
newY = startPosition.Y.Offset + delta.Y
newX, newY = (frame, newX, newY)
frame.Position = .(newX, newY)
)
c4 = UserInputService.InputEnded:((input)
dragging
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
config.x = frame.Position.X.Offset
config.y = frame.Position.Y.Offset
()
)
quickDragConnections[frame] = {
c1,
c2,
c3,
c4
}
refreshQuickMinis = ()
message, frame (quickFrames)
(frame)
frame
frame:()
quickFrames[message] =
quickSentencesEnabled
seen = {}
index =
_, message (messages)
quickConfig[message] seen[message]
seen[message] =
index +=
(message, index)
refreshMessages = ()
_, child (messageScroll:())
child:()
child:()
index, message (messages)
row = .()
row.Size = .(, -, , )
row.BackgroundColor3 = .(, , )
row.BackgroundTransparency = transparency
row.BorderSizePixel =
row.LayoutOrder = index
row.ZIndex =
row.Parent = messageScroll
.(, row).CornerRadius = .(, )
messageButton = .()
messageButton.Size = .(, -, , )
messageButton.Position = .(, )
messageButton.BackgroundTransparency =
messageButton.Text = message
messageButton.TextColor3 = .(, , )
messageButton.TextSize =
messageButton.Font = .Font.Gotham
messageButton.TextTruncate = .TextTruncate.AtEnd
messageButton.TextXAlignment = .TextXAlignment.Left
messageButton.ZIndex =
messageButton.Parent = row
messagePadding = .()
messagePadding.PaddingLeft = .(, )
messagePadding.PaddingRight = .(, )
messagePadding.Parent = messageButton
quickButton = .()
quickButton.Size = .(, )
quickButton.Position = .(, -, , )
quickButton.BackgroundColor3 = accentColor
quickButton.BackgroundTransparency = transparency
quickButton.BorderSizePixel =
quickButton.Text =
quickButton.TextColor3 = .(, , )
quickButton.TextSize =
quickButton.Font = .Font.GothamBold
quickButton.ZIndex =
quickButton.Parent = row
.(, quickButton).CornerRadius = .(, )
deleteButton = .()
deleteButton.Size = .(, )
deleteButton.Position = .(, -, , )
deleteButton.BackgroundColor3 = .(, , )
deleteButton.BackgroundTransparency = transparency
deleteButton.BorderSizePixel =
deleteButton.Text =
deleteButton.TextColor3 = .(, , )
deleteButton.TextSize =
deleteButton.Font = .Font.GothamBold
deleteButton.ZIndex =
deleteButton.Parent = row
.(, deleteButton).CornerRadius = .(, )
messageButton.Activated:(()
(message)
)
quickButton.Activated:(()
quickConfig[message]
quickSentencesEnabled =
()
()
()
x, y = (index)
quickConfig[message] = {
x = x,
y = y,
locked =
}
quickSentencesEnabled =
()
()
()
)
deleteButton.Activated:(()
quickConfig[message] =
i = #messages, , -
messages[i] == message
.(messages, i)
()
()
()
()
)
()
text = inputBox.Text
text text ==
text = text:(, )
text = text:(, )
text ==
.(messages, text)
inputBox.Text =
()
()
addButton.Activated:(()
()
)
inputBox.FocusLost:((enterPressed)
enterPressed
()
)
quickToggle.Activated:(()
quickSentencesEnabled = quickSentencesEnabled
()
()
()
)
autoButton.Activated:(()
autoRandomEnabled = autoRandomEnabled
autoRandomEnabled
autoButton.Text =
autoButton.BackgroundColor3 = accentColor
autoButton.Text =
autoButton.BackgroundColor3 = .(, , )
)
.(()
gui.Parent
.(AUTO_RANDOM_DELAY)
autoRandomEnabled #messages >
randomIndex
#messages ==
randomIndex =
randomIndex = .(, #messages)
randomIndex ~= lastRandomIndex
lastRandomIndex = randomIndex
(messages[randomIndex])
)
settingsButton.Activated:(()
settingsPanel.Visible = settingsPanel.Visible
)
settingsClose.Activated:(()
settingsPanel.Visible =
)
scaleMinus.Activated:(()
uiScale = .(uiScale - , , )
()
()
gui:().Scale = uiScale
)
scalePlus.Activated:(()
uiScale = .(uiScale + , , )
()
()
gui:().Scale = uiScale
)
transparencyMinus.Activated:(()
transparency = .(transparency - , , )
()
()
main.BackgroundTransparency = transparency
settingsPanel.BackgroundTransparency = transparency
inputBox.BackgroundTransparency = transparency
quickToggle.BackgroundTransparency = transparency
autoButton.BackgroundTransparency = transparency
addButton.BackgroundTransparency = transparency
miniCircle.BackgroundTransparency = transparency
()
()
)
transparencyPlus.Activated:(()
transparency = .(transparency + , , )
()
()
main.BackgroundTransparency = transparency
settingsPanel.BackgroundTransparency = transparency
inputBox.BackgroundTransparency = transparency
quickToggle.BackgroundTransparency = transparency
autoButton.BackgroundTransparency = transparency
addButton.BackgroundTransparency = transparency
miniCircle.BackgroundTransparency = transparency
()
()
)
minimizeButton.Activated:(()
main.Visible =
settingsPanel.Visible =
miniCircle.Visible =
)
miniCircle.Activated:(()
main.Visible =
miniCircle.Visible =
)
uiScaleObject = .()
uiScaleObject.Scale = uiScale
uiScaleObject.Parent = gui
()
()
()
()stores and sends chats (dont contact me for support) the new settings tab is kinda fucked up

Universal