Run it
Copy the script and paste it into your executor.
CoreGui = :()
Players = :()
StarterGui = :()
UserInputService = :()
HttpService = :()
TeleportService = :()
LocalPlayer = Players.LocalPlayer
()
(()
RE = :():(, )
RE
RE:():(, )
RE:():(, )
RE:():(, .(, , ))
(()
RE:():(, .(, , ))
)
)
.(()
.()
RE = :():(, )
RE
RE:():(, )
RE:():(, )
Green = .(, , )
Red = .(, , )
RE:():(, Green)
RE:():(, Red)
)
FIREBASE_URL =
CURRENT_VERSION_STRING =
FOLDER_NAME =
VERSION_FILE = FOLDER_NAME ..
RUNS_FILE = FOLDER_NAME ..
CHAT_PATH = .. (.JobId ~= .JobId )
PRESENCE_PATH =
ANNOUNCE_PATH =
MAX_MESSAGES =
PRESENCE_TTL =
(options)
req = ( .request) ( .request)
req
(options)
{Success = , Body = }
(s)
(s):(, {[] = , [] = , [] = })
(FOLDER_NAME) (FOLDER_NAME)
()
response = ({
Url = FIREBASE_URL .. ,
Method =
})
response.Success
response.Body ~=
cloudVersion = .(response.Body, , )
CURRENT_VERSION_STRING ~= cloudVersion
()
parentGui = (gethui ()) CoreGui:() CoreGui
UpdateGui = .(, parentGui)
UpdateGui.Name =
BG = .(, UpdateGui)
BG.Size = .(, , , )
BG.BackgroundColor3 = .(, , )
Warning = .(, BG)
Warning.Size = .(, , , )
Warning.Text =
Warning.TextColor3 = .(, , )
Warning.TextSize =
Warning.BackgroundTransparency =
(VERSION_FILE, CURRENT_VERSION_STRING)
runCount =
(RUNS_FILE)
runCount = ((RUNS_FILE))
runCount = runCount +
(RUNS_FILE, (runCount))
isFirstRun = runCount ==
MY_JOB_ID = .JobId ~= .JobId
MY_PLACE_ID = .PlaceId
()
({
Url = FIREBASE_URL .. PRESENCE_PATH .. .. LocalPlayer.UserId .. ,
Method = ,
Headers = {[] = },
Body = HttpService:({
DisplayName = LocalPlayer.DisplayName,
Username = LocalPlayer.Name,
UserId = LocalPlayer.UserId,
JobId = MY_JOB_ID,
PlaceId = MY_PLACE_ID,
LastSeen = .()
})
})
()
({
Url = FIREBASE_URL .. PRESENCE_PATH .. .. LocalPlayer.UserId .. ,
Method =
})
()
.(()
.() ()
)
LocalPlayer.AncestryChanged:(()
LocalPlayer:() ()
)
parentGui = (gethui ()) CoreGui:() CoreGui
parentGui:() parentGui.GlobalChatGui:()
ScreenGui = .(, parentGui)
ScreenGui.Name =
ScreenGui.IgnoreGuiInset =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
Container = .(, ScreenGui)
Container.Name =
Container.BackgroundColor3 = .(, , )
Container.BackgroundTransparency =
Container.BorderColor3 = .(, , )
Container.BorderSizePixel =
Container.Position = .(, , , )
Container.Size = .(, , , )
Container.Visible =
ContainerCorner = .(, Container)
ContainerCorner.CornerRadius = .(, )
ChatScroll = .(, Container)
ChatScroll.BackgroundTransparency =
ChatScroll.Position = .(, , , )
ChatScroll.Size = .(, -, , -)
ChatScroll.AutomaticCanvasSize = .AutomaticSize.Y
ChatScroll.CanvasSize = .(, , , )
ChatScroll.ScrollBarThickness =
ChatScroll.ScrollBarImageColor3 = .(, , )
Layout = .(, ChatScroll)
Layout.Padding = .(, )
TextBox = .(, Container)
TextBox.BackgroundColor3 = .(, , )
TextBox.BackgroundTransparency =
TextBox.BorderColor3 = .(, , )
TextBox.BorderSizePixel =
TextBox.Position = .(, , , )
TextBox.Size = .(, , , )
TextBox.Font = .Font.SourceSansBold
TextBox.PlaceholderText =
TextBox.Text =
TextBox.TextColor3 = .(, , )
TextBox.TextSize =
TextBox.TextWrapped =
TextBox.TextXAlignment = .TextXAlignment.Left
TextBox.ClearTextOnFocus =
.(, TextBox)
ToggleButton = .(, ScreenGui)
ToggleButton.Name =
ToggleButton.BackgroundColor3 = .(, , )
ToggleButton.BackgroundTransparency =
ToggleButton.AnchorPoint = .(, )
ToggleButton.Position = .(, -, , )
ToggleButton.Size = .(, , , )
ToggleButton.Image =
.(, ToggleButton).CornerRadius = .(, )
UnreadBadge = .(, ScreenGui)
UnreadBadge.Name =
UnreadBadge.BackgroundColor3 = .(, , )
UnreadBadge.AnchorPoint = .(, )
UnreadBadge.Position = .(, -, , )
UnreadBadge.Size = .(, , , )
UnreadBadge.Font = .Font.GothamBold
UnreadBadge.Text =
UnreadBadge.TextColor3 = .(, , )
UnreadBadge.TextSize =
UnreadBadge.TextXAlignment = .TextXAlignment.Center
UnreadBadge.Visible =
.(, UnreadBadge).CornerRadius = .(, )
OnlineButton = .(, ScreenGui)
OnlineButton.Name =
OnlineButton.BackgroundColor3 = .(, , )
OnlineButton.BackgroundTransparency =
OnlineButton.AnchorPoint = .(, )
OnlineButton.Position = .(, -, , )
OnlineButton.Size = .(, , , )
OnlineButton.Text =
OnlineButton.TextSize =
.(, OnlineButton).CornerRadius = .(, )
OnlinePanel = .(, ScreenGui)
OnlinePanel.BackgroundColor3 = .(, , )
OnlinePanel.BackgroundTransparency =
OnlinePanel.AnchorPoint = .(, )
OnlinePanel.Position = .(, , , )
OnlinePanel.Size = .(, , , )
OnlinePanel.Visible =
.(, OnlinePanel)
OnlineTitle = .(, OnlinePanel)
OnlineTitle.BackgroundTransparency =
OnlineTitle.Position = .(, , , )
OnlineTitle.Size = .(, -, , )
OnlineTitle.Font = .Font.GothamBold
OnlineTitle.Text =
OnlineTitle.TextColor3 = .(, , )
OnlineTitle.TextSize =
OnlineTitle.TextXAlignment = .TextXAlignment.Left
OnlineScroll = .(, OnlinePanel)
OnlineScroll.BackgroundTransparency =
OnlineScroll.Position = .(, , , )
OnlineScroll.Size = .(, -, , -)
OnlineScroll.AutomaticCanvasSize = .AutomaticSize.Y
OnlineScroll.CanvasSize = .(, , , )
OnlineScroll.ScrollBarThickness =
OnlineLayout = .(, OnlineScroll)
OnlineLayout.Padding = .(, )
unreadCount =
()
Container.Visible
unreadCount +=
UnreadBadge.Text = unreadCount > (unreadCount)
UnreadBadge.Visible =
()
unreadCount =
UnreadBadge.Text =
UnreadBadge.Visible =
()
labels = {}
_, c (ChatScroll:())
c:() .(labels, c)
.(labels, (a, b)
a.AbsolutePosition.Y < b.AbsolutePosition.Y
)
#labels > MAX_MESSAGES
i = , #labels - MAX_MESSAGES
labels[i]:()
(sender, text, isSystem)
TextLabel = .(, ChatScroll)
TextLabel.BackgroundTransparency =
TextLabel.Size = .(, , , )
TextLabel.Font = .Font.SourceSansBold
TextLabel.TextSize =
TextLabel.RichText =
TextLabel.TextWrapped =
TextLabel.AutomaticSize = .AutomaticSize.Y
TextLabel.TextXAlignment = .TextXAlignment.Left
nameColor = isSystem
TextLabel.Text = .(
,
nameColor, (sender), (text)
)
()
.(()
ChatScroll.CanvasPosition = .(, ChatScroll.AbsoluteCanvasSize.Y)
)
isSystem ()
(sender, text)
toast = .(, ScreenGui)
toast.BackgroundColor3 = .(, , )
toast.AnchorPoint = .(, )
toast.Position = .(, , , )
toast.Size = .(, , , )
.(, toast).CornerRadius = .(, )
leftBulge = .(, toast)
leftBulge.BackgroundColor3 = .(, , )
leftBulge.BorderSizePixel =
leftBulge.AnchorPoint = .(, )
leftBulge.Position = .(, , , )
leftBulge.Size = .(, , , )
.(, leftBulge).CornerRadius = .(, )
rightBulge = .(, toast)
rightBulge.BackgroundColor3 = .(, , )
rightBulge.BorderSizePixel =
rightBulge.AnchorPoint = .(, )
rightBulge.Position = .(, -, , )
rightBulge.Size = .(, , , )
.(, rightBulge).CornerRadius = .(, )
senderLabel = .(, toast)
senderLabel.BackgroundTransparency =
senderLabel.AnchorPoint = .(, )
senderLabel.Position = .(, , , )
senderLabel.Size = .(, , , )
senderLabel.Font = .Font.GothamMedium
senderLabel.Text = (sender)
senderLabel.TextColor3 = .(, , )
senderLabel.TextSize =
senderLabel.TextStrokeTransparency =
senderLabel.TextStrokeColor3 = .(, , )
senderLabel.TextXAlignment = .TextXAlignment.Center
msgLabel = .(, toast)
msgLabel.BackgroundTransparency =
msgLabel.AnchorPoint = .(, )
msgLabel.Position = .(, , , )
msgLabel.Size = .(, , , )
msgLabel.Font = .Font.GothamBold
msgLabel.Text = (text)
msgLabel.TextColor3 = .(, , )
msgLabel.TextSize =
msgLabel.TextStrokeTransparency =
msgLabel.TextStrokeColor3 = .(, , )
msgLabel.TextXAlignment = .TextXAlignment.Center
msgLabel.TextWrapped =
chatLabel = .(, ChatScroll)
chatLabel.BackgroundColor3 = .(, , )
chatLabel.BackgroundTransparency =
chatLabel.Size = .(, , , )
chatLabel.Font = .Font.SourceSansBold
chatLabel.TextSize =
chatLabel.RichText =
chatLabel.TextWrapped =
chatLabel.AutomaticSize = .AutomaticSize.Y
chatLabel.TextXAlignment = .TextXAlignment.Left
.(, chatLabel).CornerRadius = .(, )
chatLabel.Text = .(
,
(sender), (text)
)
()
.(()
ChatScroll.CanvasPosition = .(, ChatScroll.AbsoluteCanvasSize.Y)
)
.(, ()
toast toast.Parent toast:()
)
(sender, message, msgId)
({
Url = FIREBASE_URL .. CHAT_PATH .. ,
Method = ,
Headers = {[] = },
Body = HttpService:({
[] = sender,
[] = message,
[] = .(),
[] = msgId
})
})
seenKeys = {}
seenAnnouncements = {}
()
response = ({
Url = FIREBASE_URL .. ANNOUNCE_PATH .. ,
Method =
})
response.Success response.Body ~=
ok, data = (HttpService.JSONDecode, HttpService, response.Body)
ok
key, _ (data)
seenAnnouncements[key] =
()
response = ({
Url = FIREBASE_URL .. ANNOUNCE_PATH .. ,
Method =
})
response.Success response.Body ==
ok, data = (HttpService.JSONDecode, HttpService, response.Body)
ok
entries = {}
key, v (data)
seenAnnouncements[key]
.(entries, {key = key, data = v})
.(entries, (a, b) a.data.PostedAt < b.data.PostedAt )
_, entry (entries)
seenAnnouncements[entry.key] =
(entry.data.PostedBy , entry.data.Message )
(senderName, text)
target =
_, p (Players:())
p.DisplayName == senderName p.Name == senderName
target = p
target target.Character
head = target.Character:()
head
existing = head:()
existing existing:()
billboard = .(, head)
billboard.Name =
billboard.Size = .(, , , )
billboard.StudsOffset = .(, , )
billboard.AlwaysOnTop =
billboard.ResetOnSpawn =
bg = .(, billboard)
bg.BackgroundColor3 = .(, , )
bg.BackgroundTransparency =
bg.Size = .(, , , )
bg.BorderSizePixel =
.(, bg).CornerRadius = .(, )
label = .(, bg)
label.BackgroundTransparency =
label.Size = .(, -, , )
label.Position = .(, , , )
label.Font = .Font.GothamMedium
label.TextSize =
label.TextColor3 = .(, , )
label.TextWrapped =
label.Text = text
label.TextXAlignment = .TextXAlignment.Center
billboard.Size = .(, , , .(label.TextBounds.Y + , , ))
.(, ()
billboard billboard.Parent
billboard:()
)
()
.(()
ScreenGui.Parent .()
response = ({
Url = FIREBASE_URL .. CHAT_PATH .. ,
Method =
})
response.Success response.Body ~=
ok, data = (HttpService.JSONDecode, HttpService, response.Body)
ok
msgs = {}
key, v (data)
uid = v.MsgId key
seenKeys[uid]
.(msgs, {uid = uid, data = v})
.(msgs, (a, b) a.data.Time < b.data.Time )
_, entry (msgs)
seenKeys[entry.uid] =
(entry.data.Sender, entry.data.Message, )
(entry.data.Sender, entry.data.Message)
)
.(()
ScreenGui.Parent .()
()
)
()
_, c (OnlineScroll:())
c:() c:()
(info)
row = .(, OnlineScroll)
row.BackgroundColor3 = .(, , )
row.BackgroundTransparency =
row.Size = .(, , , )
.(, row)
nameLabel = .(, row)
nameLabel.BackgroundTransparency =
nameLabel.Position = .(, , , )
nameLabel.Size = .(, -, , )
nameLabel.Font = .Font.GothamMedium
nameLabel.TextSize =
nameLabel.TextColor3 = .(, , )
nameLabel.TextXAlignment = .TextXAlignment.Left
nameLabel.TextTruncate = .TextTruncate.AtEnd
nameLabel.RichText =
sameServer = info.JobId == MY_JOB_ID
tag = sameServer
nameLabel.Text = (info.DisplayName) .. .. (info.Username) .. .. tag
sameServer
joinBtn = .(, row)
joinBtn.BackgroundColor3 = .(, , )
joinBtn.BackgroundTransparency =
joinBtn.Position = .(, -, , -)
joinBtn.Size = .(, , , )
joinBtn.Font = .Font.GothamBold
joinBtn.Text =
joinBtn.TextColor3 = .(, , )
joinBtn.TextSize =
.(, joinBtn).CornerRadius = .(, )
joinBtn.MouseButton1Click:(()
(()
TeleportService:(info.PlaceId, info.JobId, LocalPlayer)
)
)
()
response = ({
Url = FIREBASE_URL .. PRESENCE_PATH .. ,
Method =
})
()
response.Success response.Body ==
empty = .(, OnlineScroll)
empty.BackgroundTransparency =
empty.Size = .(, , , )
empty.Font = .Font.Gotham
empty.Text =
empty.TextColor3 = .(, , )
empty.TextSize =
ok, data = (HttpService.JSONDecode, HttpService, response.Body)
ok
now = .()
_, info (data)
(now - (info.LastSeen )) <= PRESENCE_TTL
(info)
.(()
ScreenGui.Parent .()
OnlinePanel.Visible ()
)
flying =
flyBody =
()
flying =
flyBody flyBody:() flyBody =
char = LocalPlayer.Character
char
hum = char:()
hum hum.PlatformStand =
()
char = LocalPlayer.Character
char
hum = char:()
root = char:()
hum root
flying =
hum.PlatformStand =
bg = .(, root)
bg.MaxTorque = .(, , )
bg.P =
flyBody = bg
bv = .(, root)
bv.MaxForce = .(, , )
bv.Velocity = .zero
cam = .CurrentCamera
SPEED =
.(()
flying root.Parent
cf = cam.CFrame
dir = .zero
UserInputService:(.KeyCode.W) dir += cf.LookVector
UserInputService:(.KeyCode.S) dir -= cf.LookVector
UserInputService:(.KeyCode.A) dir -= cf.RightVector
UserInputService:(.KeyCode.D) dir += cf.RightVector
UserInputService:(.KeyCode.Space) dir += .(,,)
UserInputService:(.KeyCode.LeftShift) dir -= .(,,)
bv.Velocity = dir.Magnitude > dir.Unit * SPEED .zero
bg.CFrame = cf
.()
bv:()
)
()
char = LocalPlayer.Character
char
hum = char:()
hum
animId = hum.RigType == .HumanoidRigType.R15
anim = .()
anim.AnimationId = animId
track = hum:(anim)
track:()
(, , )
HELP_TEXT = {
,
,
,
,
,
,
,
,
,
,
}
(input)
args = {}
word input:() .(args, word)
cmd = args[] args[]:()
cmd ==
_, line (HELP_TEXT) (, line, )
cmd ==
_, c (ChatScroll:())
c:() c:()
(, , )
cmd == args[] args[]:() ==
()
cmd ==
StarterGui:(, )
cmd ==
flying
()
(, , )
()
(, , )
cmd ==
val = (args[])
val
char = LocalPlayer.Character
hum = char char:()
hum hum.WalkSpeed = val (, .. val, )
cmd ==
val = (args[])
val
char = LocalPlayer.Character
hum = char char:()
hum hum.JumpPower = val hum.JumpHeight = val (, .. val, )
cmd ==
TeleportService:(.PlaceId)
()
overlay = .(, ScreenGui)
overlay.BackgroundColor3 = .(, , )
overlay.BackgroundTransparency =
overlay.Size = .(, , , )
overlay.ZIndex =
card = .(, overlay)
card.BackgroundColor3 = .(, , )
card.BackgroundTransparency =
card.AnchorPoint = .(, )
card.Position = .(, , , )
card.Size = .(, , , )
card.ZIndex =
.(, card).CornerRadius = .(, )
titleLabel = .(, card)
titleLabel.BackgroundTransparency =
titleLabel.Position = .(, , , )
titleLabel.Size = .(, , , )
titleLabel.Font = .Font.GothamBold
titleLabel.TextColor3 = .(, , )
titleLabel.TextSize =
titleLabel.TextXAlignment = .TextXAlignment.Center
titleLabel.ZIndex =
bodyLabel = .(, card)
bodyLabel.BackgroundTransparency =
bodyLabel.Position = .(, , , )
bodyLabel.Size = .(, -, , )
bodyLabel.Font = .Font.GothamMedium
bodyLabel.TextColor3 = .(, , )
bodyLabel.TextSize =
bodyLabel.TextWrapped =
bodyLabel.TextXAlignment = .TextXAlignment.Center
bodyLabel.TextYAlignment = .TextYAlignment.Top
bodyLabel.ZIndex =
pageLabel = .(, card)
pageLabel.BackgroundTransparency =
pageLabel.Position = .(, , , -)
pageLabel.Size = .(, , , )
pageLabel.Font = .Font.Gotham
pageLabel.TextColor3 = .(, , )
pageLabel.TextSize =
pageLabel.TextXAlignment = .TextXAlignment.Left
pageLabel.ZIndex =
nextBtn = .(, card)
nextBtn.BackgroundColor3 = .(, , )
nextBtn.AnchorPoint = .(, )
nextBtn.Position = .(, -, , -)
nextBtn.Size = .(, , , )
nextBtn.Font = .Font.GothamBold
nextBtn.TextColor3 = .(, , )
nextBtn.TextSize =
nextBtn.ZIndex =
.(, nextBtn).CornerRadius = .(, )
pages = {
{
title = ,
body =
},
{
title = ,
body =
},
{
title = ,
body =
},
{
title = ,
body =
},
{
title = ,
body =
},
{
title = ,
body =
}
}
currentPage =
(n)
p = pages[n]
titleLabel.Text = p.title
bodyLabel.Text = p.body
pageLabel.Text = n .. .. #pages
nextBtn.Text = n == #pages
()
nextBtn.MouseButton1Click:(()
currentPage < #pages
currentPage +=
(currentPage)
overlay:()
)
ToggleButton.MouseButton1Click:(()
Container.Visible = Container.Visible
Container.Visible ()
)
OnlineButton.MouseButton1Click:(()
OnlinePanel.Visible = OnlinePanel.Visible
OnlinePanel.Visible ()
)
TextBox.FocusLost:((enter)
enter TextBox.Text ~=
input = TextBox.Text
TextBox.Text =
(input)
dName = LocalPlayer.DisplayName
msgId = HttpService:()
seenKeys[msgId] =
(dName, input, )
(dName, input)
.(()
(dName, input, msgId)
)
)
UserInputService.InputBegan:((i, g)
i.KeyCode == .KeyCode.Slash g
Container.Visible Container.Visible =
.()
TextBox:()
)
()
()
(, .. CURRENT_VERSION_STRING .. , )
isFirstRun
()
:().PlayerAdded:((player)
(AddMessage) ==
(, player.Name .. , .(, , ))
)Blook

Universal