Run it
Copy the script and paste it into your executor.
(:())()
().Key = .KeyCode.Q
().Prediction =
().AirshotFunccc =
().Tracer =
().Partz =
().Notificationmode =
guimain = .(, .CoreGui)
CC = : .CurrentCamera
LocalMouse = .Players.LocalPlayer:()
Locking =
cc = :().CurrentCamera
gs = :()
ggi = gs.GetGuiInset
lp = :().LocalPlayer
mouse = lp:()
Tracer = .()
Tracer.Visible =
Tracer.Color = .(, , )
Tracer.Thickness =
Tracer.Transparency =
(tt, tx, cc)
.StarterGui:(
,
{
Title = tt,
Text = tx,
Duration = cc
}
)
UserInputService = :()
UserInputService.InputBegan:(
(keygo, ok)
( ok)
(keygo.KeyCode == ().Key)
().loltoggle
Locking = Locking
Locking
Plr = ()
().Notificationmode
(, .. Plr.Character.Humanoid.DisplayName, )
Locking
().Notificationmode
(, , )
)
()
closestPlayer
shortestDistance =
i, v (.Players:())
v ~= .Players.LocalPlayer v.Character v.Character:()
v.Character.Humanoid.Health ~=
v.Character:()
pos = CC:(v.Character.PrimaryPart.Position)
magnitude = (.(pos.X, pos.Y) - .(LocalMouse.X, LocalMouse.Y)).magnitude
magnitude < shortestDistance
closestPlayer = v
shortestDistance = magnitude
closestPlayer
rawmetatable = ()
old = rawmetatable.__namecall
(rawmetatable, )
rawmetatable.__namecall =
(
(...)
args = {...}
Locking () == args[] ==
args[] =
Plr.Character[().Partz].Position + (Plr.Character[().Partz].Velocity * Prediction / )
((args))
(...)
)
().OldAimPart =
().AimPart =
().AimlockKey =
().AimRadius =
().ThirdPerson =
().FirstPerson =
().TeamCheck =
().PredictMovement =
().PredictionVelocity =
().CheckIfJumped =
().Smoothness =
().SmoothnessAmount =
().lockautosetup =
().airshotbonee =
Players, Uis, RService, SGui =
: ,
: ,
: ,
:
Client, Mouse, Camera, CF, RNew, Vec3, Vec2 =
Players.LocalPlayer,
Players.LocalPlayer:(),
.CurrentCamera,
.new,
Ray.new,
.new,
.new
Aimlock, MousePressed, CanNotify = , ,
AimlockTarget
OldPre
().WorldToViewportPoint = (P)
Camera:(P)
().WorldToScreenPoint = (P)
Camera.(Camera, P)
().GetObscuringObjects = (T)
T T:(().AimPart) Client Client.Character:()
RayPos = :((T[().AimPart].Position, Client.Character.Head.Position))
RayPos
RayPos:(T)
().GetNearestTarget = ()
players = {}
PLAYER_HOLD = {}
DISTANCES = {}
i, v (Players:())
v ~= Client
.(players, v)
i, v (players)
v.Character ~=
AIM = v.Character:()
().TeamCheck == v.Team ~= Client.Team
DISTANCE =
(v.Character:().Position - .Workspace.CurrentCamera.CFrame.p).magnitude
RAY =
Ray.(
.Workspace.CurrentCamera.CFrame.p,
(Mouse.Hit.p - .Workspace.CurrentCamera.CFrame.p).unit * DISTANCE
)
HIT, POS = .Workspace:(RAY, .Workspace)
DIFF = .((POS - AIM.Position).magnitude)
PLAYER_HOLD[v.Name .. i] = {}
PLAYER_HOLD[v.Name .. i].dist = DISTANCE
PLAYER_HOLD[v.Name .. i].plr = v
PLAYER_HOLD[v.Name .. i].diff = DIFF
.(DISTANCES, DIFF)
().TeamCheck == v.Team == Client.Team
DISTANCE =
(v.Character:().Position - .Workspace.CurrentCamera.CFrame.p).magnitude
RAY =
Ray.(
.Workspace.CurrentCamera.CFrame.p,
(Mouse.Hit.p - .Workspace.CurrentCamera.CFrame.p).unit * DISTANCE
)
HIT, POS = .Workspace:(RAY, .Workspace)
DIFF = .((POS - AIM.Position).magnitude)
PLAYER_HOLD[v.Name .. i] = {}
PLAYER_HOLD[v.Name .. i].dist = DISTANCE
PLAYER_HOLD[v.Name .. i].plr = v
PLAYER_HOLD[v.Name .. i].diff = DIFF
.(DISTANCES, DIFF)
(DISTANCES) ==
L_DISTANCE = .(.((DISTANCES)))
L_DISTANCE > ().AimRadius
i, v (PLAYER_HOLD)
v.diff == L_DISTANCE
v.plr
Mouse.KeyDown:(
(a)
(Uis:())
a == AimlockKey AimlockTarget ==
(
()
MousePressed ~=
MousePressed =
Target
Target = ()
Target ~=
AimlockTarget = Target
)
a == AimlockKey AimlockTarget ~=
AimlockTarget ~=
AimlockTarget =
MousePressed ~=
MousePressed =
)
plr = .Players.LocalPlayer
mouse = plr:()
.TracerVisible =
.TracerColor = .(, , )
.TracerThickness =
.TracerTransparency =
.CircleSides =
.CircleColor = .(, , )
.CircleTransparency =
.CircleRadius =
.CircleFilled =
.CircleVisible =
.CircleThickness =
circle = .()
circle.Color = .(, , )
circle.Thickness =
circle.Transparency =
circle.NumSides =
circle.Radius =
circle.Visible =
circle.Filled =
().autoclick =
:().RenderStepped:(
()
().autosetup ==
pingvalue = :().Network.ServerStatsItem[]:()
split = .(pingvalue, )
ping = split[]
(ping) <
().Prediction =
(ping) <=
(ping) <
().Prediction =
(ping) <=
(ping) <
().Prediction =
(ping) <=
(ping) <
().Prediction =
(ping) <=
().Prediction =
(ping) <=
().Prediction =
(ping) <=
().Prediction =
(ping) <=
().Prediction =
(ping) >=
(, , )
().Prediction =
circle.Position =
.(
:():().X,
:():().Y
)
circle.Radius = .CircleRadius
circle.Filled = .CircleFilled
circle.Color = .CircleColor
circle.Visible = .CircleVisible
circle.Radius = .CircleRadius
circle.Transparency = .CircleTransparency
circle.NumSides = .CircleSides
circle.Thickness = .CircleThickness
Tracer.Visible = .TracerVisible
Tracer.Color = .TracerColor
Tracer.Thickness = .TracerThickness
Tracer.Transparency = .TracerTransparency
().AirshotFunccc ==
Plr.Character.Humanoid.Jump == Plr.Character.Humanoid.FloorMaterial == .Material.Air
().Partz =
Plr.Character:().StateChanged:(
(old, new)
new == .HumanoidStateType.Freefall
().Partz =
().Partz =
)
().Tracer == Locking
Vector, OnScreen =
cc:(
Plr.Character[().Partz].Position + (Plr.Character[().Partz].Velocity * Prediction / )
)
Tracer.Visible =
Tracer.From = .(mouse.X, mouse.Y + (gs).Y)
Tracer.To = .(Vector.X, Vector.Y)
().Tracer ==
Tracer.Visible =
CAimPart = AimlockTarget ~=
.(
{
AimlockTarget.Character.Humanoid.Jumping == AimlockTarget.Character[().airshotbonee]
AimlockTarget.Character.Humanoid:() == .HumanoidStateType.Freefall
AimlockTarget.Character[().airshotbonee]
AimlockTarget.Character[().AimPart]
}
)
().ThirdPerson == ().FirstPerson ==
(Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude >
(Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude <=
CanNotify =
CanNotify =
().ThirdPerson == ().FirstPerson ==
(Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude >
CanNotify =
CanNotify =
().ThirdPerson == ().FirstPerson ==
(Camera.Focus.p - Camera.CoordinateFrame.p).Magnitude <=
CanNotify =
CanNotify =
Aimlock == MousePressed ==
AimlockTarget AimlockTarget.Character AimlockTarget.Character:(().AimPart)
().FirstPerson ==
CanNotify ==
().PredictMovement ==
().Smoothness ==
Main =
(Camera.CFrame.p, CAimPart.Position + CAimPart.Velocity * PredictionVelocity / )
Camera.CFrame =
Camera.CFrame:(
Main,
().SmoothnessAmount,
.EasingStyle.Elastic,
.EasingDirection.InOut
)
Camera.CFrame =
(Camera.CFrame.p, CAimPart.Position + CAimPart.Velocity * PredictionVelocity / )
().PredictMovement ==
().Smoothness ==
Main = (Camera.CFrame.p, CAimPart.Position)
Camera.CFrame =
Camera.CFrame:(
Main,
().SmoothnessAmount,
.EasingStyle.Elastic,
.EasingDirection.InOut
)
Camera.CFrame = (Camera.CFrame.p, CAimPart.Position)
CheckIfJumped ==
AimlockTarget.Character.Humanoid.FloorMaterial == .Material.Air
().AimPart = ().airshotbonee
().AimPart = ().OldAimPart
().autoclick
()
()
)
().cframespeedtoggle =
().speedvalue =
().Spinbot =
().Jitter =
().Layspinbot =
().AntiAim1 =
().AntiAim2 =
().antistomplo =
().autoreload =
().autostomp =
().antibag =
().trashtalkl =
().antilock =
().antilockspeed =
Jit = .(, )
Angle =
.Save0 = .Players.LocalPlayer.Character.Head.face.Texture
.Save1 = .Players.LocalPlayer.Character.Animate.idle.Animation1.AnimationId
.Save2 = .Players.LocalPlayer.Character.Animate.run.RunAnim.AnimationId
.Save3 = .Players.LocalPlayer.Character.Animate.walk.WalkAnim.AnimationId
:().Heartbeat:(
()
cframespeedtoggle ==
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame +
.Players.LocalPlayer.Character.Humanoid.MoveDirection * speedvalue
Spinbot
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame * .(, .(), )
Jitter
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.(.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.Position) *
.(, .(Angle) + .((.(, ) == Jit -Jit)), )
AntiAim1
.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.lookVector * -
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame * .(, .(), )
AntiAim2
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame * .(, , )
()
().antistomplo
.Players.LocalPlayer.Character.Humanoid.Health <=
i, v (.Players.LocalPlayer.Character:())
v:()
v:()
().AutoReloadx
:().LocalPlayer.Character:()
:().LocalPlayer.Character:():(
)
:().LocalPlayer.Character:():(
).Value <=
:().MainEvent:(
,
:().LocalPlayer.Character:()
)
().autostomp
.ReplicatedStorage.MainEvent:()
().antibag
.Players.LocalPlayer.Character[]:()
().trashtalkl
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
()
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
()
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
()
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
()
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
()
:().DefaultChatSystemChatEvents.SayMessageRequest:(
,
)
().antilock
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
.Players.LocalPlayer.Character.HumanoidRootPart.CFrame +
-.Players.LocalPlayer.Character.Humanoid.MoveDirection * ().antilockspeed
)
()
folderName =
(folderName)
(folderName)
gameConfigFolder = folderName .. .. .PlaceId
(gameConfigFolder)
(gameConfigFolder)
inputService = :()
tweenService = :()
runService = :()
coreGui = :()
utility = {}
utility.(class, properties)
properties = properties {}
obj = .(class)
forcedProperties = {
AutoButtonColor =
}
prop, v , properties
obj[prop] = v
prop, v , forcedProperties
(
()
obj[prop] = v
)
obj
utility.(color, amount)
r = .(.(color.r * ) + amount, , )
g = .(.(color.g * ) + amount, , )
b = .(.(color.b * ) + amount, , )
.(r, g, b)
utility.(color)
r = .(color.r * )
g = .(color.g * )
b = .(color.b * )
r, g, b
utility.(obj, info, properties, callback)
anim = tweenService:(obj, TweenInfo.((info)), properties)
anim:()
callback
anim.Completed:(callback)
utility.(obj, dragSpeed)
start, objPosition, dragging
obj.InputBegan:(
(input)
input.UserInputType == .UserInputType.MouseButton1
dragging =
start = input.Position
objPosition = obj.Position
)
obj.InputEnded:(
(input)
input.UserInputType == .UserInputType.MouseButton1
dragging =
)
inputService.InputChanged:(
(input)
input.UserInputType == .UserInputType.MouseMovement dragging
utility.(
obj,
{dragSpeed},
{
Position = .(
objPosition.X.Scale,
objPosition.X.Offset + (input.Position - start).X,
objPosition.Y.Scale,
objPosition.Y.Offset + (input.Position - start).Y
)
}
)
)
utility.(sizeX, sizeY)
.(, -(sizeX / ), , -(sizeY / ))
utility.(hex)
.(
( .. hex:(, )),
( .. hex:(, )),
( .. hex:(, ))
)
utility.(color)
.(
,
.(color.R * , , ),
.(color.G * , , ),
.(color.B * , , )
)
utility.(tbl)
oldtbl = tbl {}
newtbl = {}
formattedtbl = {}
option, v , oldtbl
newtbl[option:()] = v
(
formattedtbl,
{
__newindex = (t, k, v)
(newtbl, k:(), v)
,
__index = (t, k, v)
newtbl[k:()]
}
)
formattedtbl
library =
utility. {
flags = {},
toggled = ,
color = .(, , ),
keybind = .KeyCode.RightShift,
dragSpeed =
}
coloredGradients = {}
library:(color)
_, obj , coloredGradients
obj.Color =
ColorSequence. {
ColorSequenceKeypoint.(, color),
ColorSequenceKeypoint.(, utility.(color, -))
}
library.color = color
gui = utility.()
inputService.InputBegan:(
(input)
input.KeyCode == library.keybind
library.toggled = library.toggled
gui.Enabled = library.toggled
)
.protect_gui
.(gui)
gui.Parent = coreGui
flags = {
toggles = {},
boxes = {},
sliders = {},
dropdowns = {},
multidropdowns = {},
keybinds = {},
colorpickers = {}
}
library:(file)
str = (gameConfigFolder .. .. file .. )
tbl = (str)()
flag, value , tbl.toggles
flags.toggles[flag](value)
flag, value , tbl.boxes
flags.boxes[flag](value)
flag, value , tbl.sliders
flags.sliders[flag](value)
flag, value , tbl.dropdowns
flags.dropdowns[flag](value)
flag, value , tbl.multidropdowns
flags.multidropdowns[flag](value)
flag, value , tbl.keybinds
flags.keybinds[flag](value)
flag, value , tbl.colorpickers
flags.colorpickers[flag](value)
library:(name)
configstr =
count =
flag, _ , flags.toggles
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.boxes
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.sliders
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.dropdowns
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.multidropdowns
count = count +
configstr = configstr .. .. flag .. .. .(library.flags[flag], ) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.keybinds
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
count =
flag, _ , flags.colorpickers
count = count +
configstr = configstr .. .. flag .. .. (library.flags[flag]) ..
configstr = (count > configstr:(, -) configstr) ..
(gameConfigFolder .. .. name .. , .. configstr)
library:(opts)
options = utility.(opts)
name = options.name
sizeX = options.sizeX
sizeY = options.sizeY
color = options.color .(, , )
dragSpeed = options.dragSpeed
library.color = color
topbar =
utility.(
,
{
ZIndex = ,
Size = .(, sizeX, , ),
Position = utility.(sizeX, sizeY),
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
Parent = gui
}
)
utility.(topbar, dragSpeed)
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = .Font.GothamSemibold,
TextXAlignment = .TextXAlignment.Left,
Parent = topbar
}
)
main =
utility.(
,
{
Size = .(, , , ),
BorderColor3 = .(, , ),
BackgroundColor3 = .(, , ),
Parent = topbar
}
)
tabs =
utility.(
,
{
ZIndex = ,
Size = .(, -, , -),
BackgroundTransparency = ,
Position = .(, , , ),
BackgroundColor3 = .(, , ),
Parent = main
}
)
tabToggles =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BorderColor3 = .(, , ),
Position = .(, , , ),
BackgroundColor3 = .(, , ),
Parent = main
}
)
tabTogglesHolder =
utility.(
,
{
Size = .(, -, , ),
Position = .(, , , ),
Parent = tabToggles
}
)
utility.(
,
{
FillDirection = .FillDirection.Horizontal,
SortOrder = .SortOrder.LayoutOrder,
Padding = .(, ),
Parent = tabTogglesHolder
}
)
windowTypes = utility.({count = })
windowTypes:()
gui.Enabled =
windowTypes:()
gui.Enabled =
windowTypes:(name)
windowTypes.count = windowTypes.count +
name = name
toggled = windowTypes.count ==
tabToggle =
utility.(
,
{
ZIndex = ,
BackgroundTransparency = ,
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = toggled .Font.GothamSemibold .Font.Gotham,
Parent = tabTogglesHolder
}
)
tabToggle.Size = .(, tabToggle.TextBounds.X + , , )
tab =
utility.(
,
{
Size = .(, , , ),
BackgroundTransparency = ,
BackgroundColor3 = .(, , ),
Visible = toggled,
Parent = tabs
}
)
column1 =
utility.(
,
{
Size = .(, -, , ),
BackgroundTransparency = ,
Active = ,
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
ScrollBarImageColor3 = .(, , ),
ScrollBarImageTransparency = ,
ScrollBarThickness = ,
Parent = tab
}
)
column1List =
utility.(
,
{
SortOrder = .SortOrder.LayoutOrder,
Padding = .(, ),
Parent = column1
}
)
column1List:():(
()
column1.CanvasSize = .(, , , column1List.AbsoluteContentSize.Y)
)
column2 =
utility.(
,
{
Size = .(, -, , ),
BackgroundTransparency = ,
Position = .(, , , ),
Active = ,
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
ScrollBarImageColor3 = .(, , ),
ScrollBarImageTransparency = ,
ScrollBarThickness = ,
CanvasPosition = .(, ),
Parent = tab
}
)
column2List =
utility.(
,
{
SortOrder = .SortOrder.LayoutOrder,
Padding = .(, ),
Parent = column2
}
)
column2List:():(
()
column2.CanvasSize = .(, , , column2List.AbsoluteContentSize.Y)
)
()
_, obj , tabTogglesHolder:()
obj:()
obj.Font = .Font.Gotham
tabToggle.Font = .Font.GothamSemibold
_, obj , tabs:()
obj.Visible =
tab.Visible =
tabToggle.MouseButton1Click:(openTab)
tabTypes = utility.()
tabTypes:()
()
tabTypes:(opts)
options = utility.(opts)
name = options.name
column = options.column
columnFrame = column == column1 column == column2
sectionHolder =
utility.(
,
{
Size = .(, , , ),
BackgroundTransparency = ,
BackgroundColor3 = .(, , ),
Parent = columnFrame
}
)
section =
utility.(
,
{
ZIndex = ,
Size = .(, -, , -),
BorderColor3 = .(, , ),
Position = .(, , , ),
BackgroundColor3 = .(, , ),
Parent = sectionHolder
}
)
sectionTopbar =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
Parent = section
}
)
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = .Font.GothamSemibold,
TextXAlignment = .TextXAlignment.Left,
Parent = sectionTopbar
}
)
sectionContent =
utility.(
,
{
Size = .(, -, , -),
Position = .(, , , ),
BackgroundTransparency = ,
Parent = section
}
)
sectionContentList =
utility.(
,
{
SortOrder = .SortOrder.LayoutOrder,
Padding = .(, ),
Parent = sectionContent
}
)
sectionContentList:():(
()
sectionHolder.Size = .(, , , sectionContentList.AbsoluteContentSize.Y + )
)
sectionTypes = utility.()
sectionTypes:()
sectionHolder.Visible =
sectionTypes:()
sectionHolder.Visible =
sectionTypes:(text)
label =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
Text = text,
TextColor3 = .(, , ),
Font = .Font.Gotham,
TextXAlignment = .TextXAlignment.Left,
Parent = sectionContent
}
)
labelTypes = utility.()
labelTypes:()
label.Visible =
labelTypes:()
label.Visible =
labelTypes:(str)
label.Text = str
labelTypes
sectionTypes:(text)
specialLabel =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
Text = text,
TextColor3 = .(, , ),
Font = .Font.Gotham,
Parent = sectionContent
}
)
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
Position = .(, , , ),
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
Parent = specialLabel
}
)
lineBlock =
utility.(
,
{
ZIndex = ,
Size = .(, specialLabel.TextBounds.X + , , ),
Position = .(, -((specialLabel.TextBounds.X + ) / ), , ),
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
Parent = specialLabel
}
)
specialLabel:():(
()
lineBlock.Size = .(, specialLabel.TextBounds.X + , , )
lineBlock.Position = .(, -((specialLabel.TextBounds.X + ) / ), , )
)
specialLabelTypes = utility.()
specialLabelTypes:()
specialLabel.Visible =
specialLabelTypes:()
specialLabel.Visible =
specialLabelTypes:(str)
specialLabel.Text = str
specialLabelTypes
sectionTypes:(opts)
options = utility.(opts)
name = options.name
callback = options.callback
button =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BorderColor3 = .(, , ),
Font = .Font.Gotham,
BackgroundColor3 = .(, , ),
Text = ,
TextXAlignment = .TextXAlignment.Left,
Parent = sectionContent
}
)
utility.(
,
{
Rotation = ,
Color = ColorSequence. {
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
},
Parent = button
}
)
title =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = .Font.Gotham,
TextXAlignment = .TextXAlignment.Left,
Parent = button
}
)
buttonTypes = utility.()
button.MouseButton1Click:(
()
(buttonTypes)
)
buttonTypes:()
button.Visible =
buttonTypes:()
button.Visible =
buttonTypes:(str)
title.Text = str
buttonTypes:(func)
callback = func
buttonTypes
sectionTypes:(opts)
options = utility.(opts)
name = options.name
flag = options.flag
callback = options.callback ()
toggled =
flag
library.flags[flag] = toggled
(toggled)
toggle =
utility.(
,
{
Size = .(, , , ),
BackgroundTransparency = ,
TextColor3 = .(, , ),
Font = .Font.SourceSans,
Parent = sectionContent
}
)
icon =
utility.(
,
{
ZIndex = ,
Size = .(, , , -),
BorderColor3 = .(, , ),
Position = .(, , , ),
BackgroundColor3 = .(, , ),
Parent = toggle
}
)
iconGradient =
utility.(
,
{
Rotation = ,
Color = ColorSequence. {
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
},
Parent = icon
}
)
title =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
Position = .(, , , ),
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = .Font.Gotham,
TextXAlignment = .TextXAlignment.Left,
Parent = icon
}
)
()
toggled = toggled
toggled
.(coloredGradients, iconGradient)
.(coloredGradients, .(coloredGradients, iconGradient))
textColor = toggled .(, , ) .(, , )
gradientColor
toggled
gradientColor =
ColorSequence. {
ColorSequenceKeypoint.(, library.color),
ColorSequenceKeypoint.(, utility.(library.color, -))
}
gradientColor =
ColorSequence. {
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
}
iconGradient.Color = gradientColor
title.TextColor3 = textColor
flag
library.flags[flag] = toggled
(toggled)
toggle.MouseButton1Click:(toggleToggle)
toggleTypes = utility.()
toggleTypes:()
toggle.Visible =
toggleTypes:()
toggle.Visible =
toggleTypes:(str)
title.Text = str
toggleTypes:(bool)
toggled ~= bool
()
flag
flags.toggles[flag] = (bool)
toggled ~= bool
()
toggleTypes
sectionTypes:(opts)
options = utility.(opts)
name = options.name
placeholder = options.placeholder
default = options.default
boxType = options.type
flag = options.flag
callback = options.callback ()
boxType = boxType:()
boxType ==
default = default:(, )
flag
library.flags[flag] = (default)
((default))
flag
library.flags[flag] = default
(default)
boxHolder =
utility.(
,
{
Size = .(, , , ),
BackgroundTransparency = ,
BackgroundColor3 = .(, , ),
Parent = sectionContent
}
)
box =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BorderColor3 = .(, , ),
BackgroundTransparency = ,
Position = .(, , , -),
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size12,
TextSize = ,
TextColor3 = .(, , ),
Text = default,
Font = .Font.Gotham,
PlaceholderText = placeholder,
Parent = boxHolder
}
)
bg =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BorderColor3 = .(, , ),
Position = .(, , , ),
BackgroundColor3 = .(, , ),
Parent = box
}
)
utility.(
,
{
Rotation = ,
Color = ColorSequence.(.(, , ), .(, , )),
Parent = bg
}
)
title =
utility.(
,
{
ZIndex = ,
Size = .(, , , ),
BackgroundTransparency = ,
BackgroundColor3 = .(, , ),
FontSize = .FontSize.Size14,
TextSize = ,
TextColor3 = .(, , ),
Text = name,
Font = .Font.Gotham,
TextXAlignment = .TextXAlignment.Left,
Parent = boxHolder
}
)
box:():(
()
boxType ==
box.Text = box.Text:(, )
)
boxTypes = utility.()
boxTypes:()
boxHolder.Visible =
boxTypes:()
boxHolder.Visible =
boxTypes:(str)
title.Text = str
boxTypes:(str)
box.PlaceholderText = str
boxTypes:(str)
boxType ==
box.Text = str
flag
library.flags[flag] = str
(str)
str = str:(, )
box.Text = str
flag
library.flags[flag] = str
((str))
end
box.FocusLost:Connect(
function()
boxTypes:Set(box.Text)
end
)
function boxTypes:SetType(str)
if str:lower() == "number" or str:lower() == "string" then
boxType = str:lower()
end
end
if flag then
flags.boxes[flag] = function(str)
if boxType == "string" then
box.Text = str
if flag then
library.flags[flag] = str
end
callback(str)
else
str = str:gsub("%D+", "")
box.Text = str
if flag then
library.flags[flag] = str
end
callback(tonumber(str))
end
end
end
return boxTypes
end
function sectionTypes:Slider(opts)
local options = utility.table(opts)
local min = options.min or 0
local max = options.max or 100
local valueText = options.valueText or "Slider: [VALUE]/" .. tostring(max)
local default = options.default or math.clamp(0, min, max)
local decimals = options.decimals or 0.1
local flag = options.flag
local callback = options.callback or function()
end
decimals = math.floor(10 ^ decimals)
if flag then
library.flags[flag] = default
end
callback(default)
local value = default
local sliding = false
local slider =
utility.create(
"Frame",
{
ZIndex = 3,
Size = UDim2.new(1, 0, 0, 16),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 0, 1, -13),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = sectionContent
}
)
local fill =
utility.create(
"Frame",
{
ZIndex = 4,
Size = UDim2.new((default - min) / (max - min), 0, 1, 0),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = slider
}
)
local fillGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, library.color),
ColorSequenceKeypoint.new(1, utility.change_color(library.color, -47))
},
Parent = fill
}
)
table.insert(coloredGradients, fillGradient)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(32, 32, 32)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 17, 17))
},
Parent = slider
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 5,
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = valueText:gsub("%[VALUE%]", tostring(default)),
Font = Enum.Font.Gotham,
Parent = slider
}
)
local function slide(input)
local sizeX =
math.clamp((input.Position.X - slider.AbsolutePosition.X) / slider.AbsoluteSize.X, 0, 1)
fill.Size = UDim2.new(sizeX, 0, 1, 0)
value = math.floor((((max - min) * sizeX) + min) * decimals) / decimals
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
if flag then
library.flags[flag] = value
end
callback(value)
end
slider.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = true
slide(input)
end
end
)
slider.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if sliding then
slide(input)
end
end
end
)
local sliderTypes = utility.table()
function sliderTypes:Show()
slider.Visible = true
end
function sliderTypes:Hide()
slider.Visible = false
end
function sliderTypes:SetValueText(str)
valueText = str
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
end
function sliderTypes:Set(num)
num = math.floor(math.clamp(num, min, max) * decimals) / decimals
value = num
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
if flag then
library.flags[flag] = value
end
callback(value)
end
function sliderTypes:SetMin(num)
min = num
value = math.floor(math.clamp(value, min, max) * decimals) / decimals
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
if flag then
library.flags[flag] = value
end
callback(value)
end
function sliderTypes:SetMax(num)
max = num
value = math.floor(math.clamp(value, min, max) * decimals) / decimals
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
if flag then
library.flags[flag] = value
end
callback(value)
end
if flag then
flags.sliders[flag] = function(num)
sliderTypes:Set(num)
end
end
return sliderTypes
end
function sectionTypes:ToggleSlider(opts)
local options = utility.table(opts)
local name = options.name or "Toggle Slider"
local min = options.min or 0
local max = options.max or 100
local valueText = options.valueText or "Toggle Slider: [VALUE]/" .. tostring(max)
local default = options.default or math.clamp(0, min, max)
local decimals = options.decimals or 0
local toggleFlag = options.toggleFlag
local sliderFlag = options.sliderFlag
local toggleCallback = options.toggleCallback or function()
end
local sliderCallback = options.sliderCallback or function()
end
decimals = math.floor(10 ^ decimals)
local value = default
local toggled = false
local sliding = false
if sliderFlag then
library.flags[sliderFlag] = default
end
sliderCallback(default)
if toggleFlag then
library.flags[toggleFlag] = toggled
end
toggleCallback(toggled)
local toggleSliderHolder =
utility.create(
"Frame",
{
Size = UDim2.new(1, 0, 0, 35),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = sectionContent
}
)
local slider =
utility.create(
"Frame",
{
ZIndex = 3,
Size = UDim2.new(1, 0, 0, 16),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 0, 1, -16),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = toggleSliderHolder
}
)
local fill =
utility.create(
"Frame",
{
ZIndex = 4,
Size = UDim2.new((default - min) / (max - min), 0, 1, 0),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = slider
}
)
local fillGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, library.color),
ColorSequenceKeypoint.new(1, utility.change_color(library.color, -47))
},
Parent = fill
}
)
table.insert(coloredGradients, fillGradient)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = slider
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 5,
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = valueText:gsub("%[VALUE%]", tostring(default)),
Font = Enum.Font.Gotham,
Parent = slider
}
)
local toggle =
utility.create(
"TextButton",
{
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 14,
TextColor3 = Color3.fromRGB(0, 0, 0),
Font = Enum.Font.SourceSans,
Parent = toggleSliderHolder
}
)
local icon =
utility.create(
"TextButton",
{
ZIndex = 3,
Size = UDim2.new(0, 14, 1, -2),
BorderColor3 = Color3.fromRGB(37, 37, 37),
Position = UDim2.new(0, 0, 0, 1),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Text = "",
Parent = toggle
}
)
local iconGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(32, 32, 32)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 17, 17))
},
Parent = icon
}
)
local toggleTitle =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(1, 7, 0, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = icon
}
)
local function toggleToggle()
toggled = not toggled
if toggled then
table.insert(coloredGradients, iconGradient)
else
table.remove(coloredGradients, table.find(coloredGradients, iconGradient))
end
local textColor = toggled and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
local gradientColor
if toggled then
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, library.color),
ColorSequenceKeypoint.new(1, utility.change_color(library.color, -47))
}
else
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(32, 32, 32)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 17, 17))
}
end
iconGradient.Color = gradientColor
toggleTitle.TextColor3 = textColor
if toggleFlag then
library.flags[toggleFlag] = toggled
end
toggleCallback(toggled)
end
toggle.MouseButton1Click:Connect(toggleToggle)
local function slide(input)
local sizeX =
math.clamp((input.Position.X - slider.AbsolutePosition.X) / slider.AbsoluteSize.X, 0, 1)
fill.Size = UDim2.new(sizeX, 0, 1, 0)
value = math.floor((((max - min) * sizeX) + min) * decimals) / decimals
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
if sliderFlag then
library.flags[sliderFlag] = value
end
sliderCallback(value)
end
slider.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = true
slide(input)
end
end
)
slider.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if sliding then
slide(input)
end
end
end
)
local toggleSliderTypes = utility.table()
function toggleSliderTypes:Show()
toggleSliderHolder.Visible = true
end
function toggleSliderTypes:Hide()
toggleSliderHolder.Visible = false
end
function toggleSliderTypes:SetValueText(str)
valueText = str
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
end
function toggleSliderTypes:Set(num)
num = math.floor(math.clamp(num, min, max) * decimals) / decimals
value = num
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
if sliderFlag then
library.flags[sliderFlag] = value
end
sliderCallback(value)
end
function toggleSliderTypes:SetMin(num)
min = num
value = math.floor(math.clamp(value, min, max) * decimals) / decimals
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
if sliderFlag then
library.flags[sliderFlag] = value
end
sliderCallback(value)
end
function toggleSliderTypes:SetMax(num)
max = num
value = math.floor(math.clamp(value, min, max) * decimals) / decimals
fill.Size = UDim2.new((value - min) / (max - min), 0, 1, 0)
title.Text = valueText:gsub("%[VALUE%]", tostring(value))
if sliderFlag then
library.flags[sliderFlag] = value
end
sliderCallback(value)
end
function toggleSliderTypes:Toggle(bool)
if toggled ~= bool then
toggleToggle()
end
end
if toggleFlag then
flags.toggles[toggleFlag] = function(bool)
if toggled ~= bool then
toggleToggle()
end
end
end
if sliderFlag then
flags.sliders[sliderFlag] = function(num)
toggleSliderTypes:Set(num)
end
end
return toggleSliderTypes
end
function sectionTypes:Dropdown(opts)
local options = utility.table(opts)
local name = options.name or "Dropdown"
local content = options.content or {}
local multiChoice = options.multiChoice or false
local default =
(options.default and table.find(content, options.default)) or (multiChoice and {} or nil)
local flag = options.flag
local callback = options.callback or function()
end
if flag then
library.flags[flag] = default
end
callback(default)
local opened = false
local current = default
local chosen = {}
local dropdownHolder =
utility.create(
"Frame",
{
Size = UDim2.new(1, 0, 0, 36),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = sectionContent
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = dropdownHolder
}
)
local open =
utility.create(
"TextButton",
{
ZIndex = 3,
Size = UDim2.new(1, 0, 0, 16),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 0, 0, 20),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Text = "",
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = dropdownHolder
}
)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = open
}
)
local value =
utility.create(
"TextLabel",
{
ZIndex = 4,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(0, 8, 0, 0),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = (multiChoice and
(#default > 0 and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180))) or
default and Color3.fromRGB(255, 255, 255) or
Color3.fromRGB(180, 180, 180),
Text = multiChoice and (#default > 0 and table.concat(default, ", ") or "NONE") or
(default or "NONE"),
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = open
}
)
local icon =
utility.create(
"ImageLabel",
{
ZIndex = 4,
Size = UDim2.new(0, 14, 0, 14),
Rotation = 180,
BackgroundTransparency = 1,
Position = UDim2.new(1, -16, 0, 1),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Image = "http://www.roblox.com/asset/?id=8747047318",
Parent = open
}
)
local contentFrame =
utility.create(
"Frame",
{
ZIndex = 10,
Visible = false,
Size = UDim2.new(1, 0, 0, 0),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 0, 1, 3),
BackgroundColor3 = Color3.fromRGB(33, 33, 33),
Parent = open
}
)
local contentHolder =
utility.create(
"Frame",
{
Size = UDim2.new(1, 0, 1, -4),
Position = UDim2.new(0, 0, 0, 2),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = contentFrame
}
)
local contentList =
utility.create(
"UIListLayout",
{
SortOrder = Enum.SortOrder.LayoutOrder,
Parent = contentHolder
}
)
contentList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(
function()
contentFrame.Size = UDim2.new(1, 0, 0, contentList.AbsoluteContentSize.Y + 4)
end
)
local function openDropdown()
opened = not opened
icon.Rotation = opened and 0 or 180
contentFrame.Visible = opened
dropdownHolder.Size =
UDim2.new(
1,
0,
0,
opened and dropdownHolder.AbsoluteSize.Y + contentFrame.AbsoluteSize.Y + 3 or 36
)
end
local function selectObj(obj, padding, bool)
for i, v in next, contentHolder:GetChildren() do
if v:IsA("TextButton") then
v:FindFirstChildOfClass("UIPadding").PaddingLeft = UDim.new(0, 6)
v.Font = Enum.Font.Gotham
end
end
obj.Font = bool and Enum.Font.GothamSemibold or Enum.Font.Gotham
padding.PaddingLeft = bool and UDim.new(0, 10) or UDim.new(0, 6)
value.TextColor3 = bool and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
end
local function multiSelectObj(obj, padding, bool)
obj.Font = bool and Enum.Font.GothamSemibold or Enum.Font.Gotham
padding.PaddingLeft = bool and UDim.new(0, 10) or UDim.new(0, 6)
end
open.MouseButton1Click:Connect(openDropdown)
for _, opt in next, content do
local option =
utility.create(
"TextButton",
{
Name = opt,
ZIndex = 11,
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = tostring(opt),
Font = current == opt and Enum.Font.GothamSemibold or Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = contentHolder
}
)
local optionPadding =
utility.create(
"UIPadding",
{
PaddingLeft = current == opt and UDim.new(0, 10) or UDim.new(0, 6),
Parent = option
}
)
option.MouseButton1Click:Connect(
function()
if not multiChoice then
if current ~= opt then
current = opt
selectObj(option, optionPadding, true)
value.Text = opt
if flag then
library.flags[flag] = opt
end
callback(opt)
else
current = nil
selectObj(option, optionPadding, false)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
callback(nil)
end
else
if not table.find(chosen, opt) then
table.insert(chosen, opt)
multiSelectObj(option, optionPadding, true)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
value.Text = table.concat(chosen, ", ")
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
table.remove(chosen, table.find(chosen, opt))
multiSelectObj(option, optionPadding, false)
value.TextColor3 =
#chosen > 0 and Color3.fromRGB(255, 255, 255) or
Color3.fromRGB(180, 180, 180)
value.Text = #chosen > 0 and table.concat(chosen, ", ") or "NONE"
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
end
)
end
local dropdownTypes = utility.table()
function dropdownTypes:Show()
dropdownHolder.Visible = true
end
function dropdownTypes:Hide()
dropdownHolder.Visible = false
end
function dropdownTypes:SetName(str)
title.Text = str
end
function dropdownTypes:Set(opt)
if opt then
if typeof(opt) == "string" then
if table.find(content, opt) then
if not multiChoice then
current = opt
selectObj(
contentHolder:FindFirstChild(opt),
contentHolder:FindFirstChild(opt):FindFirstChildOfClass("UIPadding"),
true
)
value.Text = opt
if flag then
library.flags[flag] = opt
end
callback(opt)
else
table.insert(chosen, opt)
multiSelectObj(
contentHolder:FindFirstChild(opt),
contentHolder:FindFirstChild(opt):FindFirstChildOfClass("UIPadding"),
true
)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
value.Text = table.concat(chosen, ", ")
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
elseif multiChoice then
table.clear(chosen)
chosen = opt
for i, v in next, opt do
if contentHolder:FindFirstChild(v) then
multiSelectObj(
contentHolder:FindFirstChild(v),
contentHolder:FindFirstChild(v):FindFirstChildOfClass("UIPadding"),
true
)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
value.Text = table.concat(chosen, ", ")
end
end
end
else
if not multiChoice then
current = nil
for i, v in next, contentHolder:GetChildren() do
if v:IsA("TextButton") then
v:FindFirstChildOfClass("UIPadding").PaddingLeft = UDim.new(0, 6)
v.Font = Enum.Font.Gotham
end
end
value.Text = "NONE"
value.TextColor3 = Color3.fromRGB(180, 180, 180)
if flag then
library.flags[flag] = nil
end
callback(nil)
elseif multiChoice then
table.clear(chosen)
for i, v in next, contentHolder:GetChildren() do
if v:IsA("TextButton") then
v:FindFirstChildOfClass("UIPadding").PaddingLeft = UDim.new(0, 6)
v.Font = Enum.Font.GothamSemiBold
end
end
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
end
function dropdownTypes:Add(opt)
table.insert(content, opt)
local option =
utility.create(
"TextButton",
{
Name = opt,
ZIndex = 11,
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = tostring(opt),
Font = current == opt and Enum.Font.GothamSemibold or Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = contentHolder
}
)
local optionPadding =
utility.create(
"UIPadding",
{
PaddingLeft = current == opt and UDim.new(0, 10) or UDim.new(0, 6),
Parent = option
}
)
option.MouseButton1Click:Connect(
function()
if not multiChoice then
if current ~= opt then
current = opt
selectObj(option, optionPadding, true)
value.Text = opt
if flag then
library.flags[flag] = opt
end
callback(opt)
else
current = nil
selectObj(option, optionPadding, false)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
callback(nil)
end
else
if not table.find(chosen, opt) then
table.insert(chosen, opt)
multiSelectObj(option, optionPadding, true)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
value.Text = table.concat(chosen, ", ")
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
table.remove(chosen, table.find(chosen, opt))
multiSelectObj(option, optionPadding, false)
value.TextColor3 =
#chosen > 0 and Color3.fromRGB(255, 255, 255) or
Color3.fromRGB(180, 180, 180)
value.Text = #chosen > 0 and table.concat(chosen, ", ") or "NONE"
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
end
)
end
function dropdownTypes:Remove(opt)
if table.find(content, opt) then
if not multiChoice then
if current == opt then
dropdownTypes:Set(nil)
end
if contentHolder:FindFirstChild(opt) then
contentHolder:FindFirstChild(opt):Destroy()
end
else
if table.find(chosen, opt) then
table.remove(chosen, table.find(chosen, opt))
value.TextColor3 =
#chosen > 0 and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
value.Text = #chosen > 0 and table.concat(chosen, ", ") or "NONE"
end
if contentHolder:FindFirstChild(opt) then
contentHolder:FindFirstChild(opt):Destroy()
end
end
end
end
function dropdownTypes:Refresh(tbl)
content = tbl
for _, opt in next, contentHolder:GetChildren() do
if opt:IsA("TextButton") then
opt:Destroy()
end
end
dropdownTypes:Set(nil)
for _, opt in next, content do
local option =
utility.create(
"TextButton",
{
Name = opt,
ZIndex = 11,
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = tostring(opt),
Font = current == opt and Enum.Font.GothamSemibold or Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = contentHolder
}
)
local optionPadding =
utility.create(
"UIPadding",
{
PaddingLeft = current == opt and UDim.new(0, 10) or UDim.new(0, 6),
Parent = option
}
)
option.MouseButton1Click:Connect(
function()
if not multiChoice then
if current ~= opt then
current = opt
selectObj(option, optionPadding, true)
value.Text = opt
if flag then
library.flags[flag] = opt
end
callback(opt)
else
current = nil
selectObj(option, optionPadding, false)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
callback(nil)
end
else
if not table.find(chosen, opt) then
table.insert(chosen, opt)
multiSelectObj(option, optionPadding, true)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
value.Text = table.concat(chosen, ", ")
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
table.remove(chosen, table.find(chosen, opt))
multiSelectObj(option, optionPadding, false)
value.TextColor3 =
#chosen > 0 and Color3.fromRGB(255, 255, 255) or
Color3.fromRGB(180, 180, 180)
value.Text = #chosen > 0 and table.concat(chosen, ", ") or "NONE"
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
end
)
end
end
if flag then
if not multiChoice then
flags.dropdowns[flag] = function(opt)
dropdownTypes:Set(opt)
end
else
flags.multidropdowns[flag] = function(opt)
dropdownTypes:Set(opt)
end
end
end
return dropdownTypes
end
function sectionTypes:Keybind(opts)
local options = utility.table(opts)
local name = options.name or "Keybind"
local default = options.default
local blacklist = options.blacklist or {}
local flag = options.flag
local callback = options.callback or function()
end
if flag then
library.flags[flag] = default
end
local keys = {
[Enum.KeyCode.LeftShift] = "Left Shift",
[Enum.KeyCode.RightShift] = "Right Shft",
[Enum.KeyCode.LeftControl] = "Left Ctrl",
[Enum.KeyCode.RightControl] = "Right Ctrl",
[Enum.KeyCode.LeftAlt] = "Left Alt",
[Enum.KeyCode.RightAlt] = "Right Alt",
[Enum.KeyCode.CapsLock] = "CapsLock",
[Enum.KeyCode.One] = "1",
[Enum.KeyCode.Two] = "2",
[Enum.KeyCode.Three] = "3",
[Enum.KeyCode.Four] = "4",
[Enum.KeyCode.Five] = "5",
[Enum.KeyCode.Six] = "6",
[Enum.KeyCode.Seven] = "7",
[Enum.KeyCode.Eight] = "8",
[Enum.KeyCode.Nine] = "9",
[Enum.KeyCode.Zero] = "0",
[Enum.KeyCode.KeypadOne] = "Num 1",
[Enum.KeyCode.KeypadTwo] = "Num 2",
[Enum.KeyCode.KeypadThree] = "Num 3",
[Enum.KeyCode.KeypadFour] = "Num 4",
[Enum.KeyCode.KeypadFive] = "Num 5",
[Enum.KeyCode.KeypadSix] = "Num 6",
[Enum.KeyCode.KeypadSeven] = "Num 7",
[Enum.KeyCode.KeypadEight] = "Num 8",
[Enum.KeyCode.KeypadNine] = "Num 9",
[Enum.KeyCode.KeypadZero] = "Num 0",
[Enum.KeyCode.Minus] = "-",
[Enum.KeyCode.Equals] = "=",
[Enum.KeyCode.Tilde] = "~",
[Enum.KeyCode.LeftBracket] = "[",
[Enum.KeyCode.RightBracket] = "]",
[Enum.KeyCode.RightParenthesis] = ")",
[Enum.KeyCode.LeftParenthesis] = "(",
[Enum.KeyCode.Semicolon] = ";",
[Enum.KeyCode.Quote] = "'",
[Enum.KeyCode.BackSlash] = "\\",
[Enum.KeyCode.Comma] = ";",
[Enum.KeyCode.Period] = ".",
[Enum.KeyCode.Slash] = "/",
[Enum.KeyCode.Asterisk] = "*",
[Enum.KeyCode.Plus] = "+",
[Enum.KeyCode.Period] = ".",
[Enum.KeyCode.Backquote] = "`",
[Enum.UserInputType.MouseButton1] = "Mouse 1",
[Enum.UserInputType.MouseButton2] = "Mouse 2",
[Enum.UserInputType.MouseButton3] = "Mouse 3"
}
local keyChosen = default
local keybind =
utility.create(
"TextButton",
{
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 14,
TextColor3 = Color3.fromRGB(0, 0, 0),
Font = Enum.Font.SourceSans,
Parent = sectionContent
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keybind
}
)
local value =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(1, 0, 0, 0),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(180, 180, 180),
Text = default and (keys[default] or tostring(default):gsub("Enum.KeyCode.", "")) or "NONE",
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Right,
Parent = keybind
}
)
keybind.MouseButton1Click:Connect(
function()
value.Text = "..."
value.TextColor3 = Color3.fromRGB(255, 255, 255)
local binding
binding =
inputService.InputBegan:Connect(
function(input)
local key = keys[input.KeyCode] or keys[input.UserInputType]
value.Text = (keys[key] or tostring(input.KeyCode):gsub("Enum.KeyCode.", ""))
value.TextColor3 = Color3.fromRGB(180, 180, 180)
if input.UserInputType == Enum.UserInputType.Keyboard then
if not table.find(blacklist, input.KeyCode) then
keyChosen = input.KeyCode
if flag then
library.flags[flag] = input.KeyCode
end
binding:Disconnect()
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
binding:Disconnect()
end
else
if not table.find(blacklist, input.UserInputType) then
keyChosen = input.UserInputType
if flag then
library.flags[flag] = input.UserInputType
end
binding:Disconnect()
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
binding:Disconnect()
end
end
end
)
end
)
inputService.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == keyChosen then
callback(keyChosen)
end
else
if input.UserInputType == keyChosen then
callback(keyChosen)
end
end
end
)
local keybindTypes = utility.table()
function keybindTypes:Show()
keybind.Visible = true
end
function keybindTypes:Hide()
keybind.Visible = false
end
function keybindTypes:SetName(str)
title.Text = str
end
function keybindTypes:Set(newKey)
if typeof(newKey) == "EnumItem" then
if not table.find(blacklist, newKey) then
local key = keys[newKey]
value.Text = (keys[key] or tostring(newKey):gsub("Enum.KeyCode.", ""))
value.TextColor3 = Color3.fromRGB(180, 180, 180)
keyChosen = newKey
if flag then
library.flags[flag] = newKey
end
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
if flag then
library.flags[flag] = nil
end
end
end
end
if flag then
flags.keybinds[flag] = function(key)
keybindTypes:Set(key)
end
end
return keybindTypes
end
function sectionTypes:ToggleKeybind(opts)
local options = utility.table(opts)
local name = options.name or "Toggle Keybind"
local default = options.default
local blacklist = options.blacklist or {}
local toggleFlag = options.toggleFlag
local keybindFlag = options.keybindFlag
local toggleCallback = options.toggleCallback or function()
end
local keybindCallback = options.keybindCallback or function()
end
local keys = {
[Enum.KeyCode.LeftShift] = "Left Shift",
[Enum.KeyCode.RightShift] = "Right Shft",
[Enum.KeyCode.LeftControl] = "Left Ctrl",
[Enum.KeyCode.RightControl] = "Right Ctrl",
[Enum.KeyCode.LeftAlt] = "Left Alt",
[Enum.KeyCode.RightAlt] = "Right Alt",
[Enum.KeyCode.CapsLock] = "CapsLock",
[Enum.KeyCode.One] = "1",
[Enum.KeyCode.Two] = "2",
[Enum.KeyCode.Three] = "3",
[Enum.KeyCode.Four] = "4",
[Enum.KeyCode.Five] = "5",
[Enum.KeyCode.Six] = "6",
[Enum.KeyCode.Seven] = "7",
[Enum.KeyCode.Eight] = "8",
[Enum.KeyCode.Nine] = "9",
[Enum.KeyCode.Zero] = "0",
[Enum.KeyCode.KeypadOne] = "Num 1",
[Enum.KeyCode.KeypadTwo] = "Num 2",
[Enum.KeyCode.KeypadThree] = "Num 3",
[Enum.KeyCode.KeypadFour] = "Num 4",
[Enum.KeyCode.KeypadFive] = "Num 5",
[Enum.KeyCode.KeypadSix] = "Num 6",
[Enum.KeyCode.KeypadSeven] = "Num 7",
[Enum.KeyCode.KeypadEight] = "Num 8",
[Enum.KeyCode.KeypadNine] = "Num 9",
[Enum.KeyCode.KeypadZero] = "Num 0",
[Enum.KeyCode.Minus] = "-",
[Enum.KeyCode.Equals] = "=",
[Enum.KeyCode.Tilde] = "~",
[Enum.KeyCode.LeftBracket] = "[",
[Enum.KeyCode.RightBracket] = "]",
[Enum.KeyCode.RightParenthesis] = ")",
[Enum.KeyCode.LeftParenthesis] = "(",
[Enum.KeyCode.Semicolon] = ";",
[Enum.KeyCode.Quote] = "'",
[Enum.KeyCode.BackSlash] = "\\",
[Enum.KeyCode.Comma] = ";",
[Enum.KeyCode.Period] = ".",
[Enum.KeyCode.Slash] = "/",
[Enum.KeyCode.Asterisk] = "*",
[Enum.KeyCode.Plus] = "+",
[Enum.KeyCode.Period] = ".",
[Enum.KeyCode.Backquote] = "`",
[Enum.UserInputType.MouseButton1] = "Mouse 1",
[Enum.UserInputType.MouseButton2] = "Mouse 2",
[Enum.UserInputType.MouseButton3] = "Mouse 3"
}
local toggled = false
local keyChosen = default
if toggleFlag then
library.flags[toggleFlag] = toggled
end
if keybindFlag then
library.flags[keybindFlag] = default
end
local toggleKeybind =
utility.create(
"TextButton",
{
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 14,
TextColor3 = Color3.fromRGB(0, 0, 0),
Font = Enum.Font.SourceSans,
Parent = sectionContent
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(0, 21, 0, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = toggleKeybind
}
)
local icon =
utility.create(
"Frame",
{
ZIndex = 3,
Size = UDim2.new(0, 14, 1, -2),
BorderColor3 = Color3.fromRGB(37, 37, 37),
Position = UDim2.new(0, 0, 0, 1),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = toggleKeybind
}
)
local iconGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = icon
}
)
local value =
utility.create(
"TextButton",
{
ZIndex = 3,
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(180, 180, 180),
Text = default and (keys[default] or tostring(default):gsub("Enum.KeyCode.", "")) or "NONE",
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Right,
Parent = toggleKeybind
}
)
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
local function toggleToggle()
toggled = not toggled
if toggled then
table.insert(coloredGradients, iconGradient)
else
table.remove(coloredGradients, table.find(coloredGradients, iconGradient))
end
local textColor = toggled and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
local gradientColor
if toggled then
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, library.color),
ColorSequenceKeypoint.new(1, utility.change_color(library.color, -47))
}
else
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(32, 32, 32)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 17, 17))
}
end
iconGradient.Color = gradientColor
title.TextColor3 = textColor
if toggleFlag then
library.flags[toggleFlag] = toggled
end
toggleCallback(toggled)
end
toggleKeybind.MouseButton1Click:Connect(toggleToggle)
value.MouseButton1Click:Connect(
function()
value.Text = "..."
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
value.TextColor3 = Color3.fromRGB(255, 255, 255)
local binding
binding =
inputService.InputBegan:Connect(
function(input)
local key = keys[input.KeyCode] or keys[input.UserInputType]
value.Text = (keys[key] or tostring(input.KeyCode):gsub("Enum.KeyCode.", ""))
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
value.TextColor3 = Color3.fromRGB(180, 180, 180)
if input.UserInputType == Enum.UserInputType.Keyboard then
if not table.find(blacklist, input.KeyCode) then
keyChosen = input.KeyCode
if keybindFlag then
library.flags[keybindFlag] = input.KeyCode
end
binding:Disconnect()
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
if keybindFlag then
library.flags[keybindFlag] = nil
end
binding:Disconnect()
end
else
if not table.find(blacklist, input.UserInputType) then
keyChosen = input.UserInputType
if keybindFlag then
library.flags[keybindFlag] = input.UserInputType
end
binding:Disconnect()
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
if keybindFlag then
library.flags[keybindFlag] = nil
end
binding:Disconnect()
end
end
end
)
end
)
inputService.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == keyChosen then
toggleToggle()
keybindCallback(keyChosen)
end
else
if input.UserInputType == keyChosen then
toggleToggle()
keybindCallback(keyChosen)
end
end
end
)
local toggleKeybindTypes = utility.table()
function toggleKeybindTypes:Show()
keybind.Visible = true
end
function toggleKeybindTypes:Hide()
keybind.Visible = false
end
function toggleKeybindTypes:SetName(str)
title.Text = str
end
function toggleKeybindTypes:Toggle(bool)
if toggled ~= bool then
toggleToggle()
end
end
function toggleKeybindTypes:Set(newKey)
if typeof(newKey) == "EnumItem" then
if not table.find(blacklist, newKey) then
local key = keys[newKey]
value.Text = (keys[key] or tostring(newKey):gsub("Enum.KeyCode.", ""))
value.Size = UDim2.new(0, value.TextBounds.X, 1, 0)
value.Position = UDim2.new(1, -value.TextBounds.X, 0, 0)
value.TextColor3 = Color3.fromRGB(180, 180, 180)
keyChosen = newKey
if keybindFlag then
library.flags[keybindFlag] = newKey
end
else
keyChosen = nil
value.TextColor3 = Color3.fromRGB(180, 180, 180)
value.Text = "NONE"
if keybindFlag then
library.flags[keybindFlag] = nil
end
end
end
end
if keybindFlag then
flags.keybinds[keybindFlag] = function(key)
toggleKeybindTypes:Set(key)
end
end
if toggleFlag then
flags.toggles[toggleFlag] = function(bool)
toggleKeybindTypes:Toggle(bool)
end
end
return toggleKeybindTypes
end
function sectionTypes:ColorPicker(opts)
local options = utility.table(opts)
local name = options.name or "Color Picker"
local default = options.default or Color3.fromRGB(255, 255, 255)
local flag = options.flag
local callback = options.callback or function()
end
local open = false
local hue, sat, val = default:ToHSV()
local slidingHue = false
local slidingSaturation = false
local hsv = Color3.fromHSV(hue, sat, val)
if flag then
library.flags[flag] = default
end
callback(default)
local colorPickerHolder =
utility.create(
"Frame",
{
Size = UDim2.new(1, 0, 0, 16),
Position = UDim2.new(0, 0, 0, 0),
BackgroundTransparency = 1,
Parent = sectionContent
}
)
local colorPicker =
utility.create(
"TextButton",
{
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 14,
TextColor3 = Color3.fromRGB(0, 0, 0),
Font = Enum.Font.SourceSans,
Parent = colorPickerHolder
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = colorPicker
}
)
local icon =
utility.create(
"Frame",
{
ZIndex = 3,
Size = UDim2.new(0, 22, 0, 14),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(1, -22, 0, 1),
BackgroundColor3 = default,
Parent = colorPicker
}
)
local iconGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(105, 105, 105))
},
Parent = icon
}
)
local picker =
utility.create(
"Frame",
{
ZIndex = 12,
Visible = false,
Size = UDim2.new(1, -8, 0, 183),
ClipsDescendants = true,
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 12, 1, 3),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
Parent = colorPicker
}
)
local saturationFrame =
utility.create(
"ImageLabel",
{
ZIndex = 13,
Size = UDim2.new(1, -29, 0, 130),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 5, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 0, 4),
Image = "http://www.roblox.com/asset/?id=8630797271",
Parent = picker
}
)
local saturationPicker =
utility.create(
"Frame",
{
ZIndex = 15,
Size = UDim2.new(0, 4, 0, 4),
Position = UDim2.new(0, 5, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 1,
Parent = saturationFrame
}
)
local hueFrame =
utility.create(
"ImageLabel",
{
ZIndex = 13,
Size = UDim2.new(0, 14, 0, 130),
ClipsDescendants = true,
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundTransparency = 1,
Position = UDim2.new(1, -19, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 0, 4),
ScaleType = Enum.ScaleType.Crop,
Image = "http://www.roblox.com/asset/?id=8630799159",
Parent = picker
}
)
local huePicker =
utility.create(
"Frame",
{
ZIndex = 15,
Size = UDim2.new(1, 0, 0, 2),
Position = UDim2.new(0, 0, 0, 10),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 1,
Parent = hueFrame
}
)
local rgb =
utility.create(
"TextBox",
{
ZIndex = 14,
Size = UDim2.new(1, -10, 0, 16),
BackgroundTransparency = 1,
Position = UDim2.new(0, 5, 1, -42),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
PlaceholderColor3 = Color3.fromRGB(180, 180, 180),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = table.concat({utility.get_rgb(default)}, ", "),
ClearTextOnFocus = false,
Font = Enum.Font.Gotham,
PlaceholderText = "R, G, B",
Parent = picker
}
)
local bg =
utility.create(
"Frame",
{
ZIndex = 13,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = rgb
}
)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = bg
}
)
local hex =
utility.create(
"TextBox",
{
ZIndex = 14,
Size = UDim2.new(1, -10, 0, 16),
BackgroundTransparency = 1,
Position = UDim2.new(0, 5, 1, -21),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
PlaceholderColor3 = Color3.fromRGB(180, 180, 180),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = utility.rgb_to_hex(default),
ClearTextOnFocus = false,
Font = Enum.Font.Gotham,
PlaceholderText = utility.rgb_to_hex(default),
Parent = picker
}
)
local bg =
utility.create(
"Frame",
{
ZIndex = 13,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = hex
}
)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = bg
}
)
local function openPicker()
open = not open
picker.Visible = open
colorPickerHolder.Size =
UDim2.new(1, 0, 0, open and colorPicker.AbsoluteSize.Y + picker.AbsoluteSize.Y + 3 or 16)
end
colorPicker.MouseButton1Click:connect(openPicker)
local function updateHue(input)
local sizeY =
1 -
math.clamp((input.Position.Y - hueFrame.AbsolutePosition.Y) / hueFrame.AbsoluteSize.Y, 0, 1)
local posY =
math.clamp(
((input.Position.Y - hueFrame.AbsolutePosition.Y) / hueFrame.AbsoluteSize.Y) *
hueFrame.AbsoluteSize.Y,
0,
hueFrame.AbsoluteSize.Y - 2
)
huePicker.Position = UDim2.new(0, 0, 0, posY)
hue = sizeY
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
hueFrame.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingHue = true
updateHue(input)
end
end
)
hueFrame.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingHue = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if slidingHue then
updateHue(input)
end
end
end
)
local function updateSatVal(input)
local sizeX =
math.clamp(
(input.Position.X - saturationFrame.AbsolutePosition.X) / saturationFrame.AbsoluteSize.X,
0,
1
)
local sizeY =
1 -
math.clamp(
(input.Position.Y - saturationFrame.AbsolutePosition.Y) / saturationFrame.AbsoluteSize.Y,
0,
1
)
local posY =
math.clamp(
((input.Position.Y - saturationFrame.AbsolutePosition.Y) / saturationFrame.AbsoluteSize.Y) *
saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
)
local posX =
math.clamp(
((input.Position.X - saturationFrame.AbsolutePosition.X) / saturationFrame.AbsoluteSize.X) *
saturationFrame.AbsoluteSize.X,
0,
saturationFrame.AbsoluteSize.X - 4
)
saturationPicker.Position = UDim2.new(0, posX, 0, posY)
sat = sizeX
val = sizeY
hsv = Color3.fromHSV(hue, sat, val)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
saturationFrame.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
saturationFrame.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingSaturation = true
updateSatVal(input)
end
end
)
saturationFrame.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingSaturation = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if slidingSaturation then
updateSatVal(input)
end
end
end
)
local colorPickerTypes = utility.table()
function colorPickerTypes:Show()
colorPickerHolder.Visible = true
end
function colorPickerTypes:Hide()
colorPickerHolder.Visible = false
end
function colorPickerTypes:SetName(str)
title.Text = str
end
function colorPickerTypes:SetRGB(color)
hue, sat, val = color:ToHSV()
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
saturationPicker.Position =
UDim2.new(
0,
(math.clamp(sat * saturationFrame.AbsoluteSize.X, 0, saturationFrame.AbsoluteSize.X - 4)),
0,
(math.clamp(
(1 - val) * saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
))
)
huePicker.Position =
UDim2.new(
0,
0,
0,
math.clamp((1 - hue) * hueFrame.AbsoluteSize.Y, 0, hueFrame.AbsoluteSize.Y - 4)
)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
function colorPickerTypes:SetHex(hexValue)
color = utility.hex_to_rgb(hexValue)
hue, sat, val = color:ToHSV()
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
saturationPicker.Position =
UDim2.new(
0,
(math.clamp(sat * saturationFrame.AbsoluteSize.X, 0, saturationFrame.AbsoluteSize.X - 4)),
0,
(math.clamp(
(1 - val) * saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
))
)
huePicker.Position =
UDim2.new(
0,
0,
0,
math.clamp((1 - hue) * hueFrame.AbsoluteSize.Y, 0, hueFrame.AbsoluteSize.Y - 4)
)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
rgb.FocusLost:Connect(
function()
local _, amount = rgb.Text:gsub(", ", "")
if amount == 2 then
local values = rgb.Text:split(", ")
local r, g, b =
math.clamp(values[1], 0, 255),
math.clamp(values[2], 0, 255),
math.clamp(values[3], 0, 255)
colorPickerTypes:SetRGB(Color3.fromRGB(r, g, b))
else
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
end
end
)
hex.FocusLost:Connect(
function()
if hex.Text:find("#") and hex.Text:len() == 7 then
colorPickerTypes:SetHex(hex.Text)
else
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
end
)
hex:GetPropertyChangedSignal("Text"):Connect(
function()
if hex.Text == "" then
hex.Text = "#"
end
end
)
if flag then
flags.colorpickers[flag] = function(color)
colorPickerTypes:SetRGB(color)
end
end
return colorPickerTypes
end
function sectionTypes:ToggleColorPicker(opts)
local options = utility.table(opts)
local name = options.name or "Toggle Color Picker"
local default = options.default or Color3.fromRGB(255, 255, 255)
local toggleFlag = options.toggleFlag
local colorPickerFlag = options.colorPickerFlag
local toggleCallback = options.toggleCallback or function()
end
local colorPickerCallback = options.colorPickerCallback or function()
end
local open = false
local toggled = false
local hue, sat, val = default:ToHSV()
local slidingHue = false
local slidingSaturation = false
local hsv = Color3.fromHSV(hue, sat, val)
if colorPickerFlag then
library.flags[colorPickerFlag] = default
end
colorPickerCallback(default)
if toggleFlag then
library.flags[toggleFlag] = toggled
end
toggleCallback(false)
local toggleColorPickerHolder =
utility.create(
"Frame",
{
Size = UDim2.new(1, 0, 0, 16),
Position = UDim2.new(0, 0, 0, 0),
BackgroundTransparency = 1,
Parent = sectionContent
}
)
local colorPicker =
utility.create(
"TextButton",
{
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 14,
TextColor3 = Color3.fromRGB(0, 0, 0),
Font = Enum.Font.SourceSans,
Parent = toggleColorPickerHolder
}
)
local icon =
utility.create(
"Frame",
{
ZIndex = 3,
Size = UDim2.new(0, 14, 1, -2),
BorderColor3 = Color3.fromRGB(37, 37, 37),
Position = UDim2.new(0, 0, 0, 1),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = colorPicker
}
)
local iconGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = icon
}
)
local colorPickerIcon =
utility.create(
"TextButton",
{
ZIndex = 3,
Text = "",
Size = UDim2.new(0, 22, 0, 14),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(1, -22, 0, 1),
BackgroundColor3 = default,
Parent = colorPicker
}
)
local colorPickerIconGradient =
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(105, 105, 105))
},
Parent = colorPickerIcon
}
)
local title =
utility.create(
"TextLabel",
{
ZIndex = 3,
Size = UDim2.new(0, 0, 1, 0),
BackgroundTransparency = 1,
Position = UDim2.new(1, 7, 0, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextSize = 13,
TextColor3 = Color3.fromRGB(180, 180, 180),
Text = name,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = icon
}
)
local picker =
utility.create(
"Frame",
{
ZIndex = 12,
Visible = false,
Size = UDim2.new(1, -8, 0, 183),
ClipsDescendants = true,
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 12, 1, 3),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
Parent = colorPicker
}
)
local saturationFrame =
utility.create(
"ImageLabel",
{
ZIndex = 13,
Size = UDim2.new(1, -29, 0, 130),
BorderColor3 = Color3.fromRGB(22, 22, 22),
Position = UDim2.new(0, 5, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 0, 4),
Image = "http://www.roblox.com/asset/?id=8630797271",
Parent = picker
}
)
local saturationPicker =
utility.create(
"Frame",
{
ZIndex = 15,
Size = UDim2.new(0, 4, 0, 4),
Position = UDim2.new(0, 5, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 1,
Parent = saturationFrame
}
)
local hueFrame =
utility.create(
"ImageLabel",
{
ZIndex = 13,
Size = UDim2.new(0, 14, 0, 130),
ClipsDescendants = true,
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundTransparency = 1,
Position = UDim2.new(1, -19, 0, 5),
BackgroundColor3 = Color3.fromRGB(255, 0, 4),
ScaleType = Enum.ScaleType.Crop,
Image = "http://www.roblox.com/asset/?id=8630799159",
Parent = picker
}
)
local huePicker =
utility.create(
"Frame",
{
ZIndex = 15,
Size = UDim2.new(1, 0, 0, 2),
Position = UDim2.new(0, 0, 0, 10),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(0, 0, 0),
BorderSizePixel = 1,
Parent = hueFrame
}
)
local rgb =
utility.create(
"TextBox",
{
ZIndex = 14,
Size = UDim2.new(1, -10, 0, 16),
BackgroundTransparency = 1,
Position = UDim2.new(0, 5, 1, -42),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
PlaceholderColor3 = Color3.fromRGB(180, 180, 180),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = table.concat({utility.get_rgb(default)}, ", "),
ClearTextOnFocus = false,
Font = Enum.Font.Gotham,
PlaceholderText = "R, G, B",
Parent = picker
}
)
local bg =
utility.create(
"Frame",
{
ZIndex = 13,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = rgb
}
)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = bg
}
)
local hex =
utility.create(
"TextBox",
{
ZIndex = 14,
Size = UDim2.new(1, -10, 0, 16),
BackgroundTransparency = 1,
Position = UDim2.new(0, 5, 1, -21),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
PlaceholderColor3 = Color3.fromRGB(180, 180, 180),
FontSize = Enum.FontSize.Size12,
TextSize = 12,
TextColor3 = Color3.fromRGB(255, 255, 255),
Text = utility.rgb_to_hex(default),
ClearTextOnFocus = false,
Font = Enum.Font.Gotham,
PlaceholderText = utility.rgb_to_hex(default),
Parent = picker
}
)
local bg =
utility.create(
"Frame",
{
ZIndex = 13,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(22, 22, 22),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = hex
}
)
utility.create(
"UIGradient",
{
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(32, 32, 32), Color3.fromRGB(17, 17, 17)),
Parent = bg
}
)
local function toggleToggle()
toggled = not toggled
if toggled then
table.insert(coloredGradients, iconGradient)
else
table.remove(coloredGradients, table.find(coloredGradients, iconGradient))
end
local textColor = toggled and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180)
local gradientColor
if toggled then
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, library.color),
ColorSequenceKeypoint.new(1, utility.change_color(library.color, -47))
}
else
gradientColor =
ColorSequence.new {
ColorSequenceKeypoint.new(0, Color3.fromRGB(32, 32, 32)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 17, 17))
}
end
iconGradient.Color = gradientColor
title.TextColor3 = textColor
if toggleFlag then
library.flags[toggleFlag] = toggled
end
toggleCallback(toggled)
end
colorPicker.MouseButton1Click:Connect(toggleToggle)
local function openPicker()
open = not open
picker.Visible = open
toggleColorPickerHolder.Size =
UDim2.new(1, 0, 0, open and colorPicker.AbsoluteSize.Y + picker.AbsoluteSize.Y + 3 or 16)
end
colorPickerIcon.MouseButton1Click:connect(openPicker)
local function updateHue(input)
local sizeY =
1 -
math.clamp((input.Position.Y - hueFrame.AbsolutePosition.Y) / hueFrame.AbsoluteSize.Y, 0, 1)
local posY =
math.clamp(
((input.Position.Y - hueFrame.AbsolutePosition.Y) / hueFrame.AbsoluteSize.Y) *
hueFrame.AbsoluteSize.Y,
0,
hueFrame.AbsoluteSize.Y - 2
)
huePicker.Position = UDim2.new(0, 0, 0, posY)
hue = sizeY
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
colorPickerIcon.BackgroundColor3 = hsv
if colorPickerFlag then
library.flags[colorPickerFlag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
colorPickerCallback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
hueFrame.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingHue = true
updateHue(input)
end
end
)
hueFrame.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingHue = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if slidingHue then
updateHue(input)
end
end
end
)
local function updateSatVal(input)
local sizeX =
math.clamp(
(input.Position.X - saturationFrame.AbsolutePosition.X) / saturationFrame.AbsoluteSize.X,
0,
1
)
local sizeY =
1 -
math.clamp(
(input.Position.Y - saturationFrame.AbsolutePosition.Y) / saturationFrame.AbsoluteSize.Y,
0,
1
)
local posY =
math.clamp(
((input.Position.Y - saturationFrame.AbsolutePosition.Y) / saturationFrame.AbsoluteSize.Y) *
saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
)
local posX =
math.clamp(
((input.Position.X - saturationFrame.AbsolutePosition.X) / saturationFrame.AbsoluteSize.X) *
saturationFrame.AbsoluteSize.X,
0,
saturationFrame.AbsoluteSize.X - 4
)
saturationPicker.Position = UDim2.new(0, posX, 0, posY)
sat = sizeX
val = sizeY
hsv = Color3.fromHSV(hue, sat, val)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
saturationFrame.BackgroundColor3 = hsv
colorPickerIcon.BackgroundColor3 = hsv
if colorPickerFlag then
library.flags[colorPickerFlag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
colorPickerCallback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
saturationFrame.InputBegan:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingSaturation = true
updateSatVal(input)
end
end
)
saturationFrame.InputEnded:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
slidingSaturation = false
end
end
)
inputService.InputChanged:Connect(
function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if slidingSaturation then
updateSatVal(input)
end
end
end
)
local toggleColorPickerTypes = utility.table()
function toggleColorPickerTypes:Show()
toggleColorPickerHolder.Visible = true
end
function toggleColorPickerTypes:Hide()
toggleColorPickerHolder.Visible = false
end
function toggleColorPickerTypes:SetName(str)
title.Text = str
end
function toggleColorPickerTypes:Toggle(bool)
if toggled ~= bool then
toggleToggle()
end
end
function toggleColorPickerTypes:SetRGB(color)
hue, sat, val = color:ToHSV()
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
colorPickerIcon.BackgroundColor3 = hsv
saturationPicker.Position =
UDim2.new(
0,
(math.clamp(sat * saturationFrame.AbsoluteSize.X, 0, saturationFrame.AbsoluteSize.X - 4)),
0,
(math.clamp(
(1 - val) * saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
))
)
huePicker.Position =
UDim2.new(
0,
0,
0,
math.clamp((1 - hue) * hueFrame.AbsoluteSize.Y, 0, hueFrame.AbsoluteSize.Y - 4)
)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
if colorPickerFlag then
library.flags[colorPickerFlag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
colorPickerCallback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
function toggleColorPickerTypes:SetHex(hexValue)
color = utility.hex_to_rgb(hexValue)
hue, sat, val = color:ToHSV()
hsv = Color3.fromHSV(hue, sat, val)
saturationFrame.BackgroundColor3 = hsv
colorPickerIcon.BackgroundColor3 = hsv
saturationPicker.Position =
UDim2.new(
0,
(math.clamp(sat * saturationFrame.AbsoluteSize.X, 0, saturationFrame.AbsoluteSize.X - 4)),
0,
(math.clamp(
(1 - val) * saturationFrame.AbsoluteSize.Y,
0,
saturationFrame.AbsoluteSize.Y - 4
))
)
huePicker.Position =
UDim2.new(
0,
0,
0,
math.clamp((1 - hue) * hueFrame.AbsoluteSize.Y, 0, hueFrame.AbsoluteSize.Y - 4)
)
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
if colorPickerFlag then
library.flags[colorPickerFlag] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
end
colorPickerCallback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
rgb.FocusLost:Connect(
function()
local _, amount = rgb.Text:gsub(", ", "")
if amount == 2 then
local values = rgb.Text:split(", ")
local r, g, b =
math.clamp(values[1], 0, 255),
math.clamp(values[2], 0, 255),
math.clamp(values[3], 0, 255)
toggleColorPickerTypes:SetRGB(Color3.fromRGB(r, g, b))
else
rgb.Text =
math.floor((hsv.r * 255) + 0.5) ..
", " .. math.floor((hsv.g * 255) + 0.5) .. ", " .. math.floor((hsv.b * 255) + 0.5)
end
end
)
hex.FocusLost:Connect(
function()
if hex.Text:find("#") and hex.Text:len() == 7 then
toggleColorPickerTypes:SetHex(hex.Text)
else
hex.Text = utility.rgb_to_hex(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255))
end
end
)
hex:GetPropertyChangedSignal("Text"):Connect(
function()
if hex.Text == "" then
hex.Text = "#"
end
end
)
if colorPickerFlag then
flags.colorpickers[colorPickerFlag] = function(color)
toggleColorPickerTypes:SetRGB(color)
end
end
if toggleFlag then
flags.toggles[toggleFlag] = function(bool)
toggleColorPickerTypes:Toggle(bool)
end
end
return toggleColorPickerTypes
end
return sectionTypes
end
return tabTypes
end
return windowTypes
end
return library
end
local library = initLibrary()
local lib = library:Load({name = "Yun.gay", sizeX = 378, sizeY = 498, color = Color3.fromRGB(255, 20, 88)})
local MainTab = lib:Tab("Main")
local LegitTab = lib:Tab("Legit")
local MiscTab = lib:Tab("Misc")
local VisualsTab = lib:Tab("Visuals")
local tab = lib:Tab("Configs")
local MainSec1 = MainTab:Section {name = "Ragebot", column = 1}
local MainSec2 = MainTab:Section {name = "FOV", column = 2}
local MainSec3 = MainTab:Section {name = "Tracer", column = 2}
local LegitSec1 = LegitTab:Section {name = "Aimbot", column = 1}
local MiscSec1 = MiscTab:Section {name = "Anti Aim", column = 1}
local MiscSec2 = MiscTab:Section {name = "Character", column = 2}
local MiscSec3 = MiscTab:Section {name = "Shopping", column = 1}
local MiscSec4 = MiscTab:Section {name = "Animating", column = 2}
local VisualsSec = VisualsTab:Section {name = "Esp", column = 1}
local VisualsSec2 = VisualsTab:Section {name = "Chams", column = 1}
local VisualsSec3 = VisualsTab:Section {name = "Character", column = 2}
local sec = tab:Section {name = "Configs", column = 1}
local configs = {}
local configFolder = "epic config folder/" .. game.PlaceId
for i, v in next, listfiles(configFolder) do
local newconfig = v:gsub(configFolder .. "\\", "")
newconfig = newconfig:gsub(".cfg", "")
table.insert(configs, newconfig)
end
local dropdown =
sec:Dropdown {
Name = "Configs",
Content = configs,
flag = "configchosen"
}
local button =
sec:Button {
Name = "Load Config",
Callback = function()
library:LoadConfig(library.flags.configchosen)
end
}
local button =
sec:Button {
Name = "Delete Config",
Callback = function()
delfile(configFolder .. "\\" .. library.flags.configchosen .. ".cfg")
local configs = {}
for i, v in next, listfiles(configFolder) do
local newconfig = v:gsub(configFolder .. "\\", "")
newconfig = newconfig:gsub(".cfg", "")
table.insert(configs, newconfig)
end
dropdown:Refresh(configs)
end
}
local configName = ""
local box =
sec:Box {
Name = "Config Name",
Placeholder = "config",
callback = function(e)
configName = e
end
}
local button =
sec:Button {
Name = "Save Config",
Callback = function()
library:SaveConfig(configName)
local configs = {}
for i, v in next, listfiles(configFolder) do
local newconfig = v:gsub(configFolder .. "\\", "")
newconfig = newconfig:gsub(".cfg", "")
table.insert(configs, newconfig)
end
dropdown:Refresh(configs)
end
}
local Nomiam =
sec:ColorPicker {
Name = "Library Color",
Default = Color3.fromRGB(255, 20, 88),
Flag = "Namzzzz",
callback = function(e)
library:SetColor(e)
end
}
local tog =
MainSec1:Toggle {
Name = "Ragebot",
flag = "Toggle1",
callback = function(e)
getgenv().loltoggle = e
end
}
local xdddddd =
MainSec1:Keybind {
name = "Bind",
default = Enum.KeyCode.Q,
blacklist = {Enum.KeyCode.A},
flag = "keyboinned",
callback = function(e)
getgenv().Key = e
end
}
local gayslider =
MainSec1:Slider {
Name = "Ye",
Default = 1.37,
Min = 0.5,
Max = 5,
Decimals = 3,
Flag = "XDDDDDDD",
callback = function(e)
getgenv().Prediction = e
end
}
gayslider:SetValueTexT("Prediction: [VALUE]/5")
local drop =
MainSec1:dropdown {
name = "Bone",
content = {"Head", "Torso", "Penis", "Feet"},
multichoice = false,
callback = function(State)
if State == "Head" then
getgenv().Partz = "Head"
elseif State == "Torso" then
getgenv().Partz = "HumanoidRootPart"
elseif State == "Penis" then
getgenv().Partz = "LowerTorso"
elseif State == "Feet" then
getgenv().Partz = "RightFoot"
end
end,
flag = "noooooooooooooooooooo"
}
local tog =
MainSec1:Toggle {
Name = "Ping base",
flag = "lorisiscoolguys",
callback = function(e)
getgenv().autosetup = e
end
}
local tog =
MainSec1:Toggle {
Name = "Notification Mode",
flag = "frrr",
callback = function(e)
getgenv().Notificationmode = e
end
}
MainSec1:Toggle {
Name = "Airshot Func",
flag = "Wif-i",
callback = function(e)
getgenv().AirshotFunccc = e
end
}
local wasdwasdwa =
MainSec1:Toggle {
Name = "Tracer Mode",
flag = "wasdwasd",
callback = function(e)
getgenv().Tracer = e
end
}
MainSec1:dropdown {
name = "Airshot Bone",
content = {"Head", "Torso", "Penis", "Feet"},
multichoice = false,
callback = function(State)
if State == "Head" then
getgenv().airshotpart = "Head"
elseif State == "Torso" then
getgenv().airshotpart = "HumanoidRootPart"
elseif State == "Penis" then
getgenv().airshotpart = "LowerTorso"
elseif State == "Feet" then
getgenv().airshotpart = "RightFoot"
end
end,
flag = "farter"
}
MainSec2:Toggle {
Name = "Show FOV",
flag = "yesfrrr",
callback = function(e)
_G.CircleVisible = e
end
}
local fovsizeslider =
MainSec2:Slider {
Name = "FOV Size",
Default = 80,
Min = 1,
Max = 500,
Flag = "niggzzz",
callback = function(e)
_G.CircleRadius = e
end
}
fovsizeslider:SetValueTexT("FOV Size: [VALUE]/1000")
local fovthicknessyea =
MainSec2:Slider {
Name = "FOV Thickness",
Default = 0,
Min = 0.1,
Max = 3000,
Decimals = 5,
Flag = "niggzzz",
callback = function(e)
_G.CircleThickness = e
end
}
fovthicknessyea:SetValueTexT("FOV Thickness: [VALUE]/3000")
local fovtransparnecy =
MainSec2:Slider {
Name = "FOV Transparency",
Default = 0.5,
Min = 0.1,
Max = 1,
Decimals = 1,
Flag = "aaaaaaaaaaaaaaaa",
callback = function(e)
_G.CircleTransparency = e
end
}
fovtransparnecy:SetValueTexT("FOV Transparency: [VALUE]/1")
MainSec2:Toggle {
Name = "FOV Filled",
flag = "aaaaaa",
callback = function(e)
_G.CircleFilled = e
end
}
MainSec2:dropdown {
name = "FOV Shape",
content = {"Circle", "Hexagon", "Triangle", "Pentagon", "Heptagon", "Octagon", "Quadrilateral", "Nonagon"},
multichoice = false,
callback = function(State)
if State == "Circle" then
_G.CircleSides = 350
elseif State == "Hexagon" then
_G.CircleSides = 6
elseif State == "Triangle" then
_G.CircleSides = 3
elseif State == "Pentagon" then
_G.CircleSides = 5
elseif State == "Heptagon" then
_G.CircleSides = 7
elseif State == "Octagon" then
_G.CircleSides = 8
elseif State == "Quadrilateral" then
_G.CircleSides = 4
elseif State == "Nonagon" then
_G.CircleSides = 9
end
end
}
local dadadadadadada =
MainSec2:ColorPicker {
Name = "FOV Colour",
Default = Color3.fromRGB(255, 20, 88),
Flag = "lorisisgay",
callback = function(e)
_G.CircleColor = e
end
}
LegitSec1:Toggle {
Name = "Aimbot",
flag = "Kiddddddd",
callback = function(e)
Aimlock = e
end
}
local pasttwonc =
LegitSec1:Slider {
Name = "Ye",
Default = 1.37,
Min = 0.5,
Max = 5,
Decimals = 3,
Flag = "lololol",
callback = function(e)
getgenv().PredictionVelocity = e
end
}
pasttwonc:SetValueTexT("Prediction: [VALUE]/5")
LegitSec1:Box {
Name = "Aimbot Bind",
Placeholder = "q",
callback = function(e)
AimlockKey = e
end
}
LegitSec1:dropdown {
name = "Bone",
content = {"Head", "Torso", "Penis"},
multichoice = false,
callback = function(State)
if State == "Head" then
getgenv().AimPart = "Head"
getgenv().OldAimPart = "Head"
elseif State == "Torso" then
getgenv().AimPart = "HumanoidRootPart"
getgenv().OldAimPart = "HumanoidRootPart"
elseif State == "Penis" then
getgenv().AimPart = "LowerTorso"
Getgenv().OldAimPart = "LowerTorso"
end
end,
flag = "nooooooooooo"
}
LegitSec1:Toggle {
Name = "Airshot Func",
flag = "loldasa",
callback = function(e)
CheckIfJumped = e
end
}
LegitSec1:dropdown {
name = "Airshot Bone",
content = {"Head", "Torso", "Penis"},
multichoice = false,
callback = function(State)
if State == "Head" then
getgenv().airshotbonee = "Head"
elseif State == "Torso" then
getgenv().airshotbonee = "HumanoidRootPart"
elseif State == "Penis" then
getgenv().airshotbonee = "LowerTorso"
end
end,
flag = "xxxxx"
}
LegitSec1:Toggle {
Name = "Aim Assist",
flag = "looool",
callback = function(e)
getgenv().Smoothness = e
end
}
local smoothing_slider =
LegitSec1:Slider {
Name = "Aim Assist Strength",
Default = 0.0365,
Min = 0.05,
Max = 1,
Decimals = 25,
Flag = "lololol",
callback = function(e)
getgenv().SmoothnessAmount = e
end
}
smoothing_slider:SetValueTexT("Smoothness: [VALUE]/1")
local cluea =
MiscSec1:Toggle {
Name = "Spinbot",
flag = "noonez",
callback = function(e)
getgenv().Spinbot = e
end
}
local ftw =
MiscSec1:Toggle {
Name = "Jitter",
flag = "decxa",
callback = function(e)
getgenv().Jitter = e
end
}
MiscSec1:Toggle {
Name = "Lay",
flag = "yeayea",
callback = function(e)
if e then
game.Players.LocalPlayer.Character.Animate.idle.Animation1.AnimationId =
"http://www.roblox.com/asset/?id=3152378852"
game.Players.LocalPlayer.Character.Animate.run.RunAnim.AnimationId =
"http://www.roblox.com/asset/?id=3152378852"
game.Players.LocalPlayer.Character.Animate.walk.WalkAnim.AnimationId =
"http://www.roblox.com/asset/?id=3152378852"
else
game.Players.LocalPlayer.Character.Animate.idle.Animation1.AnimationId = _G.Save1
game.Players.LocalPlayer.Character.Animate.run.RunAnim.AnimationId = _G.Save2
game.Players.LocalPlayer.Character.Animate.walk.WalkAnim.AnimationId = _G.Save3
end
end
}
MiscSec1:Toggle {
Name = "Anti-Lock",
flag = "Nopez",
callback = function(e)
getgenv().antilock = e
end
}
local checka =
MiscSec1:Slider {
Name = "Speed",
Default = 0.26,
Min = 0,
Max = 0.60,
Decimals = 2,
Flag = "moooooo",
callback = function(e)
getgenv().antilockspeed = e
end
}
checka:SetValueTexT("Anti Lock Speed: [VALUE]/0.6")
MiscSec1:SpecialLabel("Blatant Anti Aim")
MiscSec1:Toggle {
Name = "Spin Blatant AA",
flag = "thepoop",
callback = function(e)
getgenv().AntiAim1 = e
end
}
MiscSec1:Toggle {
Name = "Slingshot AA",
flag = "aaaaaaaz",
callback = function(e)
getgenv().AntiAim2 = e
end
}
local bitchass =
MiscSec1:togglekeybind {
name = "CFrame Speed",
default = Enum.KeyCode.Z,
keybindflag = "niggaaaaaaaaaaaa",
toggleflag = "iudr",
blacklist = {Enum.KeyCode.A},
togglecallback = function(e)
getgenv().cframespeedtoggle = e
end
}
local sdadwasdsa =
MiscSec1:Slider {
Name = "Speed Value",
Default = 0.35,
Min = 0,
Max = 5,
Decimals = 2,
Flag = "niggzzz",
callback = function(e)
getgenv().speedvalue = e
end
}
sdadwasdsa:SetValueTexT("CFrame Speed Value: [VALUE]/5")
MiscSec2:Toggle {
Name = "Anti Slowdown",
flag = "loooldapo",
callback = function(jjsplcoit)
antislow = jjsplcoit
repeat
wait(0.1)
local player = game.Players.LocalPlayer
local DeletePart =
player.Character.BodyEffects.Movement:FindFirstChild("NoJumping") or
player.Character.BodyEffects.Movement:FindFirstChild("ReduceWalk") or
player.Character.BodyEffects.Movement:FindFirstChild("NoWalkSpeed")
if Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: pastebin.com, www.roblox.com.
yeah yeah ik this was leaked awhile ago but i didnt see it on here so yeah take it