Message 11
Message 11
wait()
until game:IsLoaded()
local library
do
local folder = "specter"
return game:GetService(service)
end
})
local utility = {}
function utility.randomstring(length)
local str = ""
local chars = string.split("abcdefghijklmnopqrstuvwxyz1234567890", "")
for i = 1, length do
local i = math.random(1, #chars)
return str
end
local forced = {
AutoButtonColor = false
}
obj.Name = utility.randomstring(16)
return obj
end
function utility.dragify(object, speed)
local start, objectPosition, dragging
speed = speed or 0
object.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
start = input.Position
objectPosition = object.Position
end
end)
object.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement and dragging
then
utility.tween(object, { speed }, { Position =
UDim2.new(objectPosition.X.Scale, objectPosition.X.Offset + (input.Position -
start).X, objectPosition.Y.Scale, objectPosition.Y.Offset + (input.Position -
start).Y) })
end
end)
end
function utility.getrgb(color)
local r = math.floor(color.r * 255)
local g = math.floor(color.g * 255)
local b = math.floor(color.b * 255)
return r, g, b
end
function utility.table(tbl)
tbl = tbl or {}
local newtbl = {}
return setmetatable({}, {
__newindex = function(_, k, v)
rawset(newtbl, k:lower(), v)
end,
__index = function(_, k)
return newtbl[k:lower()]
end
})
end
if callback then
anim.Completed:Connect(callback)
end
return anim
end
tween.Completed:Connect(function()
obj.Visible = false
end)
return tween
elseif bool == true then
local tween
if obj.ClassName:find("Text") then
tween = utility.tween(obj, { 0.2 }, { BackgroundTransparency =
obj.BackgroundTransparency - 1, TextTransparency = obj.TextTransparency - 1,
TextStrokeTransparency = obj.TextStrokeTransparency - 1 })
elseif obj.ClassName:find("Image") then
tween = utility.tween(obj, { 0.2 }, { BackgroundTransparency =
obj.BackgroundTransparency - 1, ImageTransparency = obj.ImageTransparency - 1 })
elseif obj.ClassName:find("Scrolling") then
tween = utility.tween(obj, { 0.2 }, { BackgroundTransparency =
obj.BackgroundTransparency - 1, ScrollBarImageTransparency =
obj.ScrollBarImageTransparency - 1 })
else
tween = utility.tween(obj, { 0.2 }, { BackgroundTransparency =
obj.BackgroundTransparency - 1 })
end
end
return tween
end
end
return Color3.fromRGB(r, g, b)
end
function utility.gradient(colors)
local colortbl = {}
return ColorSequence.new(colortbl)
end
library = utility.table {
flags = {},
toggled = true,
accent = Color3.fromRGB(162, 109, 184),
outline = { Color3.fromRGB(121, 66, 254), Color3.fromRGB(223, 57, 137) },
keybind = Enum.KeyCode.RightShift
}
function library:ChangeAccent(accent)
library.accent = accent
local outlineobjs = {}
function library:ChangeOutline(colors)
for _, obj in next, outlineobjs do
obj.Color = utility.gradient(colors)
end
end
local gui = utility.create("ScreenGui", {})
local flags = {}
if isfolder(folderpath) then
local folderpath = string.format("%s//%s", folder, placeid)
local filepath = string.format("%s//%s.json", folderpath, name)
delfile(filepath)
end
end
function library:LoadConfig(name)
local placeidfolder = string.format("%s//%s", folder, game.PlaceId)
local placeidfile = string.format("%s//%s.json", placeidfolder, name)
local filepath
do
if isfolder(placeidfolder) and isfile(placeidfile) then
filepath = placeidfile
else
filepath = string.format("%s//universal//%s.json", folder, name)
end
end
function library:ListConfigs(universal)
local configs = {}
local placeidfolder = string.format("%s//%s", folder, game.PlaceId)
local universalfolder = folder .. "//universal"
function library:Watermark(options)
local text = table.concat(options, " <font color=\"#D2D2D2\">|</font> ")
table.insert(accentobjects.text, watermark)
utility.create("UIPadding", {
PaddingBottom = UDim.new(0, 2),
Parent = watermark
})
local outline = utility.create("Frame", {
Size = UDim2.new(1, 2, 1, 4),
BorderColor3 = Color3.fromRGB(45, 45, 45),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = watermark
})
utility.create("Frame", {
ZIndex = 0,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(45, 45, 45),
Parent = outline
})
table.insert(outlineobjs, outlinegradient)
function watermarktypes:Update(options)
local text = table.concat(options, " <font color=\"#D2D2D2\">|</font>
")
local watermarksize = services.TextService:GetTextSize(text:gsub("<font
color=\"#D2D2D2\">", ""):gsub("</font>", ""), 14, Enum.Font.Code, Vector2.new(1000,
1000)).X + 16
function watermarktypes:Toggle()
if not toggling then
toggling = true
toggling = false
end
end
return watermarktypes
end
function library:New(options)
options = utility.table(options)
local name = options.name
local accent = options.accent or library.accent
local outlinecolor = options.outline or { accent,
utility.changecolor(accent, -100) }
local sizeX = options.sizeX or 550
local sizeY = options.sizeY or 350
library.accent = accent
library.outline = outlinecolor
function library:Toggle()
if not toggling then
toggling = true
toggling = false
end
end
utility.dragify(holder)
table.insert(accentobjects.text, title)
table.insert(outlineobjs, outlinegradient)
utility.create("UIGradient", {
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(25, 25, 25),
Color3.fromRGB(20, 20, 20)),
Parent = tabs
})
utility.create("Frame", {
ZIndex = 3,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
Parent = tabs
})
utility.create("UIListLayout", {
FillDirection = Enum.FillDirection.Horizontal,
SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 4),
Parent = tabtoggles
})
local pagetoggles = {}
local firsttab
local currenttab
function windowtypes:Page(options)
options = utility.table(options)
local name = options.name
table.insert(accentobjects.bg, selectedglow)
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 0, 0, 1),
Position = UDim2.new(0, 0, 1, 0),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
Parent = selectedglow
})
if first then
table.insert(accentobjects.text, title)
end
if first then
accentobjects.gradient[tabglowgradient] = function(color)
return utility.gradient { utility.changecolor(color, -30),
Color3.fromRGB(30, 30, 30) }
end
end
pagetoggles[tabtoggle] = {}
pagetoggles[tabtoggle] = function()
utility.tween(antiborder, { 0.2 }, { BackgroundTransparency = 1 },
function()
antiborder.Visible = false
end)
if accentobjects.gradient[tabglowgradient] then
accentobjects.gradient[tabglowgradient] = function() end
end
end
if first then
currenttab = tab
firsttab = tab
end
tab.DescendantAdded:Connect(function(descendant)
if tab ~= currenttab then
task.wait()
if not descendant.ClassName:find("UI") then
if descendant.ClassName:find("Text") then
descendant.TextTransparency =
descendant.TextTransparency + 1
descendant.TextStrokeTransparency =
descendant.TextStrokeTransparency + 1
end
if descendant.ClassName:find("Scrolling") then
descendant.ScrollBarImageTransparency =
descendant.ScrollBarImageTransparency + 1
end
descendant.BackgroundTransparency =
descendant.BackgroundTransparency + 1
end
end
end)
utility.updatescrolling(column1, column1list)
utility.updatescrolling(column2, column2list)
currenttab = tab
antiborder.Visible = true
utility.tween(antiborder, { 0.2 }, { BackgroundTransparency = 0
})
selectedglow.Visible = true
utility.tween(selectedglow, { 0.2 }, { BackgroundTransparency =
0 })
table.insert(accentobjects.text, title)
tabglowgradient.Color = utility.gradient
{ utility.changecolor(library.accent, -30), Color3.fromRGB(30, 30, 30) }
accentobjects.gradient[tabglowgradient] = function(color)
return utility.gradient { utility.changecolor(color, -30),
Color3.fromRGB(30, 30, 30) }
end
tab.Visible = true
if tab.BackgroundTransparency > 1 then
task.wait(0.2)
switchingtabs = false
end
end
tabtoggle.MouseButton1Click:Connect(opentab)
function pagetypes:Section(options)
options = utility.table(options)
local name = options.name
local side = options.side or "left"
local max = options.max or math.huge
local column = (side:lower() == "left" and column1) or
(side:lower() == "right" and column2)
table.insert(accentobjects.text, title)
table.insert(accentobjects.bg, glow)
utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(1, 0, 0, 1),
Position = UDim2.new(0, 0, 1, 0),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
Parent = glow
})
accentobjects.gradient[fadegradient] = function(color)
return utility.gradient { utility.changecolor(color, -30),
Color3.fromRGB(22, 22, 22) }
end
utility.updatescrolling(sectioncontent, sectionlist)
function sectiontypes:Label(options)
options = utility.table(options)
local name = options.name
utility.create("TextLabel", {
ZIndex = 8,
Size = UDim2.new(1, 0, 0, 13),
BorderColor3 = Color3.fromRGB(50, 50, 50),
BackgroundTransparency = 1,
Position = UDim2.new(0, 6, 0, 3),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
FontSize = Enum.FontSize.Size14,
TextStrokeTransparency = 0,
TextSize = 13,
TextColor3 = Color3.fromRGB(210, 210, 210),
Text = name,
Font = Enum.Font.Code,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = sectioncontent
})
function sectiontypes:Button(options)
options = utility.table(options)
local name = options.name
local callback = options.callback
local bg = utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = button
})
local bggradient = utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25) },
Parent = bg
})
button.MouseButton1Click:Connect(callback)
button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
then
bggradient.Color = utility.gradient
{ Color3.fromRGB(45, 45, 45), Color3.fromRGB(35, 35, 35) }
end
end)
button.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
then
bggradient.Color = utility.gradient
{ Color3.fromRGB(35, 35, 35), Color3.fromRGB(25, 25, 25) }
end
end)
function sectiontypes:Toggle(options)
options = utility.table(options)
local name = options.name
local default = options.default
local flag = options.pointer
local callback = options.callback or function() end
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
accentobjects.gradient[enabledicongradient] = function(color)
return utility.gradient { color, Color3.fromRGB(25, 25, 25)
}
end
if flag then
library.flags[flag] = toggled
end
if flag then
library.flags[flag] = toggled
end
callback(toggled)
if toggled then
table.insert(accentobjects.text, title)
elseif table.find(accentobjects.text, title) then
table.remove(accentobjects.text,
table.find(accentobjects.text, title))
end
end
end
togglething.MouseButton1Click:Connect(toggle)
if default then
set(default)
end
if flag then
flags[flag] = set
end
function toggletypes:Toggle(bool)
set(bool)
end
function toggletypes:Colorpicker(newoptions)
newoptions = utility.table(newoptions)
local name = newoptions.name
local default = newoptions.default or Color3.fromRGB(255,
255, 255)
local colorpickertype = newoptions.mode
local toggleflag = colorpickertype and
colorpickertype:lower() == "toggle" and newoptions.togglepointer
local togglecallback = colorpickertype and
colorpickertype:lower() == "toggle" and newoptions.togglecallback or function() end
local flag = newoptions.pointer
local callback = newoptions.callback or function() end
colorpickerframe.DescendantAdded:Connect(function(descendant)
if not opened then
task.wait()
if not descendant.ClassName:find("UI") then
if descendant.ClassName:find("Text") then
descendant.TextTransparency =
descendant.TextTransparency + 1
descendant.TextStrokeTransparency =
descendant.TextStrokeTransparency + 1
end
if descendant.ClassName:find("Image") then
descendant.ImageTransparency =
descendant.ImageTransparency + 1
end
descendant.BackgroundTransparency =
descendant.BackgroundTransparency + 1
end
end
end)
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
local bg = utility.create("Frame", {
ZIndex = 12,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = box
})
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25) },
Parent = bg
})
accentobjects.gradient[enabledicongradient] =
function(color)
return utility.gradient { color, Color3.fromRGB(25, 25,
25) }
end
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25) },
Parent = toggleicon
})
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
if opened then
utility.tween(toggleholder, { 0.2 }, { Size =
UDim2.new(1, -5, 0, 168) })
end
tween.Completed:Wait()
opening = false
end
end
icon.MouseButton1Click:Connect(opencolorpicker)
if flag then
library.flags[flag] = default
end
hue = sizeY
hsv = Color3.fromHSV(sizeY, 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
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)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType ==
Enum.UserInputType.MouseMovement then
if slidinghue then
updatehue(input)
end
end
end)
sat = sizeX
val = sizeY
hsv = Color3.fromHSV(hue, sizeX, sizeY)
saturationframe.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
if flag then
library.flags[flag] = 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)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType ==
Enum.UserInputType.MouseMovement then
if slidingsaturation then
updatesatval(input)
end
end
end)
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) * saturationframe.AbsoluteSize.Y, 0, saturationframe.AbsoluteSize.Y - 4))
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255,
hsv.g * 255, hsv.b * 255)
end
if toggled then
task.spawn(function()
while toggled do
for i = 0, 1, 0.0015 do
if not toggled then
return
end
task.wait()
end
end
end)
end
if toggled then
table.insert(accentobjects.text, title)
elseif table.find(accentobjects.text, title) then
table.remove(accentobjects.text,
table.find(accentobjects.text, title))
end
end
end
rainbowtoggleholder.MouseButton1Click:Connect(toggle)
box.FocusLost:Connect(function()
local _, amount = box.Text:gsub(", ", "")
if amount == 2 then
local values = box.Text:split(", ")
local r, g, b = math.clamp(values[1], 0, 255),
math.clamp(values[2], 0, 255), math.clamp(values[3], 0, 255)
set(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)
if default then
set(default)
end
if flag then
flags[flag] = set
end
function colorpickertypes:Set(color)
set(color)
end
end
return toggletypes
end
function sectiontypes:Box(options)
options = utility.table(options)
local name = options.name
local placeholder = options.placeholder or ""
local default = options.default
local boxtype = options.type or "string"
local flag = options.pointer
local callback = options.callback or function() end
local bg = utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = box
})
if flag then
library.flags[flag] = default or ""
end
box.Text = str
if flag then
library.flags[flag] = str
end
callback(str)
end
if default then
set(default)
end
box.FocusLost:Connect(function()
set(box.Text)
end)
if flag then
flags[flag] = set
end
function boxtypes:Set(str)
set(str)
end
return boxtypes
end
function sectiontypes:Slider(options)
options = utility.table(options)
local name = options.name
local min = options.minimum or 0
local slidermax = options.maximum or 100
local valuetext = options.value or "[value]/" .. slidermax
local increment = options.decimals or 0.5
local default = options.default and math.clamp(options.default,
min, slidermax) or min
local flag = options.pointer
local callback = options.callback or function() end
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
local bg = utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = slider
})
utility.create("UIGradient", {
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25)),
Parent = bg
})
accentobjects.gradient[fillgradient] = function(color)
return utility.gradient { color, Color3.fromRGB(25, 25, 25)
}
end
utility.create("TextLabel", {
ZIndex = 7,
Size = UDim2.new(0, 0, 0, 13),
BackgroundTransparency = 1,
Position = UDim2.new(0, 1, 0, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextStrokeTransparency = 0,
TextSize = 13,
TextColor3 = Color3.fromRGB(210, 210, 210),
Text = name,
Font = Enum.Font.Code,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = sliderholder
})
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)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
then
if sliding then
slide(input)
end
end
end)
fill.Size = UDim2.new(newsizeX, 0, 1, 0)
valuelabel.Text = valuetext:gsub("%[value%]",
tostring(value))
if flag then
library.flags[flag] = value
end
callback(value)
end
if default then
set(default)
end
if flag then
flags[flag] = set
end
function slidertypes:Set(value)
set(value)
end
return slidertypes
end
function sectiontypes:Dropdown(options)
options = utility.table(options)
local name = options.name
local content = options["options"]
local maxoptions = options.maximum and (options.maximum > 1 and
options.maximum)
local default = options.default or maxoptions and {}
local flag = options.pointer
local callback = options.callback or function() end
if maxoptions then
for i, def in next, default do
if not table.find(content, def) then
table.remove(default, i)
end
end
else
if not table.find(content, default) then
default = nil
end
end
local bg = utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(1, 6, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
Position = UDim2.new(0, -6, 0, 0),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = dropdown
})
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("TextLabel", {
ZIndex = 7,
Size = UDim2.new(0, 0, 0, 13),
BackgroundTransparency = 1,
Position = UDim2.new(0, 1, 0, 0),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
FontSize = Enum.FontSize.Size14,
TextStrokeTransparency = 0,
TextSize = 13,
TextColor3 = Color3.fromRGB(210, 210, 210),
Text = name,
Font = Enum.Font.Code,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = dropdownholder
})
descendant.BackgroundTransparency =
descendant.BackgroundTransparency + 1
end
end
end)
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("UIPadding", {
PaddingLeft = UDim.new(0, 10),
Parent = option
})
if opened then
utility.tween(dropdownholder, { 0.2 }, { Size =
UDim2.new(1, -5, 0, dropdowncontentlist.AbsoluteContentSize.Y + 40) })
end
tween.Completed:Wait()
opening = false
end
end
dropdown.MouseButton1Click:Connect(opendropdown)
if flag then
library.flags[flag] = default
end
for _, opt in next, content do
if not maxoptions then
local optionbtn = option:Clone()
optionbtn.Parent = dropdowncontent
optionbtn.Text = opt
optioninstances[opt] = optionbtn
optionbtn.MouseButton1Click:Connect(function()
if chosen ~= opt then
for _, optbtn in next,
dropdowncontent:GetChildren() do
if optbtn ~= optionbtn and
optbtn:IsA("TextButton") then
utility.tween(optbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
end
end
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210, 210) })
chosen = opt
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(210, 210, 210) })
if flag then
library.flags[flag] = opt
end
callback(opt)
else
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(150, 150, 150) })
chosen = nil
if flag then
library.flags[flag] = nil
end
callback(nil)
end
end)
else
local optionbtn = option:Clone()
optionbtn.Parent = dropdowncontent
optionbtn.Text = opt
optioninstances[opt] = optionbtn
optionbtn.MouseButton1Click:Connect(function()
if not table.find(chosen, opt) then
if #chosen >= maxoptions then
table.remove(chosen, 1)
utility.tween(choseninstances[1], { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
table.remove(choseninstances, 1)
end
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210, 210) })
table.insert(chosen, opt)
table.insert(choseninstances, optionbtn)
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(210, 210, 210) })
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
table.concat(chosen, ", ") ~= "" and Color3.fromRGB(210, 210, 210) or
Color3.fromRGB(150, 150, 150) })
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end)
end
end
utility.tween(optioninstances[opt], { 0.2 },
{ BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210, 210) })
chosen = opt
tween.Completed:Wait()
if flag then
library.flags[flag] = opt
end
callback(opt)
else
for _, optbtn in next,
dropdowncontent:GetChildren() do
if optbtn:IsA("TextButton") then
utility.tween(optbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
end
end
tween.Completed:Wait()
if flag then
library.flags[flag] = nil
end
callback(nil)
end
else
table.clear(chosen)
table.clear(choseninstances)
tween.Completed:Wait()
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
for _, opti in next, opt do
if optioninstances[opti] then
if #chosen >= maxoptions then
table.remove(chosen, 1)
utility.tween(choseninstances[1], { 0.2
}, { BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
table.remove(choseninstances, 1)
end
utility.tween(optioninstances[opti],
{ 0.2 }, { BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210,
210) })
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(210, 210, 210) })
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end
end
end
end
if flag then
flags[flag] = set
end
function dropdowntypes:Set(option)
set(option)
end
function dropdowntypes:Refresh(content)
if maxoptions then
table.clear(chosen)
end
table.clear(choseninstances)
table.clear(optioninstances)
set()
optioninstances[opt] = optionbtn
optionbtn.MouseButton1Click:Connect(function()
if chosen ~= opt then
for _, optbtn in next,
dropdowncontent:GetChildren() do
if optbtn ~= optionbtn and
optbtn:IsA("TextButton") then
utility.tween(optbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
end
end
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210, 210) })
chosen = opt
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(210, 210, 210) })
if flag then
library.flags[flag] = opt
end
callback(opt)
else
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(150, 150, 150) })
chosen = nil
if flag then
library.flags[flag] = nil
end
callback(nil)
end
end)
else
local optionbtn = option:Clone()
optionbtn.Parent = dropdowncontent
optionbtn.Text = opt
optioninstances[opt] = optionbtn
optionbtn.MouseButton1Click:Connect(function()
if not table.find(chosen, opt) then
if #chosen >= maxoptions then
table.remove(chosen, 1)
utility.tween(choseninstances[1], { 0.2
}, { BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
table.remove(choseninstances, 1)
end
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 0, TextColor3 = Color3.fromRGB(210, 210, 210) })
table.insert(chosen, opt)
table.insert(choseninstances, optionbtn)
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
Color3.fromRGB(210, 210, 210) })
if flag then
library.flags[flag] = chosen
end
callback(chosen)
else
utility.tween(optionbtn, { 0.2 },
{ BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(150, 150, 150) })
table.remove(chosen, table.find(chosen,
opt))
table.remove(choseninstances,
table.find(choseninstances, optionbtn))
tween.Completed:Wait()
utility.tween(dropdown, { 0.2 },
{ TextTransparency = 0, TextStrokeTransparency = 0, TextColor3 =
table.concat(chosen, ", ") ~= "" and Color3.fromRGB(210, 210, 210) or
Color3.fromRGB(150, 150, 150) })
if flag then
library.flags[flag] = chosen
end
callback(chosen)
end
end)
end
end
end
return dropdowntypes
end
function sectiontypes:Multibox(options)
local newoptions = {}
for i, v in next, options do
newoptions[i:lower()] = v
end
function sectiontypes:Keybind(options)
options = utility.table(options)
local name = options.name
local keybindtype = options.mode
local default = options.default
local toggledefault = keybindtype and keybindtype:lower() ==
"toggle" and options.toggledefault
local toggleflag = keybindtype and keybindtype:lower() ==
"toggle" and options.togglepointer
local togglecallback = keybindtype and keybindtype:lower() ==
"toggle" and options.togglecallback or function() end
local holdflag = keybindtype and keybindtype:lower() == "hold"
and options.holdflag
local holdcallback = keybindtype and keybindtype:lower() ==
"hold" and options.holdcallback or function() end
local blacklist = options.blacklist or {}
local flag = options.pointer
local callback = options.callback or function() end
table.insert(blacklist, Enum.UserInputType.Focus)
grayborder = utility.create("Frame", {
ZIndex = 8,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(40, 40, 40),
Parent = icon
})
utility.create("UIGradient", {
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(35, 35,
35), Color3.fromRGB(25, 25, 25)),
Parent = icon
})
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
enablediconholder = utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = icon
})
local enabledicongradient =
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { library.accent,
Color3.fromRGB(25, 25, 25) },
Parent = enablediconholder
})
accentobjects.gradient[enabledicongradient] =
function(color)
return utility.gradient { color, Color3.fromRGB(25,
25, 25) }
end
end
end
utility.create("UIPadding", {
PaddingBottom = UDim.new(0, 1),
Parent = keytext
})
local keys = {
[Enum.KeyCode.LeftShift] = "L-SHIFT",
[Enum.KeyCode.RightShift] = "R-SHIFT",
[Enum.KeyCode.LeftControl] = "L-CTRL",
[Enum.KeyCode.RightControl] = "R-CTRL",
[Enum.KeyCode.LeftAlt] = "L-ALT",
[Enum.KeyCode.RightAlt] = "R-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
local isbinding = false
local function startbinding()
isbinding = true
keytext.Text = "[...]"
keytext.TextColor3 = Color3.fromRGB(210, 210, 210)
local binding
binding =
services.InputService.InputBegan:Connect(function(input)
local key = keys[input.KeyCode] or
keys[input.UserInputType]
keytext.Text = "[" .. (key or
tostring(input.KeyCode):gsub("Enum.KeyCode.", "")) .. "]"
keytext.TextColor3 = Color3.fromRGB(180, 180, 180)
keytext.Size = UDim2.new(0, keytext.TextBounds.X, 1, 0)
keytext.Position = UDim2.new(1, -keytext.TextBounds.X,
0, 0)
if input.UserInputType == Enum.UserInputType.Keyboard
then
task.wait()
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
keytext.TextColor3 = Color3.fromRGB(180, 180,
180)
keytext.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
keytext.TextColor3 = Color3.fromRGB(180, 180,
180)
keytext.Text = "[NONE]"
keytext.Size = UDim2.new(0,
keytext.TextBounds.X, 1, 0)
keytext.Position = UDim2.new(1, -
keytext.TextBounds.X, 0, 0)
if flag then
library.flags[flag] = nil
end
binding:Disconnect()
end
end
end)
end
if toggleflag then
library.flags[toggleflag] = toggled
end
if toggleflag then
library.flags[toggleflag] = toggled
end
togglecallback(toggled)
if toggled then
table.insert(accentobjects.text, title)
elseif table.find(accentobjects.text, title) then
table.remove(accentobjects.text,
table.find(accentobjects.text, title))
end
end
end
keybindholder.MouseButton1Click:Connect(toggle)
function keybindtypes:Toggle(bool)
set(bool)
end
if toggledefault then
set(toggledefault)
end
if toggleflag then
flags[toggleflag] = set
end
services.InputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard
then
if input.KeyCode == keychosen then
toggle()
callback(keychosen)
end
else
if input.UserInputType == keychosen then
toggle()
callback(keychosen)
end
end
end)
end
callback(keychosen)
holdcallback(true)
end
else
if input.UserInputType == keychosen then
if holdflag then
library.flags[holdflag] = true
end
callback(keychosen)
holdcallback(true)
end
end
end)
services.InputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard
then
if input.KeyCode == keychosen then
if holdflag then
library.flags[holdflag] = true
end
holdcallback(false)
end
else
if input.UserInputType == keychosen then
if holdflag then
library.flags[holdflag] = true
end
holdcallback(false)
end
end
end)
end
keytext.Text = text
keytext.Size = UDim2.new(0, sizeX, 1, 0)
keytext.Position = UDim2.new(1, -sizeX, 0, 0)
keychosen = newkey
if flag then
library.flags[flag] = newkey
end
callback(newkey, true)
else
keychosen = nil
keytext.TextColor3 = Color3.fromRGB(180, 180, 180)
keytext.Text = "[NONE]"
keytext.Size = UDim2.new(0, keytext.TextBounds.X, 1, 0)
keytext.Position = UDim2.new(1, -keytext.TextBounds.X,
0, 0)
if flag then
library.flags[flag] = nil
end
callback(newkey, true)
end
end
if default then
task.wait()
setkey(default)
end
if flag then
flags[flag] = setkey
end
function keybindtypes:Set(newkey)
setkey(newkey)
end
return keybindtypes
end
function sectiontypes:ColorPicker(options)
options = utility.table(options)
local name = options.name
local default = options.default or Color3.fromRGB(255, 255,
255)
local colorpickertype = options.mode
local toggleflag = colorpickertype and colorpickertype:lower()
== "toggle" and options.togglepointer
local togglecallback = colorpickertype and
colorpickertype:lower() == "toggle" and options.togglecallback or function() end
local flag = options.pointer
local callback = options.callback or function() end
local enabledcpiconholder
do
if colorpickertype and colorpickertype:lower() == "toggle"
then
local togglecpicon = utility.create("Frame", {
ZIndex = 9,
Size = UDim2.new(0, 10, 0, 10),
BorderColor3 = Color3.fromRGB(40, 40, 40),
Position = UDim2.new(0, 2, 0, 2),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = colorpickerholder
})
utility.create("UIGradient", {
Rotation = 90,
Color = ColorSequence.new(Color3.fromRGB(35, 35,
35), Color3.fromRGB(25, 25, 25)),
Parent = togglecpicon
})
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
enabledcpiconholder = utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = togglecpicon
})
local enabledicongradient =
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { library.accent,
Color3.fromRGB(25, 25, 25) },
Parent = enabledcpiconholder
})
accentobjects.gradient[enabledicongradient] =
function(color)
return utility.gradient { color, Color3.fromRGB(25,
25, 25) }
end
end
end
colorpickerframe.DescendantAdded:Connect(function(descendant)
if not opened then
task.wait()
if not descendant.ClassName:find("UI") then
if descendant.ClassName:find("Text") then
descendant.TextTransparency =
descendant.TextTransparency + 1
descendant.TextStrokeTransparency =
descendant.TextStrokeTransparency + 1
end
if descendant.ClassName:find("Image") then
descendant.ImageTransparency =
descendant.ImageTransparency + 1
end
descendant.BackgroundTransparency =
descendant.BackgroundTransparency + 1
end
end
end)
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
local bg = utility.create("Frame", {
ZIndex = 12,
Size = UDim2.new(1, 0, 1, 0),
BorderColor3 = Color3.fromRGB(40, 40, 40),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
Parent = box
})
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25) },
Parent = bg
})
accentobjects.gradient[enabledicongradient] = function(color)
return utility.gradient { color, Color3.fromRGB(25, 25, 25)
}
end
utility.create("Frame", {
ZIndex = 10,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
utility.create("UIGradient", {
Rotation = 90,
Color = utility.gradient { Color3.fromRGB(35, 35, 35),
Color3.fromRGB(25, 25, 25) },
Parent = toggleicon
})
utility.create("Frame", {
ZIndex = 7,
Size = UDim2.new(1, 2, 1, 2),
Position = UDim2.new(0, -1, 0, -1),
BorderSizePixel = 0,
BackgroundColor3 = Color3.fromRGB(10, 10, 10),
Parent = grayborder
})
if toggleflag then
library.flags[toggleflag] = toggled
end
togglecallback(toggled)
if toggled then
table.insert(accentobjects.text, title)
elseif table.find(accentobjects.text, title) then
table.remove(accentobjects.text,
table.find(accentobjects.text, title))
end
end
end
colorpicker.MouseButton1Click:Connect(toggle)
function colorpickertypes:Toggle(bool)
set(bool)
end
if toggledefault then
set(toggledefault)
end
if toggleflag then
flags[toggleflag] = set
end
end
if opened then
utility.tween(colorpickerholder, { 0.2 }, { Size =
UDim2.new(1, -5, 0, 168) })
end
tween.Completed:Wait()
opening = false
end
end
if flag then
library.flags[flag] = default
end
hue = sizeY
hsv = Color3.fromHSV(sizeY, 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
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)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
then
if slidinghue then
updatehue(input)
end
end
end)
sat = sizeX
val = sizeY
hsv = Color3.fromHSV(hue, sizeX, sizeY)
saturationframe.BackgroundColor3 = hsv
icon.BackgroundColor3 = hsv
if flag then
library.flags[flag] = 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)
services.InputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
then
if slidingsaturation then
updatesatval(input)
end
end
end)
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) * saturationframe.AbsoluteSize.Y, 0, saturationframe.AbsoluteSize.Y - 4))
if flag then
library.flags[flag] = Color3.fromRGB(hsv.r * 255, hsv.g
* 255, hsv.b * 255)
end
if toggled then
task.spawn(function()
while toggled do
for i = 0, 1, 0.0015 do
if not toggled then
return
end
task.wait()
end
end
end)
end
if toggled then
table.insert(accentobjects.text, title)
elseif table.find(accentobjects.text, title) then
table.remove(accentobjects.text,
table.find(accentobjects.text, title))
end
end
end
toggleholder.MouseButton1Click:Connect(toggle)
box.FocusLost:Connect(function()
local _, amount = box.Text:gsub(", ", "")
if amount == 2 then
local values = box.Text:split(", ")
local r, g, b = math.clamp(values[1], 0, 255),
math.clamp(values[2], 0, 255), math.clamp(values[3], 0, 255)
set(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)
if default then
set(default)
end
if flag then
flags[flag] = set
end
function colorpickertypes:Set(color)
set(color)
end
end
return sectiontypes
end
return pagetypes
end
return windowtypes
end
function library:Initialize()
if gethui then
gui.Parent = gethui()
elseif syn and syn.protect_gui then
syn.protect_gui(gui)
gui.Parent = services.CoreGui
end
end
function library:Init()
library:Initialize()
end
end
local ScriptProperties = {
ScriptName = "specter.lua",
ScriptSizeOne = 700,
ScriptSizeTwo = 500,
ScriptAccent = Color3.fromRGB(121, 66, 254),
UserPanel = {
Status = "member"
}
}
local Pages = {
Aiming = Window:Page({ Name = "Main" }),
Rage = Window:Page({ Name = "Rage" }),
Visuals = Window:Page({ Name = "Visuals" }),
Misc = Window:Page({ Name = "Miscellaneous" }),
ConfigSec = Window:Page({ Name = "Configurations" })
}
local Sections = {
Aiming = {
TargetAim = {
Main = Pages.Aiming:Section({ Name = "Bullet Prioritise", Side =
"Right", Max = 3 }),
Settings = Pages.Aiming:Section({ Name = "Bullet Prioritise Settings",
Side = "Right", Max = 3 })
},
Aimbot = {
Main = Pages.Aiming:Section({ Name = "Aiming", Side = "Left", Max =
3 }),
Settings = Pages.Aiming:Section({ Name = "Aiming Settings", Side =
"Left", Max = 4 })
},
MouseStuff = Pages.Aiming:Section({ Name = "Mouse Position", Side =
"Right", Max = 2 })
},
Visuals = {
MainVisuals = Pages.Visuals:Section({ Name = "Esp", Side = "Left", Max =
5 }),
WorldVisuals = Pages.Visuals:Section({ Name = "World Settings", Side =
"Right" }),
PlayerChams = Pages.Visuals:Section({ Name = "Client Visuals", Side =
"Left", Max = 2 }),
BulletTracers = Pages.Visuals:Section({ Name = "Bullet Tracers", Side =
"Right", Max = 2 })
},
RageSector = {
AntiAim = Pages.Rage:Section({ Name = "Anti Aim", Side = "Left", Max =
5 }),
TargetStrafe = Pages.Rage:Section({ Name = "Target Strafe", Side =
"Right" }),
AntiHit = Pages.Rage:Section({ Name = "Anti Hit", Side = "Left" }),
FakeLag = Pages.Rage:Section({ Name = "Fake Lag", Side = "Right", Max =
2 })
},
MiscSector = {
Fly = Pages.Misc:Section({ Name = "Float", Side = "Left" }),
CharMain = Pages.Misc:Section({ Name = "Limits", Side = "Right" }),
SpeedMain = Pages.Misc:Section({ Name = "Movement", Side = "Left" }),
Fun = Pages.Misc:Section({ Name = "Spammer", Side = "Right", Max = 4 })
},
Configuations = {
Configs = Pages.ConfigSec:Section({ Name = "Configuration", Side =
"Left" }),
Discord = Pages.ConfigSec:Section({ Name = "Discord", Side = "Right" }),
ScriptStuff = Pages.ConfigSec:Section({ Name = "Utilities", Side =
"Right" })
}
}
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- cheat settings table --
local RageSettings = {
AntiAim = {
Enabled = false,
VelocityBreaker = false,
VBV = 500,
VBF = 100,
Confusion = false
},
LegitAntiHit = {
Enabled = false,
Multiplier = 0.25
},
FakeLag = {
Enabled = false,
Multiplier = 0.10,
Visulize = false,
ViulizationTransparency = 1,
ViulizationColor = Color3.fromRGB(255, 0, 0)
},
TargetStrafe = {
Enabled = false,
AntiAimMode = false,
AntiAimType = "Default",
Distance = 2,
Speed = 0.5,
Color = Color3.fromRGB(255, 255, 255)
}
}
local MiscSettings = {
TrashTalk = {
Enabled = false
},
NoJumpCd = {
Enabled = false
},
NoRecoil = {
Enabled = false
},
Speed = {
Enabled = false,
Motion = true,
BHop = false,
Amount = 1
},
Fly = {
Enabled = false,
Normal = true,
Height = 35,
MoveOnly = false,
Amount = 1
},
Strafe = {
Enabled = false
},
NoSlowdown = {
Enabled = false
}
}
local parts = {
"Head",
"UpperTorso",
"RightUpperArm",
"RightLowerArm",
"RightUpperArm",
"LeftUpperArm",
"LeftLowerArm",
"LeftFoot",
"RightFoot",
"LowerTorso",
"LeftHand",
"RightHand",
"RightUpperLeg",
"LeftUpperLeg",
"LeftLowerLeg",
"RightLowerLeg"
}
local VisualsExtra = {
WorldVisuals = {
MapLightingEnabled = false,
MapBrightness = 0.6,
MapContrast = 0.2,
MapTintColor = Color3.fromRGB(0, 0, 153)
},
WeaponEffects = {
Enabled = false,
Color = Color3.fromRGB(255, 0, 0),
Material = "ForceField"
},
ClientVisuals = {
SelfChams = false,
SelfChamsMaterial = "ForceField",
SelfChamsColor = Color3.fromRGB(255, 0, 0),
BaseSkin = "Plastic"
}
}
local ConfigurationTab = {
Configs = {
},
Discord = {
AutoJoin = false
},
UIPreferances = {
}
}
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- aimbot --
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- functions --
function getClosestPlayerToCursor()
local closestPlayer
local shortestDistance = AimingSettings.TargetAim.FOV
for i, v in pairs(game.Players:GetPlayers()) do
if v ~= game.Players.LocalPlayer and v.Character and
v.Character:FindFirstChild("Humanoid") and
v.Character.Humanoid.Health ~= 0 and
v.Character:FindFirstChild(AimingSettings.Aimbot.Hitbox)
then
local pos = CC:WorldToViewportPoint(v.Character.PrimaryPart.Position)
local magnitude = (Vector2.new(pos.X, pos.Y) -
Vector2.new(LocalMouse.X, LocalMouse.Y)).magnitude
if magnitude < shortestDistance then
closestPlayer = v
shortestDistance = magnitude
end
end
end
return closestPlayer
end
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- mouse / camera mode --
game:GetService("RunService").RenderStepped:Connect(
function()
if Plr == nil then
return
elseif not Plr.Character then
return
end
if not Plr.Character:FindFirstChild(AimingSettings.Aimbot.Hitbox) then
return
end
if Locking and AimingSettings.Aimbot.MouseMode then
local goal =
CC:WorldToScreenPoint(
Plr.Character[AimingSettings.Aimbot.Hitbox].Position +
(Plr.Character[AimingSettings.Aimbot.Hitbox].Velocity *
AimingSettings.Aimbot.PredictionAmount)
)
mousemoverel(goal.X - LocalMouse.X, goal.Y - LocalMouse.Y)
else wait()
end
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- airshot function --
local Toggles = {
TargetAim = {
MainToggle = Sections.Aiming.TargetAim.Main:Keybind(
{
Name = "Enabled",
Callback = function(key) end,
Default = key,
Pointer = "1",
Mode = "Toggle",
toggleflag = "1.1",
togglecallback = function(state)
AimingSettings.TargetAim.Enabled = state
end
}
),
HitboxesToggle = Sections.Aiming.TargetAim.Main:Dropdown(
{
Name = "Hitbox",
Options = { "Head", "UpperTorso", "HumanoidRootPart" },
Default = "Head",
Pointer = "2",
callback = function(state)
AimingSettings.TargetAim.Hitboxes = state
end
}
),
UseNearestDistance = Sections.Aiming.TargetAim.Main:Toggle(
{
Name = "Distance Based",
Default = false,
Pointer = "3",
callback = function(state)
AimingSettings.TargetAim.UseNearestDistance = state
end
}
),
CrewCheckToggle = Sections.Aiming.TargetAim.Main:Toggle(
{
Name = "Prioritise Team",
Default = false,
Pointer = "4",
callback = function(state)
AimingSettings.TargetAim.CrewCheck = state
end
}
),
WallCheckToggle = Sections.Aiming.TargetAim.Main:Toggle(
{
Name = "Visibility Check",
Default = false,
Pointer = "5",
callback = function(state)
AimingSettings.TargetAim.WallCheck = state
end
}
),
ShowFOVToggle = Sections.Aiming.TargetAim.Settings:Toggle(
{
Name = "Draw Fov",
Default = false,
Pointer = "6",
callback = function(state)
AimingSettings.TargetAim.ShowFOV = state
end
}
),
FOVSlider = Sections.Aiming.TargetAim.Settings:Slider(
{
Name = "Bullet Radius Size",
Minimum = 1,
Maximum = 10,
Default = 1,
Decimals = 0.1,
Pointer = "7",
callback = function(state)
AimingSettings.TargetAim.FOV = state ^ 3
end
}
)
},
Aimbot = {
EnableTog = Sections.Aiming.Aimbot.Main:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "8",
callback = function(e)
AimingSettings.Aimbot.CameraMode = e
end
}
),
SmoothingToggle = Sections.Aiming.Aimbot.Main:Toggle(
{
Name = "Smoothing",
Default = false,
Pointer = "9",
callback = function(state)
AimingSettings.Aimbot.Smoothing = state
end
}
),
HitboxesDropdown = Sections.Aiming.Aimbot.Main:Dropdown(
{
Name = "Hitbox",
Options = { "Head", "UpperTorso", "HumanoidRootPart" },
Default = "Head",
Pointer = "10",
callback = function(state)
AimingSettings.Aimbot.Hitbox = state
end
}
),
TeamCheckToggle = Sections.Aiming.Aimbot.Main:Toggle(
{
Name = "Visibility Check",
Default = false,
Pointer = "11",
callback = function()
end
}
),
Revaluation = Sections.Aiming.Aimbot.Main:Toggle(
{
Name = "Revaluate Hitspand",
Default = false,
Pointer = "12",
callback = function(state)
AimingSettings.Aimbot.HitAirshots = state
end
}
),
PingDropDown = Sections.Aiming.Aimbot.Settings:Dropdown(
{
Name = "Aiming Type",
Options = { "Ping Based", "Custom" },
Default = "Ping Based",
Pointer = "13",
callback = function(state)
AimingSettings.Aimbot.AutoPredct = state
end
}
),
TypeDropdown = Sections.Aiming.Aimbot.Settings:Dropdown(
{
Name = "Aiming Tracing",
Options = { "Camera", "nil" },
Default = "nil",
Pointer = "14",
callback = function(state)
end
}
),
SmoothingSlider = Sections.Aiming.Aimbot.Settings:Slider(
{
Name = "Smoothing Amount",
Minimum = 1,
Maximum = 10,
Default = 10,
Decimals = 0.000000000000000001,
Pointer = "15",
callback = function(state)
AimingSettings.Aimbot.Smoothness = state / 50
end
}
),
PredictionAmount = Sections.Aiming.Aimbot.Settings:Slider(
{
Name = "Prediction Amount",
Minimum = 1,
Maximum = 10,
Default = 10,
Decimals = 0.000000000000000001,
Pointer = "16",
callback = function(state)
AimingSettings.Aimbot.Prediction = state / 50
end
}
),
RageStuff = {
AntiAimToggle = Sections.RageSector.AntiAim:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "17",
callback = function(state)
RageSettings.AntiAim.Enabled = state
end
}
),
DesyncToggle = Sections.RageSector.AntiAim:Toggle(
{
Name = "Confusion",
Default = false,
Pointer = "18",
callback = function(state)
RageSettings.AntiAim.VelocityBreaker = state
end
}
),
DesyncVelocitySlider = Sections.RageSector.AntiAim:Slider(
{
Name = "Velocity Speed",
Minimum = 1,
Maximum = 500,
Default = 10,
Decimals = 0.000000000000001,
Pointer = "19",
callback = function(state)
RageSettings.AntiAim.VBV = state
end
}
),
DesyncFrameSlider = Sections.RageSector.AntiAim:Slider(
{
Name = "Spin Speed",
Minimum = 1,
Maximum = 100,
Default = 10,
Decimals = 0.000000000000001,
Pointer = "20",
callback = function(state)
RageSettings.AntiAim.VBF = state
end
}
),
AntiHitToggle = Sections.RageSector.AntiHit:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "21",
callback = function(state)
RageSettings.LegitAntiHit.Enabled = state
end
}
),
AntiHitSlider = Sections.RageSector.AntiHit:Slider(
{
Name = "Multiplier",
Minimum = 1,
Maximum = 10,
Default = 1,
Decimals = 0.000000000000001,
Pointer = "22",
callback = function(state)
RageSettings.LegitAntiHit.Multiplier = state / 10
end
}
)
},
FakeLagShit = {
FakeLagT = Sections.RageSector.FakeLag:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "23",
callback = function(state)
end
}
),
FakeLagSlid = Sections.RageSector.FakeLag:Slider(
{
Name = "Multiplier",
Minimum = 1,
Maximum = 10,
Default = 1,
Decimals = 0.000000000000001,
Pointer = "24",
callback = function(state)
RageSettings.FakeLag.Multiplier = state / 30
end
}
),
FakeLagBodyCham = Sections.RageSector.FakeLag:Toggle(
{
Name = "Body Cham",
Default = false,
Pointer = "25",
callback = function(state)
fakelag = state
end
}
),
},
},
MiscStuff1 = {
FlyToggle = Sections.MiscSector.Fly:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "26",
callback = function(state)
MiscSettings.Fly.Enabled = state
end
}
),
FlyHightSlider = Sections.MiscSector.Fly:Slider(
{
Name = "Height",
Minimum = 1,
Maximum = 100,
Default = 10,
Decimals = 0.000000000000001,
Pointer = "27",
callback = function(state)
MiscSettings.Fly.Height = state
end
}
),
FlyAmount = Sections.MiscSector.Fly:Slider(
{
Name = "Multiplier",
Minimum = 1,
Maximum = 10,
Default = 5,
Decimals = 0.000000000000001,
Pointer = "28",
callback = function(state)
MiscSettings.Fly.Amount = state
end
}
)
},
MiscStuff2 = {
NoJumpCdToggle = Sections.MiscSector.CharMain:Toggle(
{
Name = "Blacklisted",
Default = false,
Pointer = "29",
callback = function(state)
MiscSettings.NoJumpCd.Enabled = state
MiscSettings.NoSlowdown.Enabled = state
end
}
),
CooldownDropdown = Sections.MiscSector.CharMain:Dropdown(
{
Name = "Type",
Options = { "Jump", "Slowdown" },
Default = "Jump",
Pointer = "30",
callback = function()
end
}
),
},
MovementShit = {
SpeedToggle = Sections.MiscSector.SpeedMain:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "31",
callback = function(state)
MiscSettings.Speed.Enabled = state
end
}
),
BhopToggle = Sections.MiscSector.SpeedMain:Toggle(
{
Name = "Bunny Hop",
Default = false,
Pointer = "32",
callback = function(state)
MiscSettings.Speed.BHop = state
end
}
),
SpeedMultipler = Sections.MiscSector.SpeedMain:Slider(
{
Name = "Multiplier",
Minimum = 1,
Maximum = 10,
Default = 1,
Decimals = 0.000000000000001,
Pointer = "32",
callback = function(state)
MiscSettings.Speed.Amount = state
end
}
),
TrashTalk = Sections.MiscSector.Fun:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "33",
callback = function(state)
MiscSettings.TrashTalk.Enabled = state
end
}
),
TrashTalkDropdown = Sections.MiscSector.Fun:Dropdown(
{
Name = "Type",
Options = { "Main" },
Default = "Main",
Pointer = "34",
callback = function(state)
end
}
)
}
}
local StrafeSection = {
TargetStrafe = Sections.RageSector.TargetStrafe:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "35",
callback = function(state)
RageSettings.TargetStrafe.Enabled = state
end
}
),
StrafeSlider = Sections.RageSector.TargetStrafe:Slider(
{
Name = "Range",
Minimum = 1,
Maximum = 100,
Default = 50,
Decimals = 0.000000000000001,
Pointer = "36",
callback = function(state)
RageSettings.TargetStrafe.Distance = state
end
}
),
SpeedStrafe = Sections.RageSector.TargetStrafe:Slider(
{
Name = "Speed",
Minimum = 1,
Maximum = 100,
Default = 50,
Decimals = 0.000000000000001,
Pointer = "37",
callback = function(state)
RageSettings.TargetStrafe.Speed = state / 50
end
}
),
StrafeRage = Sections.RageSector.TargetStrafe:Toggle(
{
Name = "Rage Bot",
Default = false,
Pointer = "37",
callback = function(state)
RageSettings.TargetStrafe.AntiAimMode = state
end
}
),
StrafeMode = Sections.RageSector.TargetStrafe:Dropdown(
{
Name = "Type",
Options = { "Flinger", "Default" },
Default = "Default",
Pointer = "38",
callback = function(state)
RageSettings.TargetStrafe.AntiAimType = state
end
}
)
}
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- mouse toggles --
local MousePositionToggles = {
MouseEnabled = Sections.Aiming.MouseStuff:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "39",
callback = function(state)
AimingSettings.MousePosSector.Enabled = state
end
}
),
MouseSizeSlider = Sections.Aiming.MouseStuff:Slider(
{
Name = "Pos Radius",
Minimum = 1,
Maximum = 50,
Default = 1,
Decimals = 0.1,
Pointer = "40",
callback = function(state)
AimingSettings.MousePosSector.Size = state
end
}
)
}
Toggles.TargetAim.ShowFOVToggle:Colorpicker(
{
Name = "Fov Color",
Info = "Field Of View Rgb",
Alpha = 0.5,
Default = Color3.fromRGB(133, 87, 242),
Pointer = "41",
callback = function(shit)
AimingSettings.TargetAim.FOVColor = shit
end
}
)
StrafeSection.TargetStrafe:Colorpicker(
{
Name = "Mouse Color",
Info = "Mouse Color",
Alpha = 0.5,
Default = Color3.fromRGB(133, 87, 242),
Pointer = "42",
callback = function(shit)
Circle.Color = shit
end
}
)
MousePositionToggles.MouseEnabled:Colorpicker(
{
Name = "Mouse Color",
Info = "Mouse Color",
Alpha = 0.5,
Default = Color3.fromRGB(133, 87, 242),
Pointer = "43",
callback = function(shit)
AimingSettings.MousePosSector.DOTColor = shit
end
}
)
local GetService =
setmetatable(
{},
{
__index = function(self, key)
return game:GetService(key)
end
}
)
function Find(Data)
getgenv().Target = nil
for i, v in next, Players:GetPlayers() do
if v.Name ~= LocalPlayer.Name and v.Name:lower():match("^" ..
NoSpace(Data):lower()) then
getgenv().Target = v.Name
end
end
return getgenv().Target
end
function IsNetwork(GetPlayer)
return GetPlayer and GetPlayer.Character and
GetPlayer.Character:FindFirstChild("HumanoidRootPart") ~= nil and
GetPlayer.Character:FindFirstChild("Humanoid") ~= nil and
GetPlayer.Character:FindFirstChild("Head") ~= nil and
true or
false
end
function Knocked(GetPlayer)
if IsNetwork(GetPlayer) then
return GetPlayer.Character.BodyEffects["K.O"].Value and true or false
end
return false
end
function Grabbing(GetPlayer)
if IsNetwork(GetPlayer) then
return GetPlayer.Character:FindFirstChild("GRABBING_CONSTRAINT") and true
or false
end
return false
end
function Alive(Player)
if Player and Player.Character and
Player.Character:FindFirstChild("HumanoidRootPart") ~= nil and
Player.Character:FindFirstChild("Humanoid") ~= nil and
Player.Character:FindFirstChild("Head") ~= nil
then
return true
end
return false
end
for i, v in pairs(Parts) do
if v.Transparency >= 0.3 then
AllahStorage.Instance[#AllahStorage.Instance + 1] = v
end
return #Parts == 0
end
return true
end
function NilBody()
if Alive(LocalPlayer) then
for i, v in pairs(LocalPlayer.Character:GetChildren()) do
if v:IsA("BasePart") or v:IsA("Part") or v:IsA("MeshPart") then
if v.Name ~= "HumanoidRootPart" then
v:Destroy()
end
end
end
end
end
function NearestDistance()
local Target = nil
local Distance = math.huge
for i, v in next, Players:GetPlayers() do
if v ~= LocalPlayer and Alive(LocalPlayer) and Alive(v) then
local DistanceFromPlayer =
(v.Character.HumanoidRootPart.Position -
LocalPlayer.Character.HumanoidRootPart.Position).Magnitude
if Distance > DistanceFromPlayer then
if (not AimingSettings.TargetAim.CrewCheck or
v:FindFirstChild("DataFolder") and
v.DataFolder.Information:FindFirstChild("Crew") and
not tonumber(v.DataFolder.Information.Crew.Value) ==
tonumber(LocalPlayer.DataFolder.Information.Crew.Value)) and
(not AimingSettings.TargetAim.WallCheck or
WallCheck(v.Character.HumanoidRootPart,
LocalPlayer.Character.HumanoidRootPart))
then
Target = v
Distance = DistanceFromPlayer
end
end
end
end
function NearestMouse()
local Target = nil
local Distance = AimingSettings.TargetAim.FOV
for i, v in next, Players:GetPlayers() do
if v ~= LocalPlayer and Alive(LocalPlayer) and Alive(v) then
local RootPosition, RootVisible =
CurrentCamera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
local DistanceFromMouse =
(Vector2.new(RootPosition.X, RootPosition.Y) - Vector2.new(Mouse.X,
Mouse.Y)).Magnitude
if RootVisible and Distance > DistanceFromMouse then
if (not AimingSettings.TargetAim.CrewCheck or
v:FindFirstChild("DataFolder") and
v.DataFolder.Information:FindFirstChild("Crew") and
not tonumber(v.DataFolder.Information.Crew.Value) ==
tonumber(LocalPlayer.DataFolder.Information.Crew.Value)) and
(not AimingSettings.TargetAim.WallCheck or
WallCheck(v.Character.HumanoidRootPart,
LocalPlayer.Character.HumanoidRootPart))
then
Target = v
Distance = DistanceFromMouse
end
end
end
end
function NearestType(Type)
if Type == "Distance" then
return NearestDistance()
elseif Type == "Mouse" then
return NearestMouse()
end
end
function ChanceTable(Table)
local Chance = 0
for i, v in pairs(Table) do
Chance = Chance + v
end
Chance = math.random(0, Chance)
for i, v in pairs(Table) do
Chance = Chance - v
if Chance <= 0 then
return i
end
end
end
function RandomTable(Table)
local Values = 0
for i, v in pairs(Table) do
Values = i
end
local mt = getrawmetatable(game)
local old = mt.__namecall
setreadonly(mt, false)
mt.__namecall = newcclosure(
function(...) --// LPH JIT
local args = { ... }
if AimingSettings.TargetAim.Enabled and Plr ~= game.Players.LocalPlayer and Plr
~= nil and
(not AimingSettings.TargetAim.UseFOV or AimingSettings.TargetAim.FOV > Pos)
and
getnamecallmethod() == "FireServer" and
args[2] == "UpdateMousePos"
then
if AimingSettings.TargetAim.AirShotMode == true then
if Plr ~= nil and Plr.Character.Humanoid.Jump == true and
Plr.Character.Humanoid.FloorMaterial == Enum.Material.Air
then
-- "RightFoot"
args[3] = Plr.Character["RightFoot"].Position +
(Plr.Character["RightFoot"].Velocity * Pred)
return old(unpack(args))
else
-- "LowerTorso"
args[3] = Plr.Character[AimingSettings.TargetAim.Hitboxes].Position
+
(Plr.Character[AimingSettings.TargetAim.Hitboxes].Velocity *
Pred)
return old(unpack(args))
end
else
args[3] = Plr.Character[AimingSettings.TargetAim.Hitboxes].Position +
(Plr.Character[AimingSettings.TargetAim.Hitboxes].Velocity * Pred)
return old(unpack(args))
end
--[[
args[3] =
Plr.Character[AimingSettings.TargetAim.Hitboxes].Position +
(Plr.Character[AimingSettings.TargetAim.Hitboxes].Velocity * Pred)
]]
end
return old(...)
end
)
-- ac
loadstring(
game:HttpGet(
"https://pastebin.com/raw/UrQGK0p7"
)
)()
local a;
a = hookfunction(wait, function(b) if b == 1.5 and MiscSettings.NoJumpCd.Enabled
then return a() end return a(b) end)
local EspVisuals = {
BoxesToggle = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Boxes",
Default = false,
Pointer = "44",
callback = function(bi)
end
}
),
NameToggle = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Names",
Default = false,
Pointer = "45",
callback = function(bi)
end
}
),
TracersToggle = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Tracers",
Default = false,
Pointer = "46",
callback = function(bi)
end
}
),
SkelotonToggle = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Skeletons",
Default = false,
Pointer = "47",
callback = function(bi)
end
}
),
DistanceTog = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Distance",
Default = false,
Pointer = "48",
callback = function(bi)
end
}
),
HealthInfo = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Health Info",
Default = false,
Pointer = "49",
callback = function(bi)
end
}
),
GunInfo = Sections.Visuals.MainVisuals:Toggle(
{
Name = "Weapon Info",
Default = false,
Pointer = "50",
callback = function(bi)
end
}
),
ChamsTog = Sections.Visuals.PlayerChams:Toggle(
{
Name = "Body Cham",
Default = false,
Pointer = "51",
callback = function(state)
VisualsExtra.ClientVisuals.SelfChams = state
end
}
),
ChamDrop = Sections.Visuals.PlayerChams:Dropdown(
{
Name = "Body Material",
Options = { "ForceField", "Glass" },
Default = "ForceField",
Pointer = "52",
callback = function(state)
VisualsExtra.ClientVisuals.SelfChamsMaterial = state
end
}
),
GunTog = Sections.Visuals.PlayerChams:Toggle(
{
Name = "Gun Cham",
Default = false,
Pointer = "53",
callback = function(state)
VisualsExtra.WeaponEffects.Enabled = state
end
}
),
GunDrop = Sections.Visuals.PlayerChams:Dropdown(
{
Name = "Gun Material",
Options = { "ForceField", "Glass" },
Default = "ForceField",
Pointer = "54",
callback = function(state)
VisualsExtra.WeaponEffects.Material = state
end
}
),
BulletTracersToggle = Sections.Visuals.BulletTracers:Toggle(
{
Name = "Enabled",
Default = false,
Pointer = "55",
callback = function(bi)
BulletTracers = bi
end
}
),
MapLightingToggle = Sections.Visuals.WorldVisuals:Toggle(
{
Name = "Map Lighting",
Default = false,
Pointer = "56",
callback = function(bi)
VisualsExtra.WorldVisuals.MapLightingEnabled = bi
end
}
), -- add more shit soon
MapBrightness = Sections.Visuals.WorldVisuals:Slider(
{
Name = "Map Brightness",
Minimum = 0,
Maximum = 100,
Default = 1,
Decimals = 0.1,
Pointer = "57",
callback = function(E)
VisualsExtra.WorldVisuals.MapBrightness = E / 50
end
}
),
MapContrast = Sections.Visuals.WorldVisuals:Slider(
{
Name = "Map Contrast",
Minimum = 0,
Maximum = 100,
Default = 1,
Decimals = 0.1,
Pointer = "58",
callback = function(E)
VisualsExtra.WorldVisuals.MapContrast = E / 50
end
}
)
}
EspVisuals.BulletTracersToggle:Colorpicker(
{
Name = "Bullet Tracers",
Info = "Bullet Tracers",
Alpha = 0.5,
Default = Color3.fromRGB(255, 0, 0),
Pointer = "59",
callback = function(bi)
bullet_tracer_color = bi
end
}
)
EspVisuals.MapLightingToggle:Colorpicker(
{
Name = "Lighting Color",
Info = "World Color",
Alpha = 0.5,
Default = Color3.fromRGB(255, 255, 255),
Pointer = "60",
callback = function(shit)
VisualsExtra.WorldVisuals.MapTintColor = shit
end
}
)
EspVisuals.BoxesToggle:Colorpicker(
{
Name = "Esp Color",
Info = "Esp Color",
Alpha = 0.5,
Default = Color3.fromRGB(137, 207, 240),
Pointer = "61",
callback = function(shit)
ESPColor = shit
end
}
)
EspVisuals.ChamsTog:Colorpicker(
{
Name = "Self Chams Color",
Info = "Self Chams Color",
Alpha = 0.5,
Default = Color3.fromRGB(133, 87, 242),
Pointer = "62",
callback = function(bi)
VisualsExtra.ClientVisuals.SelfChamsColor = bi
end
}
)
EspVisuals.GunTog:Colorpicker(
{
Name = "Gun Color",
Info = "Gun Color",
Alpha = 0.5,
Default = Color3.fromRGB(255, 0, 0),
Pointer = "63",
callback = function(bi)
VisualsExtra.WeaponEffects.Color = bi
end
}
)
task.spawn(function()
local frames = 0
game:GetService "RunService".RenderStepped:Connect(function()
frames = frames + 1
end)
while task.wait(1) do
watermark:Update { "specter.lua", ScriptProperties.UserPanel.Status, frames
.. " FPS", string.format("%s:%s %s", tonumber(os.date("%I")), os.date("%M"),
os.date("%p")) }
frames = 0
end
end)
ConfigStuff = {
SettingsSection = {
UiToggle = Sections.Configuations.ScriptStuff:Keybind { Name = "Keybind",
Default = Enum.KeyCode.RightShift, Blacklist = { Enum.UserInputType.MouseButton1 },
Flag = "CurrentBind", Callback = function(key, fromsetting)
if not fromsetting then
library:Toggle()
end
end },
Discord = {
AutoJoin = Sections.Configuations.Discord:Toggle(
{
Name = "Auto Join",
Default = false,
Pointer = "64",
callback = function(e)
ConfigurationTab.Discord.AutoJoin = e
end
}
),
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- fakelag --
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- rage --
function getclosest()
game:GetService("RunService").Stepped:Connect(
function(a, b)
if PlrP ~= nil and RageSettings.TargetStrafe.Enabled and Locking then
delta = (delta + b / RageSettings.TargetStrafe.Speed) % 1
Circle.Visible = true
Circle.Position = PlrP.Character.HumanoidRootPart.Position
Circle.Color = RageSettings.TargetStrafe.Color
Circle.Radius = RageSettings.TargetStrafe.Distance
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.Angles(0, 2 * math.pi * delta, 0) * CFrame.new(0, 0, Circle.Radius) +
PlrP.Character.HumanoidRootPart.Position
if RageSettings.TargetStrafe.AntiAimMode then
if RageSettings.TargetStrafe.AntiAimType == 'Flinger' then
game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
Vector3.new(math.random(-500, 500), math.random(-400, 400), math.random(-1000,
1000))
wait()
game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
Vector3.new(math.random(-500, 500), math.random(-400, 400), math.random(-1000,
1000))
else
game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
Vector3.new(math.random(100, 6000), math.random(100, 6000), math.random(100, 6000))
wait()
game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
Vector3.new(-math.random(100, 6000), -math.random(100, 6000), -math.random(100,
6000))
end
end
else
Circle.Visible = false
end
end)
game:GetService("RunService").Stepped:Connect(
function(a, b)
Plr = NearestMouse()
fov_circle.Filled = AimingSettings.TargetAim.FOVFilled
fov_circle.Thickness = AimingSettings.TargetAim.FOVThickness
fov_circle.Radius = AimingSettings.TargetAim.FOV
outline.Radius = AimingSettings.TargetAim.FOV
fov_circle.Visible = AimingSettings.TargetAim.ShowFOV
outline.Visible = AimingSettings.TargetAim.ShowFOV
fov_circle.Color = AimingSettings.TargetAim.FOVColor
outline.Position = getMousePosition() + Vector2.new(0, 36)
fov_circle.Position = getMousePosition() + Vector2.new(0, 36)
fov_circle.Transparency = AimingSettings.TargetAim.FovTransparency
mouse_box.Thickness = AimingSettings.MousePosSector.Thickness -- thickness
slider
mouse_box.Size = Vector2.new(AimingSettings.MousePosSector.Size,
AimingSettings.MousePosSector.Size) -- size slider
if AimingSettings.MousePosSector.Enabled and NearestMouse() ~= nil then
mouse_box.Color = AimingSettings.MousePosSector.DOTColor -- add colorpicker
mouse_box.Visible = ((NearestMouse() and true) or false)
mouse_box.Position =
((NearestMouse().Character[AimingSettings.TargetAim.Hitboxes].Position and
Vector2.new(
WorldToViewportPoint(Camera,
Plr.Character[AimingSettings.TargetAim.Hitboxes].Position).X,
WorldToViewportPoint(Camera,
NearestMouse().Character[AimingSettings.TargetAim.Hitboxes].Position).Y
)) or
Vector2.new(-9000, -9000))
end
if RageSettings.LegitAntiHit.Enabled then
if RageSettings.LegitAntiHit.Enabled then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame +
-game.Players.LocalPlayer.Character.Humanoid.MoveDirection *
RageSettings.LegitAntiHit.Multiplier
end
end
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- auto predict to ping --
pingvalue = game:GetService("Stats").Network.ServerStatsItem["Data
Ping"]:GetValueString()
split = string.split(pingvalue, "(")
ping = tonumber(split[1])
if RageSettings.AntiAim.VelocityBreaker then
game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity =
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.lookVector *
RageSettings.AntiAim.VBV
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame =
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame *
CFrame.Angles(0, math.rad(RageSettings.AntiAim.VBF), 0)
end
if MiscSettings.Fly.Enabled and
(not MiscSettings.Fly.MoveOnly or
LocalPlayer.Character.Humanoid.MoveDirection.Magnitude > 0)
then
if MiscSettings.Fly.Normal then
local AngleX, AngleY, AngleZ =
LocalPlayer.Character.HumanoidRootPart.CFrame:ToEulerAnglesYXZ()
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(
LocalPlayer.Character.HumanoidRootPart.CFrame.X,
MiscSettings.Fly.Height + 24,
LocalPlayer.Character.HumanoidRootPart.CFrame.Z
) * CFrame.Angles(AngleX, AngleY, AngleZ)
LocalPlayer.Character.Humanoid:ChangeState("Freefall")
LocalPlayer.Character:TranslateBy(
LocalPlayer.Character.Humanoid.MoveDirection *
MiscSettings.Fly.Amount / 1.5
)
end
end
if MiscSettings.Strafe.Enabled then
if LocalPlayer.Character.Humanoid.MoveDirection.Magnitude > 0 and
LocalPlayer.Character.Humanoid:GetState() ==
Enum.HumanoidStateType.Freefall
then
LocalPlayer.Character:TranslateBy(LocalPlayer.Character.Humanoid.MoveDirection /
3.1)
end
end
end
)
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------------------
-- map visuals --
local MapLightingJmp = Instance.new("ColorCorrectionEffect")
game:GetService("RunService").RenderStepped:Connect(
function()
if MapLightingJmp.Enabled ~= VisualsExtra.WorldVisuals.MapLightingEnabled then
MapLightingJmp.Enabled = VisualsExtra.WorldVisuals.MapLightingEnabled
end
-- wsg
if VisualsExtra.ClientVisuals.SelfChams then
for i, v in pairs(parts) do
game.Players.LocalPlayer.Character[v].Material =
VisualsExtra.ClientVisuals.SelfChamsMaterial
game.Players.LocalPlayer.Character[v].Color =
VisualsExtra.ClientVisuals.SelfChamsColor
end
end
)
-----------------------------------------------------------------------------------
----------------------------------------------------------
-- no slowdown --
-- Bullet Tracers
bullet_tracer_color = Color3.fromRGB(255, 255, 255)
function GetGun()
if game.Players.LocalPlayer.Character then
for i, v in pairs(game.Players.LocalPlayer.Character:GetChildren()) do
if v:FindFirstChild 'Ammo' then
return v
end
end
end
return nil
end
BulletTracers = false
local Services = {
Players = game:GetService("Players"),
UserInputService = game:GetService("UserInputService"),
RunService = game:GetService("RunService"),
}
local Local = {
Player = Services.Players.LocalPlayer,
Mouse = Services.Players.LocalPlayer:GetMouse(),
}
local Other = {
Camera = workspace.CurrentCamera,
BeamPart = Instance.new("Part", workspace)
}
Other.BeamPart.Name = "BeamPart"
Other.BeamPart.Transparency = 1
local Settings = {
StartColor = MainAccentColor,
EndColor = MainAccentColor,
StartWidth = 3,
EndWidth = 3,
ShowImpactPoint = false,
ImpactTransparency = 0.5,
ImpactColor = Color3.new(1, 1, 1),
Time = 1,
}
game:GetService "RunService".Heartbeat:Connect(function()
end)
local funcs = {}
Local.Mouse.TargetFilter = Other.BeamPart
function funcs:Beam(v1, v2)
v2 = Vector3.new(v2.X - 0.1, v2.Y + 0.2, v2.Z)
local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, bullet_tracer_color),
ColorSequenceKeypoint.new(1, bullet_tracer_color),
})
local Part = Instance.new("Part", Other.BeamPart)
Part.Size = Vector3.new(0, 0, 0)
Part.Massless = true
Part.Transparency = 1
Part.CanCollide = false
Part.Position = v1
Part.Anchored = true
local Attachment = Instance.new("Attachment", Part)
local Part2 = Instance.new("Part", Other.BeamPart)
Part2.Size = Vector3.new(0, 0, 0)
Part2.Transparency = 0
Part2.CanCollide = false
Part2.Position = v2
Part2.Anchored = true
Part2.Material = Enum.Material.ForceField
Part2.Color = Settings.ImpactColor
Part2.Massless = true
local Attachment2 = Instance.new("Attachment", Part2)
local Beam = Instance.new("Beam", Part)
Beam.FaceCamera = true
Beam.Color = colorSequence
Beam.Attachment0 = Attachment
Beam.Attachment1 = Attachment2
Beam.LightEmission = 6
Beam.LightInfluence = 1
Beam.Width0 = Settings.StartWidth
Beam.Width1 = Settings.EndWidth
Beam.Texture = "http://www.roblox.com/asset/?id=9150663556"
Beam.TextureSpeed = 2
Beam.TextureLength = 1
delay(Settings.Time, function()
Part:Destroy()
Part2:Destroy()
end)
end
spawn(function()
while task.wait(0.5) do
gun = GetGun()
if gun then
LastAmmo = gun.Ammo.Value
gun.Ammo:GetPropertyChangedSignal("Value"):Connect(function()
if BulletTracers and gun.Ammo.Value < LastAmmo then
LastAmmo = gun.Ammo.Value
funcs:Beam(gun.Handle.Position, Local.Mouse.hit.p)
end
end)
end
end
end)
Library:Initialize()