Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
TextChatService = :()
LegacyChat = :()
TweenService = :()
RunService = :()
LocalizationService = :()
LocalPlayer = Players.LocalPlayer
PlayerGui = LocalPlayer:()
SystemState = {
Targets = {},
TargetList = {},
Whitelisted = {},
MenuOpen = ,
IsLocked = ,
CurrentIndex = ,
TargetIndex = ,
TransitionProgress = ,
TotalSessionRoasts =
}
CurrentFPS =
RunService.RenderStepped:((dt)
dt > CurrentFPS = .( / dt)
)
(player)
age =
success = (() age = player.AccountAge )
success age
years = .(age / )
remDays = age %
years >
.(, years, years > , remDays)
.(, remDays)
(player)
player ~= LocalPlayer
UserInputService.TouchEnabled UserInputService.KeyboardEnabled
UserInputService.GamepadEnabled UserInputService.KeyboardEnabled
UserInputService.VREnabled
AggroKeywords = {, , , , , , , , , , , , , , , , , }
NiceKeywords = {, , , , , , }
EmojiCombos = {, , , , , , , , , , , }
CustomApologies = {
,
,
,
,
,
}
ContextualClapbacks = {
ShutUp = {
,
,
,
,
,
},
Trash = {
,
,
,
,
},
DogOrBot = {
,
,
,
,
}
}
AdvancedFragments = {
Openers = {
, , , , ,
, , ,
},
Actions = {
, , ,
, , ,
, ,
},
Punchlines = {
, , ,
, , ,
,
}
}
(player)
success, code = (() LocalizationService:(player) )
success code code ~= (code)
(message)
TextChatService
textChannels = TextChatService:()
textChannels
general = textChannels:() textChannels:()
general (() general:(message) )
LegacyChat LegacyChat:()
chat = LegacyChat.Chat
chat chat:() (() chat:(message) )
(partial)
partial partial ==
search = partial:():(, )
_, player (Players:())
player ~= LocalPlayer
player.Name:() == search (player.DisplayName player.DisplayName:() == search) player
_, player (Players:())
player ~= LocalPlayer
player.Name:():(, #search) == search (player.DisplayName player.DisplayName:():(, #search) == search) player
(message)
exactApologies = {, , , , , , }
padded = .. message:() ..
_, apol (exactApologies)
padded:( .. apol .. )
(player, message)
name = player.DisplayName player.Name
msgLower = message:()
baseRoast =
msgLower:() msgLower:() msgLower:()
line = ContextualClapbacks.ShutUp[.(, #ContextualClapbacks.ShutUp)]
baseRoast = .(, name, line)
msgLower:() msgLower:() msgLower:()
line = ContextualClapbacks.Trash[.(, #ContextualClapbacks.Trash)]
baseRoast = .(, name, line)
msgLower:() msgLower:() msgLower:() msgLower:()
line = ContextualClapbacks.DogOrBot[.(, #ContextualClapbacks.DogOrBot)]
baseRoast = .(, name, line)
opener = AdvancedFragments.Openers[.(, #AdvancedFragments.Openers)]
action = AdvancedFragments.Actions[.(, #AdvancedFragments.Actions)]
punchline = AdvancedFragments.Punchlines[.(, #AdvancedFragments.Punchlines)]
baseRoast = .(, opener, action, punchline)
baseRoast = .(baseRoast, name)
.() <=
baseRoast = baseRoast .. EmojiCombos[.(, #EmojiCombos)]
baseRoast
(t) - .( - t, )
(frame)
dragging =
dragStart = .zero
startPos = .()
(inputPos)
framePos = frame.AbsolutePosition
frameSize = frame.AbsoluteSize
inputPos.X >= framePos.X inputPos.X <= (framePos.X + frameSize.X)
inputPos.Y >= framePos.Y inputPos.Y <= (framePos.Y + frameSize.Y)
UserInputService.InputBegan:((input)
SystemState.IsLocked
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
(input.Position)
dragging =
dragStart = input.Position
startPos = frame.Position
)
UserInputService.InputChanged:((input)
dragging SystemState.IsLocked
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
delta = input.Position - dragStart
frame.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
()
ScreenGui = .()
ScreenGui.Name =
ScreenGui.Parent = PlayerGui
ScreenGui.ResetOnSpawn =
ScreenGui.IgnoreGuiInset =
ScreenGui.DisplayOrder =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
DashboardRoot = .()
DashboardRoot.Name =
DashboardRoot.Size = .(, , , )
DashboardRoot.BackgroundColor3 = .(, , )
DashboardRoot.Visible =
DashboardRoot.Active =
DashboardRoot.Parent = ScreenGui
AtmosphericBG = .()
AtmosphericBG.Name =
AtmosphericBG.Size = .(, , , )
AtmosphericBG.Position = .(-, , -, )
AtmosphericBG.BackgroundColor3 = .(, , )
AtmosphericBG.ScaleType = .ScaleType.Crop
AtmosphericBG.ImageTransparency =
AtmosphericBG.Parent = DashboardRoot
DarkVignette = .()
DarkVignette.Size = .(, , , )
DarkVignette.BackgroundColor3 = .(, , )
DarkVignette.BackgroundTransparency =
DarkVignette.Parent = DashboardRoot
TopBar = .()
TopBar.Size = .(, -, , )
TopBar.Position = .(, , , )
TopBar.BackgroundTransparency =
TopBar.Parent = DashboardRoot
PlayersTab = .()
PlayersTab.Size = .(, , , )
PlayersTab.Position = .(, , , )
PlayersTab.BackgroundTransparency =
PlayersTab.Text =
PlayersTab.TextColor3 = .(, , )
PlayersTab.TextSize =
PlayersTab.Font = .Font.GothamBold
PlayersTab.TextXAlignment = .TextXAlignment.Left
PlayersTab.Parent = TopBar
TabLine = .()
TabLine.Size = .(, , , )
TabLine.Position = .(, , , -)
TabLine.BackgroundColor3 = .(, , )
TabLine.BorderSizePixel =
TabLine.Parent = TopBar
TimeLabel = .()
TimeLabel.Size = .(, , , )
TimeLabel.Position = .(, -, , )
TimeLabel.BackgroundTransparency =
TimeLabel.TextColor3 = .(, , )
TimeLabel.TextSize =
TimeLabel.Font = .Font.GothamMedium
TimeLabel.TextXAlignment = .TextXAlignment.Right
TimeLabel.Text =
TimeLabel.Parent = TopBar
.(()
date = .()
hour = date.hour %
hour == hour =
ampm = date.hour >=
TimeLabel.Text = .(, hour, date.min, ampm)
.()
)
CommandFrame = .()
CommandFrame.Name =
CommandFrame.Size = .(, , , )
CommandFrame.Position = .(, -, , )
CommandFrame.BackgroundColor3 = .(, , )
CommandFrame.BackgroundTransparency =
CommandFrame.BorderSizePixel =
CommandFrame.Parent = DashboardRoot
.(, CommandFrame).CornerRadius = .(, )
CommandBar = .()
CommandBar.Size = .(, -, , )
CommandBar.Position = .(, , , )
CommandBar.BackgroundTransparency =
CommandBar.TextColor3 = .(, , )
CommandBar.TextSize =
CommandBar.Font = .Font.GothamMedium
CommandBar.PlaceholderText =
CommandBar.PlaceholderColor3 = .(, , )
CommandBar.TextXAlignment = .TextXAlignment.Left
CommandBar.ClearTextOnFocus =
CommandBar.Parent = CommandFrame
CarouselContainer = .()
CarouselContainer.Name =
CarouselContainer.Size = .(, , , )
CarouselContainer.Position = .(, , , )
CarouselContainer.BackgroundTransparency =
CarouselContainer.ClipsDescendants =
CarouselContainer.Parent = DashboardRoot
startX =
isSwiping =
UserInputService.InputBegan:((input)
SystemState.MenuOpen SystemState.IsLocked
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
startX = input.Position.X
isSwiping =
)
UserInputService.InputEnded:((input)
SystemState.MenuOpen isSwiping SystemState.IsLocked
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
isSwiping =
deltaX = input.Position.X - startX
.(deltaX) >
deltaX <
SystemState.TargetIndex < #SystemState.TargetList
SystemState.CurrentIndex = SystemState.TargetIndex
SystemState.TargetIndex = SystemState.TargetIndex +
SystemState.TransitionProgress =
SystemState.TargetIndex >
SystemState.CurrentIndex = SystemState.TargetIndex
SystemState.TargetIndex = SystemState.TargetIndex -
SystemState.TransitionProgress =
)
DetailsFrame = .()
DetailsFrame.Name =
DetailsFrame.Size = .(, -, , )
DetailsFrame.Position = .(, , , )
DetailsFrame.BackgroundTransparency =
DetailsFrame.Parent = DashboardRoot
TagBadge = .(, DetailsFrame)
TagBadge.Size = .(, , , )
TagBadge.BackgroundColor3 = .(, , )
TagBadge.TextColor3 = .(, , )
TagBadge.Text =
TagBadge.TextSize =
TagBadge.Font = .Font.GothamBold
.(, TagBadge).CornerRadius = .(, )
FocusedTitle = .(, DetailsFrame)
FocusedTitle.Size = .(, , , )
FocusedTitle.Position = .(, , , )
FocusedTitle.BackgroundTransparency =
FocusedTitle.TextColor3 = .(, , )
FocusedTitle.TextSize =
FocusedTitle.Font = .Font.GothamBold
FocusedTitle.TextXAlignment = .TextXAlignment.Left
FocusedTitle.Text =
FocusedSub = .(, DetailsFrame)
FocusedSub.Size = .(, , , )
FocusedSub.Position = .(, , , )
FocusedSub.BackgroundTransparency =
FocusedSub.TextColor3 = .(, , )
FocusedSub.TextSize =
FocusedSub.Font = .Font.GothamMedium
FocusedSub.TextXAlignment = .TextXAlignment.Left
FocusedSub.Text =
MetaCard = .(, DetailsFrame)
MetaCard.Size = .(, , , )
MetaCard.Position = .(, , , )
MetaCard.BackgroundColor3 = .(, , )
MetaCard.BackgroundTransparency =
MetaCard.BorderSizePixel =
.(, MetaCard).CornerRadius = .(, )
MetaAge = .(, MetaCard)
MetaAge.Size = .(, -, , )
MetaAge.Position = .(, , , )
MetaAge.BackgroundTransparency =
MetaAge.TextColor3 = .(, , )
MetaAge.TextSize =
MetaAge.Font = .Font.GothamMedium
MetaAge.TextXAlignment = .TextXAlignment.Left
MetaAge.Text =
MetaLocation = .(, MetaCard)
MetaLocation.Size = .(, -, , )
MetaLocation.Position = .(, , , )
MetaLocation.BackgroundTransparency =
MetaLocation.TextColor3 = .(, , )
MetaLocation.TextSize =
MetaLocation.Font = .Font.GothamMedium
MetaLocation.TextXAlignment = .TextXAlignment.Left
MetaLocation.Text =
MetaReason = .(, MetaCard)
MetaReason.Size = .(, -, , )
MetaReason.Position = .(, , , )
MetaReason.BackgroundTransparency =
MetaReason.TextColor3 = .(, , )
MetaReason.TextSize =
MetaReason.Font = .Font.GothamMedium
MetaReason.TextXAlignment = .TextXAlignment.Left
MetaReason.Text =
MetaShame = .(, MetaCard)
MetaShame.Size = .(, -, , )
MetaShame.Position = .(, , , )
MetaShame.BackgroundTransparency =
MetaShame.TextColor3 = .(, , )
MetaShame.TextSize =
MetaShame.Font = .Font.GothamMedium
MetaShame.TextXAlignment = .TextXAlignment.Left
MetaShame.Text =
MetaDevice = .(, MetaCard)
MetaDevice.Size = .(, -, , )
MetaDevice.Position = .(, , , )
MetaDevice.BackgroundTransparency =
MetaDevice.TextColor3 = .(, , )
MetaDevice.TextSize =
MetaDevice.Font = .Font.GothamMedium
MetaDevice.TextXAlignment = .TextXAlignment.Left
MetaDevice.Text =
MetaSessionStats = .(, MetaCard)
MetaSessionStats.Name =
MetaSessionStats.Size = .(, -, , )
MetaSessionStats.Position = .(, , , )
MetaSessionStats.BackgroundTransparency =
MetaSessionStats.TextColor3 = .(, , )
MetaSessionStats.TextSize =
MetaSessionStats.Font = .Font.GothamBold
MetaSessionStats.TextXAlignment = .TextXAlignment.Left
MetaSessionStats.Text =
WidgetContainer = .(, ScreenGui)
WidgetContainer.Name =
WidgetContainer.Size = .(, , , )
WidgetContainer.Position = .(, -, , )
WidgetContainer.BackgroundTransparency =
WidgetContainer.ZIndex =
WidgetContainer.Active =
ToggleCircle = .(, WidgetContainer)
ToggleCircle.Name =
ToggleCircle.Size = .(, , , )
ToggleCircle.BackgroundColor3 = .(, , )
ToggleCircle.BorderSizePixel =
ToggleCircle.ZIndex =
.(, ToggleCircle).CornerRadius = .(, )
CircleStroke = .(, ToggleCircle)
CircleStroke.Color = .(, , )
CircleStroke.Thickness =
CircleIcon = .(, ToggleCircle)
CircleIcon.Size = .(, , , )
CircleIcon.BackgroundTransparency =
CircleIcon.Text =
CircleIcon.TextSize =
LockButton = .(, WidgetContainer)
LockButton.Name =
LockButton.Size = .(, , , )
LockButton.Position = .(, , , )
LockButton.BackgroundColor3 = .(, , )
LockButton.BorderSizePixel =
LockButton.Text =
LockButton.TextSize =
LockButton.ZIndex =
.(, LockButton).CornerRadius = .(, )
LockStroke = .(, LockButton)
LockStroke.Color = .(, , )
LockStroke.Thickness =
(WidgetContainer)
LockButton.MouseButton1Click:(()
SystemState.IsLocked = SystemState.IsLocked
LockButton.Text = SystemState.IsLocked
LockButton.BackgroundColor3 = SystemState.IsLocked .(, , ) .(, , )
)
(visible)
SystemState.MenuOpen = visible
tweenInfo = TweenInfo.(, .EasingStyle.Cubic, .EasingDirection.Out)
visible
DashboardRoot.Visible =
TweenService:(DashboardRoot, tweenInfo, { BackgroundTransparency = }):()
CommandBar:()
fadeOut = TweenService:(DashboardRoot, tweenInfo, { BackgroundTransparency = })
fadeOut.Completed:(()
SystemState.MenuOpen DashboardRoot.Visible =
)
fadeOut:()
ToggleCircle.MouseButton1Click:(()
( SystemState.MenuOpen)
)
{
ScreenGui = ScreenGui,
DashboardRoot = DashboardRoot,
AtmosphericBG = AtmosphericBG,
CommandBar = CommandBar,
CarouselContainer = CarouselContainer,
FocusedTitle = FocusedTitle,
FocusedSub = FocusedSub,
MetaAge = MetaAge,
MetaLocation = MetaLocation,
MetaReason = MetaReason,
MetaShame = MetaShame,
MetaDevice = MetaDevice,
MetaSessionStats = MetaSessionStats,
SetMenuVisible = SetMenuVisible
}
UI = ()
CardInstances = {}
()
#SystemState.TargetList ==
baseW, baseH = ,
spacing =
startX =
t = (.(SystemState.TransitionProgress, , ))
focus = SystemState.CurrentIndex + (SystemState.TargetIndex - SystemState.CurrentIndex) * t
i, targetPlayer (SystemState.TargetList)
Card = CardInstances[targetPlayer.UserId]
Card
rel = (i - ) - (focus - )
d = .(rel)
scale = (d < ) .(, - * .(d, ))
w, h = baseW * scale, baseH * scale
x = startX + (i - ) * spacing - (focus - ) * spacing
y = (baseH - h) /
selected_amount = .(, - d)
Card.Size = .(, w, , h)
Card.Position = .(, x, , y)
Card.ZIndex = .( - d)
FrameBox = Card:()
Stroke = FrameBox FrameBox:()
Stroke
selected_amount >
Stroke.Color = .(, , )
Stroke.Thickness =
Stroke.Transparency =
(()
UI.AtmosphericBG.Image = Players:(targetPlayer.UserId, .ThumbnailType.AvatarBust, .ThumbnailSize.Size420x420)
)
UI.FocusedTitle.Text = targetPlayer.DisplayName
UI.FocusedSub.Text = .. targetPlayer.Name
targetData = SystemState.Targets[targetPlayer]
targetData
UI.MetaAge.Text = .. (targetPlayer)
UI.MetaLocation.Text = .. (targetData.Location )
UI.MetaReason.Text = .. (targetData.Reason )
UI.MetaShame.Text = .. (targetData.RoastCount )
UI.MetaDevice.Text = .. (targetPlayer)
Stroke.Color = .(, , )
Stroke.Thickness =
Stroke.Transparency =
()
SystemState.TargetList = {}
targetPlayer, _ (SystemState.Targets)
.(SystemState.TargetList, targetPlayer)
userId, card (CardInstances)
card:()
CardInstances[userId] =
i, targetPlayer (SystemState.TargetList)
Card = .()
Card.Name = .. targetPlayer.UserId
Card.BackgroundColor3 = .(, , )
Card.BackgroundTransparency =
Card.Text =
Card.AutoButtonColor =
Card.Parent = UI.CarouselContainer
FrameBox = .(, Card)
FrameBox.Name =
FrameBox.Size = .(, , , )
FrameBox.BackgroundColor3 = .(, , )
FrameBox.ClipsDescendants =
.(, FrameBox).CornerRadius = .(, )
CardStroke = .(, FrameBox)
CardStroke.Color = .(, , )
CardStroke.Thickness =
CoverArt = .(, FrameBox)
CoverArt.Size = .(, , , )
CoverArt.BackgroundTransparency =
CoverArt.ScaleType = .ScaleType.Crop
(()
CoverArt.Image = Players:(targetPlayer.UserId, .ThumbnailType.AvatarBust, .ThumbnailSize.Size420x420)
)
DisplayLabel = .(, FrameBox)
DisplayLabel.Size = .(, -, , )
DisplayLabel.Position = .(, , , -)
DisplayLabel.BackgroundTransparency =
DisplayLabel.TextColor3 = .(, , )
DisplayLabel.TextSize =
DisplayLabel.Font = .Font.GothamBold
DisplayLabel.TextTruncate = .TextTruncate.AtEnd
DisplayLabel.TextXAlignment = .TextXAlignment.Left
DisplayLabel.Text = targetPlayer.DisplayName
Card.MouseButton1Click:(()
SystemState.IsLocked SystemState.TargetIndex ~= i
SystemState.CurrentIndex = SystemState.TargetIndex
SystemState.TargetIndex = i
SystemState.TransitionProgress =
)
CardInstances[targetPlayer.UserId] = Card
#SystemState.TargetList ==
UI.FocusedTitle.Text =
UI.FocusedSub.Text =
UI.MetaAge.Text =
UI.MetaLocation.Text =
UI.MetaReason.Text =
UI.MetaShame.Text =
UI.MetaDevice.Text =
()
RunService.RenderStepped:((dt)
SystemState.TransitionProgress <
SystemState.TransitionProgress = .(, SystemState.TransitionProgress + (dt / ))
SystemState.MenuOpen ()
)
UI.CommandBar.FocusLost:((enterPressed)
enterPressed
text = UI.CommandBar.Text
UI.CommandBar.Text =
parts = {}
w text:() .(parts, w)
#parts >
cmd = parts[]:()
(cmd == cmd == ) parts[]
target = (parts[])
target SystemState.Whitelisted[target]
loc = (target)
SystemState.Targets[target] = { Player = target, LastRoast = , RoastCount = , Reason = , Location = loc }
()
(cmd == cmd == cmd == cmd == ) parts[]
target = (parts[])
target
SystemState.Whitelisted[target] =
SystemState.Targets[target] =
()
( .. (target.DisplayName target.Name) .. )
(cmd == cmd == cmd == cmd == ) parts[]
target = (parts[])
target
SystemState.Whitelisted[target] =
( .. (target.DisplayName target.Name) .. )
(cmd == cmd == ) parts[]
target = (parts[])
target
SystemState.Whitelisted[target] =
SystemState.Targets[target] =
()
( .. (target.DisplayName target.Name) .. )
(cmd == cmd == ) parts[]
target = (parts[])
target
SystemState.Whitelisted[target] =
( .. (target.DisplayName target.Name) .. )
cmd == cmd ==
parts[]
target = (parts[])
target SystemState.Targets[target] =
SystemState.Targets = {}
()
)
(sender, message)
sender == LocalPlayer SystemState.Whitelisted[sender]
msgLower = message:()
myName = LocalPlayer.Name:()
myDisplay = LocalPlayer.DisplayName:()
mentionsMe = msgLower:(myName) msgLower:(myDisplay) msgLower:()
SystemState.Targets[sender]
(message)
SystemState.Targets[sender] =
()
template = CustomApologies[.(, #CustomApologies)]
finalApology = template:(, sender.DisplayName sender.Name)
(finalApology)
mentionsMe
_, nice (NiceKeywords)
msgLower:(nice)
_, aggro (AggroKeywords)
msgLower:(aggro)
SystemState.Targets[sender]
loc = (sender)
SystemState.Targets[sender] = { Player = sender, LastRoast = , RoastCount = , Reason = .. aggro .. , Location = loc }
()
(player)
player.Chatted:((msg)
(player, msg)
targetData = SystemState.Targets[player]
targetData SystemState.Whitelisted[player]
now = .()
(now - (targetData.LastRoast )) >=
targetData.LastRoast = now
targetData.RoastCount = (targetData.RoastCount ) +
SystemState.TotalSessionRoasts = SystemState.TotalSessionRoasts +
UI.MetaSessionStats.Text = .(, SystemState.TotalSessionRoasts)
.(, ()
response = (player, msg)
(response)
SystemState.TargetList[SystemState.TargetIndex] == player
UI.MetaShame.Text = .. (targetData.RoastCount)
)
)
_, p (Players:())
p ~= LocalPlayer (p)
Players.PlayerAdded:(AttachChatListener)
Players.PlayerRemoving:((p)
SystemState.Targets[p] =
SystemState.Whitelisted[p] =
()
)
An AI bot that roasts and jokes for you automatically also preventing you from chat ban or any other bans!

Universal