Run it
Copy the script and paste it into your executor.
ts = :()
rs = :()
uis = :()
players = :()
lp = players.LocalPlayer
lp
CONFIG = {
distance = ,
scrollSpeed = ,
animTime = ,
platforms = {
PC = {, .(, , )},
Mobile = {, .(, , )},
Console = {, .(, , )},
Unknown = {, .(, , )}
}
}
.BillboardState = {
enabled = ,
uis = {},
activeScroller =
}
(player)
platform =
player.GameplayPaused platform =
uis:() == .Platform.Windows player == lp platform =
platform
(state, direction)
state.tweens
_, t (state.tweens) t:()
state.tweens = {}
transparencyGoal, sizeGoal
direction ==
transparencyGoal, sizeGoal = , .(, )
transparencyGoal, sizeGoal = , .(, )
transparencyTween = ts:(state.main, TweenInfo.(CONFIG.animTime, .EasingStyle.Quint), {BackgroundTransparency = transparencyGoal})
sizeTween = ts:(state.root, TweenInfo.(CONFIG.animTime, .EasingStyle.Quint), {Size = sizeGoal})
.(state.tweens, transparencyTween)
.(state.tweens, sizeTween)
transparencyTween:()
sizeTween:()
sizeTween
(player)
state = { currentState = , tweens = {} }
state.gui = .()
state.gui.Name, state.gui.AlwaysOnTop = ,
state.gui.Size, state.gui.StudsOffset = .(, ), .(, , )
state.root = .(, state.gui)
state.root.Name, state.root.BackgroundTransparency = ,
state.root.ClipsDescendants, state.root.AnchorPoint = , .(, )
state.root.Position, state.root.Size = .(, ), .(, )
state.main = .(, state.root)
state.main.Name, state.main.Size = , .(, )
state.main.BackgroundColor3 = .(, , )
state.main.Active, state.main.BackgroundTransparency = ,
.(, state.main).CornerRadius = .(, )
.(, state.main).Color = .(, , )
platformIcon = .(, state.main)
platformIcon.Name, platformIcon.Size = , .(, )
platformIcon.Position, platformIcon.BackgroundTransparency = .(, , , ),
healthBar = .(, state.main)
healthBar.Name =
healthBar.Size = .(, , , )
healthBar.Position = .(, , , )
healthBar.AnchorPoint = .(, )
healthBar.BackgroundColor3 = .(, , )
.(, healthBar).CornerRadius = .(, )
healthFill = .(, healthBar)
healthFill.Name, healthFill.Size = , .(, )
healthFill.BackgroundColor3 = .(, , )
.(, healthFill).CornerRadius = .(, )
scroller = .(, state.main)
scroller.Name =
scroller.Size = .(, -, , -)
scroller.Position = .(, , , -)
scroller.AnchorPoint = .(, )
scroller.BackgroundTransparency, scroller.BorderSizePixel = ,
scroller.ScrollBarThickness, scroller.AutomaticCanvasSize = , .AutomaticSize.Y
scroller.MouseEnter:(() .BillboardState.activeScroller = scroller )
scroller.MouseLeave:(() .BillboardState.activeScroller = )
grid = .(, scroller)
grid.CellSize, grid.CellPadding = .(, ), .(, )
grid.HorizontalAlignment = .HorizontalAlignment.Center
tooltip = .(, scroller)
tooltip.Name, tooltip.Size = , .(, , , )
tooltip.Position, tooltip.BackgroundColor3 = .(, , , ), .(, , )
tooltip.Font, tooltip.TextColor3, tooltip.TextSize = .Font.SourceSans, .(, , ),
tooltip.Visible =
.(, tooltip).CornerRadius = .(, )
.BillboardState.uis[player] = state
state
(player, char)
.BillboardState.enabled
state = .BillboardState.uis[player]
(state state.gui)
hum = char:()
hum
health = .(hum.Health / hum.MaxHealth, , )
fill = state.main.HealthBar.Fill
fill.Size = .(health, )
fill.BackgroundColor3 = .( * health, , )
pData = CONFIG.platforms[(player)]
pIcon = state.main.PlatformIcon
pIcon.Image, pIcon.ImageColor3 = pData[], pData[]
scroller = state.main.Backpack
tooltip = scroller.Tooltip
_, child scroller:()
child:() child:()
_, tool player.Backpack:()
tool:()
icon = .(, scroller)
icon.Size, icon.BackgroundTransparency, icon.Image = .(, ), , tool.TextureId
icon.MouseEnter:(() tooltip.Text, tooltip.Visible, tooltip.Parent = tool.Name, , icon )
icon.MouseLeave:(() tooltip.Visible, tooltip.Parent = , scroller )
icon.MouseButton1Click:(() tool:().Parent = lp.Backpack )
rs.Heartbeat:(()
.BillboardState.enabled
localChar = lp.Character
(localChar localChar.PrimaryPart)
localPos = localChar.PrimaryPart.Position
_, player players:()
player == lp
state = .BillboardState.uis[player] (player)
char = player.Character
char char.PrimaryPart char:()
dist = (localPos - char.PrimaryPart.Position).Magnitude
dist <= CONFIG.distance state.currentState ==
state.currentState =
state.gui.Adornee = char.Head
state.gui.Parent = char.Head
(state, )
dist > CONFIG.distance state.currentState ==
state.currentState =
tween = (state, )
tween.Completed:()
state.currentState == state.gui.Parent =
state.currentState == (player, char)
state.currentState ==
state.currentState =
state.gui.Parent =
)
uis.InputChanged:((input)
.BillboardState.enabled .BillboardState.activeScroller
input.UserInputType == .UserInputType.Gamepad1 input.KeyCode == .KeyCode.Gamepad1_Thumbstick2
scroller = .BillboardState.activeScroller
scroller.CanvasPosition -= .(, input.Position.Y * CONFIG.scrollSpeed)
)
players.PlayerRemoving:((player)
.BillboardState.uis[player]
.BillboardState.uis[player].gui:()
.BillboardState.uis[player] =
)
lp.Chatted:((msg)
msg == .BillboardState.enabled
.BillboardState.enabled =
_, state (.BillboardState.uis) state.gui:()
.BillboardState.uis = {}
)