Run it
Copy the script and paste it into your executor.
Players = :()
LP = Players.LocalPlayer
CoreGui = :()
UIS = :()
TweenService = :()
OWNER_LIST = {
[] = ,
[] = ,
[] = ,
}
ADMIN_LIST = {
[] = ,
[] = ,
}
scriptUsers = {}
(player)
attr = player:()
attr ==
OWNER_LIST[player.Name] ADMIN_LIST[player.Name]
scriptUsers[player.Name]
(() LP:(, ) )
.(()
.()
_, p (Players:())
(()
p:() ==
scriptUsers[p.Name] =
)
)
CoreGui:()
CoreGui.XaNaxChat:()
CoreGui:()
CoreGui.XaNaxNotif:()
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.Parent = CoreGui
gui.IgnoreGuiInset =
main = .(, gui)
main.Name =
main.Size = .(, , , )
main.Position = .(, , , )
main.BackgroundColor3 = .(, , )
main.BackgroundTransparency =
main.BorderSizePixel =
main.Active =
main.Draggable =
.(, main).CornerRadius = .(, )
stroke = .(, main)
stroke.Thickness =
stroke.Color = .(, , )
stroke.Transparency =
header = .(, main)
header.Size = .(, , , )
header.BackgroundColor3 = .(, , )
header.BorderSizePixel =
.(, header).CornerRadius = .(, )
title = .(, header)
title.Size = .(, -, , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
chatScroll = .(, main)
chatScroll.Name =
chatScroll.Size = .(, -, , -)
chatScroll.Position = .(, , , )
chatScroll.BackgroundTransparency =
chatScroll.ScrollBarThickness =
chatScroll.ScrollBarImageColor3 = .(, , )
chatScroll.CanvasSize = .(, , , )
chatScroll.AutomaticCanvasSize = .AutomaticSize.Y
chatLayout = .(, chatScroll)
chatLayout.Padding = .(, )
chatLayout.SortOrder = .SortOrder.LayoutOrder
inputFrame = .(, main)
inputFrame.Size = .(, -, , )
inputFrame.Position = .(, , , -)
inputFrame.BackgroundColor3 = .(, , )
inputFrame.BorderSizePixel =
.(, inputFrame).CornerRadius = .(, )
inputBox = .(, inputFrame)
inputBox.Size = .(, -, , )
inputBox.Position = .(, , , )
inputBox.BackgroundTransparency =
inputBox.Text =
inputBox.PlaceholderText =
inputBox.PlaceholderColor3 = .(, , )
inputBox.TextColor3 = .(, , )
inputBox.Font = .Font.Gotham
inputBox.TextSize =
inputBox.TextXAlignment = .TextXAlignment.Left
inputBox.ClearTextOnFocus =
sendBtn = .(, inputFrame)
sendBtn.Size = .(, , , )
sendBtn.Position = .(, -, , )
sendBtn.BackgroundColor3 = .(, , )
sendBtn.Text =
sendBtn.TextColor3 = .(, , )
sendBtn.Font = .Font.GothamBold
sendBtn.TextSize =
sendBtn.BorderSizePixel =
.(, sendBtn).CornerRadius = .(, )
sendBtn.MouseEnter:(()
sendBtn.BackgroundColor3 = .(, , )
)
sendBtn.MouseLeave:(()
sendBtn.BackgroundColor3 = .(, , )
)
hideBtn = .(, gui)
hideBtn.Name =
hideBtn.Size = .(, , , )
hideBtn.Position = .(, , , -)
hideBtn.BackgroundColor3 = .(, , )
hideBtn.Text =
hideBtn.TextColor3 = .(, , )
hideBtn.Font = .Font.GothamBold
hideBtn.TextSize =
hideBtn.BorderSizePixel =
hideBtn.Active =
hideBtn.Draggable =
.(, hideBtn).CornerRadius = .(, )
hideStroke = .(, hideBtn)
hideStroke.Thickness =
hideStroke.Color = .(, , )
notifGui = .()
notifGui.Name =
notifGui.ResetOnSpawn =
notifGui.Parent = CoreGui
notifGui.IgnoreGuiInset =
notifContainer = .(, notifGui)
notifContainer.Name =
notifContainer.Size = .(, , , )
notifContainer.Position = .(, -, , )
notifContainer.BackgroundTransparency =
notifContainer.AutomaticSize = .AutomaticSize.Y
notifLayout = .(, notifContainer)
notifLayout.Padding = .(, )
notifLayout.SortOrder = .SortOrder.LayoutOrder
notifLayout.HorizontalAlignment = .HorizontalAlignment.Center
(playerName, message)
tag = (playerName)
displayName = tag (tag .. .. playerName) playerName
notif = .(, notifContainer)
notif.Size = .(, , , )
notif.BackgroundColor3 = .(, , )
notif.BackgroundTransparency =
notif.BorderSizePixel =
notif.AutomaticSize = .AutomaticSize.X
.(, notif).CornerRadius = .(, )
nStroke = .(, notif)
nStroke.Thickness =
nStroke.Color = .(, , )
avatar = .(, notif)
avatar.Size = .(, , , )
avatar.Position = .(, , , )
avatar.BackgroundColor3 = .(, , )
avatar.BorderSizePixel =
avatar.Image = (playerName)
.(, avatar).CornerRadius = .(, )
avStroke = .(, avatar)
avStroke.Thickness =
avStroke.Color = (playerName)
nameLabel = .(, notif)
nameLabel.Size = .(, -, , )
nameLabel.Position = .(, , , )
nameLabel.BackgroundTransparency =
nameLabel.TextXAlignment = .TextXAlignment.Left
nameLabel.Font = .Font.GothamBold
nameLabel.TextSize =
nameLabel.TextColor3 = (playerName)
nameLabel.Text = displayName
msgLabel = .(, notif)
msgLabel.Size = .(, -, , )
msgLabel.Position = .(, , , )
msgLabel.BackgroundTransparency =
msgLabel.Text = message
msgLabel.TextColor3 = .(, , )
msgLabel.Font = .Font.Gotham
msgLabel.TextSize =
msgLabel.TextXAlignment = .TextXAlignment.Left
msgLabel.TextYAlignment = .TextYAlignment.Top
msgLabel.TextWrapped =
notif.Position = .(, , , -)
notif.BackgroundTransparency =
TweenService:(notif, TweenInfo.(, .EasingStyle.Quad), {
Position = .(, , , ),
BackgroundTransparency =
}):()
.(, ()
TweenService:(notif, TweenInfo.(, .EasingStyle.Quad), {
Position = .(, , , -),
BackgroundTransparency =
}):()
.()
notif:()
)
(playerName)
OWNER_LIST[playerName]
ADMIN_LIST[playerName]
(playerName)
OWNER_LIST[playerName] .(, , )
ADMIN_LIST[playerName] .(, , )
.(, , )
avatarCache = {}
(playerName)
avatarCache[playerName] avatarCache[playerName]
url =
(()
userId = Players:(playerName)
url = .. userId ..
)
avatarCache[playerName] = url
url
chatHistory = {}
MAX_CHAT =
(playerName, message, isSystem)
chatItem = .(, chatScroll)
chatItem.Size = .(, , , )
chatItem.BackgroundColor3 = isSystem .(, , ) .(, , )
chatItem.BackgroundTransparency =
chatItem.BorderSizePixel =
.(, chatItem).CornerRadius = .(, )
avatar = .(, chatItem)
avatar.Size = .(, , , )
avatar.Position = .(, , , )
avatar.BackgroundColor3 = .(, , )
avatar.BorderSizePixel =
avatar.Image = (playerName)
.(, avatar).CornerRadius = .(, )
avStroke = .(, avatar)
avStroke.Thickness =
avStroke.Color = (playerName)
nameLabel = .(, chatItem)
nameLabel.Size = .(, -, , )
nameLabel.Position = .(, , , )
nameLabel.BackgroundTransparency =
nameLabel.TextXAlignment = .TextXAlignment.Left
nameLabel.Font = .Font.GothamBold
nameLabel.TextSize =
tag = (playerName)
tag isSystem
nameLabel.Text = tag .. .. playerName
nameLabel.TextColor3 = (playerName)
nameLabel.Text = playerName
nameLabel.TextColor3 = isSystem .(, , ) .(, , )
msgLabel = .(, chatItem)
msgLabel.Size = .(, -, , )
msgLabel.Position = .(, , , )
msgLabel.BackgroundTransparency =
msgLabel.Text = message
msgLabel.TextColor3 = .(, , )
msgLabel.Font = .Font.Gotham
msgLabel.TextSize =
msgLabel.TextXAlignment = .TextXAlignment.Left
msgLabel.TextYAlignment = .TextYAlignment.Top
msgLabel.TextWrapped =
.()
chatScroll.CanvasPosition = .(, chatScroll.AbsoluteCanvasSize.Y)
.(chatHistory, {name = playerName, msg = message, system = isSystem})
#chatHistory > MAX_CHAT
.(chatHistory, )
firstChild = chatScroll:()[]
firstChild firstChild:()
firstChild:()
()
msg = inputBox.Text
msg ==
inputBox.Text =
(LP.Name, msg, )
(LP.Name, msg)
sendBtn.MouseButton1Click:(sendChat)
inputBox.FocusLost:((enter)
enter ()
)
(player)
.()
attr = player:()
isOwner = OWNER_LIST[player.Name]
isAdmin = ADMIN_LIST[player.Name]
attr == isOwner isAdmin
scriptUsers[player.Name] =
tag = (player.Name)
tag
(player.Name, .. tag .. .. player.Name .. , )
(player.Name, .. player.Name .. , )
Players.PlayerAdded:(onPlayerAdded)
Players.PlayerRemoving:((player)
scriptUsers[player.Name] OWNER_LIST[player.Name] ADMIN_LIST[player.Name]
OWNER_LIST[player.Name]
(player.Name, .. player.Name .. , )
ADMIN_LIST[player.Name]
(player.Name, .. player.Name .. , )
(player.Name, .. player.Name .. , )
scriptUsers[player.Name] =
)
.(()
.()
_, p (Players:())
p ~= LP
attr = p:()
isOwner = OWNER_LIST[p.Name]
isAdmin = ADMIN_LIST[p.Name]
attr == isOwner isAdmin
scriptUsers[p.Name] =
tag = (p.Name)
tag
(p.Name, .. tag .. .. p.Name .. , )
)
isHidden =
hideBtn.MouseButton1Click:(()
isHidden = isHidden
main.Visible = isHidden
isHidden
hideBtn.BackgroundColor3 = .(, , )
hideBtn.BackgroundColor3 = .(, , )
)
(frame, handle)
handle = handle frame
dragging, dragInput, dragStart, startPos
handle.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = frame.Position
)
handle.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dragInput = input
)
UIS.InputChanged:((input)
input == dragInput dragging
delta = input.Position - dragStart
frame.Position = .(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
)
handle.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
)
(main, header)
(hideBtn)
.()
(, , )
(LP.Name, , )
(LP.Name, )
()Xanax

Universal