Orion Library (MOBILE SUPPORT | SYVEXTIA)

Run Settings
LanguageLua
Language Version
Run Command
local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local LocalPlayer = game:GetService("Players").LocalPlayer local Mouse = LocalPlayer:GetMouse() local HttpService = game:GetService("HttpService") local OrionLib = { Elements = {}, ThemeObjects = {}, Connections = {}, Flags = {}, Themes = { Default = { Main = Color3.fromRGB(25, 25, 35), Second = Color3.fromRGB(32, 32, 42), Stroke = Color3.fromRGB(255, 34, 12), Divider = Color3.fromRGB(255, 0, 0), Text = Color3.fromRGB(255, 0, 0), TextDark = Color3.fromRGB(255, 15, 0), } }, SelectedTheme = "Default", Folder = nil, SaveCfg = false } --Feather Icons https://github.com/evoincorp/lucideblox/tree/master/src/modules/util - Created by 7kayoh local Icons = {} local Success, Response = pcall(function() Icons = HttpService:JSONDecode(game:HttpGetAsync("https://raw.githubusercontent.com/evoincorp/lucideblox/master/src/modules/util/icons.json")).icons end) if not Success then warn("\nOrion Library - Failed to load Feather Icons. Error code: " .. Response .. "\n") end local function GetIcon(IconName) if Icons[IconName] ~= nil then return Icons[IconName] else return nil end end local Orion = Instance.new("ScreenGui") Orion.Name = "Orion" if syn then syn.protect_gui(Orion) Orion.Parent = game.CoreGui else Orion.Parent = gethui() or game.CoreGui end function OrionLib:IsRunning() if gethui then return Orion.Parent == gethui() else return Orion.Parent == game:GetService("CoreGui") end end local function AddConnection(Signal, Function) if (not OrionLib:IsRunning()) then return end local SignalConnect = Signal:Connect(Function) table.insert(OrionLib.Connections, SignalConnect) return SignalConnect end task.spawn(function() while (OrionLib:IsRunning()) do wait() end for _, Connection in next, OrionLib.Connections do Connection:Disconnect() end end) local function MakeDraggable(DragPoint, Main) pcall(function() local Dragging, DragInput, MousePos, FramePos = false AddConnection(DragPoint.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = true MousePos = Input.Position FramePos = Main.Position Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then Dragging = false end end) end end) AddConnection(DragPoint.InputChanged, function(Input) if Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then DragInput = Input end end) AddConnection(UserInputService.InputChanged, function(Input) if Input == DragInput and Dragging then local Delta = Input.Position - MousePos TweenService:Create(Main, TweenInfo.new(0.05, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position = UDim2.new(FramePos.X.Scale,FramePos.X.Offset + Delta.X, FramePos.Y.Scale, FramePos.Y.Offset + Delta.Y)}):Play() Main.Position = UDim2.new(FramePos.X.Scale,FramePos.X.Offset + Delta.X, FramePos.Y.Scale, FramePos.Y.Offset + Delta.Y) end end) end) end local function Create(Name, Properties, Children) local Object = Instance.new(Name) for i, v in next, Properties or {} do Object[i] = v end for i, v in next, Children or {} do v.Parent = Object end return Object end local function CreateElement(ElementName, ElementFunction) OrionLib.Elements[ElementName] = function(...) return ElementFunction(...) end end local function MakeElement(ElementName, ...) local NewElement = OrionLib.Elements[ElementName](...) return NewElement end local function SetProps(Element, Props) table.foreach(Props, function(Property, Value) Element[Property] = Value end) return Element end local function SetChildren(Element, Children) table.foreach(Children, function(_, Child) Child.Parent = Element end) return Element end local function Round(Number, Factor) local Result = math.floor(Number/Factor + (math.sign(Number) * 0.5)) * Factor if Result < 0 then Result = Result + Factor end return Result end local function ReturnProperty(Object) if Object:IsA("Frame") or Object:IsA("TextButton") then return "BackgroundColor3" end if Object:IsA("ScrollingFrame") then return "ScrollBarImageColor3" end if Object:IsA("UIStroke") then return "Color" end if Object:IsA("TextLabel") or Object:IsA("TextBox") then return "TextColor3" end if Object:IsA("ImageLabel") or Object:IsA("ImageButton") then return "ImageColor3" end end local function AddThemeObject(Object, Type) if not OrionLib.ThemeObjects[Type] then OrionLib.ThemeObjects[Type] = {} end table.insert(OrionLib.ThemeObjects[Type], Object) Object[ReturnProperty(Object)] = OrionLib.Themes[OrionLib.SelectedTheme][Type] return Object end local function SetTheme() for Name, Type in pairs(OrionLib.ThemeObjects) do for _, Object in pairs(Type) do Object[ReturnProperty(Object)] = OrionLib.Themes[OrionLib.SelectedTheme][Name] end end end local function PackColor(Color) return {R = Color.R * 255, G = Color.G * 255, B = Color.B * 255} end local function UnpackColor(Color) return Color3.fromRGB(Color.R, Color.G, Color.B) end local function LoadCfg(Config) local Data = HttpService:JSONDecode(Config) table.foreach(Data, function(a,b) if OrionLib.Flags[a] then spawn(function() if OrionLib.Flags[a].Type == "Colorpicker" then OrionLib.Flags[a]:Set(UnpackColor(b)) else OrionLib.Flags[a]:Set(b) end end) else warn("Orion Library Config Loader - Could not find ", a ,b) end end) end local function SaveCfg(Name) local Data = {} for i,v in pairs(OrionLib.Flags) do if v.Save then if v.Type == "Colorpicker" then Data[i] = PackColor(v.Value) else Data[i] = v.Value end end end end local WhitelistedMouse = {Enum.UserInputType.MouseButton1, Enum.UserInputType.MouseButton2,Enum.UserInputType.MouseButton3,Enum.UserInputType.Touch} local BlacklistedKeys = {Enum.KeyCode.Unknown,Enum.KeyCode.W,Enum.KeyCode.A,Enum.KeyCode.S,Enum.KeyCode.D,Enum.KeyCode.Up,Enum.KeyCode.Left,Enum.KeyCode.Down,Enum.KeyCode.Right,Enum.KeyCode.Slash,Enum.KeyCode.Tab,Enum.KeyCode.Backspace,Enum.KeyCode.Escape} local function CheckKey(Table, Key) for _, v in next, Table do if v == Key then return true end end end CreateElement("Corner", function(Scale, Offset) local Corner = Create("UICorner", { CornerRadius = UDim.new(Scale or 0, Offset or 10) }) return Corner end) CreateElement("Stroke", function(Color, Thickness) local Stroke = Create("UIStroke", { Color = Color or Color3.fromRGB(255, 255, 255), Thickness = Thickness or 1 }) return Stroke end) CreateElement("List", function(Scale, Offset) local List = Create("UIListLayout", { SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDim.new(Scale or 0, Offset or 0) }) return List end) CreateElement("Padding", function(Bottom, Left, Right, Top) local Padding = Create("UIPadding", { PaddingBottom = UDim.new(0, Bottom or 4), PaddingLeft = UDim.new(0, Left or 4), PaddingRight = UDim.new(0, Right or 4), PaddingTop = UDim.new(0, Top or 4) }) return Padding end) CreateElement("TFrame", function() local TFrame = Create("Frame", { BackgroundTransparency = 1 }) return TFrame end) CreateElement("Frame", function(Color) local Frame = Create("Frame", { BackgroundColor3 = Color or Color3.fromRGB(255, 255, 255), BorderSizePixel = 0 }) return Frame end) CreateElement("RoundFrame", function(Color, Scale, Offset) local Frame = Create("Frame", { BackgroundColor3 = Color or Color3.fromRGB(255, 255, 255), BorderSizePixel = 0 }, { Create("UICorner", { CornerRadius = UDim.new(Scale, Offset) }) }) return Frame end) CreateElement("Button", function() local Button = Create("TextButton", { Text = "", AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0 }) return Button end) CreateElement("ScrollFrame", function(Color, Width) local ScrollFrame = Create("ScrollingFrame", { BackgroundTransparency = 1, MidImage = "rbxassetid://7445543667", BottomImage = "rbxassetid://7445543667", TopImage = "rbxassetid://7445543667", ScrollBarImageColor3 = Color, BorderSizePixel = 0, ScrollBarThickness = Width, CanvasSize = UDim2.new(0, 0, 0, 0) }) return ScrollFrame end) CreateElement("Image", function(ImageID) local ImageNew = Create("ImageLabel", { Image = ImageID, BackgroundTransparency = 1 }) if GetIcon(ImageID) ~= nil then ImageNew.Image = GetIcon(ImageID) end return ImageNew end) CreateElement("ImageButton", function(ImageID) local Image = Create("ImageButton", { Image = ImageID, BackgroundTransparency = 1 }) return Image end) CreateElement("Label", function(Text, TextSize, Transparency) local Label = Create("TextLabel", { Text = Text or "", TextColor3 = Color3.fromRGB(240, 240, 240), TextTransparency = Transparency or 0, TextSize = TextSize or 15, Font = Enum.Font.Roboto, RichText = true, BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left }) return Label end) local NotificationHolder = SetProps(SetChildren(MakeElement("TFrame"), { SetProps(MakeElement("List"), { HorizontalAlignment = Enum.HorizontalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Bottom, Padding = UDim.new(0, 5) }) }), { Position = UDim2.new(1, -25, 1, -25), Size = UDim2.new(0, 300, 1, -25), AnchorPoint = Vector2.new(1, 1), Parent = Orion }) function OrionLib:MakeNotification(NotificationConfig) spawn(function() NotificationConfig.Name = NotificationConfig.Name or "Notification" NotificationConfig.Content = NotificationConfig.Content or "Test" NotificationConfig.Image = NotificationConfig.Image or "rbxassetid://4384403532" NotificationConfig.Time = NotificationConfig.Time or 15 local NotificationParent = SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Parent = NotificationHolder }) local NotificationFrame = SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(25, 25, 25), 0, 10), { Parent = NotificationParent, Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(1, -55, 0, 0), BackgroundTransparency = 0, AutomaticSize = Enum.AutomaticSize.Y }), { MakeElement("Stroke", Color3.fromRGB(93, 93, 93), 1.2), MakeElement("Padding", 12, 12, 12, 12), SetProps(MakeElement("Image", NotificationConfig.Image), { Size = UDim2.new(0, 20, 0, 20), ImageColor3 = Color3.fromRGB(240, 240, 240), Name = "Icon" }), SetProps(MakeElement("Label", NotificationConfig.Name, 15), { Size = UDim2.new(1, -30, 0, 20), Position = UDim2.new(0, 30, 0, 0), Font = Enum.Font.GothamBold, Name = "Title" }), SetProps(MakeElement("Label", NotificationConfig.Content, 14), { Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 25), Font = Enum.Font.GothamSemibold, Name = "Content", AutomaticSize = Enum.AutomaticSize.Y, TextColor3 = Color3.fromRGB(200, 200, 200), TextWrapped = true }) }) TweenService:Create(NotificationFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 0, 0, 0)}):Play() wait(NotificationConfig.Time - 0.88) TweenService:Create(NotificationFrame.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(NotificationFrame, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.6}):Play() wait(0.3) TweenService:Create(NotificationFrame.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0.9}):Play() TweenService:Create(NotificationFrame.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.4}):Play() TweenService:Create(NotificationFrame.Content, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() wait(0.05) NotificationFrame:TweenPosition(UDim2.new(1, 20, 0, 0),'In','Quint',0.8,true) wait(1.35) NotificationFrame:Destroy() end) end function OrionLib:Init() if OrionLib.SaveCfg then pcall(function() if isfile(OrionLib.Folder .. "/" .. game.GameId .. ".txt") then LoadCfg(readfile(OrionLib.Folder .. "/" .. game.GameId .. ".txt")) OrionLib:MakeNotification({ Name = "Configuration", Content = "Auto-loaded configuration for the game " .. game.GameId .. ".", Time = 5 }) end end) end end function OrionLib:MakeWindow(WindowConfig) local FirstTab = true local Minimized = false local Loaded = false local UIHidden = false WindowConfig = WindowConfig or {} WindowConfig.Name = WindowConfig.Name or "Orion Library" WindowConfig.ConfigFolder = WindowConfig.ConfigFolder or WindowConfig.Name WindowConfig.SaveConfig = WindowConfig.SaveConfig or false WindowConfig.HidePremium = WindowConfig.HidePremium or false if WindowConfig.IntroEnabled == nil then WindowConfig.IntroEnabled = true end WindowConfig.IntroText = WindowConfig.IntroText or "Orion Library" WindowConfig.CloseCallback = WindowConfig.CloseCallback or function() end WindowConfig.ShowIcon = WindowConfig.ShowIcon or false WindowConfig.Icon = WindowConfig.Icon or "rbxassetid://8834748103" WindowConfig.IntroIcon = WindowConfig.IntroIcon or "rbxassetid://8834748103" OrionLib.Folder = WindowConfig.ConfigFolder OrionLib.SaveCfg = WindowConfig.SaveConfig if WindowConfig.SaveConfig then if not isfolder(WindowConfig.ConfigFolder) then makefolder(WindowConfig.ConfigFolder) end end local TabHolder = AddThemeObject(SetChildren(SetProps(MakeElement("ScrollFrame", Color3.fromRGB(255, 255, 255), 4), { Size = UDim2.new(1, 0, 1, -50) }), { MakeElement("List"), MakeElement("Padding", 8, 0, 0, 8) }), "Divider") AddConnection(TabHolder.UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"), function() TabHolder.CanvasSize = UDim2.new(0, 0, 0, TabHolder.UIListLayout.AbsoluteContentSize.Y + 16) end) local CloseBtn = SetChildren(SetProps(MakeElement("Button"), { Size = UDim2.new(0.5, 0, 1, 0), Position = UDim2.new(0.5, 0, 0, 0), BackgroundTransparency = 1 }), { AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://7072725342"), { Position = UDim2.new(0, 9, 0, 6), Size = UDim2.new(0, 18, 0, 18) }), "Text") }) local MinimizeBtn = SetChildren(SetProps(MakeElement("Button"), { Size = UDim2.new(0.5, 0, 1, 0), BackgroundTransparency = 1 }), { AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://7072719338"), { Position = UDim2.new(0, 9, 0, 6), Size = UDim2.new(0, 18, 0, 18), Name = "Ico" }), "Text") }) local DragPoint = SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 0, 50) }) local WindowStuff = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 10), { Size = UDim2.new(0, 150, 1, -50), Position = UDim2.new(0, 0, 0, 50) }), { AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(1, 0, 0, 10), Position = UDim2.new(0, 0, 0, 0) }), "Second"), AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(0, 10, 1, 0), Position = UDim2.new(1, -10, 0, 0) }), "Second"), AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(0, 1, 1, 0), Position = UDim2.new(1, -1, 0, 0) }), "Stroke"), TabHolder, SetChildren(SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 0, 50), Position = UDim2.new(0, 0, 1, -50) }), { AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(1, 0, 0, 1) }), "Stroke"), AddThemeObject(SetChildren(SetProps(MakeElement("Frame"), { AnchorPoint = Vector2.new(0, 0.5), Size = UDim2.new(0, 32, 0, 32), Position = UDim2.new(0, 10, 0.5, 0) }), { SetProps(MakeElement("Image", "https://www.roblox.com/headshot-thumbnail/image?userId=".. LocalPlayer.UserId .."&width=420&height=420&format=png"), { Size = UDim2.new(1, 0, 1, 0) }), AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://4031889928"), { Size = UDim2.new(1, 0, 1, 0), }), "Second"), MakeElement("Corner", 1) }), "Divider"), SetChildren(SetProps(MakeElement("TFrame"), { AnchorPoint = Vector2.new(0, 0.5), Size = UDim2.new(0, 32, 0, 32), Position = UDim2.new(0, 10, 0.5, 0) }), { AddThemeObject(MakeElement("Stroke"), "Stroke"), MakeElement("Corner", 1) }), AddThemeObject(SetProps(MakeElement("Label", "User", WindowConfig.HidePremium and 14 or 13), { Size = UDim2.new(1, -60, 0, 13), Position = WindowConfig.HidePremium and UDim2.new(0, 50, 0, 19) or UDim2.new(0, 50, 0, 12), Font = Enum.Font.GothamBold, ClipsDescendants = true }), "Text"), AddThemeObject(SetProps(MakeElement("Label", "", 12), { Size = UDim2.new(1, -60, 0, 12), Position = UDim2.new(0, 50, 1, -25), Visible = not WindowConfig.HidePremium }), "TextDark") }), }), "Second") local WindowName = AddThemeObject(SetProps(MakeElement("Label", WindowConfig.Name, 14), { Size = UDim2.new(1, -30, 2, 0), Position = UDim2.new(0, 25, 0, -24), Font = Enum.Font.GothamBlack, TextSize = 20 }), "Text") local WindowTopBarLine = AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(1, 0, 0, 1), Position = UDim2.new(0, 0, 1, -1) }), "Stroke") local MainWindow = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 10), { Parent = Orion, Position = UDim2.new(0.5, -307, 0.5, -172), Size = UDim2.new(0, 615, 0, 344), ClipsDescendants = true }), { SetChildren(SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 0, 50), Name = "TopBar" }), { WindowName, WindowTopBarLine, AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 7), { Size = UDim2.new(0, 70, 0, 30), Position = UDim2.new(1, -90, 0, 10) }), { AddThemeObject(MakeElement("Stroke"), "Stroke"), AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(0, 1, 1, 0), Position = UDim2.new(0.5, 0, 0, 0) }), "Stroke"), CloseBtn, MinimizeBtn }), "Second"), }), DragPoint, WindowStuff }), "Main") if WindowConfig.ShowIcon then WindowName.Position = UDim2.new(0, 50, 0, -24) local WindowIcon = SetProps(MakeElement("Image", WindowConfig.Icon), { Size = UDim2.new(0, 20, 0, 20), Position = UDim2.new(0, 25, 0, 15) }) WindowIcon.Parent = MainWindow.TopBar end MakeDraggable(DragPoint, MainWindow) AddConnection(CloseBtn.MouseButton1Up, function() MainWindow.Visible = false UIHidden = true OrionLib:MakeNotification({ Name = "Interface Hidden", Content = "Tap Left Control to reopen the interface", Time = 5 }) WindowConfig.CloseCallback() end) AddConnection(UserInputService.InputBegan, function(Input) if Input.KeyCode == Enum.KeyCode.LeftControl and UIHidden == true then MainWindow.Visible = true end end) AddConnection(MinimizeBtn.MouseButton1Up, function() if Minimized then TweenService:Create(MainWindow, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, 615, 0, 344)}):Play() MinimizeBtn.Ico.Image = "rbxassetid://7072719338" wait(.02) MainWindow.ClipsDescendants = false WindowStuff.Visible = true WindowTopBarLine.Visible = true else MainWindow.ClipsDescendants = true WindowTopBarLine.Visible = false MinimizeBtn.Ico.Image = "rbxassetid://7072720870" TweenService:Create(MainWindow, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, WindowName.TextBounds.X + 140, 0, 50)}):Play() wait(0.1) WindowStuff.Visible = false end Minimized = not Minimized end) local function LoadSequence() MainWindow.Visible = false local LoadSequenceLogo = SetProps(MakeElement("Image", WindowConfig.IntroIcon), { Parent = Orion, AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0.4, 0), Size = UDim2.new(0, 28, 0, 28), ImageColor3 = Color3.fromRGB(255, 255, 255), ImageTransparency = 1 }) local LoadSequenceText = SetProps(MakeElement("Label", WindowConfig.IntroText, 14), { Parent = Orion, Size = UDim2.new(1, 0, 1, 0), AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 19, 0.5, 0), TextXAlignment = Enum.TextXAlignment.Center, Font = Enum.Font.GothamBold, TextTransparency = 1 }) TweenService:Create(LoadSequenceLogo, TweenInfo.new(.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageTransparency = 0, Position = UDim2.new(0.5, 0, 0.5, 0)}):Play() wait(0.8) TweenService:Create(LoadSequenceLogo, TweenInfo.new(.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0.5, -(LoadSequenceText.TextBounds.X/2), 0.5, 0)}):Play() wait(0.3) TweenService:Create(LoadSequenceText, TweenInfo.new(.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() wait(2) TweenService:Create(LoadSequenceText, TweenInfo.new(.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() MainWindow.Visible = true LoadSequenceLogo:Destroy() LoadSequenceText:Destroy() end if WindowConfig.IntroEnabled then LoadSequence() end local TabFunction = {} function TabFunction:MakeTab(TabConfig) TabConfig = TabConfig or {} TabConfig.Name = TabConfig.Name or "Tab" TabConfig.Icon = TabConfig.Icon or "" TabConfig.PremiumOnly = TabConfig.PremiumOnly or false local TabFrame = SetChildren(SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 0, 30), Parent = TabHolder }), { AddThemeObject(SetProps(MakeElement("Image", TabConfig.Icon), { AnchorPoint = Vector2.new(0, 0.5), Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(0, 10, 0.5, 0), ImageTransparency = 0.4, Name = "Ico" }), "Text"), AddThemeObject(SetProps(MakeElement("Label", TabConfig.Name, 14), { Size = UDim2.new(1, -35, 1, 0), Position = UDim2.new(0, 35, 0, 0), Font = Enum.Font.GothamSemibold, TextTransparency = 0.4, Name = "Title" }), "Text") }) if GetIcon(TabConfig.Icon) ~= nil then TabFrame.Ico.Image = GetIcon(TabConfig.Icon) end local Container = AddThemeObject(SetChildren(SetProps(MakeElement("ScrollFrame", Color3.fromRGB(255, 255, 255), 5), { Size = UDim2.new(1, -150, 1, -50), Position = UDim2.new(0, 150, 0, 50), Parent = MainWindow, Visible = false, Name = "ItemContainer" }), { MakeElement("List", 0, 6), MakeElement("Padding", 15, 10, 10, 15) }), "Divider") AddConnection(Container.UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"), function() Container.CanvasSize = UDim2.new(0, 0, 0, Container.UIListLayout.AbsoluteContentSize.Y + 30) end) if FirstTab then FirstTab = false TabFrame.Ico.ImageTransparency = 0 TabFrame.Title.TextTransparency = 0 TabFrame.Title.Font = Enum.Font.GothamBlack Container.Visible = true end AddConnection(TabFrame.MouseButton1Click, function() for _, Tab in next, TabHolder:GetChildren() do if Tab:IsA("TextButton") then Tab.Title.Font = Enum.Font.GothamSemibold TweenService:Create(Tab.Ico, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {ImageTransparency = 0.4}):Play() TweenService:Create(Tab.Title, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {TextTransparency = 0.4}):Play() end end for _, ItemContainer in next, MainWindow:GetChildren() do if ItemContainer.Name == "ItemContainer" then ItemContainer.Visible = false end end TweenService:Create(TabFrame.Ico, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {ImageTransparency = 0}):Play() TweenService:Create(TabFrame.Title, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TabFrame.Title.Font = Enum.Font.GothamBlack Container.Visible = true end) local function GetElements(ItemParent) local ElementFunction = {} function ElementFunction:AddLabel(Text) local LabelFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 30), BackgroundTransparency = 0.7, Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", Text, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(MakeElement("Stroke"), "Stroke") }), "Second") local LabelFunction = {} function LabelFunction:Set(ToChange) LabelFrame.Content.Text = ToChange end return LabelFunction end function ElementFunction:AddParagraph(Text, Content) Text = Text or "Text" Content = Content or "Content" local ParagraphFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 30), BackgroundTransparency = 0.7, Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", Text, 15), { Size = UDim2.new(1, -12, 0, 14), Position = UDim2.new(0, 12, 0, 10), Font = Enum.Font.GothamBold, Name = "Title" }), "Text"), AddThemeObject(SetProps(MakeElement("Label", "", 13), { Size = UDim2.new(1, -24, 0, 0), Position = UDim2.new(0, 12, 0, 26), Font = Enum.Font.GothamSemibold, Name = "Content", TextWrapped = true }), "TextDark"), AddThemeObject(MakeElement("Stroke"), "Stroke") }), "Second") AddConnection(ParagraphFrame.Content:GetPropertyChangedSignal("Text"), function() ParagraphFrame.Content.Size = UDim2.new(1, -24, 0, ParagraphFrame.Content.TextBounds.Y) ParagraphFrame.Size = UDim2.new(1, 0, 0, ParagraphFrame.Content.TextBounds.Y + 35) end) ParagraphFrame.Content.Text = Content local ParagraphFunction = {} function ParagraphFunction:Set(ToChange) ParagraphFrame.Content.Text = ToChange end return ParagraphFunction end function ElementFunction:AddButton(ButtonConfig) ButtonConfig = ButtonConfig or {} ButtonConfig.Name = ButtonConfig.Name or "Button" ButtonConfig.Callback = ButtonConfig.Callback or function() end ButtonConfig.Icon = ButtonConfig.Icon or "rbxassetid://3944703587" local Button = {} local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local ButtonFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 33), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", ButtonConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(SetProps(MakeElement("Image", ButtonConfig.Icon), { Size = UDim2.new(0, 20, 0, 20), Position = UDim2.new(1, -30, 0, 7), }), "TextDark"), AddThemeObject(MakeElement("Stroke"), "Stroke"), Click }), "Second") AddConnection(Click.MouseEnter, function() TweenService:Create(ButtonFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() end) AddConnection(Click.MouseLeave, function() TweenService:Create(ButtonFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = OrionLib.Themes[OrionLib.SelectedTheme].Second}):Play() end) AddConnection(Click.MouseButton1Up, function() TweenService:Create(ButtonFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() spawn(function() ButtonConfig.Callback() end) end) AddConnection(Click.MouseButton1Down, function() TweenService:Create(ButtonFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 6)}):Play() end) function Button:Set(ButtonText) ButtonFrame.Content.Text = ButtonText end return Button end function ElementFunction:AddToggle(ToggleConfig) ToggleConfig = ToggleConfig or {} ToggleConfig.Name = ToggleConfig.Name or "Toggle" ToggleConfig.Default = ToggleConfig.Default or false ToggleConfig.Callback = ToggleConfig.Callback or function() end ToggleConfig.Color = ToggleConfig.Color or Color3.fromRGB(9, 99, 195) ToggleConfig.Flag = ToggleConfig.Flag or nil ToggleConfig.Save = ToggleConfig.Save or false local Toggle = {Value = ToggleConfig.Default, Save = ToggleConfig.Save} local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local ToggleBox = SetChildren(SetProps(MakeElement("RoundFrame", ToggleConfig.Color, 0, 4), { Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -24, 0.5, 0), AnchorPoint = Vector2.new(0.5, 0.5) }), { SetProps(MakeElement("Stroke"), { Color = ToggleConfig.Color, Name = "Stroke", Transparency = 0.5 }), SetProps(MakeElement("Image", "rbxassetid://3944680095"), { Size = UDim2.new(0, 20, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0.5, 0), ImageColor3 = Color3.fromRGB(255, 255, 255), Name = "Ico" }), }) local ToggleFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 38), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", ToggleConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(MakeElement("Stroke"), "Stroke"), ToggleBox, Click }), "Second") function Toggle:Set(Value) Toggle.Value = Value TweenService:Create(ToggleBox, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Toggle.Value and ToggleConfig.Color or OrionLib.Themes.Default.Divider}):Play() TweenService:Create(ToggleBox.Stroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Toggle.Value and ToggleConfig.Color or OrionLib.Themes.Default.Stroke}):Play() TweenService:Create(ToggleBox.Ico, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {ImageTransparency = Toggle.Value and 0 or 1, Size = Toggle.Value and UDim2.new(0, 20, 0, 20) or UDim2.new(0, 8, 0, 8)}):Play() ToggleConfig.Callback(Toggle.Value) end Toggle:Set(Toggle.Value) AddConnection(Click.MouseEnter, function() TweenService:Create(ToggleFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() end) AddConnection(Click.MouseLeave, function() TweenService:Create(ToggleFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = OrionLib.Themes[OrionLib.SelectedTheme].Second}):Play() end) AddConnection(Click.MouseButton1Up, function() TweenService:Create(ToggleFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() SaveCfg(game.GameId) Toggle:Set(not Toggle.Value) end) AddConnection(Click.MouseButton1Down, function() TweenService:Create(ToggleFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 6)}):Play() end) if ToggleConfig.Flag then OrionLib.Flags[ToggleConfig.Flag] = Toggle end return Toggle end function ElementFunction:AddSlider(SliderConfig) SliderConfig = SliderConfig or {} SliderConfig.Name = SliderConfig.Name or "Slider" SliderConfig.Min = SliderConfig.Min or 0 SliderConfig.Max = SliderConfig.Max or 100 SliderConfig.Increment = SliderConfig.Increment or 1 SliderConfig.Default = SliderConfig.Default or 50 SliderConfig.Callback = SliderConfig.Callback or function() end SliderConfig.ValueName = SliderConfig.ValueName or "" SliderConfig.Color = SliderConfig.Color or Color3.fromRGB(9, 149, 98) SliderConfig.Flag = SliderConfig.Flag or nil SliderConfig.Save = SliderConfig.Save or false local Slider = {Value = SliderConfig.Default, Save = SliderConfig.Save} local Dragging = false local SliderDrag = SetChildren(SetProps(MakeElement("RoundFrame", SliderConfig.Color, 0, 5), { Size = UDim2.new(0, 0, 1, 0), BackgroundTransparency = 0.3, ClipsDescendants = true }), { AddThemeObject(SetProps(MakeElement("Label", "value", 13), { Size = UDim2.new(1, -12, 0, 14), Position = UDim2.new(0, 12, 0, 6), Font = Enum.Font.GothamBold, Name = "Value", TextTransparency = 0 }), "Text") }) local SliderBar = SetChildren(SetProps(MakeElement("RoundFrame", SliderConfig.Color, 0, 5), { Size = UDim2.new(1, -24, 0, 26), Position = UDim2.new(0, 12, 0, 30), BackgroundTransparency = 0.9 }), { SetProps(MakeElement("Stroke"), { Color = SliderConfig.Color }), AddThemeObject(SetProps(MakeElement("Label", "value", 13), { Size = UDim2.new(1, -12, 0, 14), Position = UDim2.new(0, 12, 0, 6), Font = Enum.Font.GothamBold, Name = "Value", TextTransparency = 0.8 }), "Text"), SliderDrag }) local SliderFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 4), { Size = UDim2.new(1, 0, 0, 65), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", SliderConfig.Name, 15), { Size = UDim2.new(1, -12, 0, 14), Position = UDim2.new(0, 12, 0, 10), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(MakeElement("Stroke"), "Stroke"), SliderBar }), "Second") SliderBar.InputBegan:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = true end end) SliderBar.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = false end end) UserInputService.InputChanged:Connect(function(Input) if Dragging then local SizeScale = math.clamp((Mouse.X - SliderBar.AbsolutePosition.X) / SliderBar.AbsoluteSize.X, 0, 1) Slider:Set(SliderConfig.Min + ((SliderConfig.Max - SliderConfig.Min) * SizeScale)) SaveCfg(game.GameId) end end) function Slider:Set(Value) self.Value = math.clamp(Round(Value, SliderConfig.Increment), SliderConfig.Min, SliderConfig.Max) TweenService:Create(SliderDrag,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = UDim2.fromScale((self.Value - SliderConfig.Min) / (SliderConfig.Max - SliderConfig.Min), 1)}):Play() SliderBar.Value.Text = tostring(self.Value) .. " " .. SliderConfig.ValueName SliderDrag.Value.Text = tostring(self.Value) .. " " .. SliderConfig.ValueName SliderConfig.Callback(self.Value) end Slider:Set(Slider.Value) if SliderConfig.Flag then OrionLib.Flags[SliderConfig.Flag] = Slider end return Slider end function ElementFunction:AddDropdown(DropdownConfig) DropdownConfig = DropdownConfig or {} DropdownConfig.Name = DropdownConfig.Name or "Dropdown" DropdownConfig.Options = DropdownConfig.Options or {} DropdownConfig.Default = DropdownConfig.Default or "" DropdownConfig.Callback = DropdownConfig.Callback or function() end DropdownConfig.Flag = DropdownConfig.Flag or nil DropdownConfig.Save = DropdownConfig.Save or false local Dropdown = {Value = DropdownConfig.Default, Options = DropdownConfig.Options, Buttons = {}, Toggled = false, Type = "Dropdown", Save = DropdownConfig.Save} local MaxElements = 5 if not table.find(Dropdown.Options, Dropdown.Value) then Dropdown.Value = "..." end local DropdownList = MakeElement("List") local DropdownContainer = AddThemeObject(SetProps(SetChildren(MakeElement("ScrollFrame", Color3.fromRGB(40, 40, 40), 4), { DropdownList }), { Parent = ItemParent, Position = UDim2.new(0, 0, 0, 38), Size = UDim2.new(1, 0, 1, -38), ClipsDescendants = true }), "Divider") local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local DropdownFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 38), Parent = ItemParent, ClipsDescendants = true }), { DropdownContainer, SetProps(SetChildren(MakeElement("TFrame"), { AddThemeObject(SetProps(MakeElement("Label", DropdownConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://7072706796"), { Size = UDim2.new(0, 20, 0, 20), AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(1, -30, 0.5, 0), ImageColor3 = Color3.fromRGB(240, 240, 240), Name = "Ico" }), "TextDark"), AddThemeObject(SetProps(MakeElement("Label", "Selected", 13), { Size = UDim2.new(1, -40, 1, 0), Font = Enum.Font.Gotham, Name = "Selected", TextXAlignment = Enum.TextXAlignment.Right }), "TextDark"), AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(1, 0, 0, 1), Position = UDim2.new(0, 0, 1, -1), Name = "Line", Visible = false }), "Stroke"), Click }), { Size = UDim2.new(1, 0, 0, 38), ClipsDescendants = true, Name = "F" }), AddThemeObject(MakeElement("Stroke"), "Stroke"), MakeElement("Corner") }), "Second") AddConnection(DropdownList:GetPropertyChangedSignal("AbsoluteContentSize"), function() DropdownContainer.CanvasSize = UDim2.new(0, 0, 0, DropdownList.AbsoluteContentSize.Y) end) local function AddOptions(Options) for _, Option in pairs(Options) do local OptionBtn = AddThemeObject(SetProps(SetChildren(MakeElement("Button", Color3.fromRGB(40, 40, 40)), { MakeElement("Corner", 0, 6), AddThemeObject(SetProps(MakeElement("Label", Option, 13, 0.4), { Position = UDim2.new(0, 8, 0, 0), Size = UDim2.new(1, -8, 1, 0), Name = "Title" }), "Text") }), { Parent = DropdownContainer, Size = UDim2.new(1, 0, 0, 28), BackgroundTransparency = 1, ClipsDescendants = true }), "Divider") AddConnection(OptionBtn.MouseButton1Click, function() Dropdown:Set(Option) SaveCfg(game.GameId) end) Dropdown.Buttons[Option] = OptionBtn end end function Dropdown:Refresh(Options, Delete) if Delete then for _,v in pairs(Dropdown.Buttons) do v:Destroy() end table.clear(Dropdown.Options) table.clear(Dropdown.Buttons) end Dropdown.Options = Options AddOptions(Dropdown.Options) end function Dropdown:Set(Value) if not table.find(Dropdown.Options, Value) then Dropdown.Value = "..." DropdownFrame.F.Selected.Text = Dropdown.Value for _, v in pairs(Dropdown.Buttons) do TweenService:Create(v,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play() TweenService:Create(v.Title,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0.4}):Play() end return end Dropdown.Value = Value DropdownFrame.F.Selected.Text = Dropdown.Value for _, v in pairs(Dropdown.Buttons) do TweenService:Create(v,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play() TweenService:Create(v.Title,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0.4}):Play() end TweenService:Create(Dropdown.Buttons[Value],TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play() TweenService:Create(Dropdown.Buttons[Value].Title,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0}):Play() return DropdownConfig.Callback(Dropdown.Value) end AddConnection(Click.MouseButton1Click, function() Dropdown.Toggled = not Dropdown.Toggled DropdownFrame.F.Line.Visible = Dropdown.Toggled TweenService:Create(DropdownFrame.F.Ico,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Rotation = Dropdown.Toggled and 180 or 0}):Play() if #Dropdown.Options > MaxElements then TweenService:Create(DropdownFrame,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = Dropdown.Toggled and UDim2.new(1, 0, 0, 38 + (MaxElements * 28)) or UDim2.new(1, 0, 0, 38)}):Play() else TweenService:Create(DropdownFrame,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = Dropdown.Toggled and UDim2.new(1, 0, 0, DropdownList.AbsoluteContentSize.Y + 38) or UDim2.new(1, 0, 0, 38)}):Play() end end) Dropdown:Refresh(Dropdown.Options, false) Dropdown:Set(Dropdown.Value) if DropdownConfig.Flag then OrionLib.Flags[DropdownConfig.Flag] = Dropdown end return Dropdown end function ElementFunction:AddBind(BindConfig) BindConfig.Name = BindConfig.Name or "Bind" BindConfig.Default = BindConfig.Default or Enum.KeyCode.Unknown BindConfig.Hold = BindConfig.Hold or false BindConfig.Callback = BindConfig.Callback or function() end BindConfig.Flag = BindConfig.Flag or nil BindConfig.Save = BindConfig.Save or false local Bind = {Value, Binding = false, Type = "Bind", Save = BindConfig.Save} local Holding = false local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local BindBox = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 4), { Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -12, 0.5, 0), AnchorPoint = Vector2.new(1, 0.5) }), { AddThemeObject(MakeElement("Stroke"), "Stroke"), AddThemeObject(SetProps(MakeElement("Label", BindConfig.Name, 14), { Size = UDim2.new(1, 0, 1, 0), Font = Enum.Font.GothamBold, TextXAlignment = Enum.TextXAlignment.Center, Name = "Value" }), "Text") }), "Main") local BindFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 38), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", BindConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(MakeElement("Stroke"), "Stroke"), BindBox, Click }), "Second") AddConnection(BindBox.Value:GetPropertyChangedSignal("Text"), function() TweenService:Create(BindBox, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, BindBox.Value.TextBounds.X + 16, 0, 24)}):Play() end) AddConnection(Click.InputEnded, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then if Bind.Binding then return end Bind.Binding = true BindBox.Value.Text = "" end end) AddConnection(UserInputService.InputBegan, function(Input) if UserInputService:GetFocusedTextBox() then return end if (Input.KeyCode.Name == Bind.Value or Input.UserInputType.Name == Bind.Value) and not Bind.Binding then if BindConfig.Hold then Holding = true BindConfig.Callback(Holding) else BindConfig.Callback() end elseif Bind.Binding then local Key pcall(function() if not CheckKey(BlacklistedKeys, Input.KeyCode) then Key = Input.KeyCode end end) pcall(function() if CheckKey(WhitelistedMouse, Input.UserInputType) and not Key then Key = Input.UserInputType end end) Key = Key or Bind.Value Bind:Set(Key) SaveCfg(game.GameId) end end) AddConnection(UserInputService.InputEnded, function(Input) if Input.KeyCode.Name == Bind.Value or Input.UserInputType.Name == Bind.Value then if BindConfig.Hold and Holding then Holding = false BindConfig.Callback(Holding) end end end) AddConnection(Click.MouseEnter, function() TweenService:Create(BindFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() end) AddConnection(Click.MouseLeave, function() TweenService:Create(BindFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = OrionLib.Themes[OrionLib.SelectedTheme].Second}):Play() end) AddConnection(Click.MouseButton1Up, function() TweenService:Create(BindFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() end) AddConnection(Click.MouseButton1Down, function() TweenService:Create(BindFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 6)}):Play() end) function Bind:Set(Key) Bind.Binding = false Bind.Value = Key or Bind.Value Bind.Value = Bind.Value.Name or Bind.Value BindBox.Value.Text = Bind.Value end Bind:Set(BindConfig.Default) if BindConfig.Flag then OrionLib.Flags[BindConfig.Flag] = Bind end return Bind end function ElementFunction:AddTextbox(TextboxConfig) TextboxConfig = TextboxConfig or {} TextboxConfig.Name = TextboxConfig.Name or "Textbox" TextboxConfig.Default = TextboxConfig.Default or "" TextboxConfig.TextDisappear = TextboxConfig.TextDisappear or false TextboxConfig.Callback = TextboxConfig.Callback or function() end local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local TextboxActual = AddThemeObject(Create("TextBox", { Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), PlaceholderColor3 = Color3.fromRGB(210,210,210), PlaceholderText = "Input", Font = Enum.Font.GothamSemibold, TextXAlignment = Enum.TextXAlignment.Center, TextSize = 14, ClearTextOnFocus = false }), "Text") local TextContainer = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 4), { Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -12, 0.5, 0), AnchorPoint = Vector2.new(1, 0.5) }), { AddThemeObject(MakeElement("Stroke"), "Stroke"), TextboxActual }), "Main") local TextboxFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 38), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Label", TextboxConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), AddThemeObject(MakeElement("Stroke"), "Stroke"), TextContainer, Click }), "Second") AddConnection(TextboxActual:GetPropertyChangedSignal("Text"), function() TweenService:Create(TextContainer, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, TextboxActual.TextBounds.X + 16, 0, 24)}):Play() end) AddConnection(TextboxActual.FocusLost, function() TextboxConfig.Callback(TextboxActual.Text) if TextboxConfig.TextDisappear then TextboxActual.Text = "" end end) TextboxActual.Text = TextboxConfig.Default AddConnection(Click.MouseEnter, function() TweenService:Create(TextboxFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() end) AddConnection(Click.MouseLeave, function() TweenService:Create(TextboxFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = OrionLib.Themes[OrionLib.SelectedTheme].Second}):Play() end) AddConnection(Click.MouseButton1Up, function() TweenService:Create(TextboxFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 3, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 3)}):Play() TextboxActual:CaptureFocus() end) AddConnection(Click.MouseButton1Down, function() TweenService:Create(TextboxFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(OrionLib.Themes[OrionLib.SelectedTheme].Second.R * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.G * 255 + 6, OrionLib.Themes[OrionLib.SelectedTheme].Second.B * 255 + 6)}):Play() end) end function ElementFunction:AddColorpicker(ColorpickerConfig) ColorpickerConfig = ColorpickerConfig or {} ColorpickerConfig.Name = ColorpickerConfig.Name or "Colorpicker" ColorpickerConfig.Default = ColorpickerConfig.Default or Color3.fromRGB(255,255,255) ColorpickerConfig.Callback = ColorpickerConfig.Callback or function() end ColorpickerConfig.Flag = ColorpickerConfig.Flag or nil ColorpickerConfig.Save = ColorpickerConfig.Save or false local ColorH, ColorS, ColorV = 1, 1, 1 local Colorpicker = {Value = ColorpickerConfig.Default, Toggled = false, Type = "Colorpicker", Save = ColorpickerConfig.Save} local ColorSelection = Create("ImageLabel", { Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(select(3, Color3.toHSV(Colorpicker.Value))), ScaleType = Enum.ScaleType.Fit, AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, Image = "http://www.roblox.com/asset/?id=4805639000" }) local HueSelection = Create("ImageLabel", { Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(0.5, 0, 1 - select(1, Color3.toHSV(Colorpicker.Value))), ScaleType = Enum.ScaleType.Fit, AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, Image = "http://www.roblox.com/asset/?id=4805639000" }) local Color = Create("ImageLabel", { Size = UDim2.new(1, -25, 1, 0), Visible = false, Image = "rbxassetid://4155801252" }, { Create("UICorner", {CornerRadius = UDim.new(0, 5)}), ColorSelection }) local Hue = Create("Frame", { Size = UDim2.new(0, 20, 1, 0), Position = UDim2.new(1, -20, 0, 0), Visible = false }, { Create("UIGradient", {Rotation = 270, Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(255, 0, 4)), ColorSequenceKeypoint.new(0.20, Color3.fromRGB(234, 255, 0)), ColorSequenceKeypoint.new(0.40, Color3.fromRGB(21, 255, 0)), ColorSequenceKeypoint.new(0.60, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.80, Color3.fromRGB(0, 17, 255)), ColorSequenceKeypoint.new(0.90, Color3.fromRGB(255, 0, 251)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 0, 4))},}), Create("UICorner", {CornerRadius = UDim.new(0, 5)}), HueSelection }) local ColorpickerContainer = Create("Frame", { Position = UDim2.new(0, 0, 0, 32), Size = UDim2.new(1, 0, 1, -32), BackgroundTransparency = 1, ClipsDescendants = true }, { Hue, Color, Create("UIPadding", { PaddingLeft = UDim.new(0, 35), PaddingRight = UDim.new(0, 35), PaddingBottom = UDim.new(0, 10), PaddingTop = UDim.new(0, 17) }) }) local Click = SetProps(MakeElement("Button"), { Size = UDim2.new(1, 0, 1, 0) }) local ColorpickerBox = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 4), { Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, -12, 0.5, 0), AnchorPoint = Vector2.new(1, 0.5) }), { AddThemeObject(MakeElement("Stroke"), "Stroke") }), "Main") local ColorpickerFrame = AddThemeObject(SetChildren(SetProps(MakeElement("RoundFrame", Color3.fromRGB(255, 255, 255), 0, 5), { Size = UDim2.new(1, 0, 0, 38), Parent = ItemParent }), { SetProps(SetChildren(MakeElement("TFrame"), { AddThemeObject(SetProps(MakeElement("Label", ColorpickerConfig.Name, 15), { Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 12, 0, 0), Font = Enum.Font.GothamBold, Name = "Content" }), "Text"), ColorpickerBox, Click, AddThemeObject(SetProps(MakeElement("Frame"), { Size = UDim2.new(1, 0, 0, 1), Position = UDim2.new(0, 0, 1, -1), Name = "Line", Visible = false }), "Stroke"), }), { Size = UDim2.new(1, 0, 0, 38), ClipsDescendants = true, Name = "F" }), ColorpickerContainer, AddThemeObject(MakeElement("Stroke"), "Stroke"), }), "Second") AddConnection(Click.MouseButton1Click, function() Colorpicker.Toggled = not Colorpicker.Toggled TweenService:Create(ColorpickerFrame,TweenInfo.new(.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = Colorpicker.Toggled and UDim2.new(1, 0, 0, 148) or UDim2.new(1, 0, 0, 38)}):Play() Color.Visible = Colorpicker.Toggled Hue.Visible = Colorpicker.Toggled ColorpickerFrame.F.Line.Visible = Colorpicker.Toggled end) local function UpdateColorPicker() ColorpickerBox.BackgroundColor3 = Color3.fromHSV(ColorH, ColorS, ColorV) Color.BackgroundColor3 = Color3.fromHSV(ColorH, 1, 1) Colorpicker:Set(ColorpickerBox.BackgroundColor3) ColorpickerConfig.Callback(ColorpickerBox.BackgroundColor3) SaveCfg(game.GameId) end ColorH = 1 - (math.clamp(HueSelection.AbsolutePosition.Y - Hue.AbsolutePosition.Y, 0, Hue.AbsoluteSize.Y) / Hue.AbsoluteSize.Y) ColorS = (math.clamp(ColorSelection.AbsolutePosition.X - Color.AbsolutePosition.X, 0, Color.AbsoluteSize.X) / Color.AbsoluteSize.X) ColorV = 1 - (math.clamp(ColorSelection.AbsolutePosition.Y - Color.AbsolutePosition.Y, 0, Color.AbsoluteSize.Y) / Color.AbsoluteSize.Y) AddConnection(Color.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if ColorInput then ColorInput:Disconnect() end ColorInput = AddConnection(RunService.RenderStepped, function() local ColorX = (math.clamp(Mouse.X - Color.AbsolutePosition.X, 0, Color.AbsoluteSize.X) / Color.AbsoluteSize.X) local ColorY = (math.clamp(Mouse.Y - Color.AbsolutePosition.Y, 0, Color.AbsoluteSize.Y) / Color.AbsoluteSize.Y) ColorSelection.Position = UDim2.new(ColorX, 0, ColorY, 0) ColorS = ColorX ColorV = 1 - ColorY UpdateColorPicker() end) end end) AddConnection(Color.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if ColorInput then ColorInput:Disconnect() end end end) AddConnection(Hue.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if HueInput then HueInput:Disconnect() end; HueInput = AddConnection(RunService.RenderStepped, function() local HueY = (math.clamp(Mouse.Y - Hue.AbsolutePosition.Y, 0, Hue.AbsoluteSize.Y) / Hue.AbsoluteSize.Y) HueSelection.Position = UDim2.new(0.5, 0, HueY, 0) ColorH = 1 - HueY UpdateColorPicker() end) end end) AddConnection(Hue.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if HueInput then HueInput:Disconnect() end end end) function Colorpicker:Set(Value) Colorpicker.Value = Value ColorpickerBox.BackgroundColor3 = Colorpicker.Value ColorpickerConfig.Callback(Colorpicker.Value) end Colorpicker:Set(Colorpicker.Value) if ColorpickerConfig.Flag then OrionLib.Flags[ColorpickerConfig.Flag] = Colorpicker end return Colorpicker end return ElementFunction end local ElementFunction = {} function ElementFunction:AddSection(SectionConfig) SectionConfig.Name = SectionConfig.Name or "Section" local SectionFrame = SetChildren(SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 0, 26), Parent = Container }), { AddThemeObject(SetProps(MakeElement("Label", SectionConfig.Name, 14), { Size = UDim2.new(1, -12, 0, 16), Position = UDim2.new(0, 0, 0, 3), Font = Enum.Font.GothamSemibold }), "TextDark"), SetChildren(SetProps(MakeElement("TFrame"), { AnchorPoint = Vector2.new(0, 0), Size = UDim2.new(1, 0, 1, -24), Position = UDim2.new(0, 0, 0, 23), Name = "Holder" }), { MakeElement("List", 0, 6) }), }) AddConnection(SectionFrame.Holder.UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"), function() SectionFrame.Size = UDim2.new(1, 0, 0, SectionFrame.Holder.UIListLayout.AbsoluteContentSize.Y + 31) SectionFrame.Holder.Size = UDim2.new(1, 0, 0, SectionFrame.Holder.UIListLayout.AbsoluteContentSize.Y) end) local SectionFunction = {} for i, v in next, GetElements(SectionFrame.Holder) do SectionFunction[i] = v end return SectionFunction end for i, v in next, GetElements(Container) do ElementFunction[i] = v end if TabConfig.PremiumOnly then for i, v in next, ElementFunction do ElementFunction[i] = function() end end Container:FindFirstChild("UIListLayout"):Destroy() Container:FindFirstChild("UIPadding"):Destroy() SetChildren(SetProps(MakeElement("TFrame"), { Size = UDim2.new(1, 0, 1, 0), Parent = ItemParent }), { AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://3610239960"), { Size = UDim2.new(0, 18, 0, 18), Position = UDim2.new(0, 15, 0, 15), ImageTransparency = 0.4 }), "Text"), AddThemeObject(SetProps(MakeElement("Label", "Unauthorised Access", 14), { Size = UDim2.new(1, -38, 0, 14), Position = UDim2.new(0, 38, 0, 18), TextTransparency = 0.4 }), "Text"), AddThemeObject(SetProps(MakeElement("Image", "rbxassetid://4483345875"), { Size = UDim2.new(0, 56, 0, 56), Position = UDim2.new(0, 84, 0, 110), }), "Text"), AddThemeObject(SetProps(MakeElement("Label", "Premium Features", 14), { Size = UDim2.new(1, -150, 0, 14), Position = UDim2.new(0, 150, 0, 112), Font = Enum.Font.GothamBold }), "Text"), AddThemeObject(SetProps(MakeElement("Label", "This part of the script is locked to Sirius Premium users. Purchase Premium in the Discord server (discord.gg/sirius)", 12), { Size = UDim2.new(1, -200, 0, 14), Position = UDim2.new(0, 150, 0, 138), TextWrapped = true, TextTransparency = 0.4 }), "Text") }) end return ElementFunction end return TabFunction end function OrionLib:Destroy() Orion:Destroy() end return OrionLib
Editor Settings
Theme
Key bindings
Full width
Lines