Run it
Copy the script and paste it into your executor.
DiscordInvite =
Players = :()
TweenService = :()
UserInputService = :()
Lighting = :()
CoreGui = :()
RunService = :()
LocalPlayer = Players.LocalPlayer
PlayerGui = LocalPlayer:()
TWEEN_TOGGLE_OPEN = TweenInfo.(, .EasingStyle.Exponential, .EasingDirection.Out)
TWEEN_TOGGLE_CLOSE = TweenInfo.(, .EasingStyle.Exponential, .EasingDirection.In)
TWEEN_MINIMIZE = TweenInfo.(, .EasingStyle.Quint, .EasingDirection.In)
TWEEN_CLOSE_X = TweenInfo.(, .EasingStyle.Quint, .EasingDirection.In)
TWEEN_QUINT = TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out)
TWEEN_FAST = TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out)
TWEEN_CLICK = TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out)
TWEEN_RESET = TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out)
TWEEN_DROPDOWN = TweenInfo.(, .EasingStyle.Exponential, .EasingDirection.Out)
Themes = {
Purple = {Header = .(, , ), Accent1 = .(, , ), Accent2 = .(, , ), SwitchOn = .(, , ), Text = .(, , )},
Green = {Header = .(, , ), Accent1 = .(, , ), Accent2 = .(, , ), SwitchOn = .(, , ), Text = .(, , )},
Blue = {Header = .(, , ), Accent1 = .(, , ), Accent2 = .(, , ), SwitchOn = .(, , ), Text = .(, , )},
Red = {Header = .(, , ), Accent1 = .(, , ), Accent2 = .(, , ), SwitchOn = .(, , ), Text = .(, , )}
}
CurrentTheme = {
Background = .(, , ),
Header = Themes.Purple.Header,
Accent1 = Themes.Purple.Accent1,
Accent2 = Themes.Purple.Accent2,
Text = Themes.Purple.Text,
SwitchOff = .(, , ),
SwitchOn = Themes.Purple.SwitchOn,
IsGradient =
}
Registry = {Gradients = {}, Headers = {}, Accents = {}, AccentFills = {}, Switches = {}, Strokes = {}, Keybinds = {}}
ElementCount =
OnyxLib = {}
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset =
(gui)
success, err = (() gui.Parent = CoreGui )
success gui.Parent = PlayerGui
(ScreenGui)
Blur = .()
Blur.Name =
Blur.Size =
Blur.Parent = Lighting
(className, properties)
instance = .(className)
property, value (properties)
instance[property] = value
instance
(instance)
Gradient = (, {Parent = instance})
CurrentTheme.IsGradient
Gradient.Color = ColorSequence.{ColorSequenceKeypoint.(, CurrentTheme.Accent1), ColorSequenceKeypoint.(, CurrentTheme.Accent2)}
Gradient.Color = ColorSequence.{ColorSequenceKeypoint.(, CurrentTheme.Accent1), ColorSequenceKeypoint.(, CurrentTheme.Accent1)}
.(Registry.Gradients, Gradient)
Gradient
()
_, grad (Registry.Gradients)
CSeq = CurrentTheme.IsGradient
ColorSequence.{ColorSequenceKeypoint.(, CurrentTheme.Accent1), ColorSequenceKeypoint.(, CurrentTheme.Accent2)}
ColorSequence.{ColorSequenceKeypoint.(, CurrentTheme.Accent1), ColorSequenceKeypoint.(, CurrentTheme.Accent1)}
grad.Color = CSeq
_, obj (Registry.Headers) TweenService:(obj, TWEEN_QUINT, {BackgroundColor3 = CurrentTheme.Header}):()
_, obj (Registry.Accents) TweenService:(obj, TWEEN_QUINT, {TextColor3 = CurrentTheme.Accent1}):()
_, obj (Registry.AccentFills) TweenService:(obj, TWEEN_QUINT, {BackgroundColor3 = CurrentTheme.Accent1}):()
_, item (Registry.Switches)
targetColor = item.Active CurrentTheme.SwitchOn CurrentTheme.SwitchOff
TweenService:(item.Instance, TWEEN_QUINT, {BackgroundColor3 = targetColor}):()
_, kb (Registry.Keybinds) TweenService:(kb.Label, TWEEN_QUINT, {TextColor3 = CurrentTheme.Accent1}):()
(ThemeName)
Data = Themes[ThemeName]
Data
CurrentTheme.Header = Data.Header; CurrentTheme.Accent1 = Data.Accent1; CurrentTheme.Accent2 = Data.Accent2; CurrentTheme.SwitchOn = Data.SwitchOn; CurrentTheme.Text = Data.Text
()
OnyxLib:(, .. ThemeName, )
(bool)
CurrentTheme.IsGradient = bool; ()
(frame)
dragging, dragInput, dragStart, startPos
(input)
delta = input.Position - dragStart
ScreenSize = ScreenGui.AbsoluteSize; FrameSize = frame.AbsoluteSize
TargetX = (ScreenSize.X * startPos.X.Scale) + startPos.X.Offset + delta.X
TargetY = (ScreenSize.Y * startPos.Y.Scale) + startPos.Y.Offset + delta.Y
AnchorX = frame.AnchorPoint.X * FrameSize.X; AnchorY = frame.AnchorPoint.Y * FrameSize.Y
TopLeftX = TargetX - AnchorX; TopLeftY = TargetY - AnchorY
ClampedX = .(TopLeftX, , ScreenSize.X - FrameSize.X); ClampedY = .(TopLeftY, , ScreenSize.Y - FrameSize.Y)
TweenService:(frame, TweenInfo.(), {Position = .(ClampedX + AnchorX, ClampedY + AnchorY)}):()
frame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging = ; dragStart = input.Position; startPos = frame.Position
input.Changed:(() input.UserInputState == .UserInputState.End dragging = )
)
frame.InputChanged:((input) input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch dragInput = input )
UserInputService.InputChanged:((input) input == dragInput dragging (input) )
NotifContainer = (, {Size = .(, , , ), AnchorPoint = .(, ), Position = .(, , , ), BackgroundTransparency = , BorderSizePixel = , ZIndex = , Parent = ScreenGui})
NList = (, {Parent = NotifContainer, VerticalAlignment = .VerticalAlignment.Bottom, HorizontalAlignment = .HorizontalAlignment.Right, Padding = .(, )})
ActiveNotifications = {}
OnyxLib:(title, message, duration, tag)
tag ActiveNotifications[tag]
Existing = ActiveNotifications[tag]
Existing.Expiry = () + duration
Existing.Frame Existing.Frame.Parent
Content = Existing.Frame:()
Content MsgLabel = Content:(); MsgLabel MsgLabel.Text = message
tag ActiveNotifications[tag] = {Frame = , Expiry = () + duration}
.(()
Frame = (, {Name = , Size = .(, , , ), BackgroundColor3 = CurrentTheme.Background, BackgroundTransparency = , BorderSizePixel = , ZIndex = , Parent = NotifContainer})
(, {CornerRadius = .(, ), Parent = Frame}); S = (, {Thickness = , Parent = Frame}); SG = (S); SG.Rotation =
Content = (, {Name = , Size = .(, , , ), BackgroundTransparency = , Visible = , Parent = Frame, ZIndex = })
Icon = (, {Text = , Font = .Font.GothamBold, TextSize = , TextColor3 = .(, , ), Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , Parent = Content, ZIndex = }); (Icon)
(, {Text = title, Font = .Font.GothamBold, TextColor3 = .(, , ), TextSize = , Size = .(, -, , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = Content, ZIndex = })
(, {Name = , Text = message, Font = .Font.Gotham, TextColor3 = CurrentTheme.Text, TextSize = , Size = .(, -, , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, TextWrapped = , Parent = Content, ZIndex = })
tag ActiveNotifications[tag] ActiveNotifications[tag].Frame = Frame
t = TweenService:(Frame, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {Size = .(, , , )}); t:(); t.Completed:(); Content.Visible =
tag
() < ActiveNotifications[tag].Expiry .(); ActiveNotifications[tag] Frame.Parent
ActiveNotifications[tag] =
.(duration)
Frame.Parent
Clone = Frame:(); Clone.Parent = ScreenGui; Clone.Position = .(Frame.AbsolutePosition.X, Frame.AbsolutePosition.Y); Clone.AnchorPoint = .(, ); Frame:()
TweenService:(Clone, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.In), {Position = .(Clone.AbsolutePosition.X + , Clone.AbsolutePosition.Y), BackgroundTransparency = }):(); .(); Clone:()
)
MainFrame = (, {Name = , BackgroundColor3 = CurrentTheme.Background, BorderSizePixel = , Size = .(, , , ), Position = .(, , , ), AnchorPoint = .(, ), Visible = , ClipsDescendants = , Active = , ZIndex = , Parent = ScreenGui})
(MainFrame)
(, {CornerRadius = .(, ), Parent = MainFrame}); MS = (, {Thickness = , Parent = MainFrame}); BG = (MS); BG.Rotation =
HeaderFrame = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , BorderSizePixel = , Parent = MainFrame}); .(Registry.Headers, HeaderFrame)
Title = (, {Text = , Font = .Font.GothamBlack, TextSize = , TextColor3 = .(, , ), Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = HeaderFrame}); (Title)
Controls = (, {Size = .(, , , ), Position = .(, -, , -), BackgroundTransparency = , BorderSizePixel = , Parent = HeaderFrame})
(text, order, callback)
B = (, {Size = .(, , , ), Position = .(, (order - ) * , , ), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , Text = text, TextColor3 = .(, , ), Font = .Font.GothamBlack, TextSize = , AutoButtonColor = , BorderSizePixel = , Parent = Controls})
(, {CornerRadius = .(, ), Parent = B}); S = (, {Thickness = , Parent = B}); (S); (B); .(Registry.Headers, B); B.MouseButton1Click:(callback)
IsOpen = ; IsAnimating = ; ToggleBtn, ToggleIcon
(, , ()
TweenService:(Blur, TweenInfo.(), {Size = }):()
t = TweenService:(MainFrame, TWEEN_CLOSE_X, {Size = .(, , , )}); t:()
t.Completed:(); ScreenGui:()
)
(, , ()
IsAnimating ; IsAnimating =
TweenService:(Blur, TweenInfo.(), {Size = }):()
t = TweenService:(MainFrame, TWEEN_MINIMIZE, {Size = .(, , , )}); t:()
IsOpen =
TweenService:(ToggleIcon, TweenInfo.(), {Rotation = }):()
t.Completed:(); MainFrame.Visible = ; IsAnimating =
OnyxLib:(, , )
)
(, , () setclipboard (setclipboard, DiscordInvite); OnyxLib:(, , ) OnyxLib:(, , ); ( .. DiscordInvite) )
Scroll = (, {Size = .(, , , -), Position = .(, , , ), BackgroundTransparency = , BorderSizePixel = , ScrollBarThickness = , ScrollingDirection = .ScrollingDirection.Y, AutomaticCanvasSize = .AutomaticSize.Y, CanvasSize = .(, , , ), Parent = MainFrame})
(, {CornerRadius = .(, ), Parent = Scroll}); (, {Parent = Scroll, HorizontalAlignment = .HorizontalAlignment.Center, Padding = .(, ), SortOrder = .SortOrder.LayoutOrder}); (, {PaddingTop = .(, ), PaddingBottom = .(, ), Parent = Scroll})
SettingsFrame = (, {Size = .(, , , ), Position = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , ClipsDescendants = , ZIndex = , BorderSizePixel = , Parent = MainFrame})
(, {CornerRadius = .(, ), Parent = SettingsFrame}); SS = (, {Thickness = , Parent = SettingsFrame, Transparency = }); (SS); Registry.Strokes[] = SS; .(Registry.Headers, SettingsFrame)
SettingsScroll = (, {Size = .(, , , ), BackgroundTransparency = , BorderSizePixel = , ScrollBarThickness = , ScrollingDirection = .ScrollingDirection.Y, AutomaticCanvasSize = .AutomaticSize.Y, CanvasSize = .(,,,), Parent = SettingsFrame})
SettingsLayout = (, {Parent = SettingsScroll, HorizontalAlignment = .HorizontalAlignment.Center, SortOrder = .SortOrder.LayoutOrder, Padding = .(, )})
(, {PaddingTop = .(,), PaddingBottom = .(,), Parent = SettingsScroll})
CP_H, CP_S, CP_V = , ,
ColorBox, Cursor, BrightnessBar
(color)
h, s, v = color:()
CP_H, CP_S, CP_V = h, s, v
ColorBox Cursor BrightnessBar
ColorBox.BackgroundColor3 = .(CP_H, , )
Cursor.Position = .( - CP_H, , - CP_S, )
(, , ()
SettingsOpen = (SettingsFrame.Size.Y.Scale > )
Stroke = Registry.Strokes[]
SettingsOpen
SettingsFrame.BackgroundTransparency = ; SettingsFrame.Visible =
TweenService:(SettingsFrame, TWEEN_QUINT, {Size = .(, , , )}):()
Stroke TweenService:(Stroke, TWEEN_QUINT, {Transparency = }):()
t = TweenService:(SettingsFrame, TWEEN_FAST, {Size = .(, , , )}); Stroke TweenService:(Stroke, TWEEN_FAST, {Transparency = }):()
t:(); t.Completed:(); SettingsFrame.BackgroundTransparency = ; SettingsFrame.Visible =
)
S_Title = (, {Text = , Font = .Font.GothamBold, TextColor3 = CurrentTheme.Text, Size = .(, , , ), BackgroundTransparency = , BorderSizePixel = , Parent = SettingsScroll, LayoutOrder = })
GradToggle = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.SwitchOn, Text = , Font = .Font.GothamBold, TextColor3 = .(, , ), AutoButtonColor = , BorderSizePixel = , Parent = SettingsScroll, LayoutOrder = })
(, {CornerRadius = .(, ), Parent = GradToggle}); .(Registry.Switches, { = GradToggle, Active = })
GradToggle.MouseButton1Click:(() ( CurrentTheme.IsGradient); State = CurrentTheme.IsGradient; TweenService:(GradToggle, TWEEN_FAST, {BackgroundColor3 = State CurrentTheme.SwitchOn CurrentTheme.SwitchOff}):(); GradToggle.Text = State )
ThemeButtonContainer = (, {Size = .(, , , ), BackgroundTransparency = , BorderSizePixel = , Parent = SettingsScroll, LayoutOrder = })
SGrid = (, {Parent = ThemeButtonContainer, CellSize = .(, , , ), HorizontalAlignment = .HorizontalAlignment.Center, VerticalAlignment = .VerticalAlignment.Center, CellPadding = .(, , , )})
(name, a1)
B = (, {BackgroundColor3 = a1, Text = , AutoButtonColor = , BorderSizePixel = , Parent = ThemeButtonContainer})
(, {CornerRadius = .(, ), Parent = B}); (, {Thickness = , Color = .(, , ), Transparency = , Parent = B})
B.MouseButton1Up:(()
(name)
(a1)
)
(, Themes.Purple.Accent1); (, Themes.Green.Accent1); (, Themes.Blue.Accent1); (, Themes.Red.Accent1)
(, {Text = , Font = .Font.GothamBold, TextColor3 = CurrentTheme.Text, Size = .(, , , ), BackgroundTransparency = , TextTransparency = , TextSize = , Parent = SettingsScroll, LayoutOrder = })
PickerFrame = (, {Size = .(, , , ), BackgroundTransparency = , Parent = SettingsScroll, LayoutOrder = })
ColorBox = (, {Size = .(, , , ), Position = .(, , , ), BackgroundColor3 = .(CP_H, , ), Image = , Parent = PickerFrame})
(, {CornerRadius = .(, ), Parent = ColorBox})
Cursor = (, {Size = .(, , , ), AnchorPoint = .(, ), BackgroundColor3 = .(,,), Position = .(, , , ), Parent = ColorBox}); (, {CornerRadius = .(, ), Parent = Cursor}); (, {Thickness = , Color = .(,,), Parent = Cursor})
BrightnessBar = (, {Size = .(, , , ), Position = .(, , , ), BackgroundColor3 = .(,,), BorderSizePixel = , Parent = PickerFrame})
(, {CornerRadius = .(, ), Parent = BrightnessBar}); (, {Color = ColorSequence.{ColorSequenceKeypoint.(, .(,,)), ColorSequenceKeypoint.(, .(,,))}, Parent = BrightnessBar})
draggingBox, draggingBright = ,
()
newColor = .(CP_H, CP_S, CP_V)
CurrentTheme.Accent1 = newColor; CurrentTheme.Accent2 = .(CP_H, .(CP_S - , , ), .(CP_V + , , )); CurrentTheme.SwitchOn = newColor
ColorBox.BackgroundColor3 = .(CP_H, , ); ()
(input)
draggingBox
pos = input.Position
rX = .(pos.X - ColorBox.AbsolutePosition.X, , ColorBox.AbsoluteSize.X)
rY = .(pos.Y - ColorBox.AbsolutePosition.Y, , ColorBox.AbsoluteSize.Y)
CP_H = - (rX / ColorBox.AbsoluteSize.X)
CP_S = - (rY / ColorBox.AbsoluteSize.Y)
Cursor.Position = .(, rX, , rY)
()
draggingBright
pos = input.Position
rX = .(pos.X - BrightnessBar.AbsolutePosition.X, , BrightnessBar.AbsoluteSize.X)
CP_V = rX / BrightnessBar.AbsoluteSize.X
()
ColorBox.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
draggingBox = ; (input)
)
BrightnessBar.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
draggingBright = ; (input)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
draggingBox = ; draggingBright =
)
UserInputService.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
draggingBox draggingBright (input)
)
(obj) ElementCount = ElementCount + ; obj.LayoutOrder = ElementCount
OnyxLib:()
Frame = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , BorderSizePixel = , Parent = Scroll}); (Frame); .(Registry.Headers, Frame)
(, {CornerRadius = .(, ), Parent = Frame}); S = (, {Thickness = , Parent = Frame}); (S)
(, {Text = , BackgroundTransparency = , Size = .(, , , ), TextSize = , Parent = Frame})
Box = (, {Size = .(, -, , ), Position = .(, , , ), BackgroundTransparency = , Text = , PlaceholderText = , TextColor3 = CurrentTheme.Text, PlaceholderColor3 = .(, , ), Font = .Font.GothamBold, TextSize = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
Box.Focused:(() TweenService:(Frame, TWEEN_FAST, {BackgroundTransparency = }):() )
Box.FocusLost:(() TweenService:(Frame, TWEEN_FAST, {BackgroundTransparency = }):() )
Box.Changed:((prop)
prop ==
Term = Box.Text:()
_, child (Scroll:())
child:() child:()
child ~= Frame child ~= SettingsFrame
Term == child.Visible =
foundMatch = ; TitleLabel = child:(, )
TitleLabel TitleLabel:() TitleLabel.Text:():(Term, , ) foundMatch =
foundMatch child:() child.Text:():(Term, , ) foundMatch =
child.Visible = foundMatch
)
OnyxLib:(text)
Frame = (, {Size = .(, , , ), BackgroundTransparency = , Parent = Scroll}); (Frame)
(, {Name = , Text = text, Font = .Font.GothamBlack, TextSize = , TextColor3 = CurrentTheme.Text, Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
Separator = (, {Size = .(, , , ), Position = .(, , , -), BackgroundColor3 = CurrentTheme.Accent1, BorderSizePixel = , Parent = Frame}); .(Registry.AccentFills, Separator)
OnyxLib:(text)
Frame = (, {Size = .(, , , ), BackgroundTransparency = , Parent = Scroll}); (Frame)
(, {Name = , Text = text, Font = .Font.Gotham, TextSize = , TextColor3 = CurrentTheme.Text, TextTransparency = , Size = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
OnyxLib:(text, defaultKey, callback, notificationOnInteract)
Frame = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BorderSizePixel = , Parent = Scroll}); (Frame); .(Registry.Headers, Frame)
(, {CornerRadius = .(, ), Parent = Frame}); (, {Name = , Text = text, Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , TextColor3 = CurrentTheme.Text, Font = .Font.GothamBold, TextSize = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
BindBtn = (, {Text = (defaultKey):(, ), Size = .(, , , ), Position = .(, -, , -), BackgroundColor3 = CurrentTheme.SwitchOff, AutoButtonColor = , Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Accent1, Parent = Frame})
(, {CornerRadius = .(, ), Parent = BindBtn}); .(Registry.Keybinds, {Label = BindBtn})
currentKey = defaultKey; isBinding =
BindBtn.MouseButton1Click:(()
isBinding = ; BindBtn.Text = ; TweenService:(BindBtn, TWEEN_FAST, {BackgroundColor3 = CurrentTheme.Accent1, TextColor3 = .(, , )}):()
inputConnection; inputConnection = UserInputService.InputBegan:((input)
input.UserInputType == .UserInputType.Keyboard
currentKey = input.KeyCode; BindBtn.Text = (currentKey):(, ); isBinding = ; TweenService:(BindBtn, TWEEN_FAST, {BackgroundColor3 = CurrentTheme.SwitchOff, TextColor3 = CurrentTheme.Accent1}):()
callback (currentKey) ; notificationOnInteract OnyxLib:(, .. (currentKey):(, ), )
inputConnection:()
)
)
UserInputService.InputBegan:((input, gameProcessed) isBinding input.KeyCode == currentKey gameProcessed callback (currentKey) ; notificationOnInteract OnyxLib:(, text .. , ) )
OnyxLib:(name, min, max, default, callback, notificationOnInteract)
Frame = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BorderSizePixel = , Parent = Scroll}); (Frame); .(Registry.Headers, Frame)
(, {CornerRadius = .(, ), Parent = Frame}); (, {Name = , Text = name, Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Text, Size = .(, -, , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
ValueDisplay = (, {Text = (default), Font = .Font.Gotham, TextSize = , TextColor3 = CurrentTheme.Accent1, Size = .(, , , ), Position = .(, -, , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Right, Parent = Frame}); .(Registry.Accents, ValueDisplay)
SliderBG = (, {Text = , AutoButtonColor = , Size = .(, , , ), Position = .(, , , ), BackgroundColor3 = CurrentTheme.SwitchOff, BorderSizePixel = , Parent = Frame}); (, {CornerRadius = .(, ), Parent = SliderBG})
Fill = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Accent1, BorderSizePixel = , Parent = SliderBG}); (, {CornerRadius = .(, ), Parent = Fill}); .(Registry.AccentFills, Fill)
Dragging =
(input)
Ratio = .((input.Position.X - SliderBG.AbsolutePosition.X) / SliderBG.AbsoluteSize.X, , )
TweenService:(Fill, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {Size = .(Ratio, , , )}):()
Val = .(min + ((max - min) * Ratio)); ValueDisplay.Text = (Val)
callback (Val)
notificationOnInteract OnyxLib:(, name .. .. Val, , ..name)
SliderBG.InputBegan:((input) input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch Dragging = ; (input) )
UserInputService.InputEnded:((input) input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch Dragging = )
UserInputService.InputChanged:((input) Dragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch) (input) )
OnyxLib:(text, callback, notificationOnInteract)
Frame = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BorderSizePixel = , Parent = Scroll}); (Frame); .(Registry.Headers, Frame)
(, {CornerRadius = .(, ), Parent = Frame}); (, {Name = , Text = text, Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , TextColor3 = CurrentTheme.Text, Font = .Font.GothamBold, TextSize = , TextXAlignment = .TextXAlignment.Left, Parent = Frame})
Btn = (, {Text = , Size = .(, , , ), Position = .(, -, , -), BackgroundColor3 = CurrentTheme.SwitchOff, AutoButtonColor = , Parent = Frame}); (, {CornerRadius = .(, ), Parent = Btn})
Circle = (, {Size = .(, , , ), Position = .(, , , -), BackgroundColor3 = .(, , ), Parent = Btn}); (, {CornerRadius = .(, ), Parent = Circle})
SwitchData = { = Btn, Active = }; .(Registry.Switches, SwitchData)
Btn.MouseButton1Click:(()
SwitchData.Active = SwitchData.Active; tPos = SwitchData.Active .(, -, , -) .(, , , -); tCol = SwitchData.Active CurrentTheme.SwitchOn CurrentTheme.SwitchOff
TweenService:(Circle, TWEEN_FAST, {Position = tPos}):(); TweenService:(Btn, TWEEN_FAST, {BackgroundColor3 = tCol}):()
callback (SwitchData.Active) ; notificationOnInteract OnyxLib:(text, .. (SwitchData.Active ), )
)
OnyxLib:(text, callback, notificationOnInteract)
B = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , Text = text, Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Text, AutoButtonColor = , BorderSizePixel = , Parent = Scroll}); (B); .(Registry.Headers, B)
(, {CornerRadius = .(, ), Parent = B})
() callback () ; notificationOnInteract OnyxLib:(, .. text, )
B.MouseButton1Down:(() TweenService:(B, TWEEN_CLICK, {Size = .(, , , )}):() )
B.MouseButton1Up:(() TweenService:(B, TWEEN_RESET, {Size = .(, , , )}):(); () )
B.MouseLeave:(() TweenService:(B, TWEEN_RESET, {Size = .(, , , )}):() )
OnyxLib:(name, options, default, callback, notificationOnInteract)
DropdownHeight = ; ItemHeight = ; IsExpanded =
Container = (, {Size = .(, , , DropdownHeight), BackgroundColor3 = CurrentTheme.Header, BackgroundTransparency = , BorderSizePixel = , ClipsDescendants = , Parent = Scroll}); (Container); .(Registry.Headers, Container)
(, {CornerRadius = .(, ), Parent = Container})
HeaderBtn = (, {Size = .(, , , DropdownHeight), BackgroundTransparency = , Text = , Parent = Container})
(, {Name = , Text = name, Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Text, Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , TextXAlignment = .TextXAlignment.Left, Parent = HeaderBtn})
PreviewBox = (, {Size = .(, , , ), Position = .(, , , ), BackgroundColor3 = CurrentTheme.Background, BackgroundTransparency = , Parent = HeaderBtn})
(, {CornerRadius = .(, ), Parent = PreviewBox}); PBS = (, {Thickness = , Parent = PreviewBox}); (PBS)
SelectedLabel = (, {Text = default , Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Accent1, Size = .(, , , ), BackgroundTransparency = , Parent = PreviewBox}); .(Registry.Accents, SelectedLabel)
Arrow = (, {Text = , Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Text, Size = .(, , , ), Position = .(, -, , -), BackgroundTransparency = , Parent = HeaderBtn})
ListFrame = (, {Size = .(, , , #options * ItemHeight), Position = .(, , , DropdownHeight), BackgroundTransparency = , Visible = , Parent = Container})
(, {SortOrder = .SortOrder.LayoutOrder, HorizontalAlignment = .HorizontalAlignment.Center, Padding = .(, ), Parent = ListFrame}); (, {PaddingTop = .(, ), Parent = ListFrame})
()
IsExpanded = IsExpanded
TargetHeight = IsExpanded (DropdownHeight + (#options * ItemHeight) + (#options * ) + ) DropdownHeight
TargetRot = IsExpanded
IsExpanded ListFrame.Visible =
TweenService:(Container, TWEEN_DROPDOWN, {Size = .(, , , TargetHeight)}):()
TweenService:(Arrow, TWEEN_QUINT, {Rotation = TargetRot}):()
IsExpanded
i, child (ListFrame:())
child:()
child.BackgroundTransparency =
btn = child:()
btn btn.TextTransparency =
TweenService:(child, TweenInfo.( + (i*), .EasingStyle.Exponential, .EasingDirection.Out), {BackgroundTransparency = }):()
btn TweenService:(btn, TweenInfo.( + (i*)), {TextTransparency = }):()
(); IsExpanded ListFrame.Visible =
HeaderBtn.MouseButton1Click:(Toggle)
i, option (options)
ItemContainer = (, {Size = .(, , , ), BackgroundColor3 = CurrentTheme.Background, BackgroundTransparency = , BorderSizePixel = , Parent = ListFrame})
(, {CornerRadius = .(, ), Parent = ItemContainer}); ItemStroke = (, {Thickness = , Parent = ItemContainer}); (ItemStroke)
OptBtn = (, {Size = .(, , , ), BackgroundTransparency = , Text = option, Font = .Font.GothamBold, TextSize = , TextColor3 = CurrentTheme.Text, Parent = ItemContainer})
OptBtn.MouseEnter:(() TweenService:(ItemContainer, TWEEN_FAST, {BackgroundTransparency = }):(); TweenService:(OptBtn, TWEEN_FAST, {TextColor3 = CurrentTheme.Accent1}):() )
OptBtn.MouseLeave:(() TweenService:(ItemContainer, TWEEN_FAST, {BackgroundTransparency = }):(); TweenService:(OptBtn, TWEEN_FAST, {TextColor3 = CurrentTheme.Text}):() )
OptBtn.MouseButton1Click:(()
TweenService:(ItemContainer, TWEEN_CLICK, {Size = .(, , , )}):(); ()
TweenService:(ItemContainer, TWEEN_FAST, {Size = .(, , , )}):()
SelectedLabel.Text = option; (); callback (option) ; notificationOnInteract OnyxLib:(, .. option, )
)
() UserInputService.TouchEnabled UserInputService.MouseEnabled .(, , , ) .(, , , )
()
IsAnimating ; IsAnimating = ; IsOpen = IsOpen
TweenService:(ToggleIcon, TWEEN_TOGGLE_OPEN, {Rotation = IsOpen }):()
IsOpen
TweenService:(Blur, TweenInfo.(), {Size = }):(); MainFrame.Visible = ; MainFrame.Size = .(, , , )
t = TweenService:(MainFrame, TWEEN_TOGGLE_OPEN, {Size = ()}); t:(); t.Completed:()
TweenService:(Blur, TweenInfo.(), {Size = }):()
t = TweenService:(MainFrame, TWEEN_TOGGLE_CLOSE, {Size = .(, , , )}); t:(); t.Completed:()
IsOpen MainFrame.Visible = ; OnyxLib:(, , )
IsAnimating =
ToggleBtn = (, {Name = , Position = .(, , , ), BackgroundColor3 = CurrentTheme.Header, Text = , AutoButtonColor = , Active = , Size = .(, , , ), ZIndex = , Parent = ScreenGui})
(ToggleBtn); (, {CornerRadius = .(, ), Parent = ToggleBtn}); TS = (, {Thickness = , Parent = ToggleBtn}); (TS)
ToggleIcon = (, {Text = , Size = .(, , , ), BackgroundTransparency = , TextColor3 = CurrentTheme.Accent1, Font = .Font.GothamBold, TextSize = , Parent = ToggleBtn}); (ToggleIcon); .(Registry.Accents, ToggleIcon)
ToggleBtn.MouseButton1Click:(ToggleUI)
OnyxLib:()
OnyxLib:()
OnyxLib:()
OnyxLib:(, ()
()
, )
OnyxLib:(, (state)
(, state)
, )
OnyxLib:(, , , , (val)
LocalPlayer.Character LocalPlayer.Character:()
LocalPlayer.Character.Humanoid.WalkSpeed = val
)
OnyxLib:(, {, , }, , (opt)
(, opt)
, )
OnyxLib:()
OnyxLib:()
OnyxLib:(, ()
()
, )
OnyxLib:(, (state)
, )
OnyxLib:(, , , , (val)
, )
OnyxLib:(, {, , }, , (opt)
, )
OnyxLib:(, .KeyCode.RightControl, ()
()
, )
.(()
IntroFrame = (, {Size = .(, , , ), BackgroundColor3 = .(, , ), BackgroundTransparency = , BorderSizePixel = , ZIndex = , Parent = ScreenGui})
IntroText = (, {Size = .(, , , ), Position = .(, , , ), BackgroundTransparency = , Text = , Font = .Font.GothamBlack, TextSize = , TextColor3 = .(, , ), TextTransparency = , ZIndex = , Parent = IntroFrame}); (IntroText)
TweenService:(IntroFrame, TweenInfo.(), {BackgroundTransparency = }):(); ()
TweenService:(IntroText, TweenInfo.(, .EasingStyle.Quint), {TextTransparency = , TextSize = }):(); ()
TweenService:(IntroText, TweenInfo.(), {TextTransparency = }):(); ()
TweenService:(IntroFrame, TweenInfo.(, .EasingStyle.Sine), {BackgroundTransparency = }):()
ToggleBtn.Visible = ; ToggleBtn.Size = .(, , , )
TweenService:(ToggleBtn, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {Size = .(, , , )}):(); (); IntroFrame:()
)
Fluid. Responsive. Reliable. Onyx is a high performance interface library built specifically for Script Hub Developers. It abstracts away the complex math and input handling, giving you a premium, motion rich UI that just works. -- UPDATES -- - REWROTE THE CODE SO IT CAN BE CLEAN - BIG UPDATE IN THEME CUSTOMIZATION -- ONYX LIB INCLUDES -- - Sliders - Toggles (Notification Ones Included) - Buttons (Notification Ones Included) - Theme Customization - Smooth Effects - Welcome Intro -Notification API - Searching - Headers - Discord button - Drop Boxes - Squircle Toggle - KEYBIND Binding -- UPCOMING -- - Tabs - Home Page