]] local Drawing = loadstring(game:HttpGet("https://raw.githubusercontent.com/linemaster2/storage/main/Drawing.lua"))(); local Library = {}; do Library = { Open = true; Accent = Color3.fromRGB(207, 227, 0); Pages = {}; Sections = {}; Flags = {}; UnNamedFlags = 0; ThemeObjects = {}; Instances = {}; Holder = nil; OldSize = nil; ScreenGUI = nil; DropdownOpen = false, OptionListOpen = false, Keys = { [Enum.KeyCode.Space] = "Space", [Enum.KeyCode.Return] = "Return", [Enum.KeyCode.LeftShift] = "LShift", [Enum.KeyCode.RightShift] = "RShift", [Enum.KeyCode.LeftControl] = "LCtrl", [Enum.KeyCode.RightControl] = "RCtrl", [Enum.KeyCode.LeftAlt] = "LAlt", [Enum.KeyCode.RightAlt] = "RAlt", [Enum.KeyCode.CapsLock] = "CAPS", [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] = "Num1", [Enum.KeyCode.KeypadTwo] = "Num2", [Enum.KeyCode.KeypadThree] = "Num3", [Enum.KeyCode.KeypadFour] = "Num4", [Enum.KeyCode.KeypadFive] = "Num5", [Enum.KeyCode.KeypadSix] = "Num6", [Enum.KeyCode.KeypadSeven] = "Num7", [Enum.KeyCode.KeypadEight] = "Num8", [Enum.KeyCode.KeypadNine] = "Num9", [Enum.KeyCode.KeypadZero] = "Num0", [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] = "MB1", [Enum.UserInputType.MouseButton2] = "MB2", [Enum.UserInputType.MouseButton3] = "MB3" }; Connections = {}; FontSize = 12; VisValues = {}; UIKey = Enum.KeyCode.Insert; Notifs = {}; } -- // Ignores local Flags = {} -- Ignore local ColorHolders = {} -- // Extension Library.__index = Library Library.Pages.__index = Library.Pages Library.Sections.__index = Library.Sections local LocalPlayer = game:GetService('Players').LocalPlayer; local Mouse = LocalPlayer:GetMouse(); local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") -- // Misc Functions do function Library:Connection(signal, Callback) local Con = signal:Connect(Callback) return Con end -- function Library:Disconnect(Connection) Connection:Disconnect() end -- function Library:Round(Number, Float) return Float * math.floor(Number / Float) end -- function Library.NextFlag() Library.UnNamedFlags = Library.UnNamedFlags + 1 return string.format("%.14g", Library.UnNamedFlags) end -- function Library:GetConfig() local Config = "" for Index, Value in pairs(self.Flags) do if Index ~= "ConfigConfig_List" and Index ~= "ConfigConfig_Load" and Index ~= "ConfigConfig_Save" then local Value2 = Value local Final = "" -- if typeof(Value2) == "Color3" then local hue, sat, val = Value2:ToHSV() -- Final = ("rgb(%s,%s,%s,%s)"):format(hue, sat, val, 1) elseif typeof(Value2) == "table" and Value2.Color and Value2.Transparency then local hue, sat, val = Value2.Color:ToHSV() -- Final = ("rgb(%s,%s,%s,%s)"):format(hue, sat, val, Value2.Transparency) elseif typeof(Value2) == "table" and Value.Mode then local Values = Value.current -- Final = ("key(%s,%s,%s)"):format(Values[1] or "nil", Values[2] or "nil", Value.Mode) elseif Value2 ~= nil then if typeof(Value2) == "boolean" then Value2 = ("bool(%s)"):format(tostring(Value2)) elseif typeof(Value2) == "table" then local New = "table(" -- for Index2, Value3 in pairs(Value2) do New = New .. Value3 .. "," end -- if New:sub(#New) == "," then New = New:sub(0, #New - 1) end -- Value2 = New .. ")" elseif typeof(Value2) == "string" then Value2 = ("string(%s)"):format(Value2) elseif typeof(Value2) == "number" then Value2 = ("number(%s)"):format(Value2) end -- Final = Value2 end -- Config = Config .. Index .. ": " .. tostring(Final) .. "\n" end end -- return Config end -- function Library:LoadConfig(Config) local Table = string.split(Config, "\n") local Table2 = {} for Index, Value in pairs(Table) do local Table3 = string.split(Value, ":") -- if Table3[1] ~= "ConfigConfig_List" and #Table3 >= 2 then local Value = Table3[2]:sub(2, #Table3[2]) -- if Value:sub(1, 3) == "rgb" then local Table4 = string.split(Value:sub(5, #Value - 1), ",") -- Value = Table4 elseif Value:sub(1, 3) == "key" then local Table4 = string.split(Value:sub(5, #Value - 1), ",") -- if Table4[1] == "nil" and Table4[2] == "nil" then Table4[1] = nil Table4[2] = nil end -- Value = Table4 elseif Value:sub(1, 4) == "bool" then local Bool = Value:sub(6, #Value - 1) -- Value = Bool == "true" elseif Value:sub(1, 5) == "table" then local Table4 = string.split(Value:sub(7, #Value - 1), ",") -- Value = Table4 elseif Value:sub(1, 6) == "string" then local String = Value:sub(8, #Value - 1) -- Value = String elseif Value:sub(1, 6) == "number" then local Number = tonumber(Value:sub(8, #Value - 1)) -- Value = Number end -- Table2[Table3[1]] = Value end end -- for i, v in pairs(Table2) do if Flags[i] then if typeof(Flags[i]) == "table" then Flags[i]:Set(v) else Flags[i](v) end end end end -- function Library:SetOpen(bool) if typeof(bool) == 'boolean' then Library.Open = bool; if Library.Open then Library.Holder.Visible = true --game:GetService("TweenService"):Create(Library.Holder, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, Library.OldSize.X.Offset,0,40)}):Play() game:GetService("TweenService"):Create(Library.Holder, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, Library.OldSize.X.Offset,0,Library.OldSize.Y.Offset)}):Play() else --game:GetService("TweenService"):Create(Library.Holder, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, Library.OldSize.X.Offset,0,40)}):Play() game:GetService("TweenService"):Create(Library.Holder, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, 0,0,20)}):Play() task.wait(0.25) Library.Holder.Visible = false end end end; -- function Library:ChangeAccent(Color) Library.Accent = Color for obj, theme in next, Library.ThemeObjects do if theme:IsA("Frame") or theme:IsA("TextButton") then theme.BackgroundColor3 = Color elseif theme:IsA("TextLabel") then theme.TextColor3 = Color elseif theme:IsA("ScrollingFrame") then theme.ScrollBarImageColor3 = Library.Accent end end end -- function Library:IsMouseOverFrame(Frame) local AbsPos, AbsSize = Frame.AbsolutePosition, Frame.AbsoluteSize; if Mouse.X >= AbsPos.X and Mouse.X <= AbsPos.X + AbsSize.X and Mouse.Y >= AbsPos.Y and Mouse.Y <= AbsPos.Y + AbsSize.Y then return true; end; return false; end; end -- // Colorpicker Element do function Library:NewPicker(name, default, parent, count, flag, callback) -- // Instances local ColorpickerFrame = Instance.new("TextButton") ColorpickerFrame.Name = "Colorpicker_frame" ColorpickerFrame.BackgroundColor3 = default ColorpickerFrame.BorderColor3 = Color3.fromRGB(0, 0, 0) ColorpickerFrame.BorderSizePixel = 0 if count == 1 then ColorpickerFrame.Position = UDim2.new(1, - (count * 20),0.5,0) else ColorpickerFrame.Position = UDim2.new(1, - (count * 20) - (count * 4),0.5,0) end ColorpickerFrame.Size = UDim2.new(0, 20, 0, 20) ColorpickerFrame.AnchorPoint = Vector2.new(0,0.5) ColorpickerFrame.Text = "" ColorpickerFrame.AutoButtonColor = false local UICorner = Instance.new("UICorner") UICorner.Name = "UICorner" UICorner.CornerRadius = UDim.new(0, 4) UICorner.Parent = ColorpickerFrame local UIStroke = Instance.new("UIStroke") UIStroke.Name = "UIStroke" UIStroke.Color = Color3.fromRGB(40, 40, 40) UIStroke.Parent = ColorpickerFrame ColorpickerFrame.Parent = parent local Colorpicker = Instance.new("TextButton") Colorpicker.Name = "Colorpicker" Colorpicker.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Colorpicker.BorderColor3 = Color3.fromRGB(0, 0, 0) Colorpicker.BorderSizePixel = 0 Colorpicker.Position = UDim2.new(0, ColorpickerFrame.AbsolutePosition.X - 100, 0, ColorpickerFrame.AbsolutePosition.Y - 50) Colorpicker.Size = UDim2.new(0, 180, 0, 180) Colorpicker.Parent = Library.ScreenGUI Colorpicker.ZIndex = 100 Colorpicker.Visible = false Colorpicker.Text = "" Colorpicker.AutoButtonColor = false local H,S,V = default:ToHSV() local ImageLabel = Instance.new("ImageLabel") ImageLabel.Name = "ImageLabel" ImageLabel.Image = "rbxassetid://11970108040" ImageLabel.BackgroundColor3 = Color3.fromHSV(H, 1, 1) ImageLabel.BorderColor3 = Color3.fromRGB(0, 0, 0) ImageLabel.BorderSizePixel = 0 ImageLabel.Position = UDim2.new(0.0556, 0, 0.026, 0) ImageLabel.Size = UDim2.new(0, 160, 0, 154) ImageLabel.Parent = Colorpicker local UICorner = Instance.new("UICorner") UICorner.Name = "UICorner" UICorner.CornerRadius = UDim.new(0, 6) UICorner.Parent = Colorpicker local ImageButton = Instance.new("ImageButton") ImageButton.Name = "ImageButton" ImageButton.Image = "rbxassetid://14684562507" ImageButton.BackgroundColor3 = Color3.fromHSV(H, 1, 1) ImageButton.BorderColor3 = Color3.fromRGB(0, 0, 0) ImageButton.BorderSizePixel = 0 ImageButton.Position = UDim2.new(0.056, 0, 0.026, 0) ImageButton.Size = UDim2.new(0, 160, 0, 154) ImageButton.AutoButtonColor = false local SVSlider = Instance.new("Frame") SVSlider.Name = "SV_slider" SVSlider.BackgroundColor3 = Color3.fromRGB(255, 255, 255) SVSlider.BackgroundTransparency = 1 SVSlider.ClipsDescendants = true SVSlider.Position = UDim2.new(0.855, 0, 0.0966, 0) SVSlider.Size = UDim2.new(0,7,0,7) SVSlider.ZIndex = 3 local Val = Instance.new("ImageLabel") Val.Name = "Val" Val.Image = "http://www.roblox.com/asset/?id=14684563800" Val.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Val.BackgroundTransparency = 1 Val.BorderColor3 = Color3.fromRGB(0, 0, 0) Val.BorderSizePixel = 0 Val.Size = UDim2.new(1, 0, 1, 0) Val.Parent = ImageButton local UICorner1 = Instance.new("UICorner") UICorner1.Name = "UICorner" UICorner1.CornerRadius = UDim.new(0, 100) UICorner1.Parent = SVSlider local UIStroke = Instance.new("UIStroke") UIStroke.Name = "UIStroke" UIStroke.Color = Color3.fromRGB(255, 255, 255) UIStroke.Parent = SVSlider SVSlider.Parent = ImageButton ImageButton.Parent = Colorpicker local ImageButton1 = Instance.new("ImageButton") ImageButton1.Name = "ImageButton" ImageButton1.Image = "http://www.roblox.com/asset/?id=16789872274" ImageButton1.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ImageButton1.BorderColor3 = Color3.fromRGB(0, 0, 0) ImageButton1.BorderSizePixel = 0 ImageButton1.Position = UDim2.new(0.5, 0,0, 165) ImageButton1.Size = UDim2.new(0, 160,0, 8) ImageButton1.AutoButtonColor = false ImageButton1.AnchorPoint = Vector2.new(0.5,0) ImageButton1.BackgroundTransparency = 1 local Frame = Instance.new("Frame") Frame.Name = "Frame" Frame.BackgroundColor3 = Color3.fromRGB(254, 254, 254) Frame.BorderColor3 = Color3.fromRGB(0, 0, 0) Frame.BorderSizePixel = 0 Frame.Position = UDim2.new(0.926, 0,0.5, 0) Frame.Size = UDim2.new(0, 12,0, 12) Frame.AnchorPoint = Vector2.new(0,0.5) Frame.ZIndex = 45 local UICorner2 = Instance.new("UICorner") UICorner2.Name = "UICorner" UICorner2.Parent = Frame UICorner2.CornerRadius = UDim.new(1,0) local UICorner3 = Instance.new("UICorner") UICorner3.Name = "UICorner" UICorner3.Parent = ImageButton1 Frame.Parent = ImageButton1 ImageButton1.Parent = Colorpicker -- // Connections local mouseover = false local hue, sat, val = default:ToHSV() local hsv = default:ToHSV() local oldcolor = hsv local slidingsaturation = false local slidinghue = false local slidingalpha = false local function update() local real_pos = game:GetService("UserInputService"):GetMouseLocation() local mouse_position = Vector2.new(real_pos.X, real_pos.Y - 30) local relative_palette = (mouse_position - ImageButton.AbsolutePosition) local relative_hue = (mouse_position - ImageButton1.AbsolutePosition) -- if slidingsaturation then sat = math.clamp(1 - relative_palette.X / ImageButton.AbsoluteSize.X, 0, 1) val = math.clamp(1 - relative_palette.Y / ImageButton.AbsoluteSize.Y, 0, 1) elseif slidinghue then hue = math.clamp(relative_hue.X / ImageButton.AbsoluteSize.X, 0, 1) end hsv = Color3.fromHSV(hue, sat, val) TweenService:Create(SVSlider, TweenInfo.new(0.05, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(math.clamp(1 - sat, 0.000, 1 - 0.055), 0, math.clamp(1 - val, 0.000, 1 - 0.045), 0)}):Play() ImageButton.BackgroundColor3 = Color3.fromHSV(hue, 1, 1) ColorpickerFrame.BackgroundColor3 = hsv TweenService:Create(Frame, TweenInfo.new(0.05, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(math.clamp(hue, 0.000, 0.982),-5,0.5,0)}):Play() 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 local function set(color) if type(color) == "table" then color = Color3.fromHSV(color[1], color[2], color[3]) end if type(color) == "string" then color = Color3.fromHex(color) end local oldcolor = hsv hue, sat, val = color:ToHSV() hsv = Color3.fromHSV(hue, sat, val) if hsv ~= oldcolor then ColorpickerFrame.BackgroundColor3 = hsv TweenService:Create(SVSlider, TweenInfo.new(0.05, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(math.clamp(1 - sat, 0.000, 1 - 0.055), 0, math.clamp(1 - val, 0.000, 1 - 0.045), 0)}):Play() ImageButton.BackgroundColor3 = Color3.fromHSV(hue, 1, 1) TweenService:Create(Frame, TweenInfo.new(0.05, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(math.clamp(hue, 0.000, 0.982),-5,0.5,0)}):Play() 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 end Flags[flag] = set set(default) ImageButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then slidingsaturation = true update() end end) ImageButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then slidingsaturation = false update() end end) ImageButton1.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then slidinghue = true update() end end) ImageButton1.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then slidinghue = false update() end end) Library:Connection(game:GetService("UserInputService").InputChanged, function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if slidinghue then update() end if slidingsaturation then update() end end end) local colorpickertypes = {} function colorpickertypes:Set(color, newalpha) set(color, newalpha) end Library:Connection(game:GetService("UserInputService").InputBegan, function(Input) if Colorpicker.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then if not Library:IsMouseOverFrame(Colorpicker) and not Library:IsMouseOverFrame(ColorpickerFrame) then Colorpicker.Position = UDim2.new(0, ColorpickerFrame.AbsolutePosition.X - 100, 0, ColorpickerFrame.AbsolutePosition.Y + 25) TweenService:Create(Colorpicker, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() TweenService:Create(Colorpicker, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {Position = UDim2.new(0, ColorpickerFrame.AbsolutePosition.X - 100, 0, ColorpickerFrame.AbsolutePosition.Y)}):Play() task.spawn(function() task.wait(0.1) Colorpicker.Visible = false parent.ZIndex = 1 Library.Cooldown = false end) for _,V in next, Colorpicker:GetDescendants() do if V:IsA("Frame") or V:IsA("TextButton") or V:IsA("ScrollingFrame") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() Library.VisValues[V] = V.BackgroundTransparency elseif V:IsA("TextLabel") or V:IsA("TextBox") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() Library.VisValues[V] = V.TextTransparency elseif V:IsA("ImageLabel") or V:IsA("ImageButton") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {ImageTransparency = 1}):Play(); Library.VisValues[V] = V.ImageTransparency elseif V:IsA("UIStroke") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {Transparency = 1}):Play() Library.VisValues[V] = V.Transparency end end end end end) ColorpickerFrame.MouseButton1Down:Connect(function() if Colorpicker.Visible == false then Colorpicker.Position = UDim2.new(0, ColorpickerFrame.AbsolutePosition.X - 100, 0, ColorpickerFrame.AbsolutePosition.Y) TweenService:Create(Colorpicker, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0, ColorpickerFrame.AbsolutePosition.X - 100, 0, ColorpickerFrame.AbsolutePosition.Y + 25)}):Play() end Colorpicker.Visible = true parent.ZIndex = 100 Library.Cooldown = true TweenService:Create(Colorpicker, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() for _,V in next, Colorpicker:GetDescendants() do if V:IsA("Frame") or V:IsA("TextButton") or V:IsA("ScrollingFrame") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = Library.VisValues[V]}):Play() elseif V:IsA("TextLabel") or V:IsA("TextBox") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {TextTransparency = Library.VisValues[V]}):Play() elseif V:IsA("ImageLabel") or V:IsA("ImageButton") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {ImageTransparency = Library.VisValues[V]}):Play(); elseif V:IsA("UIStroke") then TweenService:Create(V, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {Transparency = 0}):Play() end end if slidinghue then slidinghue = false end if slidingsaturation then slidingsaturation = false end end) return colorpickertypes, Colorpicker end end function Library:updateNotifsPositions(position) for i, v in pairs(Library.Notifs) do local Position = Vector2.new(20, 20) game:GetService("TweenService"):Create(v.Container, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Position = UDim2.new(0,Position.X,0,Position.Y + (i * 25))}):Play() end end function Library:Notification(message, duration) local notification = {Container = nil, Objects = {}} -- local Position = Vector2.new(20, 20) -- local NewInd = Instance.new("Frame") NewInd.Name = "NewInd" NewInd.AutomaticSize = Enum.AutomaticSize.X NewInd.Position = UDim2.new(0,20,0,20) NewInd.BackgroundColor3 = Color3.fromRGB(50, 50, 50) NewInd.BackgroundTransparency = 1 NewInd.BorderColor3 = Color3.fromRGB(0, 0, 0) NewInd.Size = UDim2.fromOffset(0, 20) NewInd.Parent = Library.ScreenGUI notification.Container = NewInd local Outline = Instance.new("Frame") Outline.Name = "Outline" Outline.AnchorPoint = Vector2.new(0, 0) Outline.AutomaticSize = Enum.AutomaticSize.X Outline.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Outline.BorderColor3 = Color3.fromRGB(0, 0, 0) Outline.BorderSizePixel = 1 Outline.Position = UDim2.new(0,0,0,0) Outline.Size = UDim2.fromOffset(0, 20) Outline.Visible = true Outline.ZIndex = 50 Outline.Parent = NewInd Outline.BackgroundTransparency = 1 local UICorner = Instance.new("UICorner") UICorner.Name = "UICorner" UICorner.CornerRadius = UDim.new(0, 4) UICorner.Parent = Outline local UIStroke = Instance.new("UIStroke") UIStroke.Name = "UIStroke" UIStroke.Parent = Outline UIStroke.Transparency = 1 local Inline = Instance.new("Frame") Inline.Name = "Inline" Inline.BackgroundColor3 = Color3.fromRGB(13, 13, 13) Inline.BorderColor3 = Color3.fromRGB(0, 0, 0) Inline.BorderSizePixel = 0 Inline.Position = UDim2.fromOffset(1, 1) Inline.Size = UDim2.new(1, -2, 1, -2) Inline.ZIndex = 51 Inline.BackgroundTransparency = 1 local UICorner2 = Instance.new("UICorner") UICorner2.Name = "UICorner_2" UICorner2.CornerRadius = UDim.new(0, 4) UICorner2.Parent = Inline local Title = Instance.new("TextLabel") Title.Name = "Title" Title.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") Title.RichText = true Title.Text = message Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 13 Title.TextXAlignment = Enum.TextXAlignment.Left Title.AutomaticSize = Enum.AutomaticSize.X Title.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Title.BackgroundTransparency = 1 Title.BorderColor3 = Color3.fromRGB(0, 0, 0) Title.BorderSizePixel = 0 Title.Position = UDim2.fromOffset(5, 0) Title.Size = UDim2.fromScale(0, 1) Title.Parent = Inline Title.TextTransparency = 1 local UIPadding = Instance.new("UIPadding") UIPadding.Name = "UIPadding" UIPadding.PaddingRight = UDim.new(0, 6) UIPadding.Parent = Inline Inline.Parent = Outline function notification:remove() table.remove(Library.Notifs, table.find(Library.Notifs, notification)) Library:updateNotifsPositions(Position) task.wait(0.5) NewInd:Destroy() end task.spawn(function() Outline.AnchorPoint = Vector2.new(1,0) for i,v in next, NewInd:GetDescendants() do if v:IsA("Frame") then game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() elseif v:IsA("UIStroke") then game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Transparency = 0}):Play() end end local Tween1 = game:GetService("TweenService"):Create(Outline, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {AnchorPoint = Vector2.new(0,0)}):Play() game:GetService("TweenService"):Create(Title, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() task.wait(duration) --game:GetService("TweenService"):Create(ActualInd, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {AnchorPoint = Vector2.new(1,0)}):Play() for i,v in next, NewInd:GetDescendants() do if v:IsA("Frame") then game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() elseif v:IsA("UIStroke") then game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Transparency = 1}):Play() end end game:GetService("TweenService"):Create(Title, TweenInfo.new(1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() end) task.delay(duration + 0.1, function() notification:remove() end) table.insert(Library.Notifs, notification) Library:updateNotifsPositions(Position) NewInd.Position = UDim2.new(0,Position.X,0,Position.Y + (table.find(Library.Notifs, notification) * 25)) return notification end -- // Main do local Pages = Library.Pages; local Sections = Library.Sections; -- function Library:New(Properties) if not Properties then Properties = {} end -- local Window = { Size = Properties.Size or UDim2.new(0,600,0,450), Pages = {}, PageAxis = 0, Dragging = { false, UDim2.new(0, 0, 0, 0) }, Resized = nil, Elements = {}, } -- local ScreenGui = Instance.new('ScreenGui', game:GetService("RunService"):IsStudio() and game.Players.LocalPlayer.PlayerGui or game.CoreGui) local Outline = Instance.new('Frame', ScreenGui) local UICorner = Instance.new('UICorner', Outline) local UIStroke = Instance.new('UIStroke', Outline) local Inline = Instance.new('Frame', Outline) local UICorner_2 = Instance.new('UICorner', Inline) local Holder = Instance.new('Frame', Inline) local UICorner = Instance.new('UICorner', Holder) local Frame = Instance.new('Frame', Holder) local Tabs = Instance.new('Frame', Inline) local UIListLayout = Instance.new('UIListLayout', Tabs) local TextButton = Instance.new('TextButton', Inline) -- ScreenGui.DisplayOrder = 100 ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Library.ScreenGUI = ScreenGui -- Outline.Name = "Outline" Outline.Position = UDim2.new(0.5,0,0.5,0) Outline.Size = UDim2.new(0,0,0,40) Outline.BackgroundColor3 = Color3.new(0.1961,0.1961,0.1961) Outline.BorderColor3 = Color3.new(0,0,0) Outline.AnchorPoint = Vector2.new(0.5,0.5) Outline.ZIndex = 50 Outline.ClipsDescendants = false Library.Holder = Outline Library.OldSize = Window.Size -- local Logo = Instance.new("ImageLabel") Logo.Name = "Logo" Logo.Image = "http://www.roblox.com/asset/?id=17673929618" Logo.ScaleType = Enum.ScaleType.Fit Logo.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Logo.BackgroundTransparency = 1 Logo.BorderColor3 = Color3.fromRGB(0, 0, 0) Logo.BorderSizePixel = 0 Logo.Position = UDim2.fromOffset(10, -20) Logo.Size = UDim2.fromOffset(90, 90) Logo.Parent = Holder -- Inline.Name = "Inline" Inline.Position = UDim2.new(0,1,0,1) Inline.Size = UDim2.new(1,-2,1,-2) Inline.BackgroundColor3 = Color3.new(0.051,0.051,0.051) Inline.BorderSizePixel = 0 Inline.BorderColor3 = Color3.new(0,0,0) Inline.ZIndex = 51 -- Holder.Name = "Holder" Holder.Position = UDim2.new(0,150,0,0) Holder.Size = UDim2.new(1,-150,1,0) Holder.BackgroundColor3 = Color3.new(0.0588235, 0.0588235, 0.0588235) Holder.BorderSizePixel = 0 Holder.BorderColor3 = Color3.new(0,0,0) Holder.ZIndex = 52 -- Frame.Size = UDim2.new(0,5,1,0) Frame.BackgroundColor3 = Color3.new(0.0588235, 0.0588235, 0.0588235) Frame.BorderSizePixel = 0 Frame.BorderColor3 = Color3.new(0,0,0) -- Tabs.Name = "Tabs" Tabs.Position = UDim2.new(0,5,0,10) Tabs.Size = UDim2.new(0,140,1,-20) Tabs.BackgroundColor3 = Color3.new(1,1,1) Tabs.BackgroundTransparency = 1.01 Tabs.BorderSizePixel = 0 Tabs.BorderColor3 = Color3.new(0,0,0) -- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0,4) -- TextButton.Size = UDim2.new(1,0,0,20) TextButton.BackgroundColor3 = Color3.new(1,1,1) TextButton.BackgroundTransparency = 1 TextButton.BorderSizePixel = 0 TextButton.BorderColor3 = Color3.new(0,0,0) TextButton.Text = "" TextButton.TextColor3 = Color3.new(0,0,0) TextButton.AutoButtonColor = false TextButton.Font = Enum.Font.SourceSans TextButton.TextSize = 14 TextButton.ZIndex = 100 local Line1 = Instance.new("Frame") Line1.Name = "Line1" Line1.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Line1.BorderColor3 = Color3.fromRGB(0, 0, 0) Line1.BorderSizePixel = 0 Line1.Position = UDim2.fromOffset(0, 50) Line1.Size = UDim2.new(1, 0, 0, 1) Line1.Parent = Holder local Line2 = Instance.new("Frame") Line2.Name = "Line2" Line2.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Line2.BorderColor3 = Color3.fromRGB(0, 0, 0) Line2.BorderSizePixel = 0 Line2.Size = UDim2.new(0, 1, 1, 0) Line2.Parent = Holder local Logo = Instance.new("ImageLabel") Logo.Name = "Logo" Logo.Image = "http://www.roblox.com/asset/?id=17669613413" Logo.ScaleType = Enum.ScaleType.Fit Logo.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Logo.BackgroundTransparency = 1 Logo.BorderColor3 = Color3.fromRGB(0, 0, 0) Logo.BorderSizePixel = 0 Logo.Position = UDim2.fromOffset(10, -20) Logo.Size = UDim2.fromOffset(90, 90) Logo.Parent = Holder local FadeThing = Instance.new("Frame") FadeThing.Name = "FadeThing" FadeThing.BackgroundColor3 = Color3.fromRGB(15, 15, 15) FadeThing.BorderColor3 = Color3.fromRGB(0, 0, 0) FadeThing.BorderSizePixel = 0 FadeThing.Position = UDim2.fromOffset(9, 59) FadeThing.Size = UDim2.new(1, -18, 1, -63) FadeThing.ZIndex = 55 FadeThing.Parent = Holder FadeThing.Visible = false -- // Elements Window.Elements = { TabHolder = Tabs, Holder = Holder, FadeThing = FadeThing } -- // Dragging Library:Connection(TextButton.MouseButton1Down, function() local Location = game:GetService("UserInputService"):GetMouseLocation() Window.Dragging[1] = true Window.Dragging[2] = UDim2.new(0, Location.X - Outline.AbsolutePosition.X, 0, Location.Y - Outline.AbsolutePosition.Y) end) Library:Connection(game:GetService("UserInputService").InputEnded, function(Input, IsTyping) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Window.Dragging[1] = false Window.Dragging[2] = UDim2.new(0, 0, 0, 0) end end) Library:Connection(game:GetService("UserInputService").InputChanged, function(Input) local Location = game:GetService("UserInputService"):GetMouseLocation() local ActualLocation = nil -- Dragging if Window.Dragging[1] then game:GetService("TweenService"):Create(Outline, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,Location.X - Window.Dragging[2].X.Offset + (Outline.Size.X.Offset * Outline.AnchorPoint.X),0,Location.Y - Window.Dragging[2].Y.Offset + (Outline.Size.Y.Offset * Outline.AnchorPoint.Y))}):Play() end end) -- // Functions function Window:UpdateTabs() for Index, Page in pairs(Window.Pages) do Page:Turn(Page.Open) end end Library:Connection(game:GetService("UserInputService").InputBegan, function(Inp) if Inp.KeyCode == Library.UIKey then Library:SetOpen(not Library.Open) end end) game:GetService("TweenService"):Create(Library.Holder, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, Window.Size.X.Offset,0,Window.Size.Y.Offset)}):Play() -- // Returns Library.Holder = Outline return setmetatable(Window, Library) end -- function Library:Seperator(Properties) if not Properties then Properties = {} end -- local Page = { Name = Properties.Name or "Page", Window = self, Elements = {}, } -- local TextSep = Instance.new('Frame', Page.Window.Elements.TabHolder) local TextLabel = Instance.new('TextLabel', TextSep) -- TextSep.Name = "TextSep" TextSep.Size = UDim2.new(1,0,0,20) TextSep.BackgroundColor3 = Color3.new(1,1,1) TextSep.BackgroundTransparency = 1 TextSep.BorderSizePixel = 0 TextSep.BorderColor3 = Color3.new(0,0,0) -- TextLabel.Position = UDim2.new(0,8,0,0) TextLabel.Size = UDim2.new(1,-10,1,0) TextLabel.BackgroundColor3 = Color3.new(1,1,1) TextLabel.BackgroundTransparency = 1 TextLabel.BorderSizePixel = 0 TextLabel.BorderColor3 = Color3.new(0,0,0) TextLabel.Text = Page.Name TextLabel.TextColor3 = Color3.new(0.7059,0.7059,0.7059) TextLabel.Font = Enum.Font.Gotham TextLabel.TextSize = Library.FontSize TextLabel.TextXAlignment = Enum.TextXAlignment.Left end -- function Library:Page(Properties) if not Properties then Properties = {} end -- local Page = { Name = Properties.Name or "Page", Icon = Properties.Icon or "http://www.roblox.com/asset/?id=6022668955", Window = self, Open = false, Sections = {}, Elements = {}, } -- local TabButton = Instance.new('TextButton', Page.Window.Elements.TabHolder) local UICorner_3 = Instance.new('UICorner', TabButton) local Accent = Instance.new('Frame', TabButton) local UICorner = Instance.new('UICorner', Accent) local Title = Instance.new('TextLabel', TabButton) local Icon = Instance.new('ImageLabel', TabButton) local NewPage = Instance.new('Frame', Page.Window.Elements.Holder) local Left = Instance.new('Frame', NewPage) local LeftLayout = Instance.new('UIListLayout', Left) local Right = Instance.new('Frame', NewPage) local RightLayout = Instance.new('UIListLayout', Right) -- TabButton.Name = "TabButton" TabButton.Size = UDim2.new(1,0,0,30) TabButton.BackgroundColor3 = Color3.new(0.0784,0.0784,0.0784) TabButton.BorderSizePixel = 0 TabButton.BackgroundTransparency = 1 TabButton.BorderColor3 = Color3.new(0,0,0) TabButton.Text = "" TabButton.TextColor3 = Color3.new(0,0,0) TabButton.AutoButtonColor = false TabButton.Font = Enum.Font.SourceSans TabButton.TextSize = 14 TabButton.ClipsDescendants = true -- Accent.Name = "Accent" Accent.Position = UDim2.new(0,-8,0,5) Accent.Size = UDim2.new(0,10,1,-10) Accent.BackgroundColor3 = Library.Accent Accent.BorderSizePixel = 0 Accent.BorderColor3 = Color3.new(0,0,0) Accent.BackgroundTransparency = 0 table.insert(Library.ThemeObjects, Accent) -- Title.Name = "Title" Title.Position = UDim2.new(0,35,0,0) Title.Size = UDim2.new(1,-10,1,0) Title.BackgroundColor3 = Color3.new(1,1,1) Title.BackgroundTransparency = 1 Title.BorderSizePixel = 0 Title.BorderColor3 = Color3.new(0,0,0) Title.Text = Page.Name Title.TextColor3 = Color3.fromRGB(120,120,120) Title.Font = Enum.Font.Gotham Title.TextSize = Library.FontSize Title.TextXAlignment = Enum.TextXAlignment.Left -- Icon.Name = "Icon" Icon.Position = UDim2.new(0,11,0,8) Icon.Size = UDim2.new(0,15,0,15) Icon.BackgroundColor3 = Color3.new(1,1,1) Icon.BackgroundTransparency = 1 Icon.BorderSizePixel = 0 Icon.BorderColor3 = Color3.new(0,0,0) Icon.Image = Page.Icon Icon.ImageColor3 = Color3.fromRGB(120,120,120) -- NewPage.Name = "NewPage" NewPage.Position = UDim2.new(0,10,0,60) NewPage.Size = UDim2.new(1,-20,1,-65) NewPage.BackgroundColor3 = Color3.new(1,1,1) NewPage.BackgroundTransparency = 1 NewPage.BorderSizePixel = 0 NewPage.BorderColor3 = Color3.new(0,0,0) NewPage.ZIndex = 53 NewPage.Visible = false -- Left.Name = "Left" Left.Size = UDim2.new(0.5,-4,1,0) Left.BackgroundColor3 = Color3.new(1,1,1) Left.BackgroundTransparency = 1 Left.BorderSizePixel = 0 --// Left.ScrollBarThickness = 0.1 Left.BorderColor3 = Color3.new(0,0,0) Left.ZIndex = 54 -- LeftLayout.Name = "LeftLayout" LeftLayout.SortOrder = Enum.SortOrder.LayoutOrder LeftLayout.Padding = UDim.new(0,8) -- Right.Name = "Right" Right.Position = UDim2.new(0.5,4,0,0) Right.Size = UDim2.new(0.5,-4,1,0) --// Right.ScrollBarThickness = 0.1 Right.BackgroundColor3 = Color3.new(1,1,1) Right.BackgroundTransparency = 1 Right.BorderSizePixel = 0 Right.BorderColor3 = Color3.new(0,0,0) Right.ZIndex = 53 -- RightLayout.Name = "RightLayout" RightLayout.SortOrder = Enum.SortOrder.LayoutOrder RightLayout.Padding = UDim.new(0,8) -- // Functions function Page:Turn(bool) Page.Open = bool task.spawn(function() Page.Window.Elements.FadeThing.Visible = true TweenService:Create(Page.Window.Elements.FadeThing, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() task.wait(0.1) NewPage.Visible = Page.Open TweenService:Create(Page.Window.Elements.FadeThing, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() task.wait(0.1) Page.Window.Elements.FadeThing.Visible = false end) game:GetService("TweenService"):Create(TabButton, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = Page.Open and 0 or 1}):Play() game:GetService("TweenService"):Create(Title, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {TextColor3 = Page.Open and Color3.fromRGB(200,200,200) or Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {ImageColor3 = Page.Open and Color3.fromRGB(200,200,200) or Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(Accent, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundTransparency = Page.Open and 0 or 1}):Play() end -- Library:Connection(TabButton.MouseButton1Click, function() if not Page.Open then Page:Turn(true) for _, Pages in pairs(Page.Window.Pages) do if Pages.Open and Pages ~= Page then Pages:Turn(false) end end end end) -- Library:Connection(TabButton.MouseEnter, function() if not Page.Open then game:GetService("TweenService"):Create(Title, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(180,180,180)}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {ImageColor3 = Color3.fromRGB(180,180,180)}):Play() end end) -- Library:Connection(TabButton.MouseLeave, function() if not Page.Open then game:GetService("TweenService"):Create(Title, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {ImageColor3 = Color3.fromRGB(120,120,120)}):Play() end end) -- // Elements Page.Elements = { Left = Left, Right = Right, TabButton = TabButton } -- // Drawings if #Page.Window.Pages == 0 then Page:Turn(true) end Page.Window.Pages[#Page.Window.Pages + 1] = Page Page.Window:UpdateTabs() return setmetatable(Page, Library.Pages) end -- function Pages:Section(Properties) if not Properties then Properties = {} end -- local Section = { Name = Properties.Name or "Section", Page = self, Side = (Properties.side or Properties.Side or "left"):lower(), Size = Properties.size or Properties.Size or 200, Elements = {}, Content = {}, } -- local NewSection = Instance.new('Frame', Section.Side == "left" and Section.Page.Elements.Left or Section.Side == "right" and Section.Page.Elements.Right) local UIStroke = Instance.new('UIStroke', NewSection) local UICorner = Instance.new('UICorner', NewSection) local Frame = Instance.new('Frame', NewSection) local Title = Instance.new('TextLabel', NewSection) local Content = Instance.new('Frame', NewSection) local UIListLayout = Instance.new('UIListLayout', Content) -- NewSection.Name = "NewSection" NewSection.Size = Section.Size == "Fill" and UDim2.new(1,0,1,0) or UDim2.new(1,0,0,Section.Size) NewSection.BackgroundColor3 = Color3.new(0.0784314, 0.0784314, 0.0784314) NewSection.BorderSizePixel = 0 NewSection.BorderColor3 = Color3.new(0,0,0) NewSection.ZIndex = 53 -- UIStroke.Color = Color3.new(0.137255, 0.137255, 0.137255) -- Frame.Position = UDim2.new(0,0,0,20) Frame.Size = UDim2.new(1,0,0,1) Frame.BackgroundColor3 = Color3.new(0.1569,0.1569,0.1569) Frame.BorderSizePixel = 0 Frame.BorderColor3 = Color3.new(0,0,0) -- Title.Name = "Title" Title.Position = UDim2.new(0,8,0,1) Title.Size = UDim2.new(1,-10,0,20) Title.BackgroundColor3 = Color3.new(1,1,1) Title.BackgroundTransparency = 1 Title.BorderSizePixel = 0 Title.BorderColor3 = Color3.new(0,0,0) Title.Text = Section.Name Title.TextColor3 = Color3.new(0.7059,0.7059,0.7059) Title.Font = Enum.Font.Gotham Title.TextSize = Library.FontSize Title.TextXAlignment = Enum.TextXAlignment.Left -- Content.Name = "Content" Content.Position = UDim2.new(0,10,0,30) Content.Size = UDim2.new(1,-20,1,-40) Content.BackgroundColor3 = Color3.new(1,1,1) Content.BackgroundTransparency = 1 Content.BorderSizePixel = 0 Content.BorderColor3 = Color3.new(0,0,0) Content.ZIndex = 53 -- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0,8) -- // Elements Section.Elements = { SectionContent = Content } -- // Returning Section.Page.Sections[#Section.Page.Sections + 1] = Section return setmetatable(Section, Library.Sections) end -- function Sections:Toggle(Properties) if not Properties then Properties = {} end -- local Toggle = { Window = self.Window, Page = self.Page, Section = self, Risk = Properties.Risk or false, Name = Properties.Name or "Toggle", State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or false ), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), Toggled = false, } -- local NewToggle = Instance.new('TextButton', Toggle.Section.Elements.SectionContent) local ToggleTitle = Instance.new('TextLabel', NewToggle) local ToggleFrame = Instance.new('Frame', NewToggle) local UICorner_2 = Instance.new('UICorner', ToggleFrame) local ToggleAccent = Instance.new('Frame', ToggleFrame) local UICorner_3 = Instance.new('UICorner', ToggleAccent) local Circle = Instance.new('Frame', ToggleFrame) local UICorner_4 = Instance.new('UICorner', Circle) -- NewToggle.Name = "NewToggle" NewToggle.Size = UDim2.new(1,0,0,17) NewToggle.BackgroundColor3 = Color3.new(1,1,1) NewToggle.BackgroundTransparency = 1 NewToggle.BorderSizePixel = 0 NewToggle.BorderColor3 = Color3.new(0,0,0) NewToggle.Text = "" NewToggle.TextColor3 = Color3.new(0,0,0) NewToggle.AutoButtonColor = false NewToggle.Font = Enum.Font.SourceSans NewToggle.TextSize = 14 NewToggle.ZIndex = 53 -- ToggleTitle.Name = "ToggleTitle" ToggleTitle.Size = UDim2.new(1,-10,0,17) ToggleTitle.BackgroundColor3 = Color3.new(1,1,1) ToggleTitle.BackgroundTransparency = 1 ToggleTitle.BorderSizePixel = 0 ToggleTitle.BorderColor3 = Color3.new(0,0,0) ToggleTitle.Text = Toggle.Name ToggleTitle.TextColor3 = Color3.new(0.7843,0.7843,0.7843) ToggleTitle.Font = Enum.Font.Gotham ToggleTitle.TextSize = Library.FontSize ToggleTitle.TextXAlignment = Enum.TextXAlignment.Left -- ToggleFrame.Name = "ToggleFrame" ToggleFrame.Position = UDim2.new(1,-40,0,0) ToggleFrame.Size = UDim2.new(0,40,1,0) ToggleFrame.BackgroundColor3 = Color3.new(0.051,0.051,0.051) ToggleFrame.BorderSizePixel = 0 ToggleFrame.BorderColor3 = Color3.new(0,0,0) ToggleFrame.ZIndex = 53 -- ToggleAccent.Name = "ToggleAccent" ToggleAccent.Position = UDim2.new(0,1,0,1) ToggleAccent.Size = UDim2.new(1,-2,1,-2) ToggleAccent.BackgroundColor3 = Library.Accent ToggleAccent.BackgroundTransparency = 1 ToggleAccent.BorderSizePixel = 0 ToggleAccent.BorderColor3 = Color3.new(0,0,0) ToggleAccent.ZIndex = 53 table.insert(Library.ThemeObjects, ToggleAccent) -- Circle.Name = "Circle" Circle.Position = UDim2.new(0,5,0.5,-5) Circle.Size = UDim2.new(0,10,0,10) Circle.BackgroundColor3 = Color3.new(1,1,1) Circle.BorderSizePixel = 0 Circle.BorderColor3 = Color3.new(0,0,0) Circle.ZIndex = 53 -- UICorner_4.CornerRadius = UDim.new(1,0) -- // Functions local function SetState() Toggle.Toggled = not Toggle.Toggled if Toggle.Toggled then game:GetService("TweenService"):Create(ToggleAccent, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() game:GetService("TweenService"):Create(Circle, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(1,-15,0.5,-5)}):Play() else game:GetService("TweenService"):Create(ToggleAccent, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() game:GetService("TweenService"):Create(Circle, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,5,0.5,-5)}):Play() end Library.Flags[Toggle.Flag] = Toggle.Toggled Toggle.Callback(Toggle.Toggled) end -- // Options List function Toggle:OptionList(Properties) if not Properties then Properties = {} end -- local Section = { Elements = {}, Content = {}, } -- local OptionButton = Instance.new('ImageButton', NewToggle) local OptionList = Instance.new('Frame', OptionButton) local UICorner = Instance.new('UICorner', OptionList) local UIStroke = Instance.new('UIStroke', OptionList) local OptionContent = Instance.new('Frame', OptionList) local UIListLayout = Instance.new('UIListLayout', OptionContent) -- OptionButton.Name = "OptionButton" OptionButton.Position = UDim2.new(1,-65,0,1) OptionButton.Size = UDim2.new(0,15,0,15) OptionButton.BackgroundColor3 = Color3.new(1,1,1) OptionButton.BackgroundTransparency = 1 OptionButton.BorderSizePixel = 0 OptionButton.BorderColor3 = Color3.new(0,0,0) OptionButton.Image = "http://www.roblox.com/asset/?id=6031280882" OptionButton.ImageColor3 = Color3.new(0.7843,0.7843,0.7843) OptionButton.ZIndex = 54 -- OptionList.Name = "OptionList" OptionList.Position = UDim2.new(0,70,0,-10) OptionList.Size = UDim2.new(0,200,0,10) OptionList.BackgroundColor3 = Color3.new(0.0784314, 0.0784314, 0.0784314) OptionList.BorderSizePixel = 0 OptionList.BorderColor3 = Color3.new(0,0,0) OptionList.AutomaticSize = Enum.AutomaticSize.Y OptionList.Visible = false OptionList.ZIndex = 54 -- UIStroke.Color = Color3.new(0.137255, 0.137255, 0.137255) -- OptionContent.Name = "OptionContent" OptionContent.Position = UDim2.new(0,10,0,10) OptionContent.Size = UDim2.new(1,-20,1,-10) OptionContent.BackgroundColor3 = Color3.new(1,1,1) OptionContent.BackgroundTransparency = 1 OptionContent.BorderSizePixel = 0 OptionContent.BorderColor3 = Color3.new(0,0,0) OptionContent.AutomaticSize = Enum.AutomaticSize.Y OptionContent.ZIndex = 54 -- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0,4) -- Library:Connection(OptionButton.MouseButton1Click, function() local State = not OptionList.Visible --// local Position = OptionButton.AbsolutePosition --// OptionList.Position = UDim2.fromOffset(Position.X, Position.Y) OptionList.Visible = State Library.OptionListOpen = State end) -- Library:Connection(game:GetService("UserInputService").InputBegan, function(Input) if (Library.DropdownOpen) then return end; if OptionList.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then if not Library:IsMouseOverFrame(OptionList) and not Library:IsMouseOverFrame(OptionButton) then OptionList.Visible = false end end end) -- // Elements Section.Elements = { SectionContent = OptionContent } -- // Returning return setmetatable(Section, Library.Sections) end -- // Misc Functions function Toggle.Set(bool) bool = type(bool) == "boolean" and bool or false if Toggle.Toggled ~= bool then SetState() end end Toggle.Set(Toggle.State) Library.Flags[Toggle.Flag] = Toggle.State Flags[Toggle.Flag] = Toggle.Set -- // Returning Library:Connection(NewToggle.MouseButton1Click, SetState) return Toggle end -- function Sections:Nest(Properties) if not Properties then Properties = {} end -- local Section = { Name = Properties.Name or "Section", RealSection = self, Size = Properties.size or Properties.Size or 200, Elements = {}, Content = {}, } -- local ScrollHolder = Instance.new("Frame", Section.RealSection.Elements.SectionContent) local NewScroll = Instance.new('ScrollingFrame', ScrollHolder) local UICorner2 = Instance.new('UICorner', ScrollHolder) local UIStroke = Instance.new('UIStroke', ScrollHolder) local ScrollContent = Instance.new('Frame', NewScroll) local UIListLayout = Instance.new('UIListLayout', ScrollContent) -- ScrollHolder.Name = "ScrollHolder" ScrollHolder.Size = UDim2.new(1,0,0,Section.Size) ScrollHolder.BackgroundColor3 = Color3.new(0.0784314, 0.0784314, 0.0784314) ScrollHolder.BorderSizePixel = 0 ScrollHolder.BorderColor3 = Color3.new(0,0,0) ScrollHolder.ClipsDescendants = true -- NewScroll.Name = "NewScroll" NewScroll.Size = UDim2.new(1,0,1,0) NewScroll.BackgroundColor3 = Color3.new(0.098,0.098,0.098) NewScroll.BackgroundTransparency = 1 NewScroll.BorderSizePixel = 0 NewScroll.BorderColor3 = Color3.new(0,0,0) NewScroll.CanvasSize = UDim2.new(0,0,0,0) NewScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y NewScroll.ScrollBarThickness = 2 NewScroll.TopImage = "" NewScroll.BottomImage = "" NewScroll.VerticalScrollBarInset = Enum.ScrollBarInset.Always NewScroll.ScrollBarImageColor3 = Library.Accent NewScroll.ClipsDescendants = true table.insert(Library.ThemeObjects, NewScroll) -- UIStroke.Color = Color3.new(0.137255, 0.137255, 0.137255) -- ScrollContent.Name = "ScrollContent" ScrollContent.Position = UDim2.new(0,10,0,5) ScrollContent.Size = UDim2.new(1,-20,0,0) ScrollContent.BackgroundColor3 = Color3.new(1,1,1) ScrollContent.BackgroundTransparency = 1 ScrollContent.BorderSizePixel = 0 ScrollContent.BorderColor3 = Color3.new(0,0,0) ScrollContent.AutomaticSize = Enum.AutomaticSize.Y -- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0,4) -- // Elements Section.Elements = { SectionContent = ScrollContent } -- // Returning return setmetatable(Section, Library.Sections) end -- function Sections:Slider(Properties) if not Properties then Properties = {} end -- local Slider = { Window = self.Window, Page = self.Page, Section = self, Name = Properties.Name or "Slider", Min = (Properties.min or Properties.Min or Properties.minimum or Properties.Minimum or 0), State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or 10 ), Max = (Properties.max or Properties.Max or Properties.maximum or Properties.Maximum or 100), Sub = ( Properties.suffix or Properties.Suffix or Properties.ending or Properties.Ending or Properties.prefix or Properties.Prefix or Properties.measurement or Properties.Measurement or "" ), Decimals = (Properties.decimals or Properties.Decimals or 1), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), } local TextValue = ("[value]" .. Slider.Sub) -- local NewSlider = Instance.new('TextButton', Slider.Section.Elements.SectionContent) local SliderTitle = Instance.new('TextLabel', NewSlider) local ToggleFrame = Instance.new('Frame', NewSlider) local UICorner_2 = Instance.new('UICorner', ToggleFrame) local FillHold = Instance.new('Frame', ToggleFrame) local UICorner_3 = Instance.new('UICorner', FillHold) local Fill = Instance.new('TextButton', FillHold) local UICorner_4 = Instance.new('UICorner', Fill) local Circle = Instance.new('Frame', Fill) local UICorner_4 = Instance.new('UICorner', Circle) local SliderValue = Instance.new('TextLabel', NewSlider) -- NewSlider.Name = "NewSlider" NewSlider.Size = UDim2.new(1,0,0,32) NewSlider.BackgroundColor3 = Color3.new(1,1,1) NewSlider.BackgroundTransparency = 1 NewSlider.BorderSizePixel = 0 NewSlider.BorderColor3 = Color3.new(0,0,0) NewSlider.Text = "" NewSlider.TextColor3 = Color3.new(0,0,0) NewSlider.AutoButtonColor = false NewSlider.Font = Enum.Font.SourceSans NewSlider.TextSize = 14 NewSlider.ZIndex = 53 -- SliderTitle.Name = "SliderTitle" SliderTitle.Size = UDim2.new(1,-10,0,17) SliderTitle.BackgroundColor3 = Color3.new(1,1,1) SliderTitle.BackgroundTransparency = 1 SliderTitle.BorderSizePixel = 0 SliderTitle.BorderColor3 = Color3.new(0,0,0) SliderTitle.Text = Slider.Name SliderTitle.TextColor3 = Color3.new(0.7843,0.7843,0.7843) SliderTitle.Font = Enum.Font.Gotham SliderTitle.TextSize = Library.FontSize SliderTitle.TextXAlignment = Enum.TextXAlignment.Left -- ToggleFrame.Name = "ToggleFrame" ToggleFrame.Position = UDim2.new(0,0,1,-8) ToggleFrame.Size = UDim2.new(1,0,0,8) ToggleFrame.BackgroundColor3 = Color3.new(0.051,0.051,0.051) ToggleFrame.BorderSizePixel = 0 ToggleFrame.BorderColor3 = Color3.new(0,0,0) ToggleFrame.ZIndex = 53 -- FillHold.Name = "FillHold" FillHold.Position = UDim2.new(0,1,0,1) FillHold.Size = UDim2.new(1,-2,1,-2) FillHold.BackgroundColor3 = Color3.new(0.6667,0.6667,1) FillHold.BackgroundTransparency = 1 FillHold.BorderSizePixel = 0 FillHold.BorderColor3 = Color3.new(0,0,0) FillHold.ZIndex = 53 -- Fill.Name = "Fill" Fill.Size = UDim2.new(0,0,1,0) Fill.BackgroundColor3 = Library.Accent Fill.BorderSizePixel = 0 Fill.BorderColor3 = Color3.new(0,0,0) Fill.Text = "" Fill.TextColor3 = Color3.new(0,0,0) Fill.AutoButtonColor = false Fill.Font = Enum.Font.SourceSans Fill.TextSize = 14 Fill.ZIndex = 53 table.insert(Library.ThemeObjects, Fill) -- Circle.Name = "Circle" Circle.Position = UDim2.new(1,-6,0.5,-6) Circle.Size = UDim2.new(0,13,0,13) Circle.BackgroundColor3 = Color3.new(1,1,1) Circle.BorderSizePixel = 0 Circle.BorderColor3 = Color3.new(0,0,0) Circle.ZIndex = 53 -- UICorner_4.CornerRadius = UDim.new(1,0) -- SliderValue.Name = "SliderValue" SliderValue.Size = UDim2.new(1,0,0,17) SliderValue.BackgroundColor3 = Color3.new(1,1,1) SliderValue.BackgroundTransparency = 1 SliderValue.BorderSizePixel = 0 SliderValue.BorderColor3 = Color3.new(0,0,0) SliderValue.Text = "" SliderValue.TextColor3 = Color3.new(0.4706,0.4706,0.4706) SliderValue.Font = Enum.Font.Gotham SliderValue.TextSize = Library.FontSize SliderValue.TextXAlignment = Enum.TextXAlignment.Right -- // Functions local Sliding = false local Val = Slider.State local function Set(value) value = math.clamp(Library:Round(value, Slider.Decimals), Slider.Min, Slider.Max) local sizeX = ((value - Slider.Min) / (Slider.Max - Slider.Min)) --Fill.Size = UDim2.new(sizeX, 0, 1, 0) game:GetService("TweenService"):Create(Fill, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(sizeX, 0, 1, 0)}):Play() SliderValue.Text = TextValue:gsub("%[value%]", string.format("%.14g", value)) Val = value Library.Flags[Slider.Flag] = value Slider.Callback(value) end -- local function Slide(input) local sizeX = (input.Position.X - NewSlider.AbsolutePosition.X) / NewSlider.AbsoluteSize.X local value = ((Slider.Max - Slider.Min) * sizeX) + Slider.Min Set(value) end -- Library:Connection(NewSlider.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Sliding = true Slide(input) end end) Library:Connection(NewSlider.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Sliding = false end end) Library:Connection(Fill.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Sliding = true Slide(input) end end) Library:Connection(Fill.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Sliding = false end end) Library:Connection(game:GetService("UserInputService").InputChanged, function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if Sliding then Slide(input) end end end) -- function Slider:Set(Value) Set(Value) end -- Flags[Slider.Flag] = Set Library.Flags[Slider.Flag] = Slider.State Set(Slider.State) -- // Returning return Slider end -- function Sections:List(Properties) local Properties = Properties or {}; local Dropdown = { Window = self.Window, Page = self.Page, Section = self, Open = false, Name = Properties.Name or Properties.name or nil, Options = (Properties.options or Properties.Options or Properties.values or Properties.Values or { "1", "2", "3", }), Max = (Properties.Max or Properties.max or nil), State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or nil ), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), OptionInsts = {}, } -- local NewDropdown = Instance.new('Frame', Dropdown.Section.Elements.SectionContent) local DropdownTitle = Instance.new('TextLabel', NewDropdown) local ToggleFrame = Instance.new('TextButton', NewDropdown) local UICorner_2 = Instance.new('UICorner', ToggleFrame) local ToggleContent = Instance.new('Frame', ToggleFrame) local UICorner_3 = Instance.new('UICorner', ToggleContent) local UIListLayout = Instance.new('UIListLayout', ToggleContent) local DropdownTitle_2 = Instance.new('TextLabel', ToggleFrame) local Icon = Instance.new('ImageLabel', ToggleFrame) -- NewDropdown.Name = "NewDropdown" NewDropdown.Size = UDim2.new(1,0,0,48) NewDropdown.BackgroundColor3 = Color3.new(1,1,1) NewDropdown.BackgroundTransparency = 1 NewDropdown.BorderSizePixel = 0 NewDropdown.BorderColor3 = Color3.new(0,0,0) NewDropdown.ZIndex = 54 -- DropdownTitle.Name = "DropdownTitle" DropdownTitle.Size = UDim2.new(1,-10,0,17) DropdownTitle.BackgroundColor3 = Color3.new(1,1,1) DropdownTitle.BackgroundTransparency = 1 DropdownTitle.BorderSizePixel = 0 DropdownTitle.BorderColor3 = Color3.new(0,0,0) DropdownTitle.Text = Dropdown.Name DropdownTitle.TextColor3 = Color3.new(0.7843,0.7843,0.7843) DropdownTitle.Font = Enum.Font.Gotham DropdownTitle.TextSize = Library.FontSize DropdownTitle.TextXAlignment = Enum.TextXAlignment.Left -- ToggleFrame.Name = "ToggleFrame" ToggleFrame.Position = UDim2.new(0,0,1,-24) ToggleFrame.Size = UDim2.new(1,0,0,24) ToggleFrame.BackgroundColor3 = Color3.new(0.098,0.098,0.098) ToggleFrame.BorderSizePixel = 0 ToggleFrame.BorderColor3 = Color3.new(0,0,0) ToggleFrame.ZIndex = 54 ToggleFrame.AutoButtonColor = false ToggleFrame.Text = "" -- UICorner_2.CornerRadius = UDim.new(0,4) -- ToggleContent.Name = "ToggleContent" ToggleContent.Position = UDim2.new(0,0,1,0) ToggleContent.Size = UDim2.new(1,0,0,0) ToggleContent.BackgroundColor3 = Color3.new(0.0706,0.0706,0.0706) ToggleContent.BorderSizePixel = 0 ToggleContent.BorderColor3 = Color3.new(0,0,0) ToggleContent.ZIndex = 54 ToggleContent.ClipsDescendants = true -- UICorner_3.CornerRadius = UDim.new(0,4) -- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder -- DropdownTitle_2.Name = "DropdownTitle" DropdownTitle_2.Position = UDim2.new(0,4,0,0) DropdownTitle_2.Size = UDim2.new(1,-10,1,0) DropdownTitle_2.BackgroundColor3 = Color3.new(1,1,1) DropdownTitle_2.BackgroundTransparency = 1 DropdownTitle_2.BorderSizePixel = 0 DropdownTitle_2.BorderColor3 = Color3.new(0,0,0) DropdownTitle_2.Text = "" DropdownTitle_2.TextColor3 = Color3.new(0.7843,0.7843,0.7843) DropdownTitle_2.Font = Enum.Font.Gotham DropdownTitle_2.TextSize = Library.FontSize DropdownTitle_2.TextXAlignment = Enum.TextXAlignment.Left -- Icon.Name = "Icon" Icon.Position = UDim2.new(1,-25,0,5) Icon.Size = UDim2.new(0,20,0,15) Icon.BackgroundColor3 = Color3.new(1,1,1) Icon.BackgroundTransparency = 1 Icon.BorderSizePixel = 0 Icon.BorderColor3 = Color3.new(0,0,0) Icon.Image = "http://www.roblox.com/asset/?id=6034818372" Icon.ImageColor3 = Color3.new(0.4706,0.4706,0.4706) Icon.ZIndex = 54 local Toggled = false local Count = 0 Library:Connection(ToggleFrame.MouseButton1Click, function() Toggled = not Toggled Library.DropdownOpen = Toggled if Toggled then NewDropdown.ZIndex = 55 game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Rotation = 180}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageColor3 = Color3.fromRGB(200,200,200)}):Play() game:GetService("TweenService"):Create(ToggleContent, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1,0,0,Count * 22)}):Play() else game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Rotation = 0}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(ToggleContent, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1,0,0,0)}):Play() task.wait(0.20) NewDropdown.ZIndex = 54 end end) -- Library:Connection(game:GetService("UserInputService").InputBegan, function(Input) if ToggleContent.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then if not Library:IsMouseOverFrame(ToggleContent) and not Library:IsMouseOverFrame(ToggleFrame) and not Library.OptionListOpen then Toggled = false Library.DropdownOpen = false game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Rotation = 0}):Play() game:GetService("TweenService"):Create(ToggleContent, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1,0,0,0)}):Play() task.wait(0.20) NewDropdown.ZIndex = 54 end end end) -- local Chosen = Dropdown.Max and {} or nil -- local function handleoptionclick(option, button, text, dot) button.MouseButton1Click:Connect(function() if Dropdown.Max then if table.find(Chosen, option) then table.remove(Chosen, table.find(Chosen, option)) local textchosen = {} local cutobject = false for _, opt in next, Chosen do table.insert(textchosen, opt) end DropdownTitle_2.Text = #Chosen == 0 and "" or table.concat(textchosen, ", ") .. (cutobject and ", ..." or "") game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,4,0,0)}):Play() Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) else if #Chosen == Dropdown.Max then Dropdown.OptionInsts[Chosen[1]].text.Visible = false table.remove(Chosen, 1) end table.insert(Chosen, option) local textchosen = {} local cutobject = false for _, opt in next, Chosen do table.insert(textchosen, opt) end DropdownTitle_2.Text = #Chosen == 0 and "" or table.concat(textchosen, ", ") .. (cutobject and ", ..." or "") game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200,200,200)}):Play() game:GetService("TweenService"):Create(dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,20,0,0)}):Play() Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) end else for opt, tbl in next, Dropdown.OptionInsts do if opt ~= option then game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,4,0,0)}):Play() game:GetService("TweenService"):Create(tbl.dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() end end Chosen = option DropdownTitle_2.Text = option game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200,200,200)}):Play() game:GetService("TweenService"):Create(dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() game:GetService("TweenService"):Create(text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,20,0,0)}):Play() Library.Flags[Dropdown.Flag] = option Dropdown.Callback(option) end end) end -- local function createoptions(tbl) for _, option in next, tbl do Dropdown.OptionInsts[option] = {} local TextButton = Instance.new('TextButton', ToggleContent) local DropdownTitle3 = Instance.new('TextLabel', TextButton) local AccentDot = Instance.new('Frame', TextButton) local OptionCorner = Instance.new('UICorner', AccentDot) -- TextButton.Size = UDim2.new(1,0,0,22) TextButton.BackgroundColor3 = Color3.new(1,1,1) TextButton.BackgroundTransparency = 1 TextButton.BorderSizePixel = 0 TextButton.BorderColor3 = Color3.new(0,0,0) TextButton.Text = "" TextButton.TextColor3 = Color3.new(0,0,0) TextButton.AutoButtonColor = false TextButton.Font = Enum.Font.SourceSans TextButton.TextSize = 14 Dropdown.OptionInsts[option].button = TextButton -- DropdownTitle3.Name = "DropdownTitle" DropdownTitle3.Position = UDim2.new(0,20,0,0) DropdownTitle3.Size = UDim2.new(1,-10,1,0) DropdownTitle3.BackgroundColor3 = Color3.new(1,1,1) DropdownTitle3.BackgroundTransparency = 1 DropdownTitle3.BorderSizePixel = 0 DropdownTitle3.BorderColor3 = Color3.new(0,0,0) DropdownTitle3.Text = option DropdownTitle3.TextColor3 = Color3.fromRGB(120,120,120) DropdownTitle3.Font = Enum.Font.Gotham DropdownTitle3.TextSize = Library.FontSize DropdownTitle3.TextXAlignment = Enum.TextXAlignment.Left Dropdown.OptionInsts[option].text = DropdownTitle3 -- AccentDot.Name = "AccentDot" AccentDot.Position = UDim2.new(0,8,0,8) AccentDot.Size = UDim2.new(0,6,0,6) AccentDot.BackgroundColor3 = Library.Accent AccentDot.BorderSizePixel = 0 AccentDot.BorderColor3 = Color3.new(0,0,0) table.insert(Library.ThemeObjects, AccentDot) Dropdown.OptionInsts[option].dot = AccentDot -- OptionCorner.CornerRadius = UDim.new(1,0) Count += 1 handleoptionclick(option, TextButton, DropdownTitle3, AccentDot) end end createoptions(Dropdown.Options) -- local set set = function(option) if Dropdown.Max then table.clear(Chosen) option = type(option) == "table" and option or {} for opt, tbl in next, Dropdown.OptionInsts do if not table.find(option, opt) then game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,4,0,0)}):Play() game:GetService("TweenService"):Create(tbl.dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() end end for i, opt in next, option do if table.find(Dropdown.Options, opt) and #Chosen < Dropdown.Max then table.insert(Chosen, opt) game:GetService("TweenService"):Create(Dropdown.OptionInsts[opt].text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200,200,200)}):Play() game:GetService("TweenService"):Create(Dropdown.OptionInsts[opt].dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() game:GetService("TweenService"):Create(Dropdown.OptionInsts[opt].text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,20,0,0)}):Play() end end local textchosen = {} local cutobject = false for _, opt in next, Chosen do table.insert(textchosen, opt) end DropdownTitle_2.Text = #Chosen == 0 and "" or table.concat(textchosen, ", ") .. (cutobject and ", ..." or "") Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) end end -- function Dropdown:Set(option) if Dropdown.Max then set(option) else for opt, tbl in next, Dropdown.OptionInsts do if opt ~= option then game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(120,120,120)}):Play() game:GetService("TweenService"):Create(tbl.text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,4,0,0)}):Play() game:GetService("TweenService"):Create(tbl.dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() end end if table.find(Dropdown.Options, option) then Chosen = option DropdownTitle_2.Text = option game:GetService("TweenService"):Create(Dropdown.OptionInsts[option].text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200,200,200)}):Play() game:GetService("TweenService"):Create(Dropdown.OptionInsts[option].dot, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() game:GetService("TweenService"):Create(Dropdown.OptionInsts[option].text, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,20,0,0)}):Play() Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) else Chosen = nil DropdownTitle_2.Text = "" Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) end end end -- function Dropdown:Refresh(tbl) Count = 0 for _, opt in next, Dropdown.OptionInsts do coroutine.wrap(function() opt.button:Destroy() end)() end table.clear(Dropdown.OptionInsts) createoptions(tbl) Chosen = nil Library.Flags[Dropdown.Flag] = Chosen Dropdown.Callback(Chosen) end -- // Returning if Dropdown.Max then Flags[Dropdown.Flag] = set else Flags[Dropdown.Flag] = Dropdown end Dropdown:Set(Dropdown.State) return Dropdown end -- function Sections:Colorpicker(Properties) local Properties = Properties or {} local Colorpicker = { Window = self.Window, Page = self.Page, Section = self, Name = (Properties.Name or "Colorpicker"), State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or Color3.fromRGB(255, 0, 0) ), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), Colorpickers = 0, } -- local NewColor = Instance.new("TextButton") NewColor.Name = "NewColor" NewColor.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json") NewColor.Text = "" NewColor.TextColor3 = Color3.fromRGB(0, 0, 0) NewColor.TextSize = 14 NewColor.AutoButtonColor = false NewColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) NewColor.BackgroundTransparency = 1 NewColor.BorderColor3 = Color3.fromRGB(0, 0, 0) NewColor.BorderSizePixel = 0 NewColor.Size = UDim2.new(1, 0, 0, 17) NewColor.ZIndex = 54 NewColor.Parent = Colorpicker.Section.Elements.SectionContent local ToggleTitle = Instance.new("TextLabel") ToggleTitle.Name = "ToggleTitle" ToggleTitle.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") ToggleTitle.Text = Colorpicker.Name ToggleTitle.TextColor3 = Color3.fromRGB(200, 200, 200) ToggleTitle.TextSize = 13 ToggleTitle.TextXAlignment = Enum.TextXAlignment.Left ToggleTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ToggleTitle.BackgroundTransparency = 1 ToggleTitle.BorderColor3 = Color3.fromRGB(0, 0, 0) ToggleTitle.BorderSizePixel = 0 ToggleTitle.Size = UDim2.new(1, -10, 0, 17) ToggleTitle.Parent = NewColor -- // Functions Colorpicker.Colorpickers = Colorpicker.Colorpickers + 1 local colorpickertypes = Library:NewPicker( Colorpicker.Name, Colorpicker.State, NewColor, Colorpicker.Colorpickers, Colorpicker.Flag, Colorpicker.Callback ) function Colorpicker:Set(color) colorpickertypes:Set(color, false, true) end function Colorpicker:Colorpicker(Properties) local Properties = Properties or {} local NewColorpicker = { State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or Color3.fromRGB(255, 0, 0) ), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), } -- // Functions Colorpicker.Colorpickers = Colorpicker.Colorpickers + 1 local Newcolorpickertypes = Library:NewPicker( "", NewColorpicker.State, NewColor, Colorpicker.Colorpickers, NewColorpicker.Flag, NewColorpicker.Callback ) function NewColorpicker:Set(color) Newcolorpickertypes:Set(color) end -- // Returning return NewColorpicker end -- // Returning return Colorpicker end -- function Sections:Keybind(Properties) local Properties = Properties or {} local Keybind = { Section = self, Name = Properties.name or Properties.Name or "Keybind", State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or Enum.KeyCode.E ), Mode = (Properties.mode or Properties.Mode or "Toggle"), UseKey = (Properties.UseKey or false), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), Binding = nil, } local Key local State = false -- local NewKey = Instance.new("TextButton") NewKey.Name = "NewKey" NewKey.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json") NewKey.Text = "" NewKey.TextColor3 = Color3.fromRGB(0, 0, 0) NewKey.TextSize = 14 NewKey.AutoButtonColor = false NewKey.BackgroundColor3 = Color3.fromRGB(255, 255, 255) NewKey.BackgroundTransparency = 1 NewKey.BorderColor3 = Color3.fromRGB(0, 0, 0) NewKey.BorderSizePixel = 0 NewKey.Size = UDim2.new(1, 0, 0, 17) NewKey.ZIndex = 54 NewKey.Parent = Keybind.Section.Elements.SectionContent local ToggleTitle = Instance.new("TextLabel") ToggleTitle.Name = "ToggleTitle" ToggleTitle.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") ToggleTitle.Text = Keybind.Name ToggleTitle.TextColor3 = Color3.fromRGB(200, 200, 200) ToggleTitle.TextSize = 13 ToggleTitle.TextXAlignment = Enum.TextXAlignment.Left ToggleTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ToggleTitle.BackgroundTransparency = 1 ToggleTitle.BorderColor3 = Color3.fromRGB(0, 0, 0) ToggleTitle.BorderSizePixel = 0 ToggleTitle.Size = UDim2.new(1, -10, 0, 17) ToggleTitle.Parent = NewKey local KeyText = Instance.new("TextLabel") KeyText.Name = "KeyText" KeyText.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") KeyText.Text = "None" KeyText.TextColor3 = Color3.fromRGB(200, 200, 200) KeyText.TextSize = 13 KeyText.TextXAlignment = Enum.TextXAlignment.Right KeyText.BackgroundColor3 = Color3.fromRGB(255, 255, 255) KeyText.BackgroundTransparency = 1 KeyText.BorderColor3 = Color3.fromRGB(0, 0, 0) KeyText.BorderSizePixel = 0 KeyText.Position = UDim2.new(1, -180, 0, 0) KeyText.Size = UDim2.new(1, -10, 0, 17) KeyText.Parent = NewKey -- // Functions local function set(newkey) if string.find(tostring(newkey), "Enum") then if c then c:Disconnect() if Keybind.Flag then Library.Flags[Keybind.Flag] = false end Keybind.Callback(false) end if tostring(newkey):find("Enum.KeyCode.") then newkey = Enum.KeyCode[tostring(newkey):gsub("Enum.KeyCode.", "")] elseif tostring(newkey):find("Enum.UserInputType.") then newkey = Enum.UserInputType[tostring(newkey):gsub("Enum.UserInputType.", "")] end if newkey == Enum.KeyCode.Backspace then Key = nil if Keybind.UseKey then if Keybind.Flag then Library.Flags[Keybind.Flag] = Key end Keybind.Callback(Key) end local text = "None" KeyText.Text = text elseif newkey ~= nil then Key = newkey if Keybind.UseKey then if Keybind.Flag then Library.Flags[Keybind.Flag] = Key end Keybind.Callback(Key) end local text = (Library.Keys[newkey] or tostring(newkey):gsub("Enum.KeyCode.", "")) KeyText.Text = text end Library.Flags[Keybind.Flag .. "_KEY"] = newkey elseif table.find({ "Always", "Toggle", "Hold" }, newkey) then if not Keybind.UseKey then Library.Flags[Keybind.Flag .. "_KEY STATE"] = newkey Keybind.Mode = newkey if Keybind.Mode == "Always" then State = true if Keybind.Flag then Library.Flags[Keybind.Flag] = State end Keybind.Callback(true) end end else State = newkey if Keybind.Flag then Library.Flags[Keybind.Flag] = newkey end Keybind.Callback(newkey) end end -- set(Keybind.State) set(Keybind.Mode) NewKey.MouseButton1Click:Connect(function() if not Keybind.Binding then KeyText.Text = "..." TweenService:Create(KeyText, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(255,255,255)}):Play() Keybind.Binding = Library:Connection( game:GetService("UserInputService").InputBegan, function(input, gpe) if gpe then return end; if input.UserInputType == Enum.UserInputType.Touch then return end; set( input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType ) Library:Disconnect(Keybind.Binding) task.wait() Keybind.Binding = nil TweenService:Create(KeyText, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200, 200, 200)}):Play() end ) end end) -- Library:Connection(game:GetService("UserInputService").InputBegan, function(inp, gpe) if (gpe) then return end; if (inp.KeyCode == Key or inp.UserInputType == Key) and not Keybind.Binding and not Keybind.UseKey then if Keybind.Mode == "Hold" then if Keybind.Flag then Library.Flags[Keybind.Flag] = true end c = Library:Connection(game:GetService("RunService").RenderStepped, function() if Keybind.Callback then Keybind.Callback(true) end end) elseif Keybind.Mode == "Toggle" then State = not State if Keybind.Flag then Library.Flags[Keybind.Flag] = State end Keybind.Callback(State) end end end) -- Library:Connection(game:GetService("UserInputService").InputEnded, function(inp, gpe) if gpe then return end; if Keybind.Mode == "Hold" and not Keybind.UseKey then if Key ~= "" or Key ~= nil then if inp.KeyCode == Key or inp.UserInputType == Key then if c then c:Disconnect() if Keybind.Flag then Library.Flags[Keybind.Flag] = false end if Keybind.Callback then Keybind.Callback(false) end end end end end end) -- Library.Flags[Keybind.Flag .. "_KEY"] = Keybind.State Library.Flags[Keybind.Flag .. "_KEY STATE"] = Keybind.Mode Flags[Keybind.Flag] = set Flags[Keybind.Flag .. "_KEY"] = set Flags[Keybind.Flag .. "_KEY STATE"] = set -- function Keybind:Set(key) set(key) end -- // Returning return Keybind end -- function Sections:Textbox(Properties) local Properties = Properties or {} local Textbox = { Window = self.Window, Page = self.Page, Section = self, Placeholder = ( Properties.placeholder or Properties.Placeholder or Properties.holder or Properties.Holder or "Enter your text here" ), State = ( Properties.state or Properties.State or Properties.def or Properties.Def or Properties.default or Properties.Default or "" ), Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), Flag = ( Properties.flag or Properties.Flag or Properties.pointer or Properties.Pointer or Library.NextFlag() ), } -- local NewBox = Instance.new("Frame") NewBox.Name = "NewBox" NewBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255) NewBox.BackgroundTransparency = 1 NewBox.BorderColor3 = Color3.fromRGB(0, 0, 0) NewBox.BorderSizePixel = 0 NewBox.Size = UDim2.new(1, 0, 0, 24) NewBox.ZIndex = 54 NewBox.Parent = Textbox.Section.Elements.SectionContent local ToggleFrame = Instance.new("Frame") ToggleFrame.Name = "ToggleFrame" ToggleFrame.BackgroundColor3 = Color3.fromRGB(13, 13, 13) ToggleFrame.BorderColor3 = Color3.fromRGB(0, 0, 0) ToggleFrame.BorderSizePixel = 0 ToggleFrame.Position = UDim2.new(0, 0, 1, -24) ToggleFrame.Size = UDim2.new(1, 0, 0, 24) ToggleFrame.ZIndex = 55 local UICorner2 = Instance.new("UICorner") UICorner2.Name = "UICorner_2" UICorner2.CornerRadius = UDim.new(0, 4) UICorner2.Parent = ToggleFrame local DropdownTitle = Instance.new("TextBox") DropdownTitle.Name = "DropdownTitle" DropdownTitle.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") DropdownTitle.Text = Textbox.State DropdownTitle.PlaceholderText = Textbox.Placeholder DropdownTitle.PlaceholderColor3 = Color3.fromRGB(145,145,145) DropdownTitle.TextColor3 = Color3.fromRGB(200, 200, 200) DropdownTitle.TextSize = 13 DropdownTitle.ClearTextOnFocus = false DropdownTitle.TextXAlignment = Enum.TextXAlignment.Left DropdownTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) DropdownTitle.BackgroundTransparency = 1 DropdownTitle.BorderColor3 = Color3.fromRGB(0, 0, 0) DropdownTitle.BorderSizePixel = 0 DropdownTitle.Position = UDim2.fromOffset(4, 0) DropdownTitle.Size = UDim2.new(1, -10, 1, 0) DropdownTitle.ZIndex = 53 DropdownTitle.Parent = ToggleFrame DropdownTitle.TextTruncate = Enum.TextTruncate.SplitWord ToggleFrame.Parent = NewBox -- DropdownTitle.FocusLost:Connect(function() Textbox.Callback(DropdownTitle.Text) Library.Flags[Textbox.Flag] = DropdownTitle.Text end) -- local function set(str) DropdownTitle.Text = str Library.Flags[Textbox.Flag] = str Textbox.Callback(str) end -- // Return Flags[Textbox.Flag] = set Library.Flags[Textbox.Flag] = DropdownTitle.Text return Textbox end -- function Sections:Button(Properties) local Properties = Properties or {} local Button = { Window = self.Window, Page = self.Page, Section = self, Name = Properties.Name or "button", Callback = ( Properties.callback or Properties.Callback or Properties.callBack or Properties.CallBack or function() end ), } -- local NewButton = Instance.new("TextButton") NewButton.Name = "NewButton" NewButton.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json") NewButton.Text = "" NewButton.TextColor3 = Color3.fromRGB(0, 0, 0) NewButton.TextSize = 14 NewButton.AutoButtonColor = false NewButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) NewButton.BackgroundTransparency = 1 NewButton.BorderColor3 = Color3.fromRGB(0, 0, 0) NewButton.BorderSizePixel = 0 NewButton.Size = UDim2.new(1, 0, 0, 24) NewButton.ZIndex = 54 NewButton.Parent = Button.Section.Elements.SectionContent local ToggleFrame = Instance.new("Frame") ToggleFrame.Name = "ToggleFrame" ToggleFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) ToggleFrame.BorderColor3 = Color3.fromRGB(0, 0, 0) ToggleFrame.BorderSizePixel = 0 ToggleFrame.Position = UDim2.new(0, 0, 1, -24) ToggleFrame.Size = UDim2.new(1, 0, 0, 24) ToggleFrame.ZIndex = 55 local UICorner2 = Instance.new("UICorner") UICorner2.Name = "UICorner_2" UICorner2.CornerRadius = UDim.new(0, 4) UICorner2.Parent = ToggleFrame local DropdownTitle = Instance.new("TextLabel") DropdownTitle.Name = "DropdownTitle" DropdownTitle.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") DropdownTitle.Text = Button.Name DropdownTitle.TextColor3 = Color3.fromRGB(200, 200, 200) DropdownTitle.TextSize = 13 DropdownTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) DropdownTitle.BackgroundTransparency = 1 DropdownTitle.BorderColor3 = Color3.fromRGB(0, 0, 0) DropdownTitle.BorderSizePixel = 0 DropdownTitle.Size = UDim2.fromScale(1, 1) DropdownTitle.ZIndex = 53 DropdownTitle.Parent = ToggleFrame ToggleFrame.Parent = NewButton -- Library:Connection(NewButton.MouseButton1Down, function() Button.Callback() TweenService:Create(DropdownTitle, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(255,255,255)}):Play() task.spawn(function() task.wait(0.1) TweenService:Create(DropdownTitle, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(200,200,200)}):Play() end) end) end -- function Library:Watermark(Properties) local Watermark = { Name = (Properties.Name or Properties.name or "Starhook.club | placeholder"); AnimateText = nil; } -- local Outline = Instance.new("Frame") Outline.Name = "Outline" Outline.AnchorPoint = Vector2.new(1, 0) Outline.AutomaticSize = Enum.AutomaticSize.X Outline.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Outline.BorderColor3 = Color3.fromRGB(0, 0, 0) Outline.Position = UDim2.new(1, -10, 0, 10) Outline.Size = UDim2.fromOffset(100, 20) Outline.Visible = false Outline.ZIndex = 50 Outline.Parent = Library.ScreenGUI local UICorner = Instance.new("UICorner") UICorner.Name = "UICorner" UICorner.CornerRadius = UDim.new(0, 4) UICorner.Parent = Outline local UIStroke = Instance.new("UIStroke") UIStroke.Name = "UIStroke" UIStroke.Parent = Outline local Inline = Instance.new("Frame") Inline.Name = "Inline" Inline.BackgroundColor3 = Color3.fromRGB(13, 13, 13) Inline.BorderColor3 = Color3.fromRGB(0, 0, 0) Inline.BorderSizePixel = 0 Inline.Position = UDim2.fromOffset(1, 1) Inline.Size = UDim2.new(1, -2, 1, -2) Inline.ZIndex = 51 local UICorner2 = Instance.new("UICorner") UICorner2.Name = "UICorner_2" UICorner2.CornerRadius = UDim.new(0, 4) UICorner2.Parent = Inline local Title = Instance.new("TextLabel") Title.Name = "Title" Title.FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json") Title.RichText = true Title.Text = Watermark.Name Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 13 Title.TextXAlignment = Enum.TextXAlignment.Left Title.AutomaticSize = Enum.AutomaticSize.X Title.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Title.BackgroundTransparency = 1 Title.BorderColor3 = Color3.fromRGB(0, 0, 0) Title.BorderSizePixel = 0 Title.Position = UDim2.fromOffset(5, 0) Title.Size = UDim2.fromScale(0, 1) Title.Parent = Inline local UIPadding = Instance.new("UIPadding") UIPadding.Name = "UIPadding" UIPadding.PaddingRight = UDim.new(0, 6) UIPadding.Parent = Inline Inline.Parent = Outline task.spawn(function() while task.wait() do for i = 1, #"Starhook.club" do Watermark.AnimateText = string.sub("Starhook.club", 1, i) .. ""; Title.Text = Watermark.AnimateText .. " " .. Watermark.Name; task.wait(0.4); end; for i = #"Starhook.club" - 1, 1, -1 do Watermark.AnimateText = string.sub("Starhook.club", 1, i) .. ""; Title.Text = Watermark.AnimateText .. " " .. Watermark.Name; task.wait(0.4); end; end; end) -- // Functions function Watermark:UpdateText(NewText) Watermark.Name = NewText Title.Text = Watermark.AnimateText .. " " .. Watermark.Name; end; function Watermark:SetVisible(State) Outline.Visible = State; end; return Watermark end -- end end local library = Library; local flags = Library.Flags; --[[ SOURCE FULLY MADE BY LINEMASTER ]] --// Luraph Macros (https://lura.ph/dashboard/documents/macros) getfenv().LPH_NO_VIRTUALIZE = function(...) return ... end; --// window locals local default_color = Color3.fromRGB(207, 227, 0); --// services local players = game:GetService("Players"); local workspace = game:GetService("Workspace"); local user_input_service = game:GetService("UserInputService"); local run_service = game:GetService("RunService"); local replicated_storage = game:GetService("ReplicatedStorage"); local http_service = game:GetService("HttpService"); local tween_service = game:GetService("TweenService"); local stats = game:GetService("Stats"); local lighting = game:GetService("Lighting"); local core_gui = cloneref(game:GetService("CoreGui")); --// libraries --// local library, flags = loadstring(game:HttpGet("https://gist.githubusercontent.com/linemaster2/c6ba71bcb486990e5ea34ba9b7be6db6/raw/c95ba2fcd4d2b3a3ce62bdb429c75c8e696579f8/sadiuohfgasduo9fhasdu8ihfgasd98u7asasdf.lua"))(); --- Lua-side duplication of the API of events on Roblox objects. -- signals are needed for to ensure that for local events objects are passed by -- reference rather than by value where possible, as the BindableEvent objects -- always pass signal arguments by value, meaning tables will be deep copied. -- Roblox's deep copy method parses to a non-lua table compatable format. -- @classmod signal local HttpService = game:GetService("HttpService") local ENABLE_TRACEBACK = false local signal = {} signal.__index = signal signal.ClassName = "signal" --- Constructs a new signal. -- @constructor signal.new() -- @treturn signal function signal.new() local self = setmetatable({}, signal) self._bindableEvent = Instance.new("BindableEvent") self._argMap = {} self._source = ENABLE_TRACEBACK and debug.traceback() or "" -- Events in Roblox execute in reverse order as they are stored in a linked list and -- new connections are added at the head. This event will be at the tail of the list to -- clean up memory. self._bindableEvent.Event:Connect(function(key) self._argMap[key] = nil -- We've been destroyed here and there's nothing left in flight. -- Let's remove the argmap too. -- This code may be slower than leaving this table allocated. if (not self._bindableEvent) and (not next(self._argMap)) then self._argMap = nil end end) return self end --- Fire the event with the given arguments. All handlers will be invoked. Handlers follow -- Roblox signal conventions. -- @param ... Variable arguments to pass to handler -- @treturn nil function signal:Fire(...) if not self._bindableEvent then warn(("signal is already destroyed. %s"):format(self._source)) return end local args = table.pack(...) -- TODO: Replace with a less memory/computationally expensive key generation scheme local key = HttpService:GenerateGUID(false) self._argMap[key] = args -- Queues each handler onto the queue. self._bindableEvent:Fire(key) end --- Connect a new handler to the event. Returns a connection object that can be disconnected. -- @tparam function handler Function handler called with arguments passed when `:Fire(...)` is called -- @treturn Connection Connection object that can be disconnected function signal:Connect(handler) if not (type(handler) == "function") then error(("connect(%s)"):format(typeof(handler)), 2) end return self._bindableEvent.Event:Connect(function(key) -- note we could queue multiple events here, but we'll do this just as Roblox events expect -- to behave. local args = self._argMap[key] if args then handler(table.unpack(args, 1, args.n)) else error("Missing arg data, probably due to reentrance.") end end) end --- Wait for fire to be called, and return the arguments it was given. -- @treturn ... Variable arguments from connection function signal:Wait() local key = self._bindableEvent.Event:Wait() local args = self._argMap[key] if args then return table.unpack(args, 1, args.n) else error("Missing arg data, probably due to reentrance.") return nil end end --- Disconnects all connected events to the signal. Voids the signal as unusable. -- @treturn nil function signal:Destroy() if self._bindableEvent then -- This should disconnect all events, but in-flight events should still be -- executed. self._bindableEvent:Destroy() self._bindableEvent = nil end -- Do not remove the argmap. It will be cleaned up by the cleanup connection. setmetatable(self, nil) end --// get the mouse arg local real_dh_arg; local dahood_ids = {2788229376, 16033173781, 7213786345} local bullet_tp_connection; --// hit sounds local hitsounds = { ["RIFK7"] = "rbxassetid://9102080552", ["Bubble"] = "rbxassetid://9102092728", ["Minecraft"] = "rbxassetid://5869422451", ["Cod"] = "rbxassetid://160432334", ["Bameware"] = "rbxassetid://6565367558", ["Neverlose"] = "rbxassetid://6565370984", ["Gamesense"] = "rbxassetid://4817809188", ["Rust"] = "rbxassetid://6565371338" }; if (not (isfolder("starhook"))) then makefolder("starhook"); end; --// game support local game_support = { [2788229376] = { Number = 1, Name = "Da Hood", Remote = "MainEvent", Argument = real_dh_arg or "UpdateMousePosI", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Siren") and workspace.Ignored.Siren:FindFirstChild("Radius") or nil }, [12238627497] = { Number = 2, Name = "Locker Hood", Remote = "MainEvent", Argument = "UpdateMousePos", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") or nil }, [5602055394] = { Number = 3, Name = "Hood Modded", Remote = "MAINEVENT", Argument = "MousePos", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") or nil }, [17403265390] = { Number = 4, Name = "Da Downhill", Remote = "MAINEVENT", Argument = "MOUSE", BulletName = "Part", BulletBeamName = "gb", BulletPath = workspace }, [17403166075] = { Number = 5, Name = "Da Bank", Remote = "MAINEVENT", Argument = "MOUSE", BulletName = "Part", BulletBeamName = "gb", BulletPath = workspace }, [18111448661] = { Number = 6, Name = "Da Uphill", Remote = "MAINEVENT", Argument = "MOUSE", BulletName = "Part", BulletBeamName = "gb", BulletPath = workspace }, [15186202290] = { Number = 7, Name = "Da Strike", Remote = "MAINEVENT", Argument = "MOUSE", BulletName = "Part", BulletBeamName = "gb", BulletPath = workspace }, [11143225577] = { Number = 8, Name = "1v1 Hood Aim Trainer", Remote = "MAINEVENT", Argument = "UpdateMousePos" }, [15763494605] = { Number = 9, Name = "Hood Aim", Remote = "MAINEVENT", Argument = "MOUSE" }, [15166543806] = { Number = 10, Name = "Moon Hood", Remote = "MAINEVENT", Argument = "MoonUpdateMousePos" }, [17897702920] = { Number = 11, Name = "OG Da Hood", Remote = "MainEvent", Argument = "UpdateMousePos", Adonis = true }, [16033173781] = { Number = 12, Name = "Da Hood Macro", Remote = "MainEvent", Argument = "UpdateMousePos1" }, [7213786345] = { Number = 13, Name = "Da Hood VC", Remote = "MainEvent", Argument = real_dh_arg or "UpdateMousePosI", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Siren") and workspace.Ignored.Siren:FindFirstChild("Radius") or nil }, [16033173781] = { Number = 14, Name = "Da Hood Macro", Remote = "MainEvent", Argument = real_dh_arg or "UpdateMousePosI", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Siren") and workspace.Ignored.Siren:FindFirstChild("Radius") or nil }, [9825515356] = { Number = 15, Name = "Hood Customs", Remote = "MainEvent", Argument = real_dh_arg or "MousePosUpdate", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") or nil }, [16859411452] = { Number = 16, Name = "Hood Z", Remote = "MainEvent", Argument = "UpdateMousePos", BulletName = "bulletray", BulletBeamName = "beam", BulletPath = workspace:FindFirstChild("Ignored") or nil }, [14277620939] = { Number = 17, Name = "Custom FFA", Remote = "MainEvent", Argument = "UpdateMousePos", BulletName = "BULLET_RAYS", BulletBeamName = "GunBeam", BulletPath = workspace:FindFirstChild("Ignored") or nil }, }; --// Credits to farzad --// custom game support local remote_name = game_support[game.PlaceId] and game_support[game.PlaceId].Remote or nil; local mouse_argument = game_support[game.PlaceId] and game_support[game.PlaceId].Argument or nil; local bullet_beam_name = game_support[game.PlaceId] and game_support[game.PlaceId].BulletBeamName or nil; local bullet_name = game_support[game.PlaceId] and game_support[game.PlaceId].BulletName or nil; local bullet_path = game_support[game.PlaceId] and game_support[game.PlaceId].BulletPath or nil; local remote = replicated_storage[remote_name]; local hood_customs = 9825515356; --// world local world = { FogColor = lighting.FogColor, FogStart = lighting.FogStart, FogEnd = lighting.FogEnd, Ambient = lighting.Ambient, Brightness = lighting.Brightness, ClockTime = lighting.ClockTime, ExposureCompensation = lighting.ExposureCompensation, ColorShift_Top = lighting.ColorShift_Top, ColorShift_Bottom = lighting.ColorShift_Bottom }; --// instances local local_player = players.LocalPlayer; --// local chat_remote = replicated_storage:FindFirstChild("DefaultChatSystemChatEvents") and replicated_storage.DefaultChatSystemChatEvents.SayMessageRequest or nil; local camera = workspace.CurrentCamera; --// script table local locals = { network_should_sleep = false, original_position = CFrame.new(1, 1, 1), should_starhook_destroy = false, old_ticks = { assist_stutter_tick = tick(), clone_chams_tick = tick(), auto_shoot_tick = tick(), network_desync_tick = tick() }, assist = { is_targetting = false, target = nil, }, target_aim = { predicted_position = Vector3.new(1, 1, 1), is_targetting = false, target = nil }, silent_aim = { predicted_position = Vector3.new(1, 1, 1), is_targetting = false, target = nil }, gun = { current_tool = nil, current_tool_bullet_tp = nil, recently_shot = false, recently_hit = false, previous_ammo = 0, previous_ammo_bullet_tp = 0 } }; local drawings = {}; local signals = {}; local instances = { target_ui = {} }; local blood_splatters = {}; local ui = { window = nil, tabs = {} } local connections = { gun = {} }; --// addon library local script_addon = { events = {} }; --// screengui local screen_gui = Instance.new("ScreenGui"); screen_gui.Name = "https://starhook.club"; screen_gui.IgnoreGuiInset = true; screen_gui.DisplayOrder = 99999; screen_gui.ResetOnSpawn = false; screen_gui.Enabled = false; screen_gui.Parent = core_gui; local screen_gui_2 = Instance.new("ScreenGui"); screen_gui_2.Name = "https://starhook.club"; screen_gui_2.IgnoreGuiInset = true; screen_gui_2.DisplayOrder = 99999; screen_gui_2.ResetOnSpawn = false; screen_gui_2.Enabled = false; screen_gui_2.Parent = core_gui; --// old fflags local old_psr; local old_pssmbs; --// "S2PhysicsSenderRate", "PhysicsSenderMaxBandwidthBps", "DataSenderMaxJoinBandwidthBps" if (getfflag) then local old = getfflag; getfflag = function(fflag) local success, result = pcall(function() return old(fflag); end); return result; end; old_psr = getfflag("S2PhysicsSenderRate"); old_pssmbs = getfflag("PhysicsSenderMaxBandwidthBps"); end; --// utility local utility = {}; do utility.get_xmr_price = LPH_NO_VIRTUALIZE(function() local data = game:HttpGet("https://api.coincap.io/v2/assets/monero"); local table_data = http_service:JSONDecode(data); return math.floor(table_data.priceUsd) or 0; end); utility.world_to_screen = LPH_NO_VIRTUALIZE(function(position) local position, on_screen = camera:WorldToViewportPoint(position); return {position = Vector2.new(position.X, position.Y), on_screen = on_screen}; end); utility.get_ping = LPH_NO_VIRTUALIZE(function() return stats.Network.ServerStatsItem["Data Ping"]:GetValue(); end); utility.has_character = LPH_NO_VIRTUALIZE(function(player) return (player and player.Character and player.Character:FindFirstChild("Humanoid")) and true or false; end); utility.new_connection = function(type, callback) --// by all matters do NOT no virtualize this local connection = type:Connect(callback); table.insert(connections, connection); return connection; end; utility.create_connection = function(signal_name) --// by all matters do NOT no virtualize this local connection = signal.new(signal_name); return connection; end; utility.is_in_air = LPH_NO_VIRTUALIZE(function(player) if (not (utility.has_character(player))) then return false end; local root_part = player.Character.HumanoidRootPart; return root_part.Velocity.Y ~= 0; --// my old one was so fucking broken and weird so ill js use velocity check end); utility.is_friends_with = LPH_NO_VIRTUALIZE(function(player) return player:IsFriendsWith(local_player.UserId) and true or false; end); utility.is_player_behind_a_wall = LPH_NO_VIRTUALIZE(function(player) local amount = camera:GetPartsObscuringTarget({local_player.Character.HumanoidRootPart.Position, player.Character.HumanoidRootPart.Position}, {local_player.Character, player.Character}); return #amount ~= 0; end); utility.drawing_new = function(type, properties) local drawing_object = Drawing.new(type); for property, value in properties do drawing_object[property] = value; end; return drawing_object; end; utility.instance_new = function(type, properties) local instance = Instance.new(type); for property, value in properties do instance[property] = value; end; return instance; end; utility.generate_random_string = function(length) local characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; local random_string = ""; for i = 1, length do local random_index = math.random(1, #characters); random_string = random_string .. string.sub(characters, random_index, random_index); end; return random_string; end; utility.is_player_black = LPH_NO_VIRTUALIZE(function(player) if (not (utility.has_character(player))) then return false end; local head = player.Character.Head; local hue = Color3.toHSV(head.Color); return hue >= 0 and hue <= 0.1; end); utility.play_sound = LPH_NO_VIRTUALIZE(function(volume, sound_id) local sound = Instance.new("Sound"); sound.Parent = workspace; sound.SoundId = sound_id; sound.Volume = volume; sound:Play(); utility.new_connection(sound.Ended, function() sound:Destroy(); end); end); utility.clone_character = function(player, transparency, color, material, delete_hrp) local delete_hrp = delete_hrp or true; player.Character.Archivable = true; local new_character = player.Character:Clone(); new_character.Parent = workspace; player.Character.Archivable = false; local parts = new_character:GetChildren(); for i = 1, #parts do local part = parts[i]; if (part.ClassName == "MeshPart") then part.Anchored = true; part.CanCollide = false; part.Color = color; part.Material = Enum.Material[material]; part.Transparency = transparency; else if part.Name ~= "HumanoidRootPart" and delete_hrp then part:Destroy(); end; end; if part.Name == "Head" then local decal = part:FindFirstChild("face"); if decal then decal:Destroy() end; end; end; return new_character; end; utility.create_beam = LPH_NO_VIRTUALIZE(function(from, to, color_1, color_2, duration, fade_enabled, fade_duration) local tween; local total_time = 0; local main_part = utility.instance_new("Part", { Parent = workspace, Size = Vector3.new(0, 0, 0), Massless = true, Transparency = 1, CanCollide = false, Position = from, Anchored = true }); local part0 = utility.instance_new("Part", { Parent = main_part, Size = Vector3.new(0, 0, 0), Massless = true, Transparency = 1, CanCollide = false, Position = from, Anchored = true }); local part1 = utility.instance_new("Part", { Parent = main_part, Size = Vector3.new(0, 0, 0), Massless = true, Transparency = 1, CanCollide = false, Position = to, Anchored = true }); local attachment0 = utility.instance_new("Attachment", { Parent = part0 }); local attachment1 = utility.instance_new("Attachment", { Parent = part1 }); local beam = utility.instance_new("Beam", { Texture = "rbxassetid://446111271", TextureMode = Enum.TextureMode.Wrap, TextureLength = 10, LightEmission = 1, LightInfluence = 1, FaceCamera = true, ZOffset = -1, Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1), }), Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, color_1), ColorSequenceKeypoint.new(1, color_2), }), Attachment0 = attachment0, Attachment1 = attachment1, Enabled = true, Parent = main_part }); if fade_enabled then tween = utility.new_connection(run_service.Heartbeat, function(delta_time) --// credits to xander total_time += delta_time; beam.Transparency = NumberSequence.new(tween_service:GetValue((total_time / fade_duration), Enum.EasingStyle.Quad, Enum.EasingDirection.In)); end) end; task.delay(duration, function() main_part:Destroy(); if (tween) then tween:Disconnect(); end; end); end); utility.create_impact = function(color, size, fade_enabled, fade_duration, duration, position) local impact = utility.instance_new("Part", { CanCollide = false; Material = Enum.Material.Neon; Size = Vector3.new(size, size, size); Color = color; Position = position; Anchored = true; Parent = workspace }); local outline = utility.instance_new("SelectionBox", { --// credits to xander LineThickness = 0.01; Color3 = color; SurfaceTransparency = 1; Adornee = impact; Visible = true; Parent = impact }); if (fade_enabled) then local tween_info = TweenInfo.new(duration); local tween = tween_service:Create(impact, tween_info, {Transparency = 1}); local tween_outline = tween_service:Create(outline, tween_info, {Transparency = 1}); tween:Play(); tween_outline:Play(); end; task.delay(duration, function() impact:Destroy() end); end; end; --// math functions local custom_math = {}; do custom_math.random_vector3 = LPH_NO_VIRTUALIZE(function(randomization) return Vector3.new(math.random(-randomization, randomization), math.random(-randomization, randomization), math.random(-randomization, randomization)); end); custom_math.recalculate_velocity = LPH_NO_VIRTUALIZE(function(part, update_time) --// this is pasted local current_position = part.Position; local current_time = tick(); task.wait(1 / update_time); local new_position = part.Position; local new_time = tick(); local distance_traveled = (new_position - current_position); local time_interval = (new_time - current_time); local velocity = (distance_traveled / time_interval); current_position = new_position; current_time = new_time; return velocity; end); custom_math.cframe_to_offset = function(origin, target) local actual_origin = origin * CFrame.new(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0); return actual_origin:ToObjectSpace(target):inverse(); end; custom_math.is_mouse_over_frame = function(frame) local mouse_pos = user_input_service:GetMouseLocation(); local absolute_position = frame.AbsolutePosition; local absolute_size = frame.AbsoluteSize; local xBound = (mouse_pos.X >= absolute_position.X and mouse_pos.X < absolute_position.X + absolute_size.X); local yBound = (mouse_pos.Y >= absolute_position.Y and mouse_pos.Y < absolute_position.Y + absolute_size.Y); return (xBound and yBound); end; end; --// custom dahood functions local dahood = {}; do dahood.has_blood_splatter = LPH_NO_VIRTUALIZE(function(player) if (not utility.has_character(player)) then return false end; local descendants = player.Character:GetDescendants(); for i = 1, #descendants do local instance = descendants[i]; if ((instance.Name == "BloodSplatter" or instance.Name == "BloodParticles" or instance.Name == "BloodParticle") and not table.find(blood_splatters, instance)) then table.insert(blood_splatters, instance); return true, instance.Parent; end; end; return false; end); dahood.get_armor = LPH_NO_VIRTUALIZE(function(player) if (not utility.has_character(player)) then return 100 end; local body_effects = player.Character:FindFirstChild("BodyEffects"); if not body_effects then return 100; end; return body_effects.Armor.Value; end); dahood.is_on_vehicle = LPH_NO_VIRTUALIZE(function(player) return player.Character:FindFirstChild("[CarHitBox]") ~= nil; end); dahood.is_knocked = LPH_NO_VIRTUALIZE(function(player) --// TODO: rewrite this local value; if game.GameId == 1958807588 then --// hood modded value = player.Information.KO.Value; else --// real dahood local bodyeffects = player.Character:FindFirstChild("BodyEffects"); value = bodyeffects and bodyeffects["K.O"].Value or false; end; return value; end); dahood.get_gun = LPH_NO_VIRTUALIZE(function(player) --// TODO: ADD MORE SUPPORT FOR DIFFERENT HOOD GAMES local info; --// character check if (not (utility.has_character(player))) then return end; local tool = player.Character:FindFirstChildWhichIsA("Tool"); --// tool check if (not (tool)) then return end; --// main code local descendants = tool:GetDescendants(); for i = 1, #descendants do local object = descendants[i]; if (object.Name:lower():find("ammo") and not object.Name:lower():find("max") and (object.ClassName == "IntValue" or object.ClassName == "NumberValue")) then info = {}; info.ammo = object; info.tool = tool; end; end; return info; end); dahood.is_grabbed = LPH_NO_VIRTUALIZE(function(player) return player.Character:FindFirstChild("GRABBING_CONSTRAINT") ~= nil; end); end; --// combat functions local combat = {}; do combat.get_closest_body_part = LPH_NO_VIRTUALIZE(function(player) local closest_body_part; local mouse_position = user_input_service:GetMouseLocation(); local radius = math.huge; local children = player.Character:GetChildren(); for i = 1, #children do local part = children[i]; if (part.ClassName ~= "MeshPart") then continue end; local part_position = utility.world_to_screen(part.Position); local distance = (mouse_position - part_position.position).Magnitude; if (distance <= radius) then radius = distance; closest_body_part = part; end; end; return closest_body_part; end); combat.get_closest_player = LPH_NO_VIRTUALIZE(function(fov_enabled, fov_radius, checks_enabled, check_values) --// locals local mouse_position = user_input_service:GetMouseLocation(); local radius = fov_enabled and (fov_radius * 3) or math.huge; local closest_player; --// main loop local players = players:GetPlayers(); for i = 1 , #players do local player = players[i]; if (player == local_player) then continue end; if (not (utility.has_character(player))) then continue end; local root_part = player.Character:FindFirstChild("HumanoidRootPart"); if (not (root_part)) then continue end; local root_position = utility.world_to_screen(root_part.Position); if (not (root_position.on_screen)) then continue end; if (checks_enabled and ( table.find(check_values, "Vehicle") and dahood.is_on_vehicle(player) or table.find(check_values, "Knocked") and dahood.is_knocked(player) or table.find(check_values, "Grabbed") and dahood.is_grabbed(player) or table.find(check_values, "Friend") and utility.is_friends_with(player) or table.find(check_values, "Wall") and utility.is_player_behind_a_wall(player) )) then continue end; local distance = (mouse_position - root_position.position).Magnitude; if (distance <= radius) then radius = distance; closest_player = player; end; end; return closest_player; end); combat.resolve = function(player, method, update_time) if (not utility.has_character(player)) then return Vector3.new(0, 0, 0) end; local actual_update_time = update_time or 100; local velocity; if (method == "Recalculate") then velocity = custom_math.recalculate_velocity(player.Character.HumanoidRootPart, actual_update_time); elseif (method == "MoveDirection") then velocity = (player.Character.Humanoid.MoveDirection * player.Character.Humanoid.WalkSpeed); end; return velocity; end; combat.get_random_body_part = function(player) local children = player.Character:GetChildren(); local mesh_parts = {}; for i = 1, #children do local object = children[i]; if (object.ClassName ~= "MeshPart") then continue end; table.insert(mesh_parts, object); end; return mesh_parts[math.random(1, #mesh_parts)]; end; end; --// assist functions local assist = {}; do assist.get_predicted_position = function() --// locals local target = locals.assist.target; --// settings local aim_part = flags["legit_assist_part"]; local prediction = flags["legit_assist_prediction"]; local shake_enabled = flags["legit_assist_shake_enabled"]; local shake_amount = flags["legit_assist_shake_amount"]; local anti_ground_shots_enabled = flags["legit_assist_anti_ground_shots"]; local to_take_off = flags["legit_assist_anti_ground_shots_to_take_off"] / 10; --// will convert 2 to 0.2 as an example local use_air_aim_part = flags["legit_assist_use_air_hit_part"]; local air_aim_part = flags["legit_assist_air_part"]; local resolver_enabled = flags["legit_assist_resolver"]; local resolver_method = flags["legit_assist_resolver_method"]; local resolve_update_time = flags["legit_assist_resolver_update_time"]; --// instances local root_part = target.Character.HumanoidRootPart; local aim_part_instance = target.Character:FindFirstChild(aim_part); --// vars local velocity = resolver_enabled and combat.resolve(target, resolver_method, resolve_update_time) or root_part.Velocity; --// velocity modifactions if (anti_ground_shots_enabled and (utility.is_in_air(target))) then velocity = Vector3.new(velocity.X, math.abs(velocity.Y * to_take_off), velocity.Z); end; --// aim part modifactions if (use_air_aim_part and (utility.is_in_air(target))) then aim_part_instance = target.Character:FindFirstChild(air_aim_part); end; --// main local predicted_position = (aim_part_instance.Position + velocity * prediction); --// position modifactions if (shake_enabled) then predicted_position = predicted_position + custom_math.random_vector3(shake_amount); end; --// end return predicted_position; end; assist.move_mouse = function(position, smoothing) local mouse_position = user_input_service:GetMouseLocation(); mousemoverel((position.X - mouse_position.X) / smoothing, (position.Y - mouse_position.Y) / smoothing); end; end; --// silent aim functions local silent_aim = {} do silent_aim.get_predicted_position = function() --// locals local target = locals.silent_aim.target; --// settings local aim_part = flags["legit_silent_aim_part"]; local closest_body_part_enabled = flags["legit_silent_closest_body_part"]; local prediction = flags["legit_silent_prediction"]; local anti_ground_shots_enabled = flags["legit_silent_anti_ground_shots"]; local to_take_off = flags["legit_silent_anti_ground_shots_to_take_off"] / 10; local use_air_aim_part = flags["legit_silent_use_air_hit_part"]; local air_aim_part = flags["legit_silent_air_aim_part"]; local resolver_enabled = flags["legit_silent_resolver"]; local resolver_method = flags["legit_silent_resolver_method"]; local update_time = flags["legit_silent_resolver_update_time"]; --// instances local root_part = target.Character.HumanoidRootPart; local aim_part_instance = closest_body_part_enabled and combat.get_closest_body_part(target) or target.Character:FindFirstChild(aim_part); --// vars local velocity = resolver_enabled and combat.resolve(target, resolver_method, update_time) or root_part.Velocity; --// velocity modifactions if (anti_ground_shots_enabled and (utility.is_in_air(target))) then velocity = Vector3.new(velocity.X, math.abs(velocity.Y * to_take_off), velocity.Z); end; --// aim part modifactions if (use_air_aim_part and (utility.is_in_air(target))) then aim_part_instance = target.Character:FindFirstChild(air_aim_part); end; --// main local predicted_position = (aim_part_instance.Position + velocity * prediction); --// end return game.PlaceId == hood_customs and predicted_position + Vector3.new(25, 100, 25) or predicted_position end; end; --// target aim functions local target_aim = {}; do target_aim.get_predicted_position = function() --// locals local target = locals.target_aim.target; --// settings local aim_part = flags["rage_target_aim_aim_part"]; local closest_body_part_enabled = flags["rage_target_aim_closest_body_part"]; local prediction = flags["rage_target_aim_prediction"]; local resolver_enabled = flags["rage_target_aim_resolver_enabled"]; local resolver_method = flags["rage_target_aim_resolver_method"]; local anti_ground_shots_enabled = flags["rage_target_aim_anti_ground_shots"]; local dampening_factor = flags["rage_target_aim_dampening_factor"]; local use_air_aim_part = flags["rage_target_aim_use_air_hit_part"]; local air_aim_part = flags["rage_target_aim_air_aim_part"]; local use_air_offset = flags["rage_target_aim_use_air_offset"]; local air_offset = flags["rage_target_aim_air_offset"] / 100; --// will convert 4 to 0.04 as am example local update_time = flags["rage_target_aim_update_time"]; local random_body_part_enabled = flags["rage_target_aim_randomized_body_part"]; --local movement_simulation = flags["rage_target_aim_movement_simulation"]; --// instances local root_part = target.Character.HumanoidRootPart; local aim_part_instance = closest_body_part_enabled and combat.get_closest_body_part(target) or target.Character:FindFirstChild(aim_part); --// random body part if (random_body_part_enabled) then aim_part_instance = combat.get_random_body_part(target); end; --// vars local velocity = resolver_enabled and combat.resolve(target, resolver_method, update_time) or root_part.Velocity; local is_in_air = utility.is_in_air(target); if (anti_ground_shots_enabled and is_in_air) then local going_down = velocity:Dot(Vector3.new(0, -1, 0)); if going_down > 0.05 then velocity *= Vector3.new(1, dampening_factor, 1); end; end; --// aim part modifactions if (use_air_aim_part and (is_in_air)) then aim_part_instance = target.Character:FindFirstChild(air_aim_part); end; --// main local predicted_position = (aim_part_instance.Position + velocity * prediction); --// offsets if (use_air_offset and (is_in_air)) then predicted_position = predicted_position + Vector3.new(0, air_offset, 0); end; --// end return game.PlaceId == hood_customs and predicted_position + Vector3.new(25, 100, 25) or predicted_position; end; end; --[[ if (utility.is_player_black(local_player)) then local_player:Kick("Script tampering detected"); return; end; --]] --// hit effects local hit_effects = {}; do hit_effects.confetti = function(position) --// credits to xander local part = utility.instance_new("Part", { Position = position, Anchored = true, Transparency = 1, CanCollide = false, Parent = workspace }); for i = 1, 5 do local particle1 = utility.instance_new("ParticleEmitter", { Acceleration = Vector3.new(0,-10,0); Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(0,1,0.886275)),ColorSequenceKeypoint.new(1,Color3.new(0,1,0.886275))}; Lifetime = NumberRange.new(1,2); Rate = 0; RotSpeed = NumberRange.new(260,260); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0.1,0),NumberSequenceKeypoint.new(1,0.1,0)}; Speed = NumberRange.new(15,15); SpreadAngle = Vector2.new(360,360); Texture = "http://www.roblox.com/asset/?id=241685484"; Parent = part }); local particle2 = utility.instance_new("ParticleEmitter", { Acceleration = Vector3.new(0,-10,0); Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(0,0.0980392,1)),ColorSequenceKeypoint.new(1,Color3.new(0,0,1))}; Lifetime = NumberRange.new(1,2); Rate = 0; RotSpeed = NumberRange.new(260,260); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0.1,0),NumberSequenceKeypoint.new(1,0.1,0)}; Speed = NumberRange.new(15,15); SpreadAngle = Vector2.new(360,360); Texture = "http://www.roblox.com/asset/?id=241685484]"; Parent = part }); local particle3 = utility.instance_new("ParticleEmitter", { Acceleration = Vector3.new(0,-10,0); Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(0.901961,1,0)),ColorSequenceKeypoint.new(1,Color3.new(1,0.933333,0))}; Lifetime = NumberRange.new(1,2); Rate = 0; RotSpeed = NumberRange.new(260,260); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0.1,0),NumberSequenceKeypoint.new(1,0.1,0)}; Speed = NumberRange.new(15,15); SpreadAngle = Vector2.new(360,360); Texture = "http://www.roblox.com/asset/?id=24168548"; Parent = part }); local particle4 = utility.instance_new("ParticleEmitter", { Acceleration = Vector3.new(0,-10,0); Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(0.180392,1,0)),ColorSequenceKeypoint.new(1,Color3.new(0.180392,1,0))}; Lifetime = NumberRange.new(1,2); Rate = 0; RotSpeed = NumberRange.new(260,260); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0.1,0),NumberSequenceKeypoint.new(1,0.1,0)}; Speed = NumberRange.new(15,15); SpreadAngle = Vector2.new(360,360); Texture = "http://www.roblox.com/asset/?id=241685484"; Parent = part }); local particle5 = utility.instance_new("ParticleEmitter", { Acceleration = Vector3.new(0,-10,0); Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(1,0,0)),ColorSequenceKeypoint.new(1,Color3.new(1,0,0))}; Lifetime = NumberRange.new(1,2); Rate = 0; RotSpeed = NumberRange.new(260,260); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0.1,0),NumberSequenceKeypoint.new(1,0.1,0)}; Speed = NumberRange.new(15,15); SpreadAngle = Vector2.new(360,360); Texture = "http://www.roblox.com/asset/?id=241685484"; Parent = part }); end; local objects = part:GetChildren(); for i = 1, #objects do local object = objects[i]; if (object.ClassName ~= "ParticleEmitter") then continue end; object:Emit(1); end; task.delay(3, function() part:Destroy(); end); end; hit_effects.bubble = function(position, color) --// credits to xander once again local part = utility.instance_new("Part", { Position = position, Anchored = true, Transparency = 1, CanCollide = false, Parent = workspace }); local particle1 = utility.instance_new("ParticleEmitter", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0,color),ColorSequenceKeypoint.new(1,color)}; Lifetime = NumberRange.new(0.5,0.5); LightEmission = 1; LockedToPart = true; Orientation = Enum.ParticleOrientation.VelocityPerpendicular; Rate = 0; Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,10,0)}; Speed = NumberRange.new(1.5,1.5); Texture = "rbxassetid://1084991215"; Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(0.0996047,0,0),NumberSequenceKeypoint.new(0.602372,0,0),NumberSequenceKeypoint.new(1,1,0)}; ZOffset = 1; Parent = part }); local particle2 = utility.instance_new("ParticleEmitter", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0,color),ColorSequenceKeypoint.new(1,color)}; Lifetime = NumberRange.new(0.5,0.5); LightEmission = 1; LockedToPart = true; Rate = 0; Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,10,0)}; Speed = NumberRange.new(0,0); Texture = "rbxassetid://1084991215"; Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(0.0996047,0,0),NumberSequenceKeypoint.new(0.601581,0,0),NumberSequenceKeypoint.new(1,1,0)}; ZOffset = 1; Parent = part }); local particle3 = utility.instance_new("ParticleEmitter", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.new(0,0,0)),ColorSequenceKeypoint.new(1,Color3.new(0,0,0))}; Lifetime = NumberRange.new(0.2,0.5); LockedToPart = true; Orientation = Enum.ParticleOrientation.VelocityParallel; Rate = 0; Rotation = NumberRange.new(-90,90); Size = NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(1,8.5,1.5)}; Speed = NumberRange.new(0.1,0.1); SpreadAngle = Vector2.new(180,180); Texture = "http://www.roblox.com/asset/?id=6820680001"; Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(0.200791,0,0),NumberSequenceKeypoint.new(0.699605,0,0),NumberSequenceKeypoint.new(1,1,0)}; ZOffset = 1.5; Parent = part }); particle1:Emit(1); particle2:Emit(1); particle3:Emit(1); task.delay(1, function() part:Destroy(); end); end; end; local features = {}; do features.local_material = function(state, material) local children = local_player.Character:GetDescendants(); for i = 1, #children do local child = children[i]; if (child.ClassName == "MeshPart") then child.Material = Enum.Material[state and material or "Plastic"]; end; end; end; features.get_text = function(original_text) local args = { ["display_name"] = local_player.DisplayName, ["name"] = local_player.Name, ["target_name"] = locals.target_aim.is_targetting and locals.target_aim.target.Name or "None" }; for arg, name in args do original_text = original_text:gsub("%${" .. arg .. "}", name); end; return original_text end; features.update_c_sync_char = function(desynced_pos, color) if not instances.c_sync_chams then return end; if not utility.has_character(local_player) then return end; local parts = instances.c_sync_chams:GetChildren(); local hrp = local_player.Character:FindFirstChild("HumanoidRootPart"); if not hrp then return end; for i = 1, #parts do local part = parts[i]; local actual_part = local_player.Character:FindFirstChild(part.Name); if not actual_part then continue end; if part.Name == "HumanoidRootPart" then continue end; if part.ClassName == "MeshPart" then part.CFrame = actual_part.CFrame; part.Anchored = true; part.CanCollide = false; part.Color = color; end; end; instances.c_sync_chams:SetPrimaryPartCFrame(desynced_pos); end; end; --// drawing objects do --// assist do --// assist fov drawings["assist_fov_outside"] = utility.drawing_new("Circle", { Visible = false, Color = default_color, ZIndex = 9e9 }); drawings["assist_fov_inside"] = utility.drawing_new("Circle", { Visible = false, Filled = true, Color = default_color, ZIndex = 9e9 }); end; --// silent aim do --// silent fov drawings["silent_fov_outside"] = utility.drawing_new("Circle", { Visible = false, Color = default_color, ZIndex = 9e9 }); drawings["silent_fov_inside"] = utility.drawing_new("Circle", { Visible = false, Filled = true, Color = default_color, ZIndex = 9e9 }); --// target tracer drawings["silent_tracer"] = utility.drawing_new("Line", { Visible = false, Color = default_color, Thickness = 2 }); end; --// target aim do drawings["target_fov_outside"] = utility.drawing_new("Circle", { Visible = false, Color = default_color, ZIndex = 9e9 }); drawings["target_fov_inside"] = utility.drawing_new("Circle", { Visible = false, Filled = true, Color = default_color, ZIndex = 9e9 }); drawings["target_tracer"] = utility.drawing_new("Line", { Visible = false, Color = default_color, Thickness = 2 }); drawings["target_dot"] = utility.drawing_new("Circle", { Filled = true }); end; --// c sync do drawings["c_sync_dot"] = utility.drawing_new("Circle", { Visible = false, Filled = true }); drawings["c_sync_tracer"] = utility.drawing_new("Line", { Visible = false, Color = default_color, Thickness = 2 }) end; end; --// signals do signals["target_target_changed"] = utility.create_connection("target_target_changed"); end; --// instances do --// target aim do instances["target_chams"] = utility.instance_new("Highlight", { FillColor = default_color, OutlineColor = default_color, OutlineTransparency = 0.5, FillTransparency = 0.5 }); end; --// local shit do instances["local_chams"] = utility.instance_new("Highlight", { FillColor = default_color, OutlineColor = Color3.new(0, 0, 0), OutlineTransparency = 0.5, FillTransparency = 0.5 }); instances["local_text"] = utility.instance_new("TextLabel", { Name = "https://starhook.club", Parent = screen_gui_2, Text = 'starhook.club', BackgroundTransparency = 1, BorderSizePixel = 0, TextStrokeTransparency = 0.5, Font = Enum.Font.SourceSans, TextSize = 20, RichText = true }); end; do instances["target_ui"]["frame"] = utility.instance_new("Frame", { Parent = screen_gui; BackgroundColor3 = Color3.fromRGB(13, 13, 13); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.405395985, 0, 0.644607842, 0); Size = UDim2.new(0, 337, 0, 132); }); instances["target_ui"]["ui_corner"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["frame"]; }); instances["target_ui"]["ui_stroke"] = utility.instance_new("UIStroke", { Parent = instances["target_ui"]["frame"]; Color = Color3.fromRGB(50, 50, 50); }); instances["target_ui"]["image"] = utility.instance_new("Frame", { Name = "Image"; Parent = instances["target_ui"]["frame"]; BackgroundColor3 = Color3.fromRGB(20, 20, 20); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.0326409489, 0, 0.121212125, 0); Size = UDim2.new(0, 100, 0, 100); }); instances["target_ui"]["main_image"] = utility.instance_new("ImageLabel", { Name = "MainImage"; Parent = instances["target_ui"]["image"]; BackgroundColor3 = Color3.fromRGB(255, 255, 255); BackgroundTransparency = 1.0; BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Size = UDim2.new(0, 100, 0, 100); Image = "rbxthumb://type=AvatarHeadShot&id=5038007184&w=420&h=420"; }); instances["target_ui"]["ui_corner_2"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["main_image"]; }); instances["target_ui"]["ui_corner_3"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["image"]; }); instances["target_ui"]["ui_stroke_2"] = utility.instance_new("UIStroke", { Parent = instances["target_ui"]["image"]; Color = Color3.fromRGB(35, 35, 35); }); instances["target_ui"]["info"] = utility.instance_new("Frame", { Name = "Info"; Parent = instances["target_ui"]["frame"]; BackgroundColor3 = Color3.fromRGB(20, 20, 20); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.370919883, 0, 0.121212125, 0); Size = UDim2.new(0, 202, 0, 100); }); instances["target_ui"]["ui_corner_4"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["info"]; }); instances["target_ui"]["ui_stroke_3"] = utility.instance_new("UIStroke", { Parent = instances["target_ui"]["info"]; Color = Color3.fromRGB(35, 35, 35); }); instances["target_ui"]["logo"] = utility.instance_new("ImageLabel", { Name = "Logo"; Parent = instances["target_ui"]["info"]; BackgroundColor3 = Color3.fromRGB(207, 227, 0); BackgroundTransparency = 1.0; BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.801597357, 0, -0.00666687032, 0); Size = UDim2.new(0, 40, 0, 40); Image = "http://www.roblox.com/asset/?id=18305816180"; }); instances["target_ui"]["player_name"] = utility.instance_new("TextLabel", { Name = "PlayerName"; Parent = instances["target_ui"]["info"]; BackgroundColor3 = Color3.fromRGB(255, 255, 255); BackgroundTransparency = 1.0; BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.0597032607, 0, 0, 0); Size = UDim2.new(0, 115, 0, 39); Font = Enum.Font.Roboto; Text = "Linemaster"; TextColor3 = Color3.fromRGB(255, 255, 255); TextScaled = true; TextSize = 27.0; TextStrokeTransparency = 0.0; TextWrapped = true; }); instances["target_ui"]["health"] = utility.instance_new("Frame", { Name = "Health"; Parent = instances["target_ui"]["info"]; BackgroundColor3 = Color3.fromRGB(35, 35, 35); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.0297029708, 0, 0.469999999, 0); Size = UDim2.new(0, 143, 0, 13); }); instances["target_ui"]["ui_corner_5"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["health"]; }); instances["target_ui"]["health_inline"] = utility.instance_new("Frame", { Name = "HealthInline"; Parent = instances["target_ui"]["health"]; BackgroundColor3 = Color3.fromRGB(207, 227, 0); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(-0.00526097417, 0, 0.0769230798, 0); Size = UDim2.new(0, 143, 0, 12); }); instances["target_ui"]["ui_corner_6"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["health_inline"]; }); instances["target_ui"]["armor"] = utility.instance_new("Frame", { Name = "Armor"; Parent = instances["target_ui"]["info"]; BackgroundColor3 = Color3.fromRGB(35, 35, 35); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(0.0299999993, 0, 0.699999988, 0); Size = UDim2.new(0, 143, 0, 13); }); instances["target_ui"]["ui_corner_7"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["armor"]; }); instances["target_ui"]["armor_inline"] = utility.instance_new("Frame", { Name = "ArmorInline"; Parent = instances["target_ui"]["armor"]; BackgroundColor3 = Color3.fromRGB(0, 140, 227); BorderColor3 = Color3.fromRGB(0, 0, 0); BorderSizePixel = 0; Position = UDim2.new(-0.00526097417, 0, 0.0769230798, 0); Size = UDim2.new(0, 143, 0, 12); }); instances["target_ui"]["ui_corner_8"] = utility.instance_new("UICorner", { Parent = instances["target_ui"]["armor_inline"]; }); end; --// c sync do local cloned_char = utility.clone_character(local_player, 0.7, default_color, "Neon", false); cloned_char.PrimaryPart = cloned_char.HumanoidRootPart; cloned_char.HumanoidRootPart.CanCollide = false; instances["c_sync_chams"] = cloned_char end; end; --// connections do --// addon library do script_addon.events["gun_activated"] = utility.create_connection("gun_activated"); end; local dragging = false; --// target ui dragging utility.new_connection(user_input_service.InputBegan, function(input, is_typing) if (not (input.UserInputType == Enum.UserInputType.MouseButton1)) then return end; if (not (custom_math.is_mouse_over_frame(instances["target_ui"]["frame"]))) then return end; if ((flags["rage_target_aim_ui_mode"] ~= "Static")) then return end; dragging = true; end); utility.new_connection(user_input_service.InputEnded, function(input, is_typing) if (not (input.UserInputType == Enum.UserInputType.MouseButton1)) then return end; dragging = false; end); utility.new_connection(user_input_service.InputChanged, function(input) if (not (input.UserInputType == Enum.UserInputType.MouseMovement)) then return end; if (not (dragging)) then return end; local mouse_pos = user_input_service:GetMouseLocation(); local tween_info = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out); local frame = instances["target_ui"]["frame"]; local tween = tween_service:Create(frame, tween_info, {Position = UDim2.fromOffset(mouse_pos.X, mouse_pos.Y)}); tween:Play(); end); do --// assist connections utility.new_connection(run_service.RenderStepped, function() local assist_enabled = flags["legit_assist_enabled"]; local stutter_enabled = flags["legit_assist_stutter_enabled"]; local stutter_amount = flags["legit_assist_stutter_amount"]; local actual_stutter_amount = (stutter_amount / 15); local fov_enabled = flags["legit_assist_settings_use_field_of_view"]; if (assist_enabled and (locals.assist.is_targetting and locals.assist.target) and ((not stutter_enabled) or stutter_enabled and (tick() - locals.old_ticks.assist_stutter_tick >= actual_stutter_amount))) then local assist_type = flags["legit_assist_type"]; local smoothing = flags["legit_assist_smoothing_amount"]; local actual_smoothing = (1 / smoothing); local smoothing_enabled = flags["legit_assist_smoothing_enabled"]; local position = assist.get_predicted_position(); if (assist_type) == "Camera" then camera.CFrame = smoothing_enabled and camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, position), actual_smoothing) or CFrame.new(camera.CFrame.Position, position); --// also please note that i wanted to use tweenservice but i hate tweenservice elseif (assist_type) == "Mouse" then local screen_position = utility.world_to_screen(position); local actual_smoothing_mouse = smoothing_enabled and smoothing or 7; assist.move_mouse(screen_position.position, actual_smoothing_mouse); end; locals.old_ticks.assist_stutter_tick = tick(); end; if (assist_enabled and fov_enabled) then local fov_radius = (flags["legit_assist_settings_field_of_view_radius"] * 3); local fov_color = flags["legit_assist_settings_field_of_view_color"]; local fov_transparency = flags["legit_assist_settings_field_of_view_transparency"]; --// outside fov drawings.assist_fov_outside.Visible = true; drawings.assist_fov_outside.Radius = fov_radius; drawings.assist_fov_outside.Color = fov_color; drawings.assist_fov_outside.Position = user_input_service:GetMouseLocation(); --// inside drawings.assist_fov_inside.Visible = true; drawings.assist_fov_inside.Radius = fov_radius; drawings.assist_fov_inside.Color = fov_color; drawings.assist_fov_inside.Transparency = fov_transparency; drawings.assist_fov_inside.Position = user_input_service:GetMouseLocation(); else if drawings.assist_fov_inside then drawings.assist_fov_outside.Visible = false; drawings.assist_fov_inside.Visible = false; end; end; end); end; --// silent aim connections do utility.new_connection(run_service.RenderStepped, function() --// settings local silent_enabled = flags["legit_silent_enabled"]; local tracer_enabled = flags["legit_silent_aim_tracer_enabled"]; local fov_enabled = flags["legit_silent_use_field_of_view"]; local fov_visualize_enabled = flags["legit_silent_visualize_field_of_view"]; local fov_radius = flags["legit_silent_field_of_view_radius"]; local checks_enabled = flags["legit_silent_use_checks"]; local check_values = flags["legit_silent_checks"]; if (silent_enabled) then local new_target = combat.get_closest_player(fov_enabled, fov_radius, checks_enabled, check_values); if new_target ~= locals.silent_aim.target then locals.silent_aim.target = new_target or nil; end; locals.silent_aim.is_targetting = new_target and true or false; end; if (silent_enabled and (locals.silent_aim.is_targetting and locals.silent_aim.target)) then locals.silent_aim.predicted_position = silent_aim.get_predicted_position(); end; if (silent_enabled and (fov_enabled and fov_visualize_enabled)) then --// settings local fov_color = flags["legit_silent_field_of_view_color"]; local fov_transparency = flags["legit_silent_field_of_view_transparency"]; --// outside drawings.silent_fov_outside.Visible = true; drawings.silent_fov_outside.Radius = fov_radius * 3; drawings.silent_fov_outside.Color = fov_color; drawings.silent_fov_outside.Position = user_input_service:GetMouseLocation(); --// inside drawings.silent_fov_inside.Visible = true; drawings.silent_fov_inside.Radius = fov_radius * 3; drawings.silent_fov_inside.Color = fov_color; drawings.silent_fov_inside.Transparency = fov_transparency; drawings.silent_fov_inside.Position = user_input_service:GetMouseLocation(); else if drawings.silent_fov_inside.Visible then drawings.silent_fov_outside.Visible = false; drawings.silent_fov_inside.Visible = false; end; end; if (silent_enabled and (tracer_enabled) and (locals.silent_aim.is_targetting and locals.silent_aim.target)) then local mouse_position = user_input_service:GetMouseLocation(); local predicted_position = utility.world_to_screen(game.PlaceId == hood_customs and locals.silent_aim.predicted_position - Vector3.new(25, 100, 25) or locals.silent_aim.predicted_position); local tracer_color = flags["legit_silent_aim_tracer_color"]; local tracer_thickness = flags["legit_silent_aim_tracer_thickness"]; local tracer_transparency = flags["legit_silent_aim_tracer_transparency"]; drawings.silent_tracer.Visible = predicted_position.on_screen; drawings.silent_tracer.From = mouse_position; drawings.silent_tracer.To = predicted_position.position; drawings.silent_tracer.Color = tracer_color; drawings.silent_tracer.Transparency = tracer_transparency; drawings.silent_tracer.Thickness = tracer_thickness; else if drawings.silent_tracer.Visible then drawings.silent_tracer.Visible = false; end; end; end); end; --// rage connections do --// target aim connections do utility.new_connection(run_service.Heartbeat, function() local target_aim_enabled = flags["rage_target_aim_enabled"]; local fov_enabled = flags["rage_target_aim_use_field_of_view"]; local fov_radius = flags["rage_target_aim_field_of_view_radius"]; local visualize_fov = flags["rage_target_aim_visualize_field_of_view"]; local visuals_enabled = flags["rage_target_aim_visuals_enabled"]; local tracer_enabled = flags["rage_target_aim_tracer_enabled"]; local chams_enabled = flags["rage_target_aim_chams_enabled"]; local fov_transparency = flags["rage_target_aim_field_of_view_transparency"]; local dot_enabled = flags["rage_target_aim_dot_enabled"]; local auto_shoot_enabled = flags["rage_target_aim_auto_shoot"]; local look_at_enabled = flags["rage_target_aim_look_at"]; local ui_enabled = flags["rage_target_aim_visuals_ui_enabled"]; local ui_type = flags["rage_target_aim_ui_mode"]; local target = locals.target_aim.target; local is_targetting = locals.target_aim.is_targetting; if (target_aim_enabled and (is_targetting and target)) then locals.target_aim.predicted_position = target_aim.get_predicted_position(); end; if (target_aim_enabled and (fov_enabled and visualize_fov)) then --// settings local fov_color = flags["rage_target_aim_field_of_view_color"]; --// outside drawings.target_fov_outside.Visible = true; drawings.target_fov_outside.Radius = fov_radius * 3; drawings.target_fov_outside.Color = fov_color; drawings.target_fov_outside.Position = user_input_service:GetMouseLocation(); --// inside drawings.target_fov_inside.Visible = true; drawings.target_fov_inside.Radius = fov_radius * 3; drawings.target_fov_inside.Color = fov_color; drawings.target_fov_inside.Transparency = fov_transparency; drawings.target_fov_inside.Position = user_input_service:GetMouseLocation(); else if drawings.target_fov_outside.Visible then drawings.target_fov_outside.Visible = false; drawings.target_fov_inside.Visible = false; end; end; if (target_aim_enabled and (visuals_enabled and ui_enabled) and (is_targetting and target and utility.has_character(target))) then local screen_pos = utility.world_to_screen(target.Character.HumanoidRootPart.Position); if (ui_type == "Follow") then local tween_info = TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, 0, false, 0); local tween = tween_service:Create(instances["target_ui"]["frame"], tween_info, {Position = UDim2.fromOffset(screen_pos.position.X, screen_pos.position.Y)}); tween:Play(); end; local health_inline = instances["target_ui"]["health_inline"]; local armor_inline = instances["target_ui"]["armor_inline"]; local health_percent = target.Character.Humanoid.Health / target.Character.Humanoid.MaxHealth; health_inline.Size = UDim2.new(health_percent, 0, 1, 0); local armor_percent = dahood.get_armor(target) / 100; armor_inline.Size = UDim2.new(armor_percent, 0, 1, 0); end; if (target_aim_enabled and (visuals_enabled and dot_enabled) and (is_targetting and target) and utility.has_character(target)) then local predicted_position = utility.world_to_screen(game.PlaceId == hood_customs and locals.target_aim.predicted_position - Vector3.new(25, 100, 25) or locals.target_aim.predicted_position); local dot_color = flags["rage_target_aim_dot_color"]; local dot_size = flags["rage_target_aim_dot_size"]; drawings.target_dot.Visible = predicted_position.on_screen; drawings.target_dot.Position = predicted_position.position; drawings.target_dot.Color = dot_color; drawings.target_dot.Radius = dot_size; else if drawings.target_dot.Visible then drawings.target_dot.Visible = false; end; end; if (target_aim_enabled and (visuals_enabled and tracer_enabled) and (is_targetting and target) and utility.has_character(target)) then local mouse_position = user_input_service:GetMouseLocation(); local predicted_position = utility.world_to_screen(game.PlaceId == hood_customs and locals.target_aim.predicted_position - Vector3.new(25, 100, 25) or locals.target_aim.predicted_position); local tracer_color = flags["rage_target_aim_tracer_color"]; local tracer_thickness = flags["rage_target_aim_tracer_thickness"]; drawings.target_tracer.Visible = predicted_position.on_screen; drawings.target_tracer.From = mouse_position; drawings.target_tracer.To = predicted_position.position; drawings.target_tracer.Color = tracer_color; drawings.target_tracer.Thickness = tracer_thickness; else if drawings.target_tracer.Visible then drawings.target_tracer.Visible = false; end; end; if (target_aim_enabled and (visuals_enabled and chams_enabled) and (is_targetting and target) and utility.has_character(target)) then local fill_color = flags["rage_target_aim_chams_fill_color"]; local outline_color = flags["rage_target_aim_chams_outline_color"]; instances.target_chams.Parent = target.Character; instances.target_chams.OutlineColor = outline_color; instances.target_chams.FillColor = fill_color; else instances.target_chams.Parent = nil; end; if ((target_aim_enabled and look_at_enabled) and (is_targetting and target and utility.has_character(target))) then local_player.Character.HumanoidRootPart.CFrame = CFrame.new(local_player.Character.HumanoidRootPart.CFrame.Position, Vector3.new(target.Character.HumanoidRootPart.CFrame.X, local_player.Character.HumanoidRootPart.CFrame.Position.Y, target.Character.HumanoidRootPart.CFrame.Z)); end; if (target_aim_enabled and auto_shoot_enabled and (is_targetting and target) and utility.has_character(target) and locals.gun.current_tool and (tick() - locals.old_ticks.auto_shoot_tick >= 0.1)) then local is_behind_wall = utility.is_player_behind_a_wall(target); local is_knocked = dahood.is_knocked(target); if (not is_behind_wall or is_knocked) then locals.gun.current_tool:Activate(); end; locals.old_ticks.auto_shoot_tick = tick(); end; end); utility.new_connection(run_service.Heartbeat, function() local target_aim_enabled = flags["rage_target_aim_enabled"]; local target_aim_teleport_enabled = flags["rage_target_aim_teleport_enabled"]; local target_aim_teleport_keybind_active = flags["rage_target_aim_teleport_keybind"]; local target_aim_teleport_destroy_cheaters_bypass = flags["rage_target_aim_bypass_destroy_cheaters"]; local target = locals.target_aim.target; local is_targetting = locals.target_aim.is_targetting; if ((target_aim_enabled and target_aim_teleport_enabled and target_aim_teleport_keybind_active) and (is_targetting and target and utility.has_character(target)) and (not target_aim_teleport_destroy_cheaters_bypass or target_aim_teleport_destroy_cheaters_bypass and target.Character.HumanoidRootPart.CFrame.Position.Y >= -10000)) then local target_aim_teleport_type = flags["rage_target_aim_teleport_type"]; local target_aim_teleport_randomization = flags["rage_target_aim_teleport_randomization"]; local target_aim_teleport_strafe_speed = flags["rage_target_aim_teleport_strafe_speed"]; local target_aim_teleport_strafe_distance = flags["rage_target_aim_teleport_strafe_distance"]; local target_aim_teleport_strafe_height = flags["rage_target_aim_teleport_strafe_height"]; local cframe; if (target_aim_teleport_type == "Random") then cframe = target.Character.HumanoidRootPart.CFrame + custom_math.random_vector3(target_aim_teleport_randomization); elseif (target_aim_teleport_type == "Strafe") then local current_time = tick(); cframe = CFrame.new(target.Character.HumanoidRootPart.Position) * CFrame.Angles(0, 2 * math.pi * current_time * target_aim_teleport_strafe_speed % (2 * math.pi), 0) * CFrame.new(0, target_aim_teleport_strafe_height, target_aim_teleport_strafe_distance); end; local_player.Character.HumanoidRootPart.CFrame = cframe; end; end); --// target changed connection utility.new_connection(signals.target_target_changed, function(target, is_targetting) local spectate_enabled = flags["rage_target_aim_spectate"]; local notify_enabled = flags["rage_target_aim_notify"]; local notify_duration = flags["rage_target_aim_notify_duration"]; local ui_enabled = flags["rage_target_aim_visuals_ui_enabled"]; if (spectate_enabled and (target and is_targetting)) then camera.CameraSubject = target.Character.Humanoid; else camera.CameraSubject = local_player.Character.Humanoid; end; if (notify_enabled) then local message = is_targetting and string.format("Targeting %s", target.DisplayName) or "Untargeting"; library:Notification(message, notify_duration); end; if (ui_enabled) then screen_gui.Enabled = is_targetting; instances["target_ui"]["player_name"].Text = is_targetting and target.DisplayName or "None"; instances["target_ui"]["main_image"].Image = is_targetting and players:GetUserThumbnailAsync(target.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100) or "rbxassetid://111122112"; end; end); end; --// misc rage do utility.new_connection(run_service.Heartbeat, function(delta_time) local cframe_speed_enabled = flags["rage_cframe_speed_enabled"]; local cframe_speed_keybind = flags["rage_cframe_speed_keybind"]; local no_jump_cooldown = flags["rage_misc_movement_no_jump_cooldown"]; local cframe_fly_enabled = flags["rage_cframe_fly_enabled"]; local cframe_fly_keybind = flags["rage_cframe_fly_keybind"]; local cframe_fly_speed = flags["rage_cframe_fly_amount"]; if ((cframe_speed_enabled and cframe_speed_keybind) and utility.has_character(local_player)) then local speed = flags["rage_cframe_speed_amount"]; local root_part = local_player.Character.HumanoidRootPart; local humanoid = local_player.Character.Humanoid; root_part.CFrame = root_part.CFrame + humanoid.MoveDirection * speed; end; if (cframe_fly_enabled and cframe_fly_keybind and utility.has_character(local_player)) then --// credits to xander local move_direction = local_player.Character.Humanoid.MoveDirection; local hrp = local_player.Character.HumanoidRootPart; local add = Vector3.new(0, (user_input_service:IsKeyDown(Enum.KeyCode.Space) and cframe_fly_speed / 8 or user_input_service:IsKeyDown(Enum.KeyCode.LeftShift) and -cframe_fly_speed / 8) or 0, 0); hrp.CFrame = hrp.CFrame + (move_direction * delta_time) * cframe_fly_speed * 10; hrp.CFrame = hrp.CFrame + add; hrp.Velocity = (hrp.Velocity * Vector3.new(1, 0, 1)) + Vector3.new(0, 1.9, 0); end; if (no_jump_cooldown and utility.has_character(local_player)) then local_player.Character.Humanoid.UseJumpPower = false; end; end); end; --// visuals do utility.new_connection(run_service.Heartbeat, function() local clone_chams_enabled = flags["visuals_clone_chams_enabled"]; local clone_chams_duration = flags["visuals_clone_chams_duration"] local local_player_chams_enabled = flags["visuals_player_chams_enabled"]; local local_player_chams_fill_color = flags["visuals_player_chams_fill_color"]; local local_player_chams_outline_color = flags["visuals_player_chams_outline_color"]; if (clone_chams_enabled and (tick() - locals.old_ticks.clone_chams_tick >= clone_chams_duration)) then locals.old_ticks.clone_chams_tick = tick(); local players_apply = { ["Local Player"] = local_player, ["Target Aim Target"] = locals.target_aim.target }; local to_apply_table = flags["visuals_clone_chams_to_apply"] for i = 1, #to_apply_table do local to_apply = to_apply_table[i]; local player = players_apply[to_apply]; if (player) then local color = flags["visuals_clone_chams_color"]; local transparency = flags["visuals_clone_chams_transparency"]; local model = utility.clone_character(player, transparency, color, "ForceField", true); task.delay(clone_chams_duration, function() model:Destroy(); end); end; end; end; if (local_player_chams_enabled and utility.has_character(local_player)) then instances.local_chams.Parent = local_player.Character instances.local_chams.FillColor = local_player_chams_fill_color; instances.local_chams.OutlineColor = local_player_chams_outline_color; else instances.local_chams.Parent = nil end; end); utility.new_connection(run_service.Heartbeat, function() local enabled = flags["visuals_text_enabled"]; local color = flags["visuals_text_color"]:ToHex(); local cursor_offset_y = flags["visuals_text_cursor_offset"]; local custom_text = flags["visuals_cursor_custom_text_text"]; local custom_text_enabled = flags["visuals_text_custom_text"]; if (enabled) then screen_gui_2.Enabled = true; local text_label = instances["local_text"]; local mouse_position = user_input_service:GetMouseLocation(); local actual_color = `#{color}`; local text_color = actual_color ~= "#nil" and actual_color or "#cfe300"; local text = custom_text_enabled and '' .. features.get_text(custom_text) .. '' or 'starhook.club'; text_label.Text = text; text_label.Position = UDim2.new(0, mouse_position.X, 0, mouse_position.Y + cursor_offset_y); else screen_gui_2.Enabled = false; end; end); end; --// anti aim do --// velocity spoofer utility.new_connection(run_service.Heartbeat, function() local enabled = flags["anti_aim_velocity_spoofer_enabled"]; local keybind = flags["anti_aim_velocity_spoofer_keybind"]; if (enabled and keybind and utility.has_character(local_player)) then local type = flags["anti_aim_velocity_spoofer_type"]; local hrp = local_player.Character.HumanoidRootPart local old_velocity = hrp.Velocity; local new_velocity; if (type == "Local Strafe") then local strafe_speed = flags["anti_aim_velocity_spoofer_strafe_speed"]; local strafe_distance = flags["anti_aim_velocity_spoofer_strafe_distance"] * 10; local current_time = tick(); new_velocity = Vector3.new(math.cos(2 * math.pi * current_time * strafe_speed % (2 * math.pi)) * strafe_distance, 0, math.sin(2 * math.pi * current_time * strafe_speed % (2 * math.pi)) * strafe_distance) elseif (type == "Static") then local x = flags["anti_aim_velocity_spoofer_static_x"]; local y = flags["anti_aim_velocity_spoofer_static_y"]; local z = flags["anti_aim_velocity_spoofer_static_z"]; new_velocity = Vector3.new(x, y, z); elseif (type == "Random") then local randomization = flags["anti_aim_velocity_spoofer_randomization"]; new_velocity = custom_math.random_vector3(randomization * 1000); end; hrp.Velocity = new_velocity; run_service.RenderStepped:Wait(); hrp.Velocity = old_velocity; end; end); --// network desync utility.new_connection(run_service.Heartbeat, function() local enabled = flags["anti_aim_network_desync_enabled"]; local amount = flags["anti_aim_network_desync_amount"]; if (enabled and ((tick() - locals.old_ticks.network_desync_tick) >= (amount / 1000))) then locals.network_should_sleep = not locals.network_should_sleep; sethiddenproperty(local_player.Character.HumanoidRootPart, "NetworkIsSleeping", locals.network_should_sleep); locals.old_ticks.network_desync_tick = tick(); end; end); --// csynchoronioastions 🔥 utility.new_connection(run_service.Heartbeat, function() local enabled = flags["anti_aim_c_sync_enabled"]; local keybind = flags["anti_aim_c_sync_keybind"]; local c_sync_type = flags["anti_aim_c_sync_type"]; local static_x = flags["anti_aim_c_sync_static_x"]; local static_y = flags["anti_aim_c_sync_static_y"]; local static_z = flags["anti_aim_c_sync_static_z"]; local randomization = flags["anti_aim_c_sync_randomization"]; local visualize_enabled = flags["anti_aim_c_sync_visualize_enabled"]; local visualize_types = flags["anti_aim_c_sync_visualize_types"]; local visualize_color = flags["anti_aim_c_sync_visualize_color"]; local visualize_dot_size = flags["anti_aim_c_sync_dot_size"]; --// starhook classics local classics_enabled = flags["anti_aim_starhook_classics_enabled"]; local classics_keybind = flags["anti_aim_starhook_classics_keybind"]; local classics_types = flags["anti_aim_starhook_classics"]; if ((enabled or classics_enabled) and (keybind or classics_keybind) and (not (classics_keybind and classics_enabled and classics_types == "supercoolboi34 Destroyer") or (classics_keybind and classics_enabled and classics_types == "supercoolboi34 Destroyer"))) then local hrp = local_player.Character.HumanoidRootPart; local spoofed_cframe = hrp.CFrame; local is_targetting = (locals.target_aim.is_targetting and locals.target_aim.target); local types = { ["Static Local"] = hrp.CFrame + Vector3.new(static_x, static_y, static_z), ["Static Target"] = is_targetting and locals.target_aim.target.Character.HumanoidRootPart.CFrame + Vector3.new(static_x, static_y, static_z) or hrp.CFrame, ["Local Random"] = hrp.CFrame + custom_math.random_vector3(randomization), ["Target Random"] = is_targetting and locals.target_aim.target.Character.HumanoidRootPart.CFrame + custom_math.random_vector3(randomization) or hrp.CFrame, ["Destroy Cheaters"] = hrp.CFrame + Vector3.new(0 / 0, 1, math.huge), ["supercoolboi34 Destroyer"] = locals.should_starhook_destroy and hrp.CFrame + Vector3.new(0 / 0, 1, math.huge) or hrp.CFrame }; local desync_type = (classics_enabled and classics_keybind and (classics_types == "Destroy Cheaters" and types["Destroy Cheaters"] or classics_types == "supercoolboi34 Destroyer" and types["supercoolboi34 Destroyer"] or types[classics_types])) or (enabled and keybind and types[c_sync_type]); locals.original_position = hrp.CFrame; if (visualize_enabled and table.find(visualize_types, "Tracer") and typeof(desync_type) == "CFrame") then local hrp_pos = utility.world_to_screen(hrp.Position); local desynced_pos = utility.world_to_screen(desync_type.Position); drawings.c_sync_tracer.Visible = true; drawings.c_sync_tracer.From = Vector2.new(hrp_pos.position.X, hrp_pos.position.Y); drawings.c_sync_tracer.To = Vector2.new(desynced_pos.position.X, desynced_pos.position.Y); drawings.c_sync_tracer.Color = visualize_color; else drawings.c_sync_tracer.Visible = false; end; if (visualize_enabled and table.find(visualize_types, "Dot") and typeof(desync_type) == "CFrame") then local desynced_pos = utility.world_to_screen(desync_type.Position); drawings.c_sync_dot.Visible = true; drawings.c_sync_dot.Color = visualize_color; drawings.c_sync_dot.Position = desynced_pos.position; drawings.c_sync_dot.Radius = visualize_dot_size; else drawings.c_sync_dot.Visible = false; end; if (visualize_enabled and table.find(visualize_types, "Character") and typeof(desync_type) == "CFrame") then instances.c_sync_chams.Parent = workspace; features.update_c_sync_char(desync_type, visualize_color); else if instances.c_sync_chams.Parent ~= nil then instances.c_sync_chams.Parent = nil; end; end; hrp.CFrame = desync_type; run_service.RenderStepped:Wait(); hrp.CFrame = locals.original_position; else if instances.c_sync_chams.Parent ~= nil then instances.c_sync_chams.Parent = nil; end; drawings.c_sync_tracer.Visible = false; drawings.c_sync_dot.Visible = false; end; end); task.spawn(function() while task.wait(0.1) do locals.should_starhook_destroy = not locals.should_starhook_destroy; end; end); --// invis desync --[[utility.new_connection(run_service.Heartbeat, function() local classics_enabled = flags["anti_aim_starhook_classics_enabled"]; local classics_keybind = flags["anti_aim_starhook_classics_keybind"]; local classics_types = flags["anti_aim_starhook_classics"]; if ((classics_enabled and classics_keybind) and classics_types == "Revert Desync") then end; end);--]] end; end; --// rocket tp if (table.find(dahood_ids, game.PlaceId)) then utility.new_connection(workspace.Ignored.ChildAdded, function(object) if (flags["rage_target_aim_enabled"] and flags["rage_target_aim_rocket_tp_enabled"] and (locals.target_aim.is_targetting and locals.target_aim.target) and utility.has_character(locals.target_aim.target) and (object.Name == "Model" or object.Name == "GrenadeLauncherAmmo")) then local is_grenade_launcher = object.Name == "GrenadeLauncherAmmo"; local target = locals.target_aim.target; local part = is_grenade_launcher and object:WaitForChild("Main") or object:WaitForChild("Launcher"); part.CFrame = CFrame.new(1, 1, 1); if (not is_grenade_launcher) then part.BodyVelocity:Destroy(); part.TouchInterest:Destroy(); end; local connection = utility.new_connection(run_service.Heartbeat, function() if ((locals.target_aim.is_targetting and target) and utility.has_character(target)) then part.CFrame = target.Character.HumanoidRootPart.CFrame; part.Velocity = Vector3.new(0, 0.001, 0); end; end); utility.new_connection(object.Destroying, function() connection:Disconnect(); end); end; end); end; --// gun connections do local get_closest_player = function(radius, position) local actual_radius = radius; local closest_player; local all_players = players:GetPlayers(); for i = 1, #all_players do local player = all_players[i]; if (player == local_player) then continue end; if (not (utility.has_character(player))) then continue end; local hrp = player.Character.HumanoidRootPart; local distance = (hrp.Position - position).Magnitude; if (distance <= actual_radius) then actual_radius = distance; closest_player = player; end; end; return closest_player; end; local add_character = function(character) --// main child added connection utility.new_connection(character.ChildAdded, function(object) local gun = dahood.get_gun(local_player); if (not (gun)) then return end; if object == gun.tool then connections.gun["activated"] = utility.new_connection(gun.tool.Activated, function() script_addon.events["gun_activated"]:Fire(); if (flags["legit_silent_enabled"] and flags["legit_silent_anti_aim_viewer"] and (locals.silent_aim.is_targetting and locals.silent_aim.target)) then remote:FireServer(mouse_argument, locals.silent_aim.predicted_position); end; if (flags["legit_silent_enabled"] and not flags["legit_silent_anti_aim_viewer"] and (locals.silent_aim.is_targetting and locals.silent_aim.target)) then remote:FireServer(mouse_argument, locals.silent_aim.predicted_position); end; if (flags["rage_target_aim_enabled"] and (locals.target_aim.is_targetting and locals.target_aim.target)) then remote:FireServer(mouse_argument, locals.target_aim.predicted_position); end; end); connections.gun["shot"] = utility.new_connection(gun.ammo.Changed, function() local new_ammo = gun.ammo.Value; if (new_ammo < locals.gun.previous_ammo) then locals.gun.recently_shot = true; task.wait(); locals.gun.recently_shot = false; end; locals.gun.previous_ammo = gun.ammo.Value; end); end; locals.gun.current_tool = gun.tool; end); --// main child removed connection utility.new_connection(character.ChildRemoved, function(object) if object == locals.gun.current_tool then local gun_connections = connections.gun; for i = 1, #gun_connections do local connection = gun_connections[i]; connection:Disconnect(); end; connections.gun = {}; locals.gun.previous_ammo = 999; locals.gun.current_tool = nil; end; end); end; utility.new_connection(local_player.CharacterAdded, function(character) add_character(character); character:WaitForChild("Humanoid"); local material = flags["visuals_player_material_type"]; local material_enabled = flags["visuals_player_material_enabled"]; features.local_material(material_enabled, material); end); add_character(local_player.Character); --// main bullets if (bullet_path) then child_added = utility.new_connection(bullet_path.ChildAdded, function(object) if object.name == bullet_name and locals.gun.recently_shot then local gun_beam = object:WaitForChild(bullet_beam_name); local start_pos, end_pos = object.Position, gun_beam.Attachment1.WorldPosition; local bullet_tracers_enabled = flags["visuals_bullet_tracers_enabled"]; local bullet_impacts_enabled = flags["visuals_bullet_impacts_enabled"]; local hit_detection_enabled = flags["visuals_hit_detection_enabled"]; if (bullet_tracers_enabled) then gun_beam:Destroy(); local gradient_color_1 = flags["visuals_bullet_tracers_color_gradient_1"]; local gradient_color_2 = flags["visuals_bullet_tracers_color_gradient_2"]; local duration = flags["visuals_bullet_tracers_duration"]; local fade_enabled = flags["visuals_bullet_tracers_fade_enabled"]; local fade_duration = flags["visuals_bullet_tracers_fade_duration"]; utility.create_beam(start_pos, end_pos, gradient_color_1, gradient_color_2, duration, fade_enabled, fade_duration); end; if (bullet_impacts_enabled) then local color_picker = flags["visuals_bullet_impacts_color"]; local size = flags["visuals_bullet_impacts_size"]; local duration = flags["visuals_bullet_impacts_duration"]; local fade_enabled = flags["visuals_bullet_impacts_fade_enabled"]; local fade_duration = flags["visuals_bullet_impacts_fade_duration"]; local color = color_picker; utility.create_impact(color, size, fade_enabled, fade_duration, duration, end_pos); end; if (hit_detection_enabled) then local player = get_closest_player(10, end_pos); task.wait(); local has_blood_splatter, part = dahood.has_blood_splatter(player); if (not (has_blood_splatter)) then return end; local hit_sounds_enabled = flags["visuals_hit_detection_sounds_enabled"]; local sound_to_play = flags["visuals_hit_detection_sounds_which_sound"]; local sound_volume = flags["visuals_hit_detection_sounds_volume"]; local chams_enabled = flags["visuals_hit_detection_chams_enabled"]; local chams_color = flags["visuals_hit_detection_chams_color"]; local chams_transparency = flags["visuals_hit_detection_chams_transparency"]; local chams_duration = flags["visuals_hit_detection_chams_duration"]; local effects_enabled = flags["visuals_hit_detection_effects_enabled"]; local effects_color = flags["visuals_hit_detection_effects_color"]; local effects_which = flags["visuals_hit_detection_effects_which_effect"]; local notifications_enabled = flags["visuals_hit_detection_notification"]; local notifications_duration = flags["visuals_hit_detection_notification_duration"]; if (hit_sounds_enabled) then local sound = hitsounds[sound_to_play]; utility.play_sound(sound_volume, sound); end; if (chams_enabled) then local new_character = utility.clone_character(player, chams_transparency, chams_color, "Neon"); task.delay(chams_duration, function() new_character:Destroy(); end); end; if (effects_enabled) then if (effects_which == "Bubble") then hit_effects.bubble(player.Character.HumanoidRootPart.Position, effects_color); elseif (effects_which == "Confetti") then hit_effects.confetti(player.Character.HumanoidRootPart.Position) end; end; if (notifications_enabled) then library:Notification(string.format("Hit %s in %s", player.DisplayName, part.Name), notifications_duration); end; end; end; end); end; end; end; if (ESP) then local esp = {}; do esp.players = {}; esp.add_player = function(player) local new_esp = { box_outline = utility.drawing_new("Square", { Thickness = 3, Filled = false, Visible = false }), box_inline = utility.drawing_new("Square", { Thickness = 1, Filled = false, Visible = false }), name = utility.drawing_new("Text", { Outline = true, Center = true, Size = 13, Visible = false }), head_dot_outline = utility.drawing_new("Circle", { Radius = 10, Thickness = 3, Visible = false, Color = Color3.new(0, 0, 0) }), head_dot_inline = utility.drawing_new("Circle", { Radius = 10, Thickness = 1, Visible = false }), health_bar_outline = utility.drawing_new("Line", { Thickness = 3, Visible = false, Color = Color3.new(0, 0, 0) }), health_bar_inline = utility.drawing_new("Line", { Thickness = 1, Visible = false }), health_text = utility.drawing_new("Text", { Color = Color3.new(1, 1, 1), Size = 12, Outline = true, Center = true }), armor_bar_outline = utility.drawing_new("Line", { Thickness = 3, Visible = false, Color = Color3.new(0, 0, 0) }), armor_bar_inline = utility.drawing_new("Line", { Thickness = 1, Visible = false }) }; esp.players[player] = new_esp; end; esp.remove_player = function(player) for _, drawing in esp.players[player] do drawing:Remove(); end; esp.players[player] = nil; end; utility.new_connection(players.PlayerAdded, function(player) esp.add_player(player); end); utility.new_connection(players.PlayerRemoving, function(player) esp.remove_player(player); end); local all_players = players:GetPlayers(); for i = 1, #all_players do local player = all_players[i]; if (player == local_player) then continue end; esp.add_player(player); end; utility.new_connection(run_service.Heartbeat, function() --// Settings local esp_enabled = flags["visuals_esp_enabled"]; local boxes_enabled = flags["visuals_esp_boxes_enabled"]; local boxes_color = flags["visuals_esp_boxes_color"]; local names_enabled = flags["visuals_esp_names_enabled"]; local names_color = flags["visuals_esp_names_color"]; local head_dots_enabled = flags["visuals_esp_head_dots_enabled"]; local head_dots_color = flags["visuals_esp_head_dots_color"]; local head_dots_sides = flags["visuals_esp_head_dots_sides"]; local head_dots_size = flags["visuals_esp_head_dots_size"]; local health_bar_enabled = flags["visuals_esp_health_bar_enabled"]; local health_bar_health_based_color = flags["visuals_esp_health_bar_health_based_color"]; local health_bar_color = flags["visuals_esp_health_bar_color"] local health_text_enabled = flags["visuals_esp_health_text_enabled"]; local health_text_color = flags["visuals_esp_health_text_color"]; local health_text_health_based_color = flags["visuals_esp_health_text_health_based_color"]; local armor_bar_enabled = flags["visuals_esp_armor_bar_enabled"]; local armor_bar_color = flags["visuals_esp_armor_bar_color"]; local boxes_target_color_enabled = flags["visuals_esp_boxes_target_color_enabled"]; local boxes_target_color = flags["visuals_esp_boxes_target_color"]; local players = esp.players; for player, esp in players do if (not (utility.has_character(player))) then continue end; local character = player.Character; local hrp = character:FindFirstChild("HumanoidRootPart"); local head = character:FindFirstChild("Head"); if (not (hrp)) then continue end; if (not (head)) then continue end; local screen_pos = utility.world_to_screen(hrp.Position); local screen_pos_head = utility.world_to_screen(head.Position); local adjust_x = screen_pos.position.X - (esp.box_inline.Size.X / 2); local adjust_y = screen_pos.position.Y - (esp.box_inline.Size.Y / 2); local scale = 1000 / (camera.CFrame.Position - hrp.Position).Magnitude; local box_position = Vector2.new(adjust_x, adjust_y); local box_size = Vector2.new(3 * scale, 4.5 * scale); local outline_offset = -2; local box_outline_size = Vector2.new(box_size.X + outline_offset, box_size.Y + outline_offset); local box_outline_position = Vector2.new(adjust_x - (outline_offset / 2), adjust_y - (outline_offset / 2)); local target = locals.target_aim.target; local is_targetting = locals.target_aim.is_targetting; if (esp_enabled and boxes_enabled and screen_pos.on_screen) then esp.box_outline.Size = box_outline_size; esp.box_outline.Position = box_outline_position; esp.box_inline.Size = box_size; esp.box_inline.Position = box_position; esp.box_inline.Color = (boxes_target_color_enabled and is_targetting and target == player) and boxes_target_color or boxes_color; esp.box_inline.Visible = true; esp.box_outline.Visible = true; else esp.box_inline.Visible = false; esp.box_outline.Visible = false; end; if (esp_enabled and names_enabled and screen_pos.on_screen) then esp.name.Visible = true; esp.name.Text = player.DisplayName; esp.name.Position = Vector2.new(box_size.X / 2 + box_position.X, box_position.Y - 16); esp.name.Color = names_color; else esp.name.Visible = false; end; local head_dot_size = head_dots_size; local head_dot_outline_size = head_dot_size + -1; if (esp_enabled and head_dots_enabled and screen_pos_head.on_screen) then esp.head_dot_inline.Position = screen_pos_head.position; esp.head_dot_inline.Radius = head_dot_size; esp.head_dot_inline.NumSides = head_dots_sides; esp.head_dot_inline.Color = head_dots_color; esp.head_dot_inline.Visible = true; esp.head_dot_outline.Position = screen_pos_head.position; esp.head_dot_outline.Radius = head_dot_outline_size; esp.head_dot_outline.NumSides = head_dots_sides; esp.head_dot_outline.Visible = true; else esp.head_dot_outline.Visible = false; esp.head_dot_inline.Visible = false; end; local health_percentage = player.Character.Humanoid.Health / player.Character.Humanoid.MaxHealth; local health_bar_height = health_percentage * box_size.Y + 1; if (esp_enabled and health_bar_enabled and screen_pos.on_screen) then esp.health_bar_outline.Visible = true; esp.health_bar_inline.Visible = true; esp.health_bar_outline.From = Vector2.new(box_position.X - 5, box_position.Y + box_size.Y + 1); esp.health_bar_outline.To = Vector2.new(esp.health_bar_outline.From.X, esp.health_bar_outline.From.Y - box_size.Y - 2); esp.health_bar_inline.From = Vector2.new(box_position.X - 5, box_position.Y + box_size.Y) ; esp.health_bar_inline.To = Vector2.new(box_position.X - 5, box_position.Y + box_size.Y - health_bar_height); if (health_bar_health_based_color) then esp.health_bar_inline.Color = Color3.new(1, 0, 0):Lerp(Color3.new(0, 1, 0), health_percentage); else esp.health_bar_inline.Color = health_bar_color; end; else esp.health_bar_outline.Visible = false; esp.health_bar_inline.Visible = false; end; if (esp_enabled and health_text_enabled and screen_pos.on_screen) then esp.health_text.Visible = true; esp.health_text.Text = tostring(math.floor(player.Character.Humanoid.Health)); esp.health_text.Position = Vector2.new(box_position.X - 5 - esp.health_text.TextBounds.X, box_position.Y + box_size.Y - health_bar_height) if (health_text_health_based_color) then esp.health_text.Color = Color3.new(1, 0, 0):Lerp(Color3.new(0, 1, 0), health_percentage); else esp.health_text.Color = health_text_color; end; else esp.health_text.Visible = false; end; if (esp_enabled and armor_bar_enabled and screen_pos.on_screen) then local armor_percentage = dahood.get_armor(player) / 100; local max_bar_width = box_size.X - 2; local armor_bar_width = math.clamp(armor_percentage * max_bar_width, 0, max_bar_width); esp.armor_bar_outline.Visible = true; esp.armor_bar_inline.Visible = true; esp.armor_bar_outline.From = Vector2.new(box_position.X, box_position.Y + box_size.Y + 4); esp.armor_bar_outline.To = Vector2.new(box_position.X + max_bar_width, box_position.Y + box_size.Y + 4); esp.armor_bar_inline.From = Vector2.new(box_position.X + 1, box_position.Y + box_size.Y + 4); esp.armor_bar_inline.To = Vector2.new(box_position.X + 1 + armor_bar_width, box_position.Y + box_size.Y + 4); esp.armor_bar_inline.Color = armor_bar_color; else esp.armor_bar_outline.Visible = false; esp.armor_bar_inline.Visible = false; end; end; end); end; end; --// hooks do if (hookmetamethod) then local __namecall; __namecall = hookmetamethod(game, "__namecall", LPH_NO_VIRTUALIZE(function(self, ...) local method, args = tostring(getnamecallmethod()), {...}; if (not checkcaller() and method == "FireServer" and (typeof(args[1]) == "string" and typeof(args[2]) == "Vector3")) then if (flags["legit_silent_enabled"] and not flags["legit_silent_anti_aim_viewer"] and (locals.silent_aim.is_targetting and locals.silent_aim.target)) then args[2] = locals.silent_aim.predicted_position; end; if (flags["rage_target_aim_enabled"] and (locals.target_aim.is_targetting and locals.target_aim.target)) then args[2] = locals.target_aim.predicted_position; end; return __namecall(self, unpack(args)); end; return __namecall(self, ...); end)); local __newindex; __newindex = hookmetamethod(game, "__newindex", LPH_NO_VIRTUALIZE(function(self, property, value) local calling_script = getcallingscript(); if (not (checkcaller()) and (flags["rage_exploits_enabled"] and flags["rage_exploits_no_recoil"]) and (calling_script == "Framework" or calling_script == "F") and (self == camera and property == "CFrame")) then return; end; return __newindex(self, property, value); end)); local __index; __index = hookmetamethod(game, "__index", LPH_NO_VIRTUALIZE(function(self, property) if (not checkcaller() and ((((flags["anti_aim_c_sync_enabled"] or (flags["anti_aim_starhook_classics_enabled"] and (flags["anti_aim_starhook_classics"] == "Destroy Cheaters" or flags["anti_aim_starhook_classics"] == "supercoolboi34 Destroyer"))) and (flags["anti_aim_c_sync_keybind"] or flags["anti_aim_starhook_classics_keybind"]))) and property == "CFrame" and self == local_player.Character.HumanoidRootPart)) then return locals.original_position; end; return __index(self, property); end)); end; end; do --// Example local window = library:New({ Size = UDim2.new(0, 600, 0, 500) }); local watermark = library:Watermark({Name = ""}); window:Seperator({Name = "Combat"}); ui.tabs["legit"] = window:Page({Name = "Legit", Icon = "http://www.roblox.com/asset/?id=6023426921"}); ui.tabs["rage"] = window:Page({Name = "Rage", "http://www.roblox.com/asset/?id=6023426921"}); window:Seperator({Name = "Visuals"}); ui.tabs["world"] = window:Page({Name = "World", Icon = "http://www.roblox.com/asset/?id=6034684930"}); ui.tabs["view"] = window:Page({Name = "View", Icon = "http://www.roblox.com/asset/?id=6031075931"}); window:Seperator({Name = "Player"}); ui.tabs["movement"] = window:Page({Name = "Movement", Icon = "http://www.roblox.com/asset/?id=6034754445"}); ui.tabs["anti_aim"] = window:Page({Name = "Anti Aim", Icon = "http://www.roblox.com/asset/?id=14760676189"}); window:Seperator({Name = "Settings"}); ui.tabs["settings"] = window:Page({Name = "Settings", Icon = "http://www.roblox.com/asset/?id=6031280882"}); --// legit do --// sections local legit_main_assist = ui.tabs["legit"]:Section({Name = "Assist", Side = "Left", Size = 420}); local legit_silent_aim = ui.tabs["legit"]:Section({Name = "Silent Aim", Side = "Right", Size = 420}); --// main assist do --// main assist section do local main_toggle = legit_main_assist:Toggle({Name = "Enabled", Flag = "legit_assist_enabled"}); local main_toggle_option_list = main_toggle:OptionList({}); main_toggle_option_list:List({Name = "Type", Flag = "legit_assist_type", Options = {"Camera", "Mouse"}, Default = "Camera"}); main_toggle_option_list:List({Name = "Aim Part", Flag = "legit_assist_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "HumanoidRootPart"}); legit_main_assist:Keybind({Flag = "legit_assist_key", Name = "Target Bind", Default = Enum.KeyCode.E, Mode = "Toggle", Callback = function() local assist_enabled = flags["legit_assist_enabled"]; local fov_enabled = flags["legit_assist_settings_use_field_of_view"]; local fov_radius = flags["legit_assist_settings_field_of_view_radius"]; local checks_enabled = flags["legit_assist_checks_enabled"]; local check_values = flags["legit_assist_checks"]; local auto_switch_enabled = flags["legit_assist_auto_switch"]; if (not (assist_enabled)) then return end; local new_target = combat.get_closest_player(fov_enabled, fov_radius, checks_enabled, check_values); locals.assist.is_targetting = (new_target and not locals.assist.is_targetting or false); if (auto_switch_enabled and new_target and not locals.assist.is_targetting) then locals.assist.is_targetting = true; end; locals.assist.target = (locals.assist.is_targetting and new_target or nil); end}); local mouse_tp_toggle = legit_main_assist:Toggle({Name = "Mouse TP", Flag = "legit_assist_mouse_tp_enabled"}); local option_list_mouse_tp = mouse_tp_toggle:OptionList({}); option_list_mouse_tp:Keybind({Flag = "legit_assist_mouse_tp_key", Name = "Keybind", Default = Enum.KeyCode.C, Mode = "Toggle", Callback = function() local assist_enabled = flags["legit_assist_enabled"]; local mouse_tp_enabled = flags["legit_assist_mouse_tp_enabled"]; if (not (assist_enabled or mouse_tp_enabled or (locals.assist.is_targetting and locals.assist.target))) then return end; local predicted_position = assist.get_predicted_position(); local screen_predicted_position = utility.world_to_screen(predicted_position); assist.move_mouse(screen_predicted_position.position, 5); end}); local smoothing_toggle = legit_main_assist:Toggle({Name = "Smoothing", Flag = "legit_assist_smoothing_enabled"}); local smoothing_option_list = smoothing_toggle:OptionList({}); smoothing_option_list:Slider({Name = "Smoothing Amount", Flag = "legit_assist_smoothing_amount", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "%"}); legit_main_assist:Toggle({Name = "Auto Switch", Flag = "legit_assist_auto_switch"}); local air_aimpart_toggle = legit_main_assist:Toggle({Name = "Air Aim Part", Flag = "legit_assist_use_air_hit_part"}); local air_aimpart_option_list = air_aimpart_toggle:OptionList({}); air_aimpart_option_list:List({Name = "Air Aim Part", Flag = "legit_assist_air_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "LowerTorso"}); local resolver_toggle = legit_main_assist:Toggle({Name = "Resolver", Flag = "legit_assist_resolver"}); local resolve_option_list = resolver_toggle:OptionList({}); resolve_option_list:List({Name = "Method", Flag = "legit_assist_resolver_method", Options = {"Recalculate", "MoveDirection"}, Default = "Recalculate"}); resolve_option_list:Slider({Name = "Update Time", Flag = "legit_assist_resolver_update_time", Default = 100, Minimum = 1, Maximum = 200, Decimals = 0.001, Ending = "ms"}); local anti_ground_toggle = legit_main_assist:Toggle({Name = "Anti Ground Shots", Flag = "legit_assist_anti_ground_shots"}); local anti_ground_option_list = anti_ground_toggle:OptionList({}); anti_ground_option_list:Slider({Name = "To Take Off", Flag = "legit_assist_anti_ground_shots_to_take_off", Default = 2, Minimum = 0.1, Maximum = 10, Decimals = 0.01, Ending = "'"}); local stutter_toggle = legit_main_assist:Toggle({Name = "Stutter", Flag = "legit_assist_stutter_enabled"}); local stutter_option_list = stutter_toggle:OptionList({}); stutter_option_list:Slider({Name = "Amount", Flag = "legit_assist_stutter_amount", Default = 1, Minimum = 1, Maximum = 10, Decimals = 0.01, Ending = "s"}); local shake_toggle = legit_main_assist:Toggle({Name = "Shake", Flag = "legit_assist_shake_enabled"}); local shake_option_list = shake_toggle:OptionList({}); shake_option_list:Slider({Name = "Amount", Flag = "legit_assist_shake_amount", Default = 0.01, Minimum = 0.01, Maximum = 10, Decimals = 0.001, Ending = "'"}); local checks_toggle = legit_main_assist:Toggle({Name = "Checks", Flag = "legit_assist_checks_enabled"}); local checks_option_list = checks_toggle:OptionList({}); checks_option_list:List({Name = "Checks", Flag = "legit_assist_checks", Options = {"Knocked", "Grabbed", "Friend", "Wall", "Vehicle"}, Default = {"Knocked"}, Max = 5}); local fov_toggle = legit_main_assist:Toggle({Name = "Use Field Of View", Flag = "legit_assist_settings_use_field_of_view"}); local fov_option_list = fov_toggle:OptionList({}); fov_option_list:Colorpicker({Name = "Color", Flag = "legit_assist_settings_field_of_view_color", Default = default_color}); fov_option_list:Slider({Name = "Radius", Flag = "legit_assist_settings_field_of_view_radius", Default = 1, Minimum = 1, Maximum = 200, Decimals = 0.01, Ending = "%"}); fov_option_list:Slider({Name = "Transparency", Flag = "legit_assist_settings_field_of_view_transparency", Default = 0, Minimum = 0, Maximum = 1, Decimals = 0.01, Ending = "%"}); legit_main_assist:Textbox({Name = "Prediction", Flag = "legit_assist_prediction", Default = "0.134", PlaceHolder = "Prediction"}); end; --// silent aim section do legit_silent_aim:Toggle({Name = "Enabled", Flag = "legit_silent_enabled"}); legit_silent_aim:Toggle({Name = "Closest Body Part", Flag = "legit_silent_closest_body_part"}); legit_silent_aim:Toggle({Name = "Anti Aim Viewer", Flag = "legit_silent_anti_aim_viewer"}); local resolver_toggle = legit_silent_aim:Toggle({Name = "Resolver", Flag = "legit_silent_resolver"}); local resolver_option_list = resolver_toggle:OptionList({}); resolver_option_list:List({Name = "Method", Flag = "legit_silent_resolver_method", Options = {"Recalculate", "MoveDirection"}, Default = "Recalculate"}); resolver_option_list:Slider({Name = "Update Time", Flag = "legit_silent_resolver_update_time", Default = 100, Minimum = 1, Maximum = 200, Decimals = 0.001, Ending = "ms"}); local fov_toggle = legit_silent_aim:Toggle({Name = "Field Of View", Flag = "legit_silent_use_field_of_view"}); local fov_option_list = fov_toggle:OptionList({}); fov_option_list:Toggle({Name = "Visualize", Flag = "legit_silent_visualize_field_of_view"}); fov_option_list:Colorpicker({Name = "Color", Flag = "legit_silent_field_of_view_color", Default = default_color}); fov_option_list:Slider({Name = "Transparency", Flag = "legit_silent_field_of_view_transparency", Default = 0, Minimum = 0, Maximum = 1, Decimals = 0.01, Ending = "%"}); fov_option_list:Slider({Name = "Radius", Flag = "legit_silent_field_of_view_radius", Default = 1, Minimum = 1, Maximum = 200, Decimals = 0.01, Ending = "%"}); local line_toggle = legit_silent_aim:Toggle({Name = "Line", Flag = "legit_silent_aim_tracer_enabled"}); local line_option_list = line_toggle:OptionList({}); line_option_list:Colorpicker({Name = "Color", Flag = "legit_silent_aim_tracer_color", Default = default_color}); line_option_list:Slider({Name = "Line Thickness", Flag = "legit_silent_aim_tracer_thickness", Default = 2, Minimum = 1, Maximum = 5, Decimals = 0.01, Ending = "%"}); line_option_list:Slider({Name = "Transparency", Flag = "legit_silent_aim_tracer_transparency", Default = 1, Minimum = 0, Maximum = 1, Decimals = 0.01, Ending = "%"}); local checks_toggle = legit_silent_aim:Toggle({Name = "Checks", Flag = "legit_silent_use_checks"}); local checks_option_list = checks_toggle:OptionList({}); checks_option_list:List({Name = "Values", Flag = "legit_silent_checks", Options = {"Knocked", "Grabbed", "Friend", "Wall", "Vehicle"}, Default = {"Knocked"}, Max = 5}); local airpart_toggle = legit_silent_aim:Toggle({Name = "Use Air Aim Part", Flag = "legit_silent_use_air_hit_part"}); local airpart_option_list = airpart_toggle:OptionList({}); airpart_option_list:List({Name = "Air Aim Part", Flag = "legit_silent_air_aim_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "HumanoidRootPart"}); local antiground_toggle = legit_silent_aim:Toggle({Name = "Anti Ground Shots", Flag = "legit_silent_anti_ground_shots"}); local antiground_option_list = antiground_toggle:OptionList({}); antiground_option_list:Slider({Name = "To Take Off", Flag = "legit_silent_anti_ground_shots_to_take_off", Default = 2, Minimum = 0.1, Maximum = 10, Decimals = 0.01, Ending = "'"}); legit_silent_aim:List({Name = "Aim Part", Flag = "legit_silent_aim_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "HumanoidRootPart"}); legit_silent_aim:Textbox({Name = "Prediction", Flag = "legit_silent_prediction", Default = "0.134", PlaceHolder = "Prediction"}); end; end; end; --// rage do --// sections local rage_main_target_aim = ui.tabs["rage"]:Section({Name = "Target Aim", Side = "Left", Size = 427}); local rage_target_aim_visuals = ui.tabs["rage"]:Section({Name = "Target Aim Visuals", Side = "Right", Size = 245}); local rage_target_aim_teleport = ui.tabs["rage"]:Section({Name = "Target Aim Teleport", Side = "Right", Size = 175}); do local main_toggle = rage_main_target_aim:Toggle({Name = "Enabled", Flag = "rage_target_aim_enabled", Callback = function(state) if state then return end; screen_gui.Enabled = false; end}); local main_toggle_option_list = main_toggle:OptionList({}); main_toggle_option_list:Toggle({Name = "Notify", Flag = "rage_target_aim_notify"}); main_toggle_option_list:Slider({Name = "Notify Duration", Flag = "rage_target_aim_notify_duration", Default = 2, Minimum = 1, Maximum = 10, Decimals = 0.01, Ending = "s"}); main_toggle_option_list:Toggle({Name = "Auto Shoot", Flag = "rage_target_aim_auto_shoot"}); main_toggle_option_list:Toggle({Name = "Look At", Flag = "rage_target_aim_look_at"}); main_toggle_option_list:Toggle({Name = "Randomized BodyPart", Flag = "rage_target_aim_randomized_body_part"}); --main_toggle_option_list:Toggle({Name = "Movement Simulation", Flag = "rage_target_aim_movement_simulation"}); rage_main_target_aim:Keybind({Flag = "rage_target_aim_key", Default = Enum.KeyCode.E, Mode = "Toggle", Callback = function(key) local target_aim_enabled = flags["rage_target_aim_enabled"]; local checks_enabled = flags["rage_target_aim_use_checks"]; local check_values = flags["rage_target_aim_checks"]; local fov_enabled = flags["rage_target_aim_use_field_of_view"]; local fov_radius = flags["rage_target_aim_field_of_view_radius"]; local auto_switch = flags["rage_target_aim_auto_switch"]; if (not (target_aim_enabled)) then return end; local new_target = combat.get_closest_player(fov_enabled, fov_radius, checks_enabled, check_values); locals.target_aim.is_targetting = (new_target and not locals.target_aim.is_targetting or false); if (auto_switch and new_target and not locals.target_aim.is_targetting and locals.target_aim.target ~= new_target) then locals.target_aim.is_targetting = true; end; locals.target_aim.target = (locals.target_aim.is_targetting and new_target or nil); signals.target_target_changed:Fire(locals.target_aim.target, locals.target_aim.is_targetting); end}); if (not table.find(dahood_ids, game.PlaceId)) then rage_main_target_aim:Toggle({Name = "Bullet Tp", Flag = "rage_target_aim_bullet_tp_enabled"}); else rage_main_target_aim:Toggle({Name = "Rocket Tp", Flag = "rage_target_aim_rocket_tp_enabled"}); end; rage_main_target_aim:Toggle({Name = "Spectate", Flag = "rage_target_aim_spectate"}); rage_main_target_aim:Toggle({Name = "Auto Switch", Flag = "rage_target_aim_auto_switch"}); rage_main_target_aim:Toggle({Name = "Closest Body Part", Flag = "rage_target_aim_closest_body_part"}); local air_part_toggle = rage_main_target_aim:Toggle({Name = "Use Air Aim Part", Flag = "rage_target_aim_use_air_hit_part"}); local air_part_option_list = air_part_toggle:OptionList({}); air_part_option_list:List({Name = "Aim Part", Flag = "rage_target_aim_air_aim_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "HumanoidRootPart"}); local air_offset_toggle = rage_main_target_aim:Toggle({Name = "Air Offset", Flag = "rage_target_aim_use_air_offset"}); local air_offset_option_list = air_offset_toggle:OptionList({}); air_offset_option_list:Slider({Name = "Offset", Flag = "rage_target_aim_air_offset", Default = 4, Minimum = -10, Maximum = 10, Decimals = 0.001, Ending = "'"}); local resolver_toggle = rage_main_target_aim:Toggle({Name = "Resolver", Flag = "rage_target_aim_resolver_enabled"}); local resolver_option_list = resolver_toggle:OptionList({}); resolver_option_list:List({Name = "Method", Flag = "rage_target_aim_resolver_method", Options = {"Recalculate", "MoveDirection"}, Default = "Recalculate"}); resolver_option_list:Slider({Name = "Update Time", Flag = "rage_target_aim_update_time", Default = 100, Minimum = 1, Maximum = 200, Decimals = 0.001, Ending = "ms"}); local checks_toggle = rage_main_target_aim:Toggle({Name = "Checks", Flag = "rage_target_aim_use_checks"}); local checks_option_list = checks_toggle:OptionList({}); checks_option_list:List({Name = "Checks", Flag = "rage_target_aim_checks", Options = {"Knocked", "Grabbed", "Friend", "Wall", "Vehicle"}, Default = {"Knocked"}, Max = 5}); local anti_ground_toggle = rage_main_target_aim:Toggle({Name = "Anti Ground Shots", Flag = "rage_target_aim_anti_ground_shots"}); local anti_ground_option_list = anti_ground_toggle:OptionList({}); --// anti_ground_option_list:Slider({Name = "To Take Off", Flag = "rage_target_aim_anti_ground_shots_to_take_off", Default = 2, Minimum = 0.1, Maximum = 20, Decimals = 0.01, Ending = "'"}); anti_ground_option_list:Slider({Name = "Dampening Factor", Flag = "rage_target_aim_dampening_factor", Default = 0.7, Minimum = 0, Maximum = 1, Decimals = 0.01, Ending = ""}); local fov_toggle = rage_main_target_aim:Toggle({Name = "Field Of View", Flag = "rage_target_aim_use_field_of_view"}); local fov_option_list = fov_toggle:OptionList({}); fov_option_list:Toggle({Name = "Visualize", Flag = "rage_target_aim_visualize_field_of_view"}); fov_option_list:Colorpicker({Name = "Color", Flag = "rage_target_aim_field_of_view_color", Default = default_color, Transparency = 0}); fov_option_list:Slider({Name = "Transparency", Flag = "rage_target_aim_field_of_view_transparency", Default = 0, Minimum = 0, Maximum = 1, Decimals = 0.01, Ending = "%"}); fov_option_list:Slider({Name = "Radius", Flag = "rage_target_aim_field_of_view_radius", Default = 1, Minimum = 1, Maximum = 200, Decimals = 0.01, Ending = "%"}); rage_main_target_aim:Textbox({Name = "Prediction", Flag = "rage_target_aim_prediction", Default = "0.134", PlaceHolder = "Prediction"}); rage_main_target_aim:List({Name = "Aim Part", Flag = "rage_target_aim_aim_part", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Default = "HumanoidRootPart"}); end; --// target aim visuals do local main_toggle = rage_target_aim_visuals:Toggle({Name = "Enabled", Flag = "rage_target_aim_visuals_enabled"}); local option_list_toggle = main_toggle:OptionList({}); option_list_toggle:Toggle({Name = "UI", Flag = "rage_target_aim_visuals_ui_enabled", Callback = function(state) if state then return end; screen_gui.Enabled = false; end}); option_list_toggle:List({Name = "UI Mode", Flag = "rage_target_aim_ui_mode", Options = {"Follow", "Static"}, Default = "Static"}); rage_target_aim_visuals:Toggle({Name = "Line", Flag = "rage_target_aim_tracer_enabled"}); local dot = rage_target_aim_visuals:Toggle({Name = "Dot", Flag = "rage_target_aim_dot_enabled"}); local dot_option_list = dot:OptionList({}); dot_option_list:Colorpicker({Name = "Color", Flag = "rage_target_aim_dot_color", Default = default_color, Transparency = 0}); dot_option_list:Slider({Name = "Size", Flag = "rage_target_aim_dot_size", Default = 6, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); rage_target_aim_visuals:Toggle({Name = "Chams", Flag = "rage_target_aim_chams_enabled"}); rage_target_aim_visuals:Colorpicker({Name = "Line Color", Info = "Target Aim Line Color", Flag = "rage_target_aim_tracer_color", Default = default_color, Transparency = 1}); rage_target_aim_visuals:Colorpicker({Name = "Chams Fill Color", Info = "Target Aim Chams Fill Color", Flag = "rage_target_aim_chams_fill_color", Default = default_color, Transparency = 0.5}); rage_target_aim_visuals:Colorpicker({Name = "Chams Outline Color", Info = "Target Aim Chams Outline Color", Flag = "rage_target_aim_chams_outline_color", Default = Color3.fromRGB(0, 0, 0), Transparency = 0}); rage_target_aim_visuals:Slider({Name = "Line Thickness", Flag = "rage_target_aim_tracer_thickness", Default = 2, Minimum = 1, Maximum = 5, Decimals = 0.01, Ending = "%"}); end; --// target aim teleport do local main_toggle = rage_target_aim_teleport:Toggle({Name = "Enabled", Flag = "rage_target_aim_teleport_enabled"}); rage_target_aim_teleport:Toggle({Name = "Bypass Destroy Cheaters", Flag = "rage_target_aim_bypass_destroy_cheaters"}) local main_toggle_optionlist = main_toggle:OptionList({}); rage_target_aim_teleport:Keybind({Flag = "rage_target_aim_teleport_keybind", Default = Enum.KeyCode.B, KeybindName = "Target Aim Teleport", Mode = "Toggle"}); rage_target_aim_teleport:List({Name = "Type", Flag = "rage_target_aim_teleport_type", Options = {"Random", "Strafe"}, Default = "Random"}); main_toggle_optionlist:Slider({Name = "Randomization", Flag = "rage_target_aim_teleport_randomization", Default = 1, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); main_toggle_optionlist:Slider({Name = "Strafe Distance", Flag = "rage_target_aim_teleport_strafe_distance", Default = 1, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); main_toggle_optionlist:Slider({Name = "Strafe Speed", Flag = "rage_target_aim_teleport_strafe_speed", Default = 1, Minimum = 1, Maximum = 10, Decimals = 0.01, Ending = "%"}); main_toggle_optionlist:Slider({Name = "Strafe", Flag = "rage_target_aim_teleport_strafe_height", Default = 1, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); end; end; --// movement do local cframe_speed = ui.tabs["movement"]:Section({Name = "CFrame speed", Side = "Left", Size = 125}); local cframe_fly = ui.tabs["movement"]:Section({Name = "Fly", Side = "Left", Size = 125}); local misc = ui.tabs["movement"]:Section({Name = "Misc", Side = "Right", Size = 100}); --// speed do local main_toggle = cframe_speed:Toggle({Name = "Enabled", Flag = "rage_cframe_speed_enabled"}); cframe_speed:Keybind({Flag = "rage_cframe_speed_keybind", Name = "Keybind", Default = Enum.KeyCode.X, Mode = "Toggle"}); cframe_speed:Slider({Name = "Amount", Flag = "rage_cframe_speed_amount", Default = 0.3, Minimum = 0.1, Maximum = 10, Decimals = 0.01, Ending = "%"}); end; --// fly do local main_toggle = cframe_fly:Toggle({Name = "Enabled", Flag = "rage_cframe_fly_enabled"}); cframe_fly:Keybind({Flag = "rage_cframe_fly_keybind", Name = "Keybind", Default = Enum.KeyCode.C, Mode = "Toggle"}); cframe_fly:Slider({Name = "Speed", Flag = "rage_cframe_fly_amount", Default = 1, Minimum = 1, Maximum = 30, Decimals = 0.01, Ending = "%"}); end; --// misc do misc:Toggle({Name = "No Jump Cooldown", Flag = "rage_misc_movement_no_jump_cooldown", Callback = function(state) if (not (utility.has_character(local_player))) then return end; local_player.Character.Humanoid.UseJumpPower = true; end}); misc:Toggle({Name = "No Seats", Callback = function(state) local descendants = game:GetDescendants(); for i = 1, #descendants do local object = descendants[i]; if (object.ClassName ~= "Seat") then continue end; object.CanTouch = not state and true or false; end; end}); end; end; --// visuals do --// world do local visuals_bullet_tracers = ui.tabs["world"]:Section({Name = "Bullet Tracers", Side = "Left", Size = 210}); local visuals_bullet_impacts = ui.tabs["world"]:Section({Name = "Bullet Impacts", Side = "Right", Size = 210}); local visuals_hit_detection = ui.tabs["world"]:Section({Name = "Hit Detection", Side = "Left"}); local visuals_clone_chams = ui.tabs["world"]:Section({Name = "Clone Chams", Side = "Right"}); --// bullet tracers do local main_toggle = visuals_bullet_tracers:Toggle({Name = "Enabled", Flag = "visuals_bullet_tracers_enabled"}); visuals_bullet_tracers:Toggle({Name = "Fade", Flag = "visuals_bullet_tracers_fade_enabled"}); visuals_bullet_tracers:Colorpicker({Name = "Bullet Tracers Gradient Start", Flag = "visuals_bullet_tracers_color_gradient_1", Default = default_color, Transparency = 0}); visuals_bullet_tracers:Colorpicker({Name = "Bullet Tracers Gradient End", Flag = "visuals_bullet_tracers_color_gradient_2", Default = default_color, Transparency = 0}); visuals_bullet_tracers:Slider({Name = "Fade Duration", Flag = "visuals_bullet_tracers_fade_duration", Default = 2, Minimum = 0.5, Maximum = 5, Decimals = 0.001, Ending = "s"}); visuals_bullet_tracers:Slider({Name = "Duration", Flag = "visuals_bullet_tracers_duration", Default = 2, Minimum = 0.5, Maximum = 5, Decimals = 0.001, Ending = "s"}); end; --// bullet impact do local main_toggle = visuals_bullet_impacts:Toggle({Name = "Enabled", Flag = "visuals_bullet_impacts_enabled"}); local main_toggle_option_list = main_toggle:OptionList({}); main_toggle_option_list:Colorpicker({Name = "Bullet Impacts Color", Flag = "visuals_bullet_impacts_color", Default = default_color, Transparency = 0}); visuals_bullet_impacts:Toggle({Name = "Fade", Flag = "visuals_bullet_impacts_fade_enabled"}); visuals_bullet_impacts:Slider({Name = "Size", Flag = "visuals_bullet_impacts_size", Default = 0.5, Minimum = 0.1, Maximum = 10, Decimals = 0.001, Ending = "'"}); visuals_bullet_impacts:Slider({Name = "Fade Duration", Flag = "visuals_bullet_impacts_fade_duration", Default = 2, Minimum = 0.5, Maximum = 5, Decimals = 0.001, Ending = "s"}); visuals_bullet_impacts:Slider({Name = "Duration", Flag = "visuals_bullet_impacts_duration", Default = 2, Minimum = 0.5, Maximum = 5, Decimals = 0.001, Ending = "s"}); end; --// hit detection do local sounds = {}; for i,v in hitsounds do table.insert(sounds, i); end; visuals_hit_detection:Toggle({Name = "Enabled", Flag = "visuals_hit_detection_enabled"}); local sounds_toggle = visuals_hit_detection:Toggle({Name = "Sounds", Flag = "visuals_hit_detection_sounds_enabled"}); local sounds_toggle_option_list = sounds_toggle:OptionList({}); sounds_toggle_option_list:List({Name = "Sound", Flag = "visuals_hit_detection_sounds_which_sound", Options = sounds, Default = sounds[1]}); sounds_toggle_option_list:Slider({Name = "Volume", Flag = "visuals_hit_detection_sounds_volume", Default = 5, Minimum = 0.1, Maximum = 10, Decimals = 0.01, Ending = "%"}); local chams_toggle = visuals_hit_detection:Toggle({Name = "Chams", Flag = "visuals_hit_detection_chams_enabled"}); local chams_option_list = chams_toggle:OptionList({}); chams_option_list:Colorpicker({Name = "Color", Flag = "visuals_hit_detection_chams_color", Default = default_color}); chams_option_list:Slider({Name = "Transparency", Flag = "visuals_hit_detection_chams_transparency", Default = 0.7, Minimum = 0, Maximum = 1, Decimals = 0.001, Ending = "%"}); chams_option_list:Slider({Name = "Duration", Flag = "visuals_hit_detection_chams_duration", Default = 2, Minimum = 0, Maximum = 10, Decimals = 0.001, Ending = "s"}); local effect = visuals_hit_detection:Toggle({Name = "Effects", Flag = "visuals_hit_detection_effects_enabled"}); local effect_option_list = effect:OptionList({}); effect_option_list:Colorpicker({Name = "Color", Flag = "visuals_hit_detection_effects_color", Default = default_color}); effect_option_list:List({Name = "Which Effect", Flag = "visuals_hit_detection_effects_which_effect", Options = {"Bubble", "Confetti"}, Default = "Bubble"}); visuals_hit_detection:Toggle({Name = "Notification", Flag = "visuals_hit_detection_notification"}); visuals_hit_detection:Slider({Name = "Notification Duration", Flag = "visuals_hit_detection_notification_duration", Default = 2, Minimum = 0, Maximum = 10, Decimals = 0.001, Ending = "s"}); end; --// clons chams do visuals_clone_chams:Toggle({Name = "Enabled", Flag = "visuals_clone_chams_enabled"}); visuals_clone_chams:Colorpicker({Name = "Color", Flag = "visuals_clone_chams_color", Default = default_color}); visuals_clone_chams:Slider({Name = "Duration", Flag = "visuals_clone_chams_duration", Default = 0.1, Minimum = 0.1, Maximum = 10, Decimals = 0.001, Ending = "s"}); visuals_clone_chams:List({Name = "To Apply", Flag = "visuals_clone_chams_to_apply", Options = {"Local Player", "Target Aim Target"}, Default = {"Local Player"}, Max = 2}); end; end; --// misc do local world_section = ui.tabs["view"]:Section({Name = "World", Side = "Left", Size = 210}); local lplr_section = ui.tabs["view"]:Section({Name = "Local Player", Side = "Left", Size = 210}); local cursor_text = ui.tabs["view"]:Section({Name = "Text", Side = "Right", Size = 210}); --// world do local fog = world_section:Toggle({Name = "Fog", Flag = "visuals_world_fog", Callback = function(state) if state then lighting.FogColor = flags["visuals_world_fog_color"]; lighting.FogStart = flags["visuals_world_fog_start"]; lighting.FogEnd = flags["visuals_world_fog_end"]; else lighting.FogColor = world.FogColor; lighting.FogStart = world.FogStart; lighting.FogEnd = world.FogEnd; end; end}); local fog_option_list = fog:OptionList({}); fog_option_list:Colorpicker({Name = "Color", Flag = "visuals_world_fog_color", Default = default_color, Callback = function(color) if flags["visuals_world_fog"] then lighting.FogColor = color; end; end}); fog_option_list:Slider({Name = "Start", Flag = "visuals_world_fog_start", Default = 150, Minimum = 100, Maximum = 10000, Decimals = 1, Ending = "%", Callback = function(number) if flags["visuals_world_fog"] then lighting.FogStart = number; end; end}); fog_option_list:Slider({Name = "End", Flag = "visuals_world_fog_end", Default = 550, Minimum = 100, Maximum = 10000, Decimals = 1, Ending = "%", Callback = function(number) if flags["visuals_world_fog"] then lighting.FogEnd = number; end; end}); local ambient = world_section:Toggle({Name = "Ambient", Flag = "visuals_world_ambient", Callback = function(state) if state then lighting.Ambient = flags["visuals_world_ambient_color"]; else lighting.Ambient = world.Ambient; end; end}); local ambient_option_list = ambient:OptionList({}); ambient_option_list:Colorpicker({Name = "Color", Flag = "visuals_world_ambient_color", Default = default_color, Callback = function(color) if flags["visuals_world_ambient"] then lighting.Ambient = color; end; end}); local clock_time_toggle = world_section:Toggle({Name = "Clock Time", Flag = "visuals_world_clock_time", Callback = function(state) if state then lighting.ClockTime = flags["visuals_world_clock_time_time"]; else lighting.ClockTime = world.ClockTime; end; end}); local clock_time_option_list = clock_time_toggle:OptionList({}); clock_time_option_list:Slider({Name = "Time", Flag = "visuals_world_clock_time_time", Default = 14, Minimum = 0, Maximum = 24, Decimals = 1, Callback = function(number) if flags["visuals_world_clock_time"] then lighting.ClockTime = number; end; end}); local brightness_toggle = world_section:Toggle({Name = "Brightness", Flag = "visuals_world_brightness", Callback = function(state) if state then lighting.Brightness = flags["visuals_world_brightness_level"]; else lighting.Brightness = world.Brightness; end; end}); local brightness_option_list = brightness_toggle:OptionList({}); brightness_option_list:Slider({Name = "Level", Flag = "visuals_world_brightness_level", Default = 0.1, Minimum = 0, Maximum = 10, Decimals = 1, Callback = function(number) if flags["visuals_world_brightness"] then lighting.Brightness = number; end; end}); local exposure = world_section:Toggle({Name = "Exposure", Flag = "visuals_world_exposure", Callback = function(state) if state then lighting.ExposureCompensation = flags["visuals_world_exposure_compensation"]; else lighting.ExposureCompensation = world.ExposureCompensation; end; end}); local exposure_option_list = exposure:OptionList({}); exposure_option_list:Slider({Name = "Compensation", Flag = "visuals_world_exposure_compensation", Default = 0, Minimum = -10, Maximum = 10, Decimals = 1, Callback = function(number) if flags["visuals_world_exposure"] then lighting.ExposureCompensation = number; end; end}); local color_shift_top = world_section:Toggle({Name = "Color Shift Top", Flag = "visuals_world_color_shift_top", Callback = function(state) if state then lighting.ColorShift_Top = flags["visuals_world_color_shift_top_color"]; else lighting.ColorShift_Top = world.ColorShift_Top; end; end}); local color_shift_top_option_list = color_shift_top:OptionList({}); color_shift_top_option_list:Colorpicker({Name = "Color", Flag = "visuals_world_color_shift_top_color", Default = default_color, Callback = function(color) if flags["visuals_world_color_shift_top"] then lighting.ColorShift_Top = color; end; end}); local collor_shift_bottom = world_section:Toggle({Name = "Color Shift Bottom", Flag = "visuals_world_color_shift_bottom", Callback = function(state) if state then lighting.ColorShift_Bottom = flags["visuals_world_color_shift_bottom_color"]; else lighting.ColorShift_Bottom = world.ColorShift_Bottom; end; end}); local color_shift_bottom_option_list = collor_shift_bottom:OptionList({}); color_shift_bottom_option_list:Colorpicker({Name = "Color", Flag = "visuals_world_color_shift_bottom_color", Default = default_color, Callback = function(color) if flags["visuals_world_color_shift_bottom"] then lighting.ColorShift_Bottom = color; end; end}); end; --// local player section do lplr_section:Toggle({Name = "Chams", Flag = "visuals_player_chams_enabled"}); lplr_section:Toggle({Name = "Material", Flag = "visuals_player_material_enabled", Callback = function(state) local material = flags["visuals_player_material_type"]; features.local_material(state, material); end}); lplr_section:Colorpicker({Name = "Outline Color", Flag = "visuals_player_chams_outline_color", Default = Color3.new(0, 0, 0)}); lplr_section:Colorpicker({Name = "Fill Color", Flag = "visuals_player_chams_fill_color", Default = default_color}); lplr_section:List({Name = "Material", Flag = "visuals_player_material_type", Options = {"ForceField", "Neon"}, Default = "ForceField", Callback = function(material) local state = flags["visuals_player_material_enabled"]; features.local_material(state, material); end}); end; if (ESP) then local esp_section = ui.tabs["view"]:Section({Name = "ESP", Side = "Right", Size = 210}); --// esp section do esp_section:Toggle({Name = "Enabled", Flag = "visuals_esp_enabled"}); local boxes_toggle = esp_section:Toggle({Name = "Boxes", Flag = "visuals_esp_boxes_enabled"}); local boxes_option_list = boxes_toggle:OptionList({}); boxes_option_list:Colorpicker({Name = "Color", Flag = "visuals_esp_boxes_color", Default = Color3.new(1, 1, 1)}); boxes_option_list:Toggle({Name = "Target Color", Flag = "visuals_esp_boxes_target_color_enabled"}); boxes_option_list:Colorpicker({Name = "Target Color", Flag = "visuals_esp_boxes_target_color", Default = Color3.new(1, 0, 0)}); local names_toggle = esp_section:Toggle({Name = "Names", Flag = "visuals_esp_names_enabled"}); local names_option_list = names_toggle:OptionList({}); names_option_list:Colorpicker({Name = "Color", Flag = "visuals_esp_names_color", Default = Color3.new(1, 1, 1)}); local head_dots_toggle = esp_section:Toggle({Name = "Head Dots", Flag = "visuals_esp_head_dots_enabled"}); local head_dots_option_list = head_dots_toggle:OptionList({}); head_dots_option_list:Colorpicker({Name = "Color", Flag = "visuals_esp_head_dots_color", Default = Color3.new(1, 1, 1)}); head_dots_option_list:Slider({Name = "Sides", Flag = "visuals_esp_head_dots_sides", Default = 6, Minimum = 1, Maximum = 100, Decimals = 1, Ending = "'"}); head_dots_option_list:Slider({Name = "Size", Flag = "visuals_esp_head_dots_size", Default = 10, Minimum = 1, Maximum = 20, Decimals = 0.0001, Ending = "'"}); local health_bar_toggle = esp_section:Toggle({Name = "Health Bar", Flag = "visuals_esp_health_bar_enabled"}); local health_bar_option_list = health_bar_toggle:OptionList({}); health_bar_option_list:Toggle({Name = "Health Based Color", Flag = "visuals_esp_health_bar_health_based_color"}); health_bar_option_list:Colorpicker({Name = "Health Color", Flag = "visuals_esp_health_bar_color", Default = Color3.new(1, 1, 1)}); local health_text_toggle = esp_section:Toggle({Name = "Health Text", Flag = "visuals_esp_health_text_enabled"}); local health_text_option_list = health_text_toggle:OptionList({}); health_text_option_list:Toggle({Name = "Health Based Color", Flag = "visuals_esp_health_text_health_based_color"}); health_text_option_list:Colorpicker({Name = "Color", Flag = "visuals_esp_health_text_color", Default = Color3.new(1, 1, 1)}); local armor_bar_toggle = esp_section:Toggle({Name = "Armor Bar", Flag = "visuals_esp_armor_bar_enabled"}); local armor_bar_option_list = armor_bar_toggle:OptionList({}); armor_bar_option_list:Colorpicker({Name = "Armor Color", Flag = "visuals_esp_armor_bar_color", Default = Color3.new(1, 1, 1)}); end; end; --// cursor text do cursor_text:Toggle({Name = "Enabled", Flag = "visuals_text_enabled"}); cursor_text:Toggle({Name = "Custom Text", Flag = "visuals_text_custom_text"}); cursor_text:Colorpicker({Name = "Text Color", Flag = "visuals_text_color", Default = default_color}); cursor_text:Slider({Name = "Cursor Offset", Flag = "visuals_text_cursor_offset", Default = 49, Minimum = 1, Maximum = 100, Decimals = 0.0001, Ending = "%"}); cursor_text:Textbox({Flag = "visuals_cursor_custom_text_text", Placeholder = "[${target_name}]"}); end; end; end; --// anti aim do local velocity_spoofer = ui.tabs["anti_aim"]:Section({Name = "Velocity Spoofer", Side = "Left", Size = 160}); local network_desync = ui.tabs["anti_aim"]:Section({Name = "Network Desync", Side = "Right", Size = 110}); local c_sync = ui.tabs["anti_aim"]:Section({Name = "C-Sync", Side = "Right", Size = 300}); local fflag = ui.tabs["anti_aim"]:Section({Name = "FFlag Desync", Side = "Left", Size = 95}); local starhook_classics = ui.tabs["anti_aim"]:Section({Name = "Starhook Classics", Side = "Left", Size = 150}); --// velocity spoofer do local nest = velocity_spoofer:Nest({Size = 120}); nest:Toggle({Name = "Enabled", Flag = "anti_aim_velocity_spoofer_enabled"}); nest:Keybind({Flag = "anti_aim_velocity_spoofer_keybind", Name = "Keybind", Default = Enum.KeyCode.C, Mode = "Toggle"}); nest:List({Name = "Type", Flag = "anti_aim_velocity_spoofer_type", Options = {"Local Strafe", "Random", "Static"}, Default = {"Local Strafe"}}); nest:Slider({Name = "Strafe Distance", Flag = "anti_aim_velocity_spoofer_strafe_distance", Default = 1, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); nest:Slider({Name = "Strafe Speed", Flag = "anti_aim_velocity_spoofer_strafe_speed", Default = 1, Minimum = 1, Maximum = 10, Decimals = 0.01, Ending = "%"}); nest:Slider({Name = "Static X", Flag = "anti_aim_velocity_spoofer_static_x", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "'"}); nest:Slider({Name = "Static Y", Flag = "anti_aim_velocity_spoofer_static_y", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "'"}); nest:Slider({Name = "Static Z", Flag = "anti_aim_velocity_spoofer_static_z", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "'"}); nest:Slider({Name = "Randomization", Flag = "anti_aim_velocity_spoofer_randomization", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "%"}); end; --// network desync do network_desync:Toggle({Name = "Enabled", Flag = "anti_aim_network_desync_enabled"}); network_desync:Slider({Name = "Amount", Flag = "anti_aim_network_desync_amount", Default = 7.5, Minimum = 0, Maximum = 10, Decimals = 0.01, Ending = "%"}); end; --// c sync do local main_toggle = c_sync:Toggle({Name = "Enabled", Flag = "anti_aim_c_sync_enabled"}); local main_toggle_option_list = main_toggle:OptionList({}); main_toggle_option_list:Toggle({Name = "Visualize", Flag = "anti_aim_c_sync_visualize_enabled"}); main_toggle_option_list:List({Name = "Visualize Types", Flag = "anti_aim_c_sync_visualize_types", Options = {"Tracer", "Dot", "Character"}, Default = {"Tracer"}, Max = 3}); main_toggle_option_list:Colorpicker({Name = "Visualize Color", Flag = "anti_aim_c_sync_visualize_color", Default = default_color}); main_toggle_option_list:Slider({Name = "Visualize Dot Size", Flag = "anti_aim_c_sync_dot_size", Default = 16, Minimum = 1, Maximum = 20, Decimals = 0.01, Ending = "%"}); c_sync:Keybind({Flag = "anti_aim_c_sync_keybind", Name = "Keybind", Default = Enum.KeyCode.N, Mode = "Toggle"}); c_sync:List({Name = "Type", Flag = "anti_aim_c_sync_type", Options = {"Static Local", "Static Target", "Local Random", "Target Random"}, Default = "Local Offset"}); c_sync:Slider({Name = "Randomization", Flag = "anti_aim_c_sync_randomization", Default = 1, Minimum = 1, Maximum = 100, Decimals = 0.01, Ending = "%"}); c_sync:Slider({Name = "Static X", Flag = "anti_aim_c_sync_static_x", Default = 1, Minimum = 0, Maximum = 100, Decimals = 0.01, Ending = "'"}); c_sync:Slider({Name = "Static Y", Flag = "anti_aim_c_sync_static_y", Default = 1, Minimum = 0, Maximum = 100, Decimals = 0.01, Ending = "'"}); c_sync:Slider({Name = "Static Z", Flag = "anti_aim_c_sync_static_z", Default = 1, Minimum = 0, Maximum = 100, Decimals = 0.01, Ending = "'"}); end; --// fflags desync do fflag:Toggle({Name = "Enabled", Flag = "anti_aim_fflag_desync_enabled", Callback = function(state) if (state) then setfflag("S2PhysicsSenderRate", tostring(flags["anti_aim_fflag_amount"])); else setfflag("S2PhysicsSenderRate", tostring(old_psr)); end; end}); fflag:Slider({Name = "Amount", Flag = "anti_aim_fflag_amount", Default = 2, Minimum = 0, Maximum = 15, Decimals = 0.01, Ending = "%", Callback = function(value) if (flags["anti_aim_fflag_desync_enabled"]) then setfflag("S2PhysicsSenderRate", tostring(value)); end; end}); end; --// destroy cheaters do starhook_classics:Toggle({Name = "Enabled", Flag = "anti_aim_starhook_classics_enabled"}); starhook_classics:Keybind({Flag = "anti_aim_starhook_classics_keybind", Name = "Keybind", Default = Enum.KeyCode.Y, Mode = "Toggle"}); starhook_classics:List({Name = "Classics", Flag = "anti_aim_starhook_classics", Options = {"Destroy Cheaters", "supercoolboi34 Destroyer"}, Default = "Destroy Cheaters"}); end; end; --// settings do --// credits to finobe wtv im way too lazy local cfgs = ui.tabs["settings"]:Section({Name = "Config", Side = "Left", Size = 427}); local window = ui.tabs["settings"]:Section({Name = "Window", Side = "Right", Size = 427}); local cfg_list = cfgs:List({Name = "Config List", Flag = "setting_configuration_list", Options = {}}); cfgs:Textbox({Flag = "settings_configuration_name", Placeholder = "Config name"}); local current_list = {}; if not isfolder("starhook") then makefolder("starhook"); end; if not isfolder("starhook/configs") then makefolder("starhook/configs"); end; local function update_config_list() local list = {}; for idx, file in listfiles("starhook/configs") do local file_name = file:gsub("starhook/configs\\", ""):gsub(".cfg", ""):gsub("starhook/configs/", ""); list[#list + 1] = file_name; end; local is_new = #list ~= #current_list; if not is_new then for idx = 1, #list do if list[idx] ~= current_list[idx] then is_new = true; break; end; end; end; if is_new then current_list = list; cfg_list:Refresh(current_list); end; end; cfgs:Button({Name = "Create", Callback = function() local config_name = flags.settings_configuration_name; if config_name == "" or isfile("starhook/configs/" .. config_name .. ".cfg") then return; end; writefile("starhook/configs/" .. config_name .. ".cfg", Library:GetConfig()); update_config_list(); end}); cfgs:Button({Name = "Save", Callback = function() local selected_config = flags.setting_configuration_list; if selected_config then writefile("starhook/configs/" .. selected_config .. ".cfg", Library:GetConfig()); end; end}); cfgs:Button({Name = "Load", Callback = function() local selected_config = flags.setting_configuration_list; if selected_config then Library:LoadConfig(readfile("starhook/configs/" .. selected_config .. ".cfg")); end; end}); cfgs:Button({Name = "Delete", Callback = function() local selected_config = flags.setting_configuration_list; if selected_config then delfile("starhook/configs/" .. selected_config .. ".cfg"); end; update_config_list(); end}); cfgs:Button({Name = "Refresh", Callback = function() update_config_list(); end}); update_config_list(); --// ui settings window:Keybind({Name = "UI Toggle", Flag = "ui_toggle", Default = Enum.KeyCode.Insert, UseKey = true, Callback = function(key) Library.UIKey = key; end}); window:Toggle({Name = "Watermark", Flag = "ui_watermark", Callback = function(state) watermark:SetVisible(state); end}); window:Colorpicker({Name = "Menu Accent", Flag = "MenuAccent", Default = default_color, Callback = function(state) library:ChangeAccent(state); end}); end; end;