Run it
Copy the script and paste it into your executor.
Players = :()
LocalPlayer = Players.LocalPlayer
UserInputService = :()
TweenService = :()
RunService = :()
SPRING_SETTINGS = {
dampingRatio = ,
frequency =
}
COLORS = {
background = .(, , ),
backgroundLight = .(, , ),
backgroundDark = .(, , ),
accent = .(, , ),
accentLight = .(, , ),
accentDark = .(, , ),
text = .(, , ),
textDim = .(, , ),
success = .(, , ),
= .(, , ),
gradient1 = .(, , ),
gradient2 = .(, , )
}
LocalPlayer
Players:():()
LocalPlayer = Players.LocalPlayer
PlayerGui = LocalPlayer:()
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ScreenGui.Parent = PlayerGui
(initial)
spring = {}
spring.target = initial
spring.position = spring.target
spring.velocity =
spring:(dt)
f = SPRING_SETTINGS.frequency * * .pi
d = SPRING_SETTINGS.dampingRatio
r = self.target - self.position
sp = r * f * f
sv = self.velocity * f * d *
acc = sp - sv
self.velocity = self.velocity + acc * dt
self.position = self.position + self.velocity * dt
self.position
spring
MinContainer = .()
MinContainer.Name =
MinContainer.BackgroundTransparency =
MinContainer.Size = .(, , , )
MinContainer.Position = .(, -, , -)
MinContainer.Parent = ScreenGui
MinButton = .()
MinButton.Name =
MinButton.BackgroundColor3 = COLORS.background
MinButton.Size = .(, , , )
MinButton.Position = .(, -, , -)
MinButton.Image =
MinButton.ImageColor3 = COLORS.accent
MinButton.ImageTransparency =
MinButton.Parent = MinContainer
MinButtonCorner = .()
MinButtonCorner.CornerRadius = .(, )
MinButtonCorner.Parent = MinButton
MinButtonStroke = .()
MinButtonStroke.Color = COLORS.accent
MinButtonStroke.Thickness =
MinButtonStroke.Parent = MinButton
MinButtonShadow = .()
MinButtonShadow.Name =
MinButtonShadow.BackgroundTransparency =
MinButtonShadow.Position = .(, -, , -)
MinButtonShadow.Size = .(, , , )
MinButtonShadow.ZIndex = -
MinButtonShadow.Image =
MinButtonShadow.ImageColor3 = .(, , )
MinButtonShadow.ImageTransparency =
MinButtonShadow.ScaleType = .ScaleType.Slice
MinButtonShadow.SliceCenter = Rect.(, , , )
MinButtonShadow.Parent = MinButton
MainFrame = .()
MainFrame.Name =
MainFrame.BackgroundColor3 = COLORS.background
MainFrame.BorderSizePixel =
MainFrame.ClipsDescendants =
MainFrame.Parent = ScreenGui
BlurEffect = .()
BlurEffect.Name =
BlurEffect.BackgroundTransparency =
BlurEffect.Size = .(, , , )
BlurEffect.Image =
BlurEffect.ImageColor3 = COLORS.background
BlurEffect.ImageTransparency =
BlurEffect.Parent = MainFrame
MainCorner = .()
MainCorner.CornerRadius = .(, )
MainCorner.Parent = MainFrame
MainShadow = .()
MainShadow.Name =
MainShadow.BackgroundTransparency =
MainShadow.Position = .(, -, , -)
MainShadow.Size = .(, , , )
MainShadow.ZIndex = -
MainShadow.Image =
MainShadow.ImageColor3 = .(, , )
MainShadow.ImageTransparency =
MainShadow.ScaleType = .ScaleType.Slice
MainShadow.SliceCenter = Rect.(, , , )
MainShadow.Parent = MainFrame
TitleBar = .()
TitleBar.Name =
TitleBar.BackgroundColor3 = COLORS.backgroundDark
TitleBar.BorderSizePixel =
TitleBar.Size = .(, , , )
TitleBar.Parent = MainFrame
TitleGradient = .()
TitleGradient.Color = ColorSequence.({
ColorSequenceKeypoint.(, COLORS.gradient1),
ColorSequenceKeypoint.(, COLORS.gradient2)
})
TitleGradient.Transparency = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
})
TitleGradient.Rotation =
TitleGradient.Parent = TitleBar
TitleBarCorner = .()
TitleBarCorner.CornerRadius = .(, )
TitleBarCorner.Parent = TitleBar
TitleDecoration = .()
TitleDecoration.Name =
TitleDecoration.BackgroundColor3 = COLORS.accent
TitleDecoration.BorderSizePixel =
TitleDecoration.Size = .(, , , )
TitleDecoration.Position = .(, , , )
TitleDecoration.Parent = TitleBar
TitleDecorationCorner = .()
TitleDecorationCorner.CornerRadius = .(, )
TitleDecorationCorner.Parent = TitleDecoration
TitleText = .()
TitleText.Name =
TitleText.BackgroundTransparency =
TitleText.Position = .(, , , )
TitleText.Size = .(, -, , )
TitleText.Font = .Font.GothamBold
TitleText.Text =
TitleText.TextColor3 = COLORS.text
TitleText.TextSize =
TitleText.TextXAlignment = .TextXAlignment.Left
TitleText.Parent = TitleBar
OnlineIndicator = .()
OnlineIndicator.Name =
OnlineIndicator.BackgroundColor3 = COLORS.success
OnlineIndicator.BorderSizePixel =
OnlineIndicator.Size = .(, , , )
OnlineIndicator.Position = .(, , , )
OnlineIndicator.Parent = TitleBar
OnlineIndicatorCorner = .()
OnlineIndicatorCorner.CornerRadius = .(, )
OnlineIndicatorCorner.Parent = OnlineIndicator
(object)
tweenInfo = TweenInfo.(
,
.EasingStyle.Sine,
.EasingDirection.InOut,
-,
)
tween = TweenService:(object, tweenInfo, {
BackgroundTransparency =
})
tween:()
(OnlineIndicator)
CloseButton = .()
CloseButton.Name =
CloseButton.BackgroundTransparency =
CloseButton.Position = .(, -, , )
CloseButton.Size = .(, , , )
CloseButton.Image =
CloseButton.ImageColor3 = COLORS.text
CloseButton.ImageTransparency =
CloseButton.Parent = TitleBar
PlayerCount = .()
PlayerCount.Name =
PlayerCount.BackgroundTransparency =
PlayerCount.Position = .(, , , )
PlayerCount.Size = .(, -, , )
PlayerCount.Font = .Font.GothamSemibold
PlayerCount.TextColor3 = COLORS.textDim
PlayerCount.TextSize =
PlayerCount.TextXAlignment = .TextXAlignment.Left
PlayerCount.Parent = MainFrame
SearchBar = .()
SearchBar.Name =
SearchBar.BackgroundColor3 = COLORS.backgroundLight
SearchBar.Position = .(, , , )
SearchBar.Size = .(, -, , )
SearchBar.Parent = MainFrame
SearchBarCorner = .()
SearchBarCorner.CornerRadius = .(, )
SearchBarCorner.Parent = SearchBar
SearchIcon = .()
SearchIcon.Name =
SearchIcon.BackgroundTransparency =
SearchIcon.Position = .(, , , )
SearchIcon.Size = .(, , , )
SearchIcon.Image =
SearchIcon.ImageColor3 = COLORS.textDim
SearchIcon.Parent = SearchBar
SearchBox = .()
SearchBox.Name =
SearchBox.BackgroundTransparency =
SearchBox.Position = .(, , , )
SearchBox.Size = .(, -, , )
SearchBox.Font = .Font.Gotham
SearchBox.PlaceholderText =
SearchBox.Text =
SearchBox.TextColor3 = COLORS.text
SearchBox.TextSize =
SearchBox.TextXAlignment = .TextXAlignment.Left
SearchBox.Parent = SearchBar
ScrollFrame = .()
ScrollFrame.Name =
ScrollFrame.BackgroundTransparency =
ScrollFrame.Position = .(, , , )
ScrollFrame.Size = .(, -, , -)
ScrollFrame.CanvasSize = .(, , , )
ScrollFrame.ScrollBarThickness =
ScrollFrame.ScrollBarImageColor3 = COLORS.accent
ScrollFrame.Parent = MainFrame
ListLayout = .()
ListLayout.Name =
ListLayout.Padding = .(, )
ListLayout.SortOrder = .SortOrder.Name
ListLayout.Parent = ScrollFrame
playerButtons = {}
isMinimized =
searchText =
animations = {
minimizeSpring = (),
fadeSpring = ()
}
()
count = #Players:()
PlayerCount.Text = .(, count)
(player)
playerButtons[player]
PlayerCard = .()
PlayerCard.Name = player.Name
PlayerCard.BackgroundColor3 = COLORS.backgroundLight
PlayerCard.Size = .(, -, , )
PlayerCard.Position = .(, , , )
CardCorner = .()
CardCorner.CornerRadius = .(, )
CardCorner.Parent = PlayerCard
Avatar = .()
Avatar.Name =
Avatar.BackgroundTransparency =
Avatar.Position = .(, , , )
Avatar.Size = .(, , , )
Avatar.Parent = PlayerCard
AvatarCorner = .()
AvatarCorner.CornerRadius = .(, )
AvatarCorner.Parent = Avatar
(()
Avatar.Image = Players:(
player.UserId,
.ThumbnailType.HeadShot,
.ThumbnailSize.Size420x420
)
)
InfoContainer = .()
InfoContainer.Name =
InfoContainer.BackgroundTransparency =
InfoContainer.Position = .(, , , )
InfoContainer.Size = .(, -, , -)
InfoContainer.Parent = PlayerCard
DisplayName = .()
DisplayName.Name =
DisplayName.BackgroundTransparency =
DisplayName.Size = .(, , , )
DisplayName.Font = .Font.GothamBold
DisplayName.Text = player.DisplayName
DisplayName.TextColor3 = COLORS.text
DisplayName.TextSize =
DisplayName.TextXAlignment = .TextXAlignment.Left
DisplayName.Parent = InfoContainer
Username = .()
Username.Name =
Username.BackgroundTransparency =
Username.Position = .(, , , )
Username.Size = .(, , , )
Username.Font = .Font.Gotham
Username.Text = .. player.Name
Username.TextColor3 = COLORS.textDim
Username.TextSize =
Username.TextXAlignment = .TextXAlignment.Left
Username.Parent = InfoContainer
TeleportButton = .()
TeleportButton.Name =
TeleportButton.BackgroundColor3 = COLORS.accent
TeleportButton.Position = .(, -, , -)
TeleportButton.Size = .(, , , )
TeleportButton.Font = .Font.GothamBold
TeleportButton.Text =
TeleportButton.TextColor3 = COLORS.text
TeleportButton.TextSize =
TeleportButton.Parent = PlayerCard
ButtonCorner = .()
ButtonCorner.CornerRadius = .(, )
ButtonCorner.Parent = TeleportButton
buttonSpring = ()
buttonScale =
TeleportButton.MouseEnter:(()
buttonSpring.target =
TweenService:(TeleportButton, TweenInfo.(), {
BackgroundColor3 = COLORS.accentHover
}):()
)
TeleportButton.MouseLeave:(()
buttonSpring.target =
TweenService:(TeleportButton, TweenInfo.(), {
BackgroundColor3 = COLORS.accent
}):()
)
RunService.RenderStepped:((dt)
TeleportButton.Parent
buttonScale = buttonSpring:(dt)
TeleportButton.Size = .(, * buttonScale, , * buttonScale)
TeleportButton.Position = .(, -, , - * buttonScale)
)
TeleportButton.MouseButton1Click:(()
buttonSpring.target =
.(, ()
buttonSpring.target =
)
originalColor = TeleportButton.BackgroundColor3
originalText = TeleportButton.Text
TeleportButton.BackgroundColor3 = COLORS.success
TeleportButton.Text =
player player:(Players)
TeleportButton.BackgroundColor3 = COLORS.error
TeleportButton.Text =
.(, ()
TeleportButton.BackgroundColor3 = originalColor
TeleportButton.Text = originalText
)
LocalPlayer.Character LocalPlayer.Character:()
TeleportButton.BackgroundColor3 = COLORS.error
TeleportButton.Text =
.(, ()
TeleportButton.BackgroundColor3 = originalColor
TeleportButton.Text = originalText
)
success =
player.Character player.Character:()
targetPos = player.Character.HumanoidRootPart.Position
LocalPlayer.Character:(
.(targetPos + .(, , ))
)
success =
success
(()
player.Character player.Character:()
LocalPlayer.Character.Humanoid.Sit =
.()
LocalPlayer.Character:(
player.Character.HumanoidRootPart.CFrame * .(, , )
)
success =
)
success
TeleportButton.BackgroundColor3 = COLORS.success
TeleportButton.Text =
TeleportButton.BackgroundColor3 = COLORS.error
TeleportButton.Text =
.(, ()
TeleportButton.BackgroundColor3 = originalColor
TeleportButton.Text = originalText
)
)
cardSpring = ()
PlayerCard.MouseEnter:(()
cardSpring.target =
)
PlayerCard.MouseLeave:(()
cardSpring.target =
)
RunService.RenderStepped:((dt)
PlayerCard.Parent
elevation = cardSpring:(dt)
PlayerCard.Position = .(, , , -elevation * )
PlayerCard.BackgroundColor3 = COLORS.backgroundLight:(
.(, , ),
elevation
)
)
PlayerCard.Parent = ScrollFrame
playerButtons[player] = PlayerCard
ScrollFrame.CanvasSize = .(, , , ListLayout.AbsoluteContentSize.Y + )
(player)
playerButtons[player]
playerButtons[player]:()
playerButtons[player] =
ScrollFrame.CanvasSize = .(, , , ListLayout.AbsoluteContentSize.Y + )
SearchBox.Changed:((prop)
prop ==
searchText = SearchBox.Text:()
player, card (playerButtons)
name = player.Name:()
displayName = player.DisplayName:()
visible = name:(searchText) displayName:(searchText)
card.Visible = visible
ScrollFrame.CanvasSize = .(, , , ListLayout.AbsoluteContentSize.Y + )
)
()
isMinimized = isMinimized
animations.minimizeSpring.target = isMinimized
animations.fadeSpring.target = isMinimized
MinContainer.Visible =
MainFrame.Visible =
RunService.RenderStepped:((dt)
scale = animations.minimizeSpring:(dt)
fade = animations.fadeSpring:(dt)
MainFrame.Size = .(, * scale, , * scale)
MainFrame.Position = .(, - * scale, , - * scale)
MainFrame.BackgroundTransparency = - fade
MinContainer.Position = .(, - + ( * scale), , -)
MinButton.ImageTransparency = fade
scale <
MainFrame.Visible =
fade >
MinContainer.Visible =
)
_, player (Players:())
(player)
Players.PlayerAdded:((player)
(player)
()
)
Players.PlayerRemoving:((player)
(player)
()
)
()
CloseButton.MouseButton1Click:(toggleMinimize)
MinButton.MouseButton1Click:(toggleMinimize)
(gui, handle)
dragging
dragInput
dragStart
startPos
lastTouchPosition
lastTouchTime =
(input)
delta = input.Position - dragStart
newPosition = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
viewportSize = .CurrentCamera.ViewportSize
guiSize = gui.AbsoluteSize
minX = -guiSize.X *
maxX = viewportSize.X - guiSize.X *
minY =
maxY = viewportSize.Y - guiSize.Y *
newPosition = .(
newPosition.X.Scale,
.(newPosition.X.Offset, minX, maxX),
newPosition.Y.Scale,
.(newPosition.Y.Offset, minY, maxY)
)
tweenInfo = TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out)
TweenService:(gui, tweenInfo, {Position = newPosition}):()
handle.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = gui.Position
input.UserInputType == .UserInputType.Touch
lastTouchPosition = input.Position
lastTouchTime = ()
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
handle.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
input.UserInputType == .UserInputType.Touch
currentTime = ()
timeDiff = currentTime - lastTouchTime
posDiff = (input.Position - lastTouchPosition).magnitude
timeDiff < posDiff <
lastTouchPosition = input.Position
lastTouchTime = currentTime
(input)
)
(MainFrame, TitleBar)
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed input.KeyCode == .KeyCode.P
()
)
()
viewportSize = .CurrentCamera.ViewportSize
isMobile = UserInputService.TouchEnabled
isMobile
width = .(viewportSize.X * , )
height = .(viewportSize.Y * , )
{
width = width,
height = height,
buttonSize = ,
fontSize = ,
cornerRadius = ,
padding =
}
{
width = ,
height = ,
buttonSize = ,
fontSize = ,
cornerRadius = ,
padding =
}
adaptive = ()
MainFrame.Size = .(, adaptive.width, , adaptive.height)
MainFrame.Position = .(, -adaptive.width / , , -adaptive.height / )
TitleText.TextSize = adaptive.fontSize +
SearchBar.Size = .(, -adaptive.padding * , , adaptive.buttonSize)
SearchBox.TextSize = adaptive.fontSize
SearchBox.PlaceholderColor3 = COLORS.textDim
(card)
cardSize = adaptive.height *
card.Size = .(, -adaptive.padding * , , cardSize)
avatar = card:()
avatar
avatar.Size = .(, cardSize - adaptive.padding * , , cardSize - adaptive.padding * )
teleportButton = card:()
teleportButton
teleportButton.Size = .(, cardSize * , , cardSize * )
teleportButton.TextSize = adaptive.fontSize
.CurrentCamera:():(()
newAdaptive = ()
MainFrame.Size = .(, newAdaptive.width, , newAdaptive.height)
MainFrame.Position = .(, -newAdaptive.width / , , -newAdaptive.height / )
TitleText.TextSize = newAdaptive.fontSize +
SearchBar.Size = .(, -newAdaptive.padding * , , newAdaptive.buttonSize)
SearchBox.TextSize = newAdaptive.fontSize
_, card (playerButtons)
(card)
)Mobile support

Universal