Run it
Copy the script and paste it into your executor.
Players = :()
TweenService = :()
UserInputService = :()
LocalPlayer = Players.LocalPlayer
PlayerGui = LocalPlayer:()
oldGui = PlayerGui:()
oldGui oldGui:()
IMAGES = {
Background = ,
OpenButton = ,
Informacao = ,
Inicio = ,
Jogador = ,
Jogadores = ,
Avatar = ,
Casa = ,
Musica = ,
Protecao = ,
Teleporte = ,
Configuracao = ,
Discord = ,
}
DISCORD_LINK =
COLORS = {
Background = .(, , ),
Panel = .(, , ),
PanelLight = .(, , ),
Purple = .(, , ),
Text = .(, , ),
TextDim = .(, , ),
}
(class, props, children)
inst = .(class)
prop, value (props {})
inst[prop] = value
_, child (children {})
child.Parent = inst
inst
(radius)
(, { CornerRadius = .(, radius ) })
(color, thickness)
(, {
Color = color COLORS.Purple,
Thickness = thickness ,
ApplyStrokeMode = .ApplyStrokeMode.Border,
})
ScreenGui = (, {
Name = ,
ResetOnSpawn = ,
ZIndexBehavior = .ZIndexBehavior.Sibling,
Parent = PlayerGui,
})
OpenButton = (, {
Name = ,
Parent = ScreenGui,
Size = .(, , , ),
Position = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
AutoButtonColor = ,
Text = ,
}, {
(),
(COLORS.Purple, ),
(, {
Name = ,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, , , ),
BackgroundTransparency = ,
Image = IMAGES.OpenButton,
ScaleType = .ScaleType.Fit,
}),
})
MainFrame = (, {
Name = ,
Parent = ScreenGui,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, , , ),
BackgroundColor3 = COLORS.Background,
BackgroundTransparency = ,
ClipsDescendants = ,
Visible = ,
}, {
(),
(COLORS.Purple, ),
})
BackgroundImage = (, {
Name = ,
Parent = MainFrame,
Size = .(, , , ),
BackgroundColor3 = COLORS.Background,
BackgroundTransparency = ,
Image = IMAGES.Background,
ScaleType = .ScaleType.Crop,
ImageTransparency = ,
ZIndex = ,
}, { () })
FULL_SIZE = .(, , , )
MIN_SIZE = .(, , , )
TopBar = (, {
Name = ,
Parent = MainFrame,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
ZIndex = ,
}, { () })
(, {
Parent = TopBar,
Size = .(, , , ),
Position = .(, , , -),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
BorderSizePixel = ,
ZIndex = ,
})
(, {
Name = ,
Parent = TopBar,
BackgroundTransparency = ,
Position = .(, , , -),
Size = .(, , , ),
Image = IMAGES.OpenButton,
ScaleType = .ScaleType.Fit,
ZIndex = ,
})
(, {
Parent = TopBar,
BackgroundTransparency = ,
Position = .(, , , ),
Size = .(, , , ),
Text = ,
TextXAlignment = .TextXAlignment.Left,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
ZIndex = ,
})
CloseButton = (, {
Name = ,
Parent = TopBar,
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = ,
TextColor3 = COLORS.Text,
Font = .Font.GothamBold,
TextSize = ,
AutoButtonColor = ,
ZIndex = ,
}, { (), (COLORS.Purple, ) })
MinimizeButton = (, {
Name = ,
Parent = TopBar,
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = ,
TextColor3 = COLORS.Text,
Font = .Font.GothamBold,
TextSize = ,
AutoButtonColor = ,
ZIndex = ,
}, { (), (COLORS.Purple, ) })
Container = (, {
Name = ,
Parent = MainFrame,
Position = .(, , , ),
Size = .(, , , -),
BackgroundTransparency = ,
ZIndex = ,
})
Sidebar = (, {
Name = ,
Parent = Container,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
})
(, {
Parent = Sidebar,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
(, {
Parent = Sidebar,
PaddingTop = .(, ),
PaddingLeft = .(, ),
PaddingRight = .(, ),
})
ContentArea = (, {
Name = ,
Parent = Container,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
})
categorias = {
{ nome = , icone = , imagem = IMAGES.Informacao },
{ nome = , icone = , imagem = IMAGES.Inicio },
{ nome = , icone = , imagem = IMAGES.Jogador },
{ nome = , icone = , imagem = IMAGES.Jogadores },
{ nome = , icone = , imagem = IMAGES.Avatar },
{ nome = , icone = , imagem = IMAGES.Casa },
{ nome = , icone = , imagem = IMAGES.Musica },
{ nome = , icone = , imagem = IMAGES.Protecao },
{ nome = , icone = , imagem = IMAGES.Teleporte },
{ nome = , icone = , imagem = IMAGES.Configuracao },
{ nome = , icone = },
}
tabButtons = {}
pages = {}
currentTab =
(name)
currentTab == name
currentTab = name
tabName, data (tabButtons)
isSelected = (tabName == name)
TweenService:(data.bar, TweenInfo.(, .EasingStyle.Quad), {
BackgroundTransparency = isSelected ,
}):()
TweenService:(data.label, TweenInfo.(, .EasingStyle.Quad), {
TextColor3 = isSelected COLORS.Text COLORS.TextDim,
}):()
data.button.BackgroundColor3 = isSelected COLORS.PanelLight COLORS.Panel
data.button.BackgroundTransparency = isSelected
pageName, page (pages)
page.Visible = (pageName == name)
i, cat (categorias)
nome = cat.nome
temImagem = cat.imagem ~= cat.imagem ~=
TabButton = (, {
Name = nome,
Parent = Sidebar,
LayoutOrder = i,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
ClipsDescendants = ,
}, { () })
SelectBar = (, {
Name = ,
Parent = TabButton,
AnchorPoint = .(, ),
Size = .(, , , -),
Position = .(, , , ),
BackgroundColor3 = COLORS.Purple,
BackgroundTransparency = ,
}, { () })
textOffsetX =
temImagem
(, {
Name = ,
Parent = TabButton,
Position = .(, , , -),
Size = .(, , , ),
BackgroundTransparency = ,
Image = cat.imagem,
ScaleType = .ScaleType.Fit,
})
textOffsetX =
Label = (, {
Parent = TabButton,
BackgroundTransparency = ,
Position = .(, textOffsetX, , ),
Size = .(, -textOffsetX - , , ),
Text = temImagem nome (cat.icone .. .. nome),
TextXAlignment = .TextXAlignment.Left,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
})
ClickDetector = (, {
Parent = TabButton,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
})
ClickDetector.MouseButton1Click:(()
(nome)
)
tabButtons[nome] = { button = TabButton, bar = SelectBar, label = Label }
Page = (, {
Name = nome .. ,
Parent = ContentArea,
Size = .(, , , ),
BackgroundTransparency = ,
Visible = ,
ScrollBarThickness = ,
ScrollBarImageColor3 = COLORS.Purple,
AutomaticCanvasSize = .AutomaticSize.Y,
CanvasSize = .(, , , ),
})
(, {
Parent = Page,
PaddingTop = .(, ),
PaddingLeft = .(, ),
PaddingRight = .(, ),
})
(, {
Parent = Page,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
HeaderRow = (, {
Parent = Page,
BackgroundTransparency = ,
Size = .(, , , ),
})
headerTextOffset =
temImagem
(, {
Parent = HeaderRow,
Position = .(, , , -),
Size = .(, , , ),
BackgroundTransparency = ,
Image = cat.imagem,
ScaleType = .ScaleType.Fit,
})
headerTextOffset =
(, {
Parent = HeaderRow,
BackgroundTransparency = ,
Position = .(, headerTextOffset, , ),
Size = .(, -headerTextOffset, , ),
Text = temImagem nome (cat.icone .. .. nome),
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
nome ~= nome ~= nome ~= nome ~=
nome ~= nome ~= nome ~=
(, {
Parent = Page,
BackgroundTransparency = ,
Size = .(, , , ),
Text = .. nome .. ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
pages[nome] = Page
InfoPage = pages[]
CreditCard = (, {
Name = ,
Parent = InfoPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
}, { (), (COLORS.Purple, ) })
(, {
Parent = CreditCard,
PaddingTop = .(, ),
PaddingLeft = .(, ),
PaddingRight = .(, ),
})
(, {
Parent = CreditCard,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
(, {
Parent = CreditCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = CreditCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = CreditCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
DiscordRow = (, {
Parent = CreditCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
})
IMAGES.Discord ~=
(, {
Parent = DiscordRow,
Position = .(, , , -),
Size = .(, , , ),
BackgroundTransparency = ,
Image = IMAGES.Discord,
ScaleType = .ScaleType.Fit,
})
(, {
Name = ,
Parent = DiscordRow,
Position = .(, IMAGES.Discord ~= , , ),
Size = .(, IMAGES.Discord ~= - , , ),
BackgroundTransparency = ,
Text = (DISCORD_LINK ~= ( .. DISCORD_LINK)) ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
InicioPage = pages[]
RunService = :()
StatusCard = (, {
Name = ,
Parent = InicioPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
}, { (), (COLORS.Purple, ) })
AvatarImage = (, {
Name = ,
Parent = StatusCard,
Position = .(, , , -),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Image = ,
ScaleType = .ScaleType.Fit,
}, { () })
.(()
ok, content = (()
Players:(
LocalPlayer.UserId,
.ThumbnailType.HeadShot,
.ThumbnailSize.Size180x180
)
)
ok content
AvatarImage.Image = content
)
InfoColumn = (, {
Parent = StatusCard,
Position = .(, , , ),
Size = .(, -, , -),
BackgroundTransparency = ,
})
(, {
Parent = InfoColumn,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
(, {
Parent = InfoColumn,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = .. LocalPlayer.Name,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = InfoColumn,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = .. LocalPlayer.UserId,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
TempoLabel = (, {
Parent = InfoColumn,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
FpsLabel = (, {
Parent = InfoColumn,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
joinTime = .()
(segundos)
h = .(segundos / )
m = .((segundos % ) / )
s = .(segundos % )
h >
.(, h, m, s)
.(, m, s)
.(()
InicioPage.Parent
TempoLabel.Text = .. (.() - joinTime)
.()
)
frameCount =
fpsTimer =
RunService.Heartbeat:((dt)
frameCount +=
fpsTimer += dt
fpsTimer >=
FpsLabel.Text = .. .(frameCount / fpsTimer)
frameCount =
fpsTimer =
)
(, {
Parent = InicioPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
ServerCard = (, {
Parent = InicioPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
}, { (), (COLORS.Purple, ) })
(, {
Parent = ServerCard,
PaddingTop = .(, ),
PaddingLeft = .(, ),
})
(, {
Parent = ServerCard,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
(, {
Parent = ServerCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, -, , ),
Text = .. .JobId,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
OnlineLabel = (, {
Parent = ServerCard,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, -, , ),
Text = .. #Players:() .. .. Players.MaxPlayers,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
()
OnlineLabel.Text = .. #Players:() .. .. Players.MaxPlayers
Players.PlayerAdded:(updateOnline)
Players.PlayerRemoving:(()
.()
()
)
(, {
Parent = InicioPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
ResRow = (, {
Parent = InicioPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = ResRow,
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
BASE_FOV =
resolucoes = {
{ label = , mult = },
{ label = , mult = },
{ label = , mult = },
{ label = , mult = },
{ label = , mult = },
}
resButtons = {}
selectedMult =
(mult)
cam = .CurrentCamera
cam
cam.FieldOfView = .(BASE_FOV * mult, , )
:():(()
.()
(selectedMult)
)
i, res (resolucoes)
Btn = (, {
Name = .. res.label,
Parent = ResRow,
LayoutOrder = i,
Size = .(, , , ),
BackgroundColor3 = res.mult == COLORS.PanelLight COLORS.Panel,
BackgroundTransparency = res.mult == ,
Text = res.label,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
resButtons[res.label] = Btn
Btn.MouseButton1Click:(()
selectedMult = res.mult
(selectedMult)
_, b (resButtons)
b.BackgroundColor3 = COLORS.Panel
b.BackgroundTransparency =
Btn.BackgroundColor3 = COLORS.PanelLight
Btn.BackgroundTransparency =
)
JogadorPage = pages[]
DEFAULTS = {
Velocidade = ,
SuperPulo = ,
Gravidade = ,
}
statState = {
Velocidade = DEFAULTS.Velocidade,
SuperPulo = DEFAULTS.SuperPulo,
Gravidade = DEFAULTS.Gravidade,
}
SLIDER_MIN =
SLIDER_MAX =
()
.Gravity = statState.Gravidade
char = LocalPlayer.Character
char
hum = char:()
hum
hum.WalkSpeed = statState.Velocidade
hum.UseJumpPower =
hum.JumpPower = statState.SuperPulo
LocalPlayer.CharacterAdded:(()
.()
()
)
sliderSetters = {}
(layoutOrder, key, label)
Row = (, {
Name = key .. ,
Parent = JogadorPage,
LayoutOrder = layoutOrder,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = Row,
Size = .(, , , ),
BackgroundTransparency = ,
Text = label,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
Track = (, {
Name = ,
Parent = Row,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
}, { () })
Fill = (, {
Name = ,
Parent = Track,
Size = .(, , , ),
BackgroundColor3 = COLORS.Purple,
BorderSizePixel = ,
}, { () })
Knob = (, {
Name = ,
Parent = Track,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, , , ),
BackgroundColor3 = COLORS.Text,
ZIndex = ,
}, { (), (COLORS.Purple, ) })
Box = (, {
Name = ,
Parent = Row,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = (.(statState[key])),
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
(value, fromTyping)
value = .(.(value + ), SLIDER_MIN, SLIDER_MAX)
statState[key] = value
pct = (value - SLIDER_MIN) / (SLIDER_MAX - SLIDER_MIN)
Fill.Size = .(pct, , , )
Knob.Position = .(pct, , , )
fromTyping
Box.Text = (value)
()
sliderSetters[key] = setValue
draggingSlider =
(inputPos)
relativeX = inputPos.X - Track.AbsolutePosition.X
pct = .(relativeX / Track.AbsoluteSize.X, , )
(SLIDER_MIN + pct * (SLIDER_MAX - SLIDER_MIN))
Track.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
draggingSlider =
(input.Position)
)
Track.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
draggingSlider =
)
UserInputService.InputChanged:((input)
draggingSlider (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input.Position)
)
Box.FocusLost:(()
num = (Box.Text)
num
(num, )
Box.Text = (statState[key])
)
(statState[key])
Row
(, , )
(, , )
(, , )
ResetButton = (, {
Name = ,
Parent = JogadorPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
ResetButton.MouseButton1Click:(()
sliderSetters.(DEFAULTS.Velocidade)
sliderSetters.(DEFAULTS.SuperPulo)
sliderSetters.(DEFAULTS.Gravidade)
)
()
JogadoresPage = pages[]
selectedPlayer =
viewing =
dropdownOpen =
playerRows = {}
(, {
Parent = JogadoresPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
SelectorContainer = (, {
Name = ,
Parent = JogadoresPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
ClipsDescendants = ,
})
SelectBar = (, {
Name = ,
Parent = SelectorContainer,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = ,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
SelectBarLabel = (, {
Parent = SelectBar,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
SelectBarArrow = (, {
Parent = SelectBar,
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, , , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.TextDim,
})
DropdownArea = (, {
Name = ,
Parent = SelectorContainer,
Position = .(, , , ),
Size = .(, , , ),
BackgroundTransparency = ,
})
SearchBox = (, {
Name = ,
Parent = DropdownArea,
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
PlaceholderText = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
ListScroll = (, {
Name = ,
Parent = DropdownArea,
Position = .(, , , ),
Size = .(, , , ),
BackgroundTransparency = ,
ScrollBarThickness = ,
ScrollBarImageColor3 = COLORS.Purple,
AutomaticCanvasSize = .AutomaticSize.Y,
CanvasSize = .(, , , ),
})
(, {
Parent = ListScroll,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
scrollDragging =
dragStartY =
startCanvasY =
ListScroll.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
scrollDragging =
dragStartY = input.Position.Y
startCanvasY = ListScroll.CanvasPosition.Y
)
ListScroll.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
scrollDragging =
)
UserInputService.InputChanged:((input)
scrollDragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
deltaY = input.Position.Y - dragStartY
maxY = .(, ListScroll.CanvasSize.Y.Offset - ListScroll.AbsoluteSize.Y)
ListScroll.CanvasPosition = .(, .(startCanvasY - deltaY, , maxY))
)
(open)
dropdownOpen = open
SelectorContainer.Size = open .(, , , + + ) .(, , , )
SelectBarArrow.Text = open
open
SearchBox.Text =
_, row (playerRows)
row.Frame.Visible =
SelectBar.MouseButton1Click:(()
( dropdownOpen)
)
SearchBox:():(()
query = SearchBox.Text:()
_, row (playerRows)
query ==
row.Frame.Visible =
row.Frame.Visible = row.name:():(query, , ) ~=
)
ActionsRow = (, {
Name = ,
Parent = JogadoresPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = ActionsRow,
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
TeleportButton = (, {
Name = ,
Parent = ActionsRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Purple,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { () })
ViewButton = (, {
Name = ,
Parent = ActionsRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
(plr)
char = plr.Character
char
char:()
TeleportButton.MouseButton1Click:(()
selectedPlayer selectedPlayer.Parent
myRoot = (LocalPlayer)
targetRoot = (selectedPlayer)
myRoot targetRoot
myRoot.CFrame = targetRoot.CFrame + .(, , )
)
()
viewing =
ViewButton.Text =
ViewButton.BackgroundColor3 = COLORS.Panel
cam = .CurrentCamera
cam LocalPlayer.Character
hum = LocalPlayer.Character:()
cam.CameraSubject = hum
cam.CameraType = .CameraType.Custom
ViewButton.MouseButton1Click:(()
selectedPlayer selectedPlayer.Parent
viewing = viewing
viewing
ViewButton.Text =
ViewButton.BackgroundColor3 = COLORS.PanelLight
cam = .CurrentCamera
char = selectedPlayer.Character
cam char
hum = char:()
hum
cam.CameraSubject = hum
cam.CameraType = .CameraType.Custom
()
)
UpdateButton = (, {
Name = ,
Parent = JogadoresPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
(plr)
selectedPlayer = plr
SelectBarLabel.Text = plr.Name
SelectBarLabel.TextColor3 = COLORS.Text
()
viewing
()
(plr, layoutOrder)
Row = (, {
Name = plr.Name,
Parent = ListScroll,
LayoutOrder = layoutOrder,
Size = .(, -, , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = ,
AutoButtonColor = ,
}, { () })
Avatar = (, {
Name = ,
Parent = Row,
Position = .(, , , -),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Image = ,
ScaleType = .ScaleType.Fit,
}, { () })
(, {
Parent = Row,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = plr.Name,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = Row,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = .. plr.UserId,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
.(()
ok, content = (()
Players:(plr.UserId, .ThumbnailType.HeadShot, .ThumbnailSize.Size180x180)
)
ok content Avatar.Parent
Avatar.Image = content
)
Row.MouseButton1Click:(()
(plr)
)
{ Frame = Row, name = plr.Name }
()
_, row (playerRows)
row.Frame:()
playerRows = {}
order =
_, plr (Players:())
plr ~= LocalPlayer
playerRows[plr] = (plr, order)
order +=
selectedPlayer selectedPlayer.Parent
selectedPlayer =
SelectBarLabel.Text =
SelectBarLabel.TextColor3 = COLORS.TextDim
viewing
()
UpdateButton.MouseButton1Click:(refreshPlayerList)
Players.PlayerAdded:(refreshPlayerList)
Players.PlayerRemoving:(()
.()
()
)
()
AvatarPage = pages[]
HttpService = :()
selectedAvatarPlayer =
avatarDropdownOpen =
avatarPlayerRows = {}
(, {
Parent = AvatarPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextWrapped = ,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = AvatarPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
AvSelectorContainer = (, {
Name = ,
Parent = AvatarPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
ClipsDescendants = ,
})
AvSelectBar = (, {
Name = ,
Parent = AvSelectorContainer,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = ,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
AvSelectBarLabel = (, {
Parent = AvSelectBar,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
AvSelectBarArrow = (, {
Parent = AvSelectBar,
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, , , ),
BackgroundTransparency = ,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.TextDim,
})
AvDropdownArea = (, {
Name = ,
Parent = AvSelectorContainer,
Position = .(, , , ),
Size = .(, , , ),
BackgroundTransparency = ,
})
AvSearchBox = (, {
Name = ,
Parent = AvDropdownArea,
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
PlaceholderText = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
AvListScroll = (, {
Name = ,
Parent = AvDropdownArea,
Position = .(, , , ),
Size = .(, , , ),
BackgroundTransparency = ,
ScrollBarThickness = ,
ScrollBarImageColor3 = COLORS.Purple,
AutomaticCanvasSize = .AutomaticSize.Y,
CanvasSize = .(, , , ),
})
(, {
Parent = AvListScroll,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
(open)
avatarDropdownOpen = open
AvSelectorContainer.Size = open .(, , , + + ) .(, , , )
AvSelectBarArrow.Text = open
open
AvSearchBox.Text =
_, row (avatarPlayerRows)
row.Frame.Visible =
AvSelectBar.MouseButton1Click:(()
( avatarDropdownOpen)
)
AvSearchBox:():(()
query = AvSearchBox.Text:()
_, row (avatarPlayerRows)
query ==
row.Frame.Visible =
row.Frame.Visible = row.name:():(query, , ) ~=
)
(plr)
selectedAvatarPlayer = plr
AvSelectBarLabel.Text = plr.Name
AvSelectBarLabel.TextColor3 = COLORS.Text
()
(plr, layoutOrder)
Row = (, {
Name = plr.Name,
Parent = AvListScroll,
LayoutOrder = layoutOrder,
Size = .(, -, , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = ,
AutoButtonColor = ,
}, { () })
Avatar = (, {
Name = ,
Parent = Row,
Position = .(, , , -),
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Image = ,
ScaleType = .ScaleType.Fit,
}, { () })
(, {
Parent = Row,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = plr.Name,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = Row,
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
Text = .. plr.UserId,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
.(()
ok, content = (()
Players:(plr.UserId, .ThumbnailType.HeadShot, .ThumbnailSize.Size180x180)
)
ok content Avatar.Parent
Avatar.Image = content
)
Row.MouseButton1Click:(()
(plr)
)
{ Frame = Row, name = plr.Name }
()
_, row (avatarPlayerRows)
row.Frame:()
avatarPlayerRows = {}
order =
_, plr (Players:())
avatarPlayerRows[plr] = (plr, order)
order +=
selectedAvatarPlayer selectedAvatarPlayer.Parent
selectedAvatarPlayer =
AvSelectBarLabel.Text =
AvSelectBarLabel.TextColor3 = COLORS.TextDim
Players.PlayerAdded:(refreshAvatarPlayerList)
Players.PlayerRemoving:(()
.()
()
)
()
DESC_FIELDS = {
, , , , , ,
, , , ,
, , , ,
, , , ,
}
DESC_COLOR_FIELDS = {
, , , , , ,
}
DESC_SCALE_FIELDS = {
, , , , , ,
}
(desc)
t = {}
_, field (DESC_FIELDS)
t[field] = desc[field]
_, field (DESC_COLOR_FIELDS)
c = desc[field]
t[field] = { c.R, c.G, c.B }
_, field (DESC_SCALE_FIELDS)
t[field] = desc[field]
t
(t)
desc = .()
_, field (DESC_FIELDS)
t[field] ~=
desc[field] = t[field]
_, field (DESC_COLOR_FIELDS)
c = t[field]
c
desc[field] = .(c[], c[], c[])
_, field (DESC_SCALE_FIELDS)
t[field] ~=
desc[field] = t[field]
desc
(desc)
char = LocalPlayer.Character
char
hum = char:()
hum
ok = (()
hum:(desc)
)
ok
CopyVisualButton = (, {
Name = ,
Parent = AvatarPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Purple,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { () })
AvatarFeedback = (, {
Name = ,
Parent = AvatarPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextXAlignment = .TextXAlignment.Left,
})
(, {
Parent = AvatarPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
CodeRow = (, {
Name = ,
Parent = AvatarPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = CodeRow,
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
CodeBox = (, {
Name = ,
Parent = CodeRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = ,
PlaceholderText = ,
TextTruncate = .TextTruncate.AtEnd,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.TextDim,
TextEditable = ,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
CopyCodeButton = (, {
Name = ,
Parent = CodeRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.PanelLight,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
CopyCodeButton.MouseButton1Click:(()
CodeBox.Text ==
CodeBox.SelectionStart =
CodeBox.CursorPosition = #CodeBox.Text +
CodeBox:()
original = CopyCodeButton.Text
CopyCodeButton.Text =
.(, ()
CopyCodeButton CopyCodeButton.Parent
CopyCodeButton.Text = original
)
)
CopyVisualButton.MouseButton1Click:(()
selectedAvatarPlayer selectedAvatarPlayer.Parent
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
targetChar = selectedAvatarPlayer.Character
targetHum = targetChar targetChar:()
desc
targetHum
ok, result = (()
targetHum:()
)
ok desc = result
desc
ok, result = (()
Players:(selectedAvatarPlayer.UserId)
)
ok desc = result
desc
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
applied = (desc)
applied
AvatarFeedback.Text = .. selectedAvatarPlayer.Name ..
AvatarFeedback.TextColor3 = COLORS.TextDim
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
ok, json = (()
HttpService:((desc))
)
ok
CodeBox.Text = json
CodeBox.TextColor3 = COLORS.Text
)
(, {
Parent = AvatarPage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
PasteRow = (, {
Name = ,
Parent = AvatarPage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = PasteRow,
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
PasteBox = (, {
Name = ,
Parent = PasteRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
PlaceholderText = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
ApplyCodeButton = (, {
Name = ,
Parent = PasteRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Purple,
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { () })
ApplyCodeButton.MouseButton1Click:(()
PasteBox.Text ==
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
ok, t = (()
HttpService:(PasteBox.Text)
)
ok (t) ~=
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
desc = (t)
applied = (desc)
applied
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = COLORS.TextDim
AvatarFeedback.Text =
AvatarFeedback.TextColor3 = .(, , )
)
TeleportePage = pages[]
TeleportService = :()
()
char = LocalPlayer.Character
char char:()
(, {
Parent = TeleportePage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
locais = {
{ nome = , pos = .(-, , -) },
{ nome = , pos = .(-, , ) },
{ nome = , pos = .(-, , -) },
{ nome = , pos = .(-, , -) },
{ nome = , pos = .(, , -) },
{ nome = , pos = .(, , ) },
}
LocaisGrid = (, {
Name = ,
Parent = TeleportePage,
LayoutOrder = ,
Size = .(, , , ),
AutomaticSize = .AutomaticSize.Y,
BackgroundTransparency = ,
})
(, {
Parent = LocaisGrid,
CellSize = .(, , , ),
CellPadding = .(, , , ),
SortOrder = .SortOrder.LayoutOrder,
})
i, local_ (locais)
LocalButton = (, {
Name = .. local_.nome,
Parent = LocaisGrid,
LayoutOrder = i,
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
Text = local_.nome,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Text,
AutoButtonColor = ,
}, { (), (COLORS.Purple, ) })
LocalButton.MouseButton1Click:(()
root = ()
root
root.CFrame = .(local_.pos)
)
(, {
Parent = TeleportePage,
LayoutOrder = ,
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
Font = .Font.GothamBold,
TextSize = ,
TextColor3 = COLORS.Purple,
TextXAlignment = .TextXAlignment.Left,
})
JobIdRow = (, {
Name = ,
Parent = TeleportePage,
LayoutOrder = ,
Size = .(, , , ),
BackgroundTransparency = ,
})
(, {
Parent = JobIdRow,
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
SortOrder = .SortOrder.LayoutOrder,
})
JobIdInputBox = (, {
Name = ,
Parent = JobIdRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = ,
PlaceholderText = ,
Text = ,
Font = .Font.Gotham,
TextSize = ,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = ,
}, { (), (COLORS.Purple, ) })
JoinServerButton = (, {
Name = ,
Parent = JobIdRow,
LayoutOrder = ,
Size = .(, , , ),
BackgroundColor3 = COLORS.Purple,
Text = ,
Font = .Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(8) })
local RandomServerButton = create("TextButton", {
Name = "RandomServerButton",
Parent = JobIdRow,
LayoutOrder = 3,
Size = UDim2.new(0, 150, 1, 0),
BackgroundColor3 = COLORS.PanelLight,
Text = "Servidor Aleatório",
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
local ServerFeedback = create("TextLabel", {
Name = "ServerFeedback",
Parent = TeleportePage,
LayoutOrder = 5,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 16),
Text = "",
Font = Enum.Font.Gotham,
TextSize = 12,
TextColor3 = COLORS.TextDim,
TextXAlignment = Enum.TextXAlignment.Left,
})
JoinServerButton.MouseButton1Click:Connect(function()
local jobId = JobIdInputBox.Text:gsub("%s+", "")
if jobId == "" then
ServerFeedback.Text = "Cole um JobId válido antes de entrar."
ServerFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
return
end
ServerFeedback.Text = "Entrando no servidor..."
ServerFeedback.TextColor3 = COLORS.TextDim
local ok = pcall(function()
TeleportService:TeleportToPlaceInstance(game.PlaceId, jobId, LocalPlayer)
end)
if not ok then
ServerFeedback.Text = "Não foi possível entrar (JobId inválido ou servidor indisponível)."
ServerFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
end
end)
-- "Aleatório" aqui usa o mesmo mecanismo do botão "Jogar" do Roblox: ele
-- deixa o próprio Roblox escolher uma instância disponível pra esse jogo,
-- então normalmente cai em um servidor diferente do atual. O Roblox não
-- libera pra um LocalScript pedir uma lista de servidores e escolher um
-- na mão sem um Script do lado do servidor + HttpService.
RandomServerButton.MouseButton1Click:Connect(function()
ServerFeedback.Text = "Procurando um servidor disponível..."
ServerFeedback.TextColor3 = COLORS.TextDim
local ok = pcall(function()
TeleportService:Teleport(game.PlaceId, LocalPlayer)
end)
if not ok then
ServerFeedback.Text = "Não foi possível teleportar para outro servidor."
ServerFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
end
end)
------------------------------------------------------
-- JobId / PlaceId atuais + copiar
------------------------------------------------------
local function createCopyRow(layoutOrder, labelText, value)
local Row = create("Frame", {
Parent = TeleportePage,
LayoutOrder = layoutOrder,
Size = UDim2.new(1, 0, 0, 30),
BackgroundTransparency = 1,
})
create("UIListLayout", {
Parent = Row,
FillDirection = Enum.FillDirection.Horizontal,
Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
})
create("TextLabel", {
Parent = Row,
LayoutOrder = 1,
Size = UDim2.new(0, 64, 1, 0),
BackgroundTransparency = 1,
Text = labelText,
Font = Enum.Font.GothamBold,
TextSize = 13,
TextColor3 = COLORS.Text,
TextXAlignment = Enum.TextXAlignment.Left,
})
-- TextEditable = false deixa o texto selecionável (pra copiar) mas
-- impede que o jogador edite o valor mostrado.
local ValueBox = create("TextBox", {
Name = "ValueBox",
Parent = Row,
LayoutOrder = 2,
Size = UDim2.new(0, 286, 1, 0),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = 0.25,
Text = value,
TextTruncate = Enum.TextTruncate.AtEnd,
Font = Enum.Font.Gotham,
TextSize = 12,
TextColor3 = COLORS.TextDim,
TextEditable = false,
ClearTextOnFocus = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
local CopyButton = create("TextButton", {
Name = "CopyButton",
Parent = Row,
LayoutOrder = 3,
Size = UDim2.new(0, 80, 1, 0),
BackgroundColor3 = COLORS.PanelLight,
Text = "Copiar",
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
CopyButton.MouseButton1Click:Connect(function()
-- O Roblox não deixa um LocalScript escrever direto na área de
-- transferência do sistema (por segurança). Então selecionamos todo
-- o texto e focamos a caixa: o jogador só precisa apertar Ctrl+C
-- (ou usar o menu de copiar, no celular) pra copiar de verdade.
ValueBox.SelectionStart = 1
ValueBox.CursorPosition = #ValueBox.Text + 1
ValueBox:CaptureFocus()
local original = CopyButton.Text
CopyButton.Text = "Selecionado!"
task.delay(1.2, function()
if CopyButton and CopyButton.Parent then
CopyButton.Text = original
end
end)
end)
return ValueBox
end
createCopyRow(6, "JobId:", game.JobId)
createCopyRow(7, "PlaceId:", tostring(game.PlaceId))
end
------------------------------------------------------------
-- CONTEÚDO PERSONALIZADO: CONFIGURAÇÃO (Teleporte por coordenadas)
------------------------------------------------------------
do
local ConfigPage = pages["Configuração"]
create("TextLabel", {
Parent = ConfigPage,
LayoutOrder = 1,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 18),
Text = "Teleporte por coordenadas",
Font = Enum.Font.GothamBold,
TextSize = 14,
TextColor3 = COLORS.Purple,
TextXAlignment = Enum.TextXAlignment.Left,
})
local CoordRow = create("Frame", {
Name = "CoordRow",
Parent = ConfigPage,
LayoutOrder = 2,
Size = UDim2.new(1, 0, 0, 36),
BackgroundTransparency = 1,
})
create("UIListLayout", {
Parent = CoordRow,
FillDirection = Enum.FillDirection.Horizontal,
Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
})
local coordBoxes = {}
for i, eixo in ipairs({ "X", "Y", "Z" }) do
local Box = create("TextBox", {
Name = eixo .. "Box",
Parent = CoordRow,
LayoutOrder = i,
Size = UDim2.new(0, 90, 1, 0),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = 0.25,
PlaceholderText = eixo,
Text = "",
Font = Enum.Font.GothamBold,
TextSize = 14,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
coordBoxes[eixo] = Box
end
local CoordTeleportButton = create("TextButton", {
Name = "CoordTeleportButton",
Parent = CoordRow,
LayoutOrder = 4,
Size = UDim2.new(0, 140, 1, 0),
BackgroundColor3 = COLORS.Purple,
Text = "Teleportar",
Font = Enum.Font.GothamBold,
TextSize = 13,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(8) })
local CoordFeedback = create("TextLabel", {
Name = "CoordFeedback",
Parent = ConfigPage,
LayoutOrder = 3,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 16),
Text = "",
Font = Enum.Font.Gotham,
TextSize = 12,
TextColor3 = COLORS.TextDim,
TextXAlignment = Enum.TextXAlignment.Left,
})
local function getRoot()
local char = LocalPlayer.Character
return char and char:FindFirstChild("HumanoidRootPart")
end
local function teleportToCoords(x, y, z)
local root = getRoot()
if not root then
CoordFeedback.Text = "Seu personagem não foi encontrado."
CoordFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
return false
end
root.CFrame = CFrame.new(x, y, z)
CoordFeedback.Text = string.format("Teleportado para %.1f, %.1f, %.1f", x, y, z)
CoordFeedback.TextColor3 = COLORS.TextDim
return true
end
CoordTeleportButton.MouseButton1Click:Connect(function()
local x = tonumber(coordBoxes.X.Text)
local y = tonumber(coordBoxes.Y.Text)
local z = tonumber(coordBoxes.Z.Text)
if not (x and y and z) then
CoordFeedback.Text = "Preencha X, Y e Z com números válidos."
CoordFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
return
end
teleportToCoords(x, y, z)
end)
------------------------------------------------------
-- Locais salvos (lista de pontos de teleporte)
------------------------------------------------------
create("TextLabel", {
Parent = ConfigPage,
LayoutOrder = 4,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0, 18),
Text = "Locais salvos",
Font = Enum.Font.GothamBold,
TextSize = 14,
TextColor3 = COLORS.Purple,
TextXAlignment = Enum.TextXAlignment.Left,
})
local SaveRow = create("Frame", {
Name = "SaveRow",
Parent = ConfigPage,
LayoutOrder = 5,
Size = UDim2.new(1, 0, 0, 36),
BackgroundTransparency = 1,
})
create("UIListLayout", {
Parent = SaveRow,
FillDirection = Enum.FillDirection.Horizontal,
Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
})
local NameBox = create("TextBox", {
Name = "NameBox",
Parent = SaveRow,
LayoutOrder = 1,
Size = UDim2.new(0, 200, 1, 0),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = 0.25,
PlaceholderText = "Nome do local (ex: Base)",
Text = "",
Font = Enum.Font.Gotham,
TextSize = 13,
TextColor3 = COLORS.Text,
PlaceholderColor3 = COLORS.TextDim,
ClearTextOnFocus = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
local SaveButton = create("TextButton", {
Name = "SaveButton",
Parent = SaveRow,
LayoutOrder = 2,
Size = UDim2.new(0, 150, 1, 0),
BackgroundColor3 = COLORS.PanelLight,
Text = "Salvar local (X/Y/Z)",
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
local SavedList = create("Frame", {
Name = "SavedList",
Parent = ConfigPage,
LayoutOrder = 6,
Size = UDim2.new(1, 0, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
})
create("UIListLayout", {
Parent = SavedList,
Padding = UDim.new(0, 6),
SortOrder = Enum.SortOrder.LayoutOrder,
})
local savedSpots = {} -- { {name=, x=, y=, z=}, ... }
local function rebuildSavedList()
for _, child in ipairs(SavedList:GetChildren()) do
child:Destroy()
end
for i, spot in ipairs(savedSpots) do
local Row = create("Frame", {
Name = "Spot_" .. i,
Parent = SavedList,
LayoutOrder = i,
Size = UDim2.new(1, 0, 0, 38),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = 0.35,
}, { corner(8) })
create("TextLabel", {
Parent = Row,
Position = UDim2.new(0, 10, 0, 0),
Size = UDim2.new(1, -190, 1, 0),
BackgroundTransparency = 1,
Text = string.format("%s (%.0f, %.0f, %.0f)", spot.name, spot.x, spot.y, spot.z),
Font = Enum.Font.Gotham,
TextSize = 13,
TextColor3 = COLORS.Text,
TextXAlignment = Enum.TextXAlignment.Left,
TextTruncate = Enum.TextTruncate.AtEnd,
})
local GoButton = create("TextButton", {
Parent = Row,
AnchorPoint = Vector2.new(1, 0.5),
Position = UDim2.new(1, -46, 0.5, 0),
Size = UDim2.new(0, 90, 0, 26),
BackgroundColor3 = COLORS.Purple,
Text = "Teleportar",
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(6) })
local DelButton = create("TextButton", {
Parent = Row,
AnchorPoint = Vector2.new(1, 0.5),
Position = UDim2.new(1, -8, 0.5, 0),
Size = UDim2.new(0, 30, 0, 26),
BackgroundColor3 = COLORS.PanelLight,
Text = "X",
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
}, { corner(6), stroke(COLORS.Purple, 1.5) })
GoButton.MouseButton1Click:Connect(function()
teleportToCoords(spot.x, spot.y, spot.z)
end)
DelButton.MouseButton1Click:Connect(function()
table.remove(savedSpots, i)
rebuildSavedList()
end)
end
end
SaveButton.MouseButton1Click:Connect(function()
local x = tonumber(coordBoxes.X.Text)
local y = tonumber(coordBoxes.Y.Text)
local z = tonumber(coordBoxes.Z.Text)
if not (x and y and z) then
CoordFeedback.Text = "Preencha X, Y e Z antes de salvar."
CoordFeedback.TextColor3 = Color3.fromRGB(255, 120, 120)
return
end
local name = NameBox.Text ~= "" and NameBox.Text or ("Local " .. (#savedSpots + 1))
table.insert(savedSpots, { name = name, x = x, y = y, z = z })
NameBox.Text = ""
rebuildSavedList()
end)
end
------------------------------------------------------------
-- POPUP DE BOAS-VINDAS
------------------------------------------------------------
local WelcomeOverlay = create("Frame", {
Name = "WelcomeOverlay",
Parent = MainFrame,
Size = UDim2.new(1, 0, 1, -42),
Position = UDim2.new(0, 0, 0, 42),
BackgroundColor3 = Color3.new(0, 0, 0),
BackgroundTransparency = 0.45,
Visible = false,
ZIndex = 10,
})
local WelcomeCard = create("Frame", {
Name = "WelcomeCard",
Parent = WelcomeOverlay,
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.new(0.5, 0, 0.5, 0),
Size = UDim2.new(0, 380, 0, 230),
BackgroundColor3 = COLORS.Panel,
BackgroundTransparency = 0.05,
ZIndex = 11,
}, { corner(14), stroke(COLORS.Purple, 2) })
create("ImageLabel", {
Parent = WelcomeCard,
BackgroundTransparency = 1,
Position = UDim2.new(0, 18, 0, 16),
Size = UDim2.new(0, 24, 0, 24),
Image = IMAGES.OpenButton,
ScaleType = Enum.ScaleType.Fit,
ZIndex = 11,
})
create("TextLabel", {
Parent = WelcomeCard,
BackgroundTransparency = 1,
Position = UDim2.new(0, 50, 0, 16),
Size = UDim2.new(1, -68, 0, 26),
Text = "Seja Bem-Vindo(a)",
Font = Enum.Font.GothamBold,
TextSize = 18,
TextColor3 = COLORS.Text,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 11,
})
create("TextLabel", {
Parent = WelcomeCard,
BackgroundTransparency = 1,
Position = UDim2.new(0, 18, 0, 52),
Size = UDim2.new(1, -36, 0, 100),
Text = "Somos uma comunidade organizada. Aproveite e entre no Discord, e dê uma olhada nas categorias do menu caso queira.",
Font = Enum.Font.Gotham,
TextSize = 13,
TextColor3 = COLORS.TextDim,
TextWrapped = true,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
ZIndex = 11,
})
local DiscordButton = create("TextButton", {
Name = "DiscordButton",
Parent = WelcomeCard,
AnchorPoint = Vector2.new(0, 1),
Position = UDim2.new(0, 18, 1, -16),
Size = UDim2.new(0, 170, 0, 34),
BackgroundColor3 = COLORS.Purple,
Text = "Entrar no Discord",
Font = Enum.Font.GothamBold,
TextSize = 13,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
ZIndex = 11,
}, { corner(8) })
local OkButton = create("TextButton", {
Name = "OkButton",
Parent = WelcomeCard,
AnchorPoint = Vector2.new(1, 1),
Position = UDim2.new(1, -18, 1, -16),
Size = UDim2.new(0, 130, 0, 34),
BackgroundColor3 = COLORS.PanelLight,
Text = "OK, entendi",
Font = Enum.Font.GothamBold,
TextSize = 13,
TextColor3 = COLORS.Text,
AutoButtonColor = false,
ZIndex = 11,
}, { corner(8), stroke(COLORS.Purple, 1.5) })
local function closeWelcome()
WelcomeOverlay.Visible = false
end
DiscordButton.MouseButton1Click:Connect(function()
if DISCORD_LINK ~= "" then
-- Roblox não permite abrir o navegador direto de um LocalScript comum,
-- então aqui só fechamos o popup. Quando tiver o link, troque DISCORD_LINK
-- no topo do script e, se quiser, ligue isso a um TextBox copiável.
closeWelcome()
else
local originalText = DiscordButton.Text
DiscordButton.Text = "Ainda não temos 😅"
task.delay(1.5, function()
if DiscordButton and DiscordButton.Parent then
DiscordButton.Text = originalText
end
end)
closeWelcome()
end
end)
OkButton.MouseButton1Click:Connect(closeWelcome)
------------------------------------------------------------
-- ANIMAÇÕES: ABRIR / FECHAR / MINIMIZAR
------------------------------------------------------------
local isOpen = false
local isMinimized = false
local firstOpen = true
local function openMenu()
if isOpen then return end
isOpen = true
MainFrame.Visible = true
MainFrame.Size = UDim2.new(0, 0, 0, 0)
TweenService:Create(MainFrame, TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = FULL_SIZE,
}):Play()
if not currentTab then
selectTab(categorias[1].nome)
end
if firstOpen then
firstOpen = false
task.delay(0.35, function()
WelcomeOverlay.Visible = true
end)
end
end
local function closeMenu()
if not isOpen then return end
isOpen = false
local tween = TweenService:Create(MainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
Size = UDim2.new(0, 0, 0, 0),
})
tween:Play()
tween.Completed:Connect(function()
if not isOpen then
MainFrame.Visible = false
end
end)
end
local function toggleMinimize()
isMinimized = not isMinimized
Container.Visible = not isMinimized
local targetSize = isMinimized and MIN_SIZE or FULL_SIZE
TweenService:Create(MainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quad), {
Size = targetSize,
}):Play()
MinimizeButton.Text = isMinimized and "+" or "-"
end
OpenButton.MouseButton1Click:Connect(function()
if isOpen then
closeMenu()
else
openMenu()
end
end)
CloseButton.MouseButton1Click:Connect(closeMenu)
MinimizeButton.MouseButton1Click:Connect(toggleMinimize)
------------------------------------------------------------
-- ARRASTAR O PAINEL PELA BARRA SUPERIOR
------------------------------------------------------------
local dragging = false
local dragStart, startPos
TopBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)Apollo brookhaven

🏰 Block Tales [DEMO 5]