Files
universalscript/main.luau

3435 lines
385 KiB
Lua

local a local aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at={[2]=function()local b,c,d=a(2)local e return(
function(...)local f=c.Parent local g,h=d(f:WaitForChild'Loader'),f:WaitForChild'ObsidianUI'local i,j=d(h:WaitForChild
'Bootstrap'),g.show()j.setProgress(0.15,'Loading modules...')local k,l=pcall(function()j.setProgress(0.45,
'Warming up UI...')i.start()j.setProgress(0.9,'Finalizing...')end)if not k then j.setProgress(0.9,'Load failed.')warn(l)
end task.wait(0.2)j.destroy()end)()end,[3]=function()local b,c,d=a(3)local e return(function(...)local f=d(c:
WaitForChild'ObsidianLibrary.d')return{Library=(d(c:WaitForChild'ObsidianLibrary')::any)::f.Library,Types=f}end)()end,[4
]=function()local b,c,d=a(4)local e return(function(...)export type Scheme={BackgroundColor:Color3,MainColor:Color3,
AccentColor:Color3,OutlineColor:Color3,FontColor:Color3,Font:Font,RedColor:Color3,DarkColor:Color3,WhiteColor:Color3}
export type Icon={Url:string,ImageRectOffset:Vector2,ImageRectSize:Vector2}export type ContextMenu={Active:boolean,
Holder:GuiObject,Menu:GuiObject,List:UIListLayout?,Signal:RBXScriptConnection?,Size:UDim2|(()->UDim2),Open:(self:
ContextMenu)->(),Close:(self:ContextMenu)->(),Toggle:(self:ContextMenu)->(),SetSize:(self:ContextMenu,Size:UDim2|(()->
UDim2))->()}export type Tooltip={Disabled:boolean,Hovering:boolean,Signals:{[number]:RBXScriptConnection},Destroy:(self:
Tooltip)->()}export type Notification={Title:string?,Description:string,Time:number|Instance,SoundId:string|number?,
Steps:number?,Persist:boolean?,Destroyed:boolean,Resize:(self:Notification)->(),ChangeTitle:(self:Notification,Text:
string)->(),ChangeDescription:(self:Notification,Text:string)->(),ChangeStep:(self:Notification,NewStep:number)->(),
Destroy:(self:Notification)->()}export type KeybindToggle={Normal:boolean,Holder:TextButton,Label:TextLabel,Checkbox:
Frame,Loaded:boolean,Display:(self:KeybindToggle,State:boolean)->(),SetText:(self:KeybindToggle,Text:string)->(),
SetVisibility:(self:KeybindToggle,Visibility:boolean)->(),SetNormal:(self:KeybindToggle,Normal:boolean)->()}export type
DraggableLabel={Label:TextLabel,SetText:(self:DraggableLabel,Text:string)->(),SetVisible:(self:DraggableLabel,Visible:
boolean)->()}export type DraggableButton={Button:TextButton,SetText:(self:DraggableButton,Text:string)->()}export type
ButtonInfo={Text:string,Func:()->(),DoubleClick:boolean?,Tooltip:string?,DisabledTooltip:string?,Risky:boolean?,Disabled
:boolean?,Visible:boolean?}export type ToggleInfo={Text:string,Default:boolean?,Callback:((boolean)->())?,Changed:((
boolean)->())?,Tooltip:string?,DisabledTooltip:string?,Risky:boolean?,Disabled:boolean?,Visible:boolean?}export type
InputInfo={Text:string,Default:string?,Finished:boolean?,Numeric:boolean?,ClearTextOnFocus:boolean?,Placeholder:string?,
AllowEmpty:boolean?,EmptyReset:string?,MaxLength:number?,Tooltip:string?,DisabledTooltip:string?,Callback:((string)->())
?,Changed:((string)->())?,Disabled:boolean?,Visible:boolean?}export type SliderInfo={Text:string,Default:number?,Min:
number?,Max:number?,Rounding:number?,Prefix:string?,Suffix:string?,Compact:boolean?,HideMax:boolean?,FormatDisplayValue:
((Slider,number)->string)?,Tooltip:string?,DisabledTooltip:string?,Callback:((number)->())?,Changed:((number)->())?,
Disabled:boolean?,Visible:boolean?}export type DropdownInfo={Text:string?,Values:{any},Default:any,DisabledValues:{any}?
,Multi:boolean?,MaxVisibleDropdownItems:number?,SpecialType:'Player'|'Team'?,ExcludeLocalPlayer:boolean?,AllowNull:
boolean?,Searchable:boolean?,FormatDisplayValue:((any)->string)?,Tooltip:string?,DisabledTooltip:string?,Callback:((any
)->())?,Changed:((any)->())?,Disabled:boolean?,Visible:boolean?}export type ViewportInfo={Object:BasePart|Model,Camera:
Camera?,Clone:boolean?,AutoFocus:boolean?,Interactive:boolean?,Height:number?,Visible:boolean?}export type ImageInfo={
Image:string,Transparency:number?,Color:Color3?,RectOffset:Vector2?,RectSize:Vector2?,ScaleType:Enum.ScaleType?,Height:
number?,Visible:boolean?}export type VideoInfo={Video:string,Looped:boolean?,Playing:boolean?,Volume:number?,Height:
number?,Visible:boolean?}export type UIPassthroughInfo={Instance:GuiBase2d,Height:number?,Visible:boolean?}export type
KeyPickerInfo={Text:string,Default:string?,Mode:'Always'|'Toggle'|'Hold'|'Press'?,Modes:{'Always'|'Toggle'|'Hold'|
'Press'}?,SyncToggleState:boolean?,NoUI:boolean?,WaitForCallback:boolean?,Callback:((boolean)->())?,ChangedCallback:((
Enum.KeyCode|Enum.UserInputType)->())?,Changed:((Enum.KeyCode|Enum.UserInputType)->())?,Clicked:(()->())?}export type
ColorPickerInfo={Default:Color3?,Transparency:number?,Title:string?,Callback:((Color3)->())?,Changed:((Color3)->())?}
export type KeyPicker={Text:string,Value:string,Toggled:boolean,Mode:'Always'|'Toggle'|'Hold'|'Press',SyncToggleState:
boolean,Callback:(Toggled:boolean)->(),ChangedCallback:(Key:Enum.KeyCode|Enum.UserInputType)->(),Changed:(Key:Enum.
KeyCode|Enum.UserInputType)->(),Clicked:()->(),Type:'KeyPicker',Menu:ContextMenu,Display:(self:KeyPicker)->(),Update:(
self:KeyPicker)->(),GetState:(self:KeyPicker)->boolean,OnChanged:(self:KeyPicker,Func:(Key:Enum.KeyCode|Enum.
UserInputType)->())->(),OnClick:(self:KeyPicker,Func:()->())->(),DoClick:(self:KeyPicker)->(),SetValue:(self:KeyPicker,
Data:{string})->(),SetText:(self:KeyPicker,Text:string)->()}export type ColorPicker={Value:Color3,Transparency:number,
Title:string?,Callback:(Value:Color3)->(),Changed:(Value:Color3)->(),Type:'ColorPicker',Hue:number,Sat:number,Vib:number
,ColorMenu:ContextMenu,ContextMenu:ContextMenu,SetHSVFromRGB:(self:ColorPicker,Color:Color3)->(),Display:(self:
ColorPicker)->(),Update:(self:ColorPicker)->(),OnChanged:(self:ColorPicker,Func:(Value:Color3)->())->(),SetValue:(self:
ColorPicker,HSV:{number},Transparency:number?)->(),SetValueRGB:(self:ColorPicker,Color:Color3,Transparency:number?)->()}
export type Addon=KeyPicker|ColorPicker export type Label={Text:string,DoesWrap:boolean,Addons:{[number]:Addon},Visible:
boolean,Type:'Label',TextLabel:TextLabel,Container:GuiObject,Holder:TextLabel,SetVisible:(self:Label,Visible:boolean)->(
),SetText:(self:Label,Text:string)->(),AddKeyPicker:(self:Label,Idx:string,Info:KeyPickerInfo)->Label,AddColorPicker:(
self:Label,Idx:string,Info:ColorPickerInfo)->Label}export type Button={Text:string,Func:()->(),DoubleClick:boolean?,
Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Risky:boolean,Disabled:boolean,Visible:boolean,Tween:Tween
?,Type:'Button',Base:TextButton,Stroke:UIStroke,Holder:Frame,SubButton:SubButton?,AddButton:(self:Button,Info:ButtonInfo
|string,Func:(()->())?,Idx:string?)->SubButton,UpdateColors:(self:Button)->(),SetDisabled:(self:Button,Disabled:boolean
)->(),SetVisible:(self:Button,Visible:boolean)->(),SetText:(self:Button,Text:string)->()}export type SubButton={Text:
string,Func:()->(),DoubleClick:boolean?,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Risky:boolean,
Disabled:boolean,Visible:boolean,Tween:Tween?,Type:'SubButton',Base:TextButton,Stroke:UIStroke,UpdateColors:(self:
SubButton)->(),SetDisabled:(self:SubButton,Disabled:boolean)->(),SetVisible:(self:SubButton,Visible:boolean)->(),SetText
:(self:SubButton,Text:string)->()}export type Toggle={Text:string,Value:boolean,Tooltip:string?,DisabledTooltip:string?,
TooltipTable:Tooltip?,Callback:(Value:boolean)->(),Changed:(Value:boolean)->(),Risky:boolean,Disabled:boolean,Visible:
boolean,Addons:{[number]:Addon},Type:'Toggle',TextLabel:TextLabel,Container:GuiObject,Holder:TextButton,UpdateColors:(
self:Toggle)->(),Display:(self:Toggle)->(),OnChanged:(self:Toggle,Func:(Value:boolean)->())->(),SetValue:(self:Toggle,
Value:boolean)->(),SetDisabled:(self:Toggle,Disabled:boolean)->(),SetVisible:(self:Toggle,Visible:boolean)->(),SetText:(
self:Toggle,Text:string)->(),AddKeyPicker:(self:Toggle,Idx:string,Info:KeyPickerInfo)->Toggle,AddColorPicker:(self:
Toggle,Idx:string,Info:ColorPickerInfo)->Toggle}export type Input={Text:string,Value:string,Finished:boolean,Numeric:
boolean,ClearTextOnFocus:boolean,Placeholder:string,AllowEmpty:boolean,EmptyReset:string,Tooltip:string?,DisabledTooltip
:string?,TooltipTable:Tooltip?,Callback:(Value:string)->(),Changed:(Value:string)->(),Disabled:boolean,Visible:boolean,
Type:'Input',Holder:Frame,UpdateColors:(self:Input)->(),OnChanged:(self:Input,Func:(Value:string)->())->(),SetValue:(
self:Input,Text:string)->(),SetDisabled:(self:Input,Disabled:boolean)->(),SetVisible:(self:Input,Visible:boolean)->(),
SetText:(self:Input,Text:string)->()}export type Slider={Text:string,Value:number,Min:number,Max:number,Prefix:string,
Suffix:string,Compact:boolean?,Rounding:number,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Callback:(
Value:number)->(),Changed:(Value:number)->(),Disabled:boolean,Visible:boolean,Type:'Slider',Holder:Frame,UpdateColors:(
self:Slider)->(),Display:(self:Slider)->(),OnChanged:(self:Slider,Func:(Value:number)->())->(),SetMax:(self:Slider,Value
:number)->(),SetMin:(self:Slider,Value:number)->(),SetValue:(self:Slider,Value:number|string)->(),SetDisabled:(self:
Slider,Disabled:boolean)->(),SetVisible:(self:Slider,Visible:boolean)->(),SetText:(self:Slider,Text:string)->(),
SetPrefix:(self:Slider,Prefix:string)->(),SetSuffix:(self:Slider,Suffix:string)->()}export type Dropdown={Text:string?,
Value:{[any]:boolean}|any,Values:{any},DisabledValues:{any},Multi:boolean,SpecialType:'Player'|'Team'?,
ExcludeLocalPlayer:boolean?,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Callback:(Value:any)->(),
Changed:(Value:any)->(),Disabled:boolean,Visible:boolean,Type:'Dropdown',Menu:ContextMenu,Holder:Frame,
RecalculateListSize:(self:Dropdown,Count:number?)->(),UpdateColors:(self:Dropdown)->(),Display:(self:Dropdown)->(),
OnChanged:(self:Dropdown,Func:(Value:any)->())->(),GetActiveValues:(self:Dropdown)->{any}|number,BuildDropdownList:(self
:Dropdown)->(),SetValue:(self:Dropdown,Value:any)->(),SetValues:(self:Dropdown,Values:{any})->(),AddValues:(self:
Dropdown,Values:{any}|string)->(),SetDisabledValues:(self:Dropdown,DisabledValues:{any})->(),AddDisabledValues:(self:
Dropdown,DisabledValues:{any}|string)->(),SetDisabled:(self:Dropdown,Disabled:boolean)->(),SetVisible:(self:Dropdown,
Visible:boolean)->(),SetText:(self:Dropdown,Text:string)->()}export type Viewport={Object:BasePart|Model,Camera:Camera,
Interactive:boolean,AutoFocus:boolean,Visible:boolean,Type:'Viewport',Holder:Frame,SetObject:(self:Viewport,Object:
Instance,Clone:boolean?)->(),SetHeight:(self:Viewport,Height:number)->(),Focus:(self:Viewport)->(),SetCamera:(self:
Viewport,Camera:Camera)->(),SetInteractive:(self:Viewport,Interactive:boolean)->(),SetVisible:(self:Viewport,Visible:
boolean)->()}export type Image={Image:string,Color:Color3,RectOffset:Vector2,RectSize:Vector2,Height:number,ScaleType:
Enum.ScaleType,Transparency:number,Visible:boolean,Type:'Image',Holder:Frame,SetHeight:(self:Image,Height:number)->(),
SetImage:(self:Image,NewImage:string)->(),SetColor:(self:Image,Color:Color3)->(),SetRectOffset:(self:Image,RectOffset:
Vector2)->(),SetRectSize:(self:Image,RectSize:Vector2)->(),SetScaleType:(self:Image,ScaleType:Enum.ScaleType)->(),
SetTransparency:(self:Image,Transparency:number)->(),SetVisible:(self:Image,Visible:boolean)->()}export type Video={
Video:string,Looped:boolean,Playing:boolean,Volume:number,Height:number,Visible:boolean,Type:'Video',Holder:Frame,
VideoFrame:VideoFrame,SetHeight:(self:Video,Height:number)->(),SetVideo:(self:Video,NewVideo:string)->(),SetLooped:(self
:Video,Looped:boolean)->(),SetVolume:(self:Video,Volume:number)->(),SetPlaying:(self:Video,Playing:boolean)->(),Play:(
self:Video)->(),Pause:(self:Video)->(),SetVisible:(self:Video,Visible:boolean)->()}export type UIPassthrough={Instance:
GuiBase2d,Height:number,Visible:boolean,Type:'UIPassthrough',Holder:Frame,SetHeight:(self:UIPassthrough,Height:number)->
(),SetInstance:(self:UIPassthrough,Instance:GuiBase2d)->(),SetVisible:(self:UIPassthrough,Visible:boolean)->()}export
type Divider={Type:'Divider',Holder:Frame}export type Element=Label|Button|Toggle|Input|Slider|Dropdown|Viewport|Image|
Video|UIPassthrough|Divider export type Option=Toggle|Input|Slider|Dropdown|Viewport|Image|Video|UIPassthrough|KeyPicker
|ColorPicker export type BaseGroupbox={AddDivider:(self:Groupbox)->(),AddLabel:(self:Groupbox,Info:{Text:string,DoesWrap
:boolean?,Size:number?,Visible:boolean?,Idx:string?}|string,DoesWrap:boolean?,Idx:string?)->Label,AddButton:(self:
Groupbox,Info:ButtonInfo|string,Func:(()->())?,Idx:string?)->Button,AddCheckbox:(self:Groupbox,Idx:string,Info:
ToggleInfo)->Toggle,AddToggle:(self:Groupbox,Idx:string,Info:ToggleInfo)->Toggle,AddInput:(self:Groupbox,Idx:string,Info
:InputInfo)->Input,AddSlider:(self:Groupbox,Idx:string,Info:SliderInfo)->Slider,AddDropdown:(self:Groupbox,Idx:string,
Info:DropdownInfo)->Dropdown,AddViewport:(self:Groupbox,Idx:string,Info:ViewportInfo)->Viewport,AddImage:(self:Groupbox,
Idx:string,Info:ImageInfo)->Image,AddVideo:(self:Groupbox,Idx:string,Info:VideoInfo)->Video,AddUIPassthrough:(self:
Groupbox,Idx:string,Info:UIPassthroughInfo)->UIPassthrough,AddDependencyBox:(self:Groupbox)->DependencyBox,
AddDependencyGroupbox:(self:Groupbox)->DependencyGroupbox}export type DependencyBox=BaseGroupbox&{Visible:boolean,
Dependencies:{[number]:{Element}},Holder:Frame,Container:Frame,Elements:{[number]:Element},DependencyBoxes:{[number]:
DependencyBox},Resize:(self:DependencyBox)->(),Update:(self:DependencyBox,CancelSearch:boolean?)->(),SetupDependencies:(
self:DependencyBox,Dependencies:{{Element}})->()}export type DependencyGroupbox=BaseGroupbox&{Visible:boolean,
Dependencies:{[number]:{Element}},BoxHolder:Frame,Holder:Frame,Container:Frame,Tab:Tab,Elements:{[number]:Element},
DependencyBoxes:{[number]:DependencyBox},Resize:(self:DependencyGroupbox)->(),Update:(self:DependencyGroupbox,
CancelSearch:boolean?)->(),SetupDependencies:(self:DependencyGroupbox,Dependencies:{{Element}})->()}export type Groupbox
=BaseGroupbox&{BoxHolder:Frame,Holder:Frame,Container:Frame,Tab:Tab,DependencyBoxes:{[number]:DependencyBox},Elements:{[
number]:Element},Resize:(self:Groupbox)->()}export type SubTab=BaseGroupbox&{ButtonHolder:TextButton,Container:Frame,Tab
:Tab,Elements:{[number]:Element},DependencyBoxes:{[number]:DependencyBox},Show:(self:SubTab)->(),Hide:(self:SubTab)->(),
Resize:(self:SubTab)->()}export type Tabbox={ActiveTab:SubTab?,BoxHolder:Frame,Holder:Frame,Tabs:{[string]:SubTab},
AddTab:(self:Tabbox,Name:string)->SubTab}export type Tab={Groupboxes:{[string]:Groupbox},Tabboxes:{[string]:Tabbox},
DependencyGroupboxes:{[number]:DependencyGroupbox},Sides:{ScrollingFrame},WarningBox:{IsNormal:boolean,LockSize:boolean,
Visible:boolean,Title:string,Text:string},UpdateWarningBox:(self:Tab,Info:{IsNormal:boolean?,LockSize:boolean?,Visible:
boolean?,Title:string?,Text:string?})->(),Resize:(self:Tab,ResizeWarningBox:boolean?)->(),AddGroupbox:(self:Tab,Info:{
Side:number,Name:string,IconName:string?})->Groupbox,AddLeftGroupbox:(self:Tab,Name:string,IconName:string?)->Groupbox,
AddRightGroupbox:(self:Tab,Name:string,IconName:string?)->Groupbox,AddTabbox:(self:Tab,Info:{Side:number,Name:string?}
)->Tabbox,AddLeftTabbox:(self:Tab,Name:string?)->Tabbox,AddRightTabbox:(self:Tab,Name:string?)->Tabbox,Hover:(self:Tab,
Hovering:boolean)->(),Show:(self:Tab)->(),Hide:(self:Tab)->()}export type KeyTab=BaseGroupbox&{Elements:{[any]:any},
IsKeyTab:true,Container:ScrollingFrame,AddKeyBox:(self:KeyTab,ExpectedKey:string?,Callback:(Success:boolean,Key:string
)->())->(),Resize:(self:KeyTab)->(),Hover:(self:KeyTab,Hovering:boolean)->(),Show:(self:KeyTab)->(),Hide:(self:KeyTab)->
()}export type Window={IsSidebarCompacted:(self:Window)->boolean,GetSidebarWidth:(self:Window)->number,SetSidebarWidth:(
self:Window,Width:number)->(),AddTab:(self:Window,Info:{Name:string,Icon:string?,Description:string?}|string,Icon:string
?,Description:string?)->Tab,AddKeyTab:(self:Window,Info:{Name:string,Icon:string?,Description:string?}|string,Icon:
string?,Description:string?)->KeyTab}export type Library={LocalPlayer:Player,DevicePlatform:Enum.Platform?,IsMobile:
boolean,IsRobloxFocused:boolean,ScreenGui:ScreenGui?,SearchText:string,Searching:boolean,GlobalSearch:boolean,
LastSearchTab:Tab?,ActiveTab:Tab?,Tabs:{[string]:Tab|KeyTab},DependencyBoxes:{[number]:DependencyBox|DependencyGroupbox}
,KeybindFrame:Frame?,KeybindContainer:Frame?,KeybindToggles:{[number]:KeybindToggle},Notifications:{[GuiObject]:
Notification},ToggleKeybind:Enum.KeyCode,TweenInfo:TweenInfo,NotifyTweenInfo:TweenInfo,Toggled:boolean,Unloaded:boolean,
Labels:{[(string|number)]:Label},Buttons:{[(string|number)]:Button|SubButton},Toggles:{[(string|number)]:Toggle},Options
:{[(string|number)]:Option},NotifySide:'Right'|'Left',ShowCustomCursor:boolean,ForceCheckbox:boolean,
ShowToggleFrameInKeybinds:boolean,NotifyOnError:boolean,CantDragForced:boolean,Signals:{[number]:RBXScriptConnection},
UnloadSignals:{[number]:()->()},MinSize:Vector2,DPIScale:number,CornerRadius:number,IsLightTheme:boolean,Scheme:Scheme,
Registry:{[GuiObject]:{[string]:string|(()->Color3)}},DPIRegistry:{[GuiObject]:{[string]:any}},CopiedColor:{Color3|
number}?,ImageManager:{AddAsset:(AssetName:string,RobloxAssetId:number,URL:string,ForceRedownload:boolean?)->nil,
GetAsset:(AssetName:string)->string?,DownloadAsset:(AssetName:string,ForceRedownload:boolean?)->nil},UpdateKeybindFrame:
(self:Library)->(),UpdateDependencyBoxes:(self:Library)->(),UpdateSearch:(self:Library,SearchText:string)->(),
AddToRegistry:(self:Library,Instance:GuiObject,Properties:{[string]:string|(()->Color3)})->(),RemoveFromRegistry:(self:
Library,Instance:GuiObject)->(),UpdateColorsUsingRegistry:(self:Library)->(),UpdateDPI:(self:Library,Instance:GuiObject,
Properties:{[string]:any})->(),SetDPIScale:(self:Library,DPIScale:number)->(),GiveSignal:(self:Library,Connection:
RBXScriptConnection)->RBXScriptConnection,GetIcon:(self:Library,IconName:string)->Icon?,Validate:(self:Library,Table:{[
string]:any},Template:{[string]:any})->{[string]:any},GetBetterColor:(self:Library,Color:Color3,Add:number)->Color3,
GetDarkerColor:(self:Library,Color:Color3)->Color3,GetKeyString:(self:Library,KeyCode:Enum.KeyCode)->string,
GetTextBounds:(self:Library,Text:string,Font:Font,Size:number,Width:number?)->(number,number),MouseIsOverFrame:(self:
Library,Frame:GuiObject,Mouse:Vector2)->boolean,SafeCallback:(self:Library,Func:(...any)->...any,...any)->...any,
MakeDraggable:(self:Library,UI:GuiObject,DragFrame:GuiObject,IgnoreToggled:boolean?,IsMainWindow:boolean?)->(),
MakeResizable:(self:Library,UI:GuiObject,DragFrame:GuiObject,Callback:(()->())?)->(),MakeCover:(self:Library,Holder:
GuiObject,Place:string)->Frame,MakeLine:(self:Library,Frame:GuiObject,Info:{AnchorPoint:Vector2?,Position:UDim2,Size:
UDim2})->Frame,MakeOutline:(self:Library,Frame:GuiObject,Corner:number?,ZIndex:number?)->Frame,AddDraggableButton:(self:
Library,Text:string,Func:(DraggableButton)->())->DraggableButton,AddDraggableMenu:(self:Library,Name:string)->(Frame,
Frame),SetWatermarkVisibility:(self:Library,Visible:boolean)->(),SetWatermark:(self:Library,Text:string)->(),
AddContextMenu:(self:Library,Holder:GuiObject,Size:UDim2|(()->UDim2),Offset:{[number]:number}|(()->{[number]:number}),
List:number?,ActiveCallback:((boolean)->())?)->ContextMenu,AddTooltip:(self:Library,InfoStr:string,DisabledInfoStr:
string,HoverInstance:GuiObject)->Tooltip,OnUnload:(self:Library,Callback:()->())->(),Unload:(self:Library)->(),SetFont:(
self:Library,FontFace:Font|Enum.Font)->(),SetNotifySide:(self:Library,Side:'Left'|'Right')->(),Notify:(self:Library,Info
:{Title:string,Description:string,Time:number?,SoundId:string|number?,Steps:number?,Persist:boolean?}|string,Time:number
?,SoundId:string|number?)->Notification,CreateWindow:(self:Library,WindowInfo:{Title:string?,Footer:string?,Position:
UDim2?,Size:UDim2?,Icon:string?,IconSize:UDim2?,BackgroundImage:string?,AutoShow:boolean?,Center:boolean?,Resizable:
boolean?,DisableSearch:boolean?,SearchbarSize:UDim2?,GlobalSearch:boolean?,CornerRadius:number?,NotifySide:'Left'|
'Right'?,ShowCustomCursor:boolean?,Font:Font|Enum.Font?,ToggleKeybind:Enum.KeyCode?,MobileButtonsSide:'Left'|'Right'?,
UnlockMouseWhileOpen:boolean?,EnableSidebarResize:boolean?,EnableCompacting:boolean?,DisableCompactingSnap:boolean?,
SidebarCompacted:boolean?,MinContainerWidth:number?,MinSidebarWidth:number?,SidebarCompactWidth:number?,
CompactWidthActivation:number?})->Window,Toggle:(self:Library,Value:boolean?)->()}return nil end)()end,[5]=function()
local b,c,d=a(5)local e return(function(...)local f=(cloneref or clonereference or function(f:any)return f end)local g:
CoreGui,h:Players,i:RunService,j:SoundService,k:UserInputService,l:TextService,m:Teams,n:TweenService,o,p,q=f(game:
GetService'CoreGui'),f(game:GetService'Players'),f(game:GetService'RunService'),f(game:GetService'SoundService'),f(game:
GetService'UserInputService'),f(game:GetService'TextService'),f(game:GetService'Teams'),f(game:GetService'TweenService')
,getgenv or function()return shared end,setclipboard or nil,protectgui or(syn and syn.protect_gui)or function()end local
r,s=gethui or function()return g end,h.LocalPlayer or h.PlayerAdded:Wait()local t,u,v,w,x,y,z,A=f(s:GetMouse()),{},{},{}
,{},{},[[https://raw.githubusercontent.com/deividcomsono/Obsidian/refs/heads/main/]],{}local B={TransparencyTexture={
RobloxId=139785960036434,Path='Obsidian/assets/TransparencyTexture.png',URL=z..'assets/TransparencyTexture.png',Id=nil},
SaturationMap={RobloxId=4155801252,Path='Obsidian/assets/SaturationMap.png',URL=z..'assets/SaturationMap.png',Id=nil}}do
local function C(D:string,E:boolean?)if not isfolder or not makefolder then return end local F,G=D:split'/',''if E then
table.remove(F,#F)end for H,I in ipairs(F)do if not isfolder(G..I)then makefolder(G..I)end G=G..I..'/'end return G end
function A.AddAsset(D:string,E:number,F:string,G:boolean?)if B[D]~=nil then error(string.format(
'Asset %q already exists',D))end assert(typeof(E)=='number','RobloxAssetId must be a number')B[D]={RobloxId=E,Path=
string.format('Obsidian/custom_assets/%s',D),URL=F,Id=nil}A.DownloadAsset(D,G)end function A.GetAsset(D:string)if not B[
D]then return nil end local E=B[D]if E.Id then return E.Id end local F=string.format('rbxassetid://%s',E.RobloxId)if
getcustomasset then local G,H=pcall(getcustomasset,E.Path)if G and H then F=H end end E.Id=F return F end function A.
DownloadAsset(D:string,E:boolean?)if not getcustomasset or not writefile or not isfile then return false,
'missing functions'end local F=B[D]C(F.Path,true)if E~=true and isfile(F.Path)then return true,nil end local G,H=pcall(
function()writefile(F.Path,game:HttpGet(F.URL))end)return G,H end for D,E in B do A.DownloadAsset(D)end end local C={
LocalPlayer=s,DevicePlatform=nil,IsMobile=false,IsRobloxFocused=true,ScreenGui=nil,SearchText='',Searching=false,
GlobalSearch=false,LastSearchTab=nil,ActiveTab=nil,Tabs={},TabButtons={},DependencyBoxes={},KeybindFrame=nil,
KeybindContainer=nil,KeybindToggles={},Notifications={},ToggleKeybind=Enum.KeyCode.RightControl,TweenInfo=TweenInfo.new(
0.1,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),NotifyTweenInfo=TweenInfo.new(0.25,Enum.EasingStyle.Quad,Enum.
EasingDirection.Out),Toggled=false,Unloaded=false,Labels=u,Buttons=v,Toggles=w,Options=x,NotifySide='Right',
ShowCustomCursor=true,ForceCheckbox=false,ShowToggleFrameInKeybinds=true,NotifyOnError=false,CantDragForced=false,
Signals={},UnloadSignals={},OriginalMinSize=Vector2.new(480,360),MinSize=Vector2.new(480,360),DPIScale=1,CornerRadius=4,
IsLightTheme=false,Scheme={BackgroundColor=Color3.fromRGB(15,15,15),MainColor=Color3.fromRGB(25,25,25),AccentColor=
Color3.fromRGB(125,85,255),OutlineColor=Color3.fromRGB(40,40,40),FontColor=Color3.new(1,1,1),Font=Font.fromEnum(Enum.
Font.Code),RedColor=Color3.fromRGB(255,50,50),DarkColor=Color3.new(0,0,0),WhiteColor=Color3.new(1,1,1)},Registry={},
Scales={},ImageManager=A}if i:IsStudio()then if k.TouchEnabled and not k.MouseEnabled then C.IsMobile=true C.
OriginalMinSize=Vector2.new(480,240)else C.IsMobile=false C.OriginalMinSize=Vector2.new(480,360)end else pcall(function(
)C.DevicePlatform=k:GetPlatform()end)C.IsMobile=(C.DevicePlatform==Enum.Platform.Android or C.DevicePlatform==Enum.
Platform.IOS)C.OriginalMinSize=C.IsMobile and Vector2.new(480,240)or Vector2.new(480,360)end local D,E,F,G,H={Frame={
BorderSizePixel=0},ImageLabel={BackgroundTransparency=1,BorderSizePixel=0},ImageButton={AutoButtonColor=false,
BorderSizePixel=0},ScrollingFrame={BorderSizePixel=0},TextLabel={BorderSizePixel=0,FontFace='Font',RichText=true,
TextColor3='FontColor'},TextButton={AutoButtonColor=false,BorderSizePixel=0,FontFace='Font',RichText=true,TextColor3=
'FontColor'},TextBox={BorderSizePixel=0,FontFace='Font',PlaceholderColor3=function()local D,E,F=C.Scheme.FontColor:
ToHSV()return Color3.fromHSV(D,E,F/2)end,Text='',TextColor3='FontColor'},UIListLayout={SortOrder=Enum.SortOrder.
LayoutOrder},UIStroke={ApplyStrokeMode=Enum.ApplyStrokeMode.Border},Window={Title='No Title',Footer='No Footer',Position
=UDim2.fromOffset(6,6),Size=UDim2.fromOffset(720,600),IconSize=UDim2.fromOffset(30,30),AutoShow=true,Center=true,
Resizable=true,SearchbarSize=UDim2.fromScale(1,1),GlobalSearch=false,CornerRadius=4,NotifySide='Right',ShowCustomCursor=
true,Font=Enum.Font.Code,ToggleKeybind=Enum.KeyCode.RightControl,MobileButtonsSide='Left',UnlockMouseWhileOpen=true,
EnableSidebarResize=false,EnableCompacting=true,DisableCompactingSnap=false,SidebarCompacted=false,MinContainerWidth=256
,MinSidebarWidth=128,SidebarCompactWidth=48,SidebarCollapseThreshold=0.5,CompactWidthActivation=128},Toggle={Text=
'Toggle',Default=false,Callback=function()end,Changed=function()end,Risky=false,Disabled=false,Visible=true},Input={Text
='Input',Default='',Finished=false,Numeric=false,ClearTextOnFocus=true,Placeholder='',AllowEmpty=true,EmptyReset='---',
Callback=function()end,Changed=function()end,Disabled=false,Visible=true},Slider={Text='Slider',Default=0,Min=0,Max=100,
Rounding=0,Prefix='',Suffix='',Callback=function()end,Changed=function()end,Disabled=false,Visible=true},Dropdown={
Values={},DisabledValues={},Multi=false,MaxVisibleDropdownItems=8,Callback=function()end,Changed=function()end,Disabled=
false,Visible=true},Viewport={Object=nil,Camera=nil,Clone=true,AutoFocus=true,Interactive=false,Height=200,Visible=true}
,Image={Image='',Transparency=0,BackgroundTransparency=0,Color=Color3.new(1,1,1),RectOffset=Vector2.zero,RectSize=
Vector2.zero,ScaleType=Enum.ScaleType.Fit,Height=200,Visible=true},Video={Video='',Looped=false,Playing=false,Volume=1,
Height=200,Visible=true},UIPassthrough={Instance=nil,Height=24,Visible=true},KeyPicker={Text='KeyPicker',Default='None',
DefaultModifiers={},Mode='Toggle',Modes={'Always','Toggle','Hold'},SyncToggleState=false,Callback=function()end,
ChangedCallback=function()end,Changed=function()end,Clicked=function()end},ColorPicker={Default=Color3.new(1,1,1),
Callback=function()end,Changed=function()end}},{Bottom={0,1},Right={1,0}},{Left={0.5,1},Right={0.5,1}},{RedColor='Red',
WhiteColor='White',DarkColor='Dark'},{Red='RedColor',White='WhiteColor',Dark='DarkColor'}local function I(J)if not J
then return nil end local K=G[J]if K and C.Scheme[K]~=nil then C.Scheme[J]=C.Scheme[K]C.Scheme[K]=nil return C.Scheme[J]
end local L=H[J]if L and C.Scheme[L]~=nil then warn(string.format(
'Scheme Value %q is deprecated, please use %q instead.',J,L))return C.Scheme[L]end return C.Scheme[J]end local function
J(K,L,M)local N=Instance.new'BindableEvent'local O=K:Once(function(...)if not M or typeof(M)=='function'and M(...)then N
:Fire(true)else N:Fire(false)end end)task.delay(L,function()O:Disconnect()N:Fire(false)end)local P=N.Event:Wait()N:
Destroy()return P end local function K(L:InputObject,M:boolean?)return L.UserInputType==Enum.UserInputType.MouseButton1
or(M==true and L.UserInputType==Enum.UserInputType.MouseButton2)or L.UserInputType==Enum.UserInputType.Touch end
local function L(M:InputObject,N:boolean?)return K(M,N)and M.UserInputState==Enum.UserInputState.Begin and C.
IsRobloxFocused end local function M(N:InputObject)return(N.UserInputType==Enum.UserInputType.MouseMovement or N.
UserInputType==Enum.UserInputType.Touch)and N.UserInputState==Enum.UserInputState.Change end local function N(O:
InputObject,P:boolean?)return K(O,P)and(O.UserInputState==Enum.UserInputState.Begin or O.UserInputState==Enum.
UserInputState.Change)and C.IsRobloxFocused end local function O(P:{[any]:any})local Q=0 for R,S in P do Q+=1 end return
Q end local function P(Q:TweenBase)if not(Q and Q.PlaybackState==Enum.PlaybackState.Playing)then return end Q:Cancel()
end local function Q(S:string)return S:match'^%s*(.-)%s*$'end local function S(T,U)assert(U>=0,
'Invalid rounding number.')if U==0 then return math.floor(T)end return tonumber(string.format('%.'..U..'f',T))end
local function T(U:boolean?)local V=h:GetPlayers()if U then local W=table.find(V,s)if W then table.remove(V,W)end end
table.sort(V,function(W,X)return W.Name:lower()<X.Name:lower()end)return V end local function U()local V=m:GetTeams()
table.sort(V,function(W,X)return W.Name:lower()<X.Name:lower()end)return V end function C.UpdateDependencyBoxes(V)for W,
X in C.DependencyBoxes do X:Update(true)end if C.Searching then C:UpdateSearch(C.SearchText)end end local function V(W,X
)local Y=0 for Z,_ in W.Elements do if _.Type=='Divider'then _.Holder.Visible=false continue elseif _.SubButton then
local aa=false if _.Text:lower():match(X)and _.Visible then aa=true else _.Base.Visible=false end if _.SubButton.Text:
lower():match(X)and _.SubButton.Visible then aa=true else _.SubButton.Base.Visible=false end _.Holder.Visible=aa if aa
then Y+=1 end continue end if _.Text and _.Text:lower():match(X)and _.Visible then _.Holder.Visible=true Y+=1 else _.
Holder.Visible=false end end for aa,Z in W.DependencyBoxes do if not Z.Visible then continue end Y+=V(Z,X)end W.Holder.
Visible=Y>0 return Y end local function aa(W)for X,Y in W.Elements do Y.Holder.Visible=typeof(Y.Visible)=='boolean'and Y
.Visible or true if Y.SubButton then Y.Base.Visible=Y.Visible Y.SubButton.Base.Visible=Y.SubButton.Visible end end W:
Resize()W.Holder.Visible=true for X,Y in W.DependencyBoxes do if not Y.Visible then continue end aa(Y)end end
local function W(X,Y)if not X then return end local Z=false for _,ab in X.Groupboxes do local ac=0 for ad,ae in ab.
Elements do if ae.Type=='Divider'then ae.Holder.Visible=false continue elseif ae.SubButton then local af=false if ae.
Text:lower():match(Y)and ae.Visible then af=true else ae.Base.Visible=false end if ae.SubButton.Text:lower():match(Y)and
ae.SubButton.Visible then af=true else ae.SubButton.Base.Visible=false end ae.Holder.Visible=af if af then ac+=1 end
continue end if ae.Text and ae.Text:lower():match(Y)and ae.Visible then ae.Holder.Visible=true ac+=1 else ae.Holder.
Visible=false end end for ad,ae in ab.DependencyBoxes do if not ae.Visible then continue end ac+=V(ae,Y)end if ac>0 then
ab:Resize()Z=true end ab.BoxHolder.Visible=ac>0 end for ab,ac in X.Tabboxes do local ad,ae=0,{}for af,_ in ac.Tabs do ae
[_]=0 for ag,ah in _.Elements do if ah.Type=='Divider'then ah.Holder.Visible=false continue elseif ah.SubButton then
local ai=false if ah.Text:lower():match(Y)and ah.Visible then ai=true else ah.Base.Visible=false end if ah.SubButton.
Text:lower():match(Y)and ah.SubButton.Visible then ai=true else ah.SubButton.Base.Visible=false end ah.Holder.Visible=ai
if ai then ae[_]+=1 end continue end if ah.Text and ah.Text:lower():match(Y)and ah.Visible then ah.Holder.Visible=true
ae[_]+=1 else ah.Holder.Visible=false end end for ag,ah in _.DependencyBoxes do if not ah.Visible then continue end ae[_
]+=V(ah,Y)end end for af,ag in ae do af.ButtonHolder.Visible=ag>0 if ag>0 then ad+=1 Z=true if ac.ActiveTab==af then af:
Resize()elseif ac.ActiveTab and ae[ac.ActiveTab]==0 then af:Show()end end end ac.BoxHolder.Visible=ad>0 end return Z end
local function ab(ac)if not ac then return end for ad,ae in ac.Groupboxes do for af,ag in ae.Elements do ag.Holder.
Visible=typeof(ag.Visible)=='boolean'and ag.Visible or true if ag.SubButton then ag.Base.Visible=ag.Visible ag.SubButton
.Base.Visible=ag.SubButton.Visible end end for af,ag in ae.DependencyBoxes do if not ag.Visible then continue end aa(ag)
end ae:Resize()ae.BoxHolder.Visible=true end for ad,ae in ac.Tabboxes do for af,ag in ae.Tabs do for ah,ai in ag.
Elements do ai.Holder.Visible=typeof(ai.Visible)=='boolean'and ai.Visible or true if ai.SubButton then ai.Base.Visible=
ai.Visible ai.SubButton.Base.Visible=ai.SubButton.Visible end end for ah,ai in ag.DependencyBoxes do if not ai.Visible
then continue end aa(ai)end ag.ButtonHolder.Visible=true end if ae.ActiveTab then ae.ActiveTab:Resize()end ae.BoxHolder.
Visible=true end end function C.UpdateSearch(ac,ad)C.SearchText=ad local ae={}if C.GlobalSearch then for af,ag in C.Tabs
do if typeof(ag)=='table'and not ag.IsKeyTab then table.insert(ae,ag)end end elseif C.LastSearchTab and typeof(C.
LastSearchTab)=='table'then table.insert(ae,C.LastSearchTab)end for af,ag in ipairs(ae)do ab(ag)end local af=ad:lower()
if Q(af)==''then C.Searching=false C.LastSearchTab=nil return end if not C.GlobalSearch and C.ActiveTab and C.ActiveTab.
IsKeyTab then C.Searching=false C.LastSearchTab=nil return end C.Searching=true local ag={}if C.GlobalSearch then ag=ae
if#ag==0 then for ah,ai in C.Tabs do if typeof(ai)=='table'and not ai.IsKeyTab then table.insert(ag,ai)end end end
elseif C.ActiveTab then table.insert(ag,C.ActiveTab)end local ah,ai=false for X,Y in ipairs(ag)do local Z=W(Y,af)if Z
then if not ai then ai=Y end if Y==C.ActiveTab then ah=true end end end if C.GlobalSearch then if ah and C.ActiveTab
then C.ActiveTab:RefreshSides()elseif ai then local X=ad task.defer(function()if C.SearchText~=X then return end if C.
ActiveTab~=ai then ai:Show()end end)end C.LastSearchTab=nil else C.LastSearchTab=C.ActiveTab end end function C.
AddToRegistry(ac,ad,ae)C.Registry[ad]=ae end function C.RemoveFromRegistry(ac,ad)C.Registry[ad]=nil end function C.
UpdateColorsUsingRegistry(ac)for ad,ae in C.Registry do for af,ag in ae do local ah=I(ag)if ah or typeof(ag)=='function'
then ad[af]=ah or ag()end end end end function C.SetDPIScale(ac,ad:number)C.DPIScale=ad/100 C.MinSize=C.OriginalMinSize*
C.DPIScale for ae,af in C.Scales do af.Scale=C.DPIScale end for ae,af in x do if af.Type=='Dropdown'then af:
RecalculateListSize()end end for ae,af in C.Notifications do af:Resize()end end function C.GiveSignal(ac,ad:
RBXScriptConnection|RBXScriptSignal)local ae=typeof(ad)if ad and(ae=='RBXScriptConnection'or ae=='RBXScriptSignal')then
table.insert(C.Signals,ad)end return ad end function IsValidCustomIcon(ac:string)return typeof(ac)=='string'and(ac:match
'rbxasset'or ac:match'roblox%.com/asset/%?id='or ac:match'rbxthumb://type=')end type Icon={Url:string,Id:number,IconName
:string,ImageRectOffset:Vector2,ImageRectSize:Vector2}type IconModule={Icons:{string},GetAsset:(Name:string)->Icon?}
local ac,ad=pcall(function()return(loadstring(game:HttpGet
[[https://raw.githubusercontent.com/deividcomsono/lucide-roblox-direct/refs/heads/main/source.lua]])::()->IconModule)()
end)function C.GetIcon(ae,af:string)if not ac then return end local ag,ah=pcall(ad.GetAsset,af)if not ag then return end
return ah end function C.GetCustomIcon(ae,af:string)if not IsValidCustomIcon(af)then return C:GetIcon(af)else return{Url
=af,ImageRectOffset=Vector2.zero,ImageRectSize=Vector2.zero,Custom=true}end end function C.Validate(ae,af:{[string]:any}
,ag:{[string]:any}):{[string]:any}if typeof(af)~='table'then return ag end for ah,ai in ag do if typeof(ah)=='number'
then continue end if typeof(ai)=='table'then af[ah]=C:Validate(af[ah],ai)elseif af[ah]==nil then af[ah]=ai end end
return af end local function ae(af:{[string]:any},ag:GuiObject)local ah=C.Registry[ag]or{}for ai,X in af do if ah[ai]
then ah[ai]=nil elseif ai~='Text'then local Y=I(X)if Y or typeof(X)=='function'then ah[ai]=X X=Y or X()end end ag[ai]=X
end if O(ah)>0 then C.Registry[ag]=ah end end local function af(ag:string,ah:{[string]:any}):any local ai=Instance.new(
ag)if D[ag]then ae(D[ag],ai)end ae(ah,ai)if ah.Parent and not ah.ZIndex then pcall(function()ai.ZIndex=ah.Parent.ZIndex
end)end return ai end local function ag(ah:Instance,ai:Instance|(()->Instance))local X,Y=pcall(function()if not ai then
ai=g end local X if typeof(ai)=='function'then X=ai()else X=ai end ah.Parent=X end)if not(X and ah.Parent)then ah.Parent
=C.LocalPlayer:WaitForChild('PlayerGui',math.huge)end end local function ah(ai:Instance,X:boolean?)if X then ag(ai,g)
return end pcall(q,ai)ag(ai,r)end local ai=af('ScreenGui',{Name='Obsidian',DisplayOrder=999,ResetOnSpawn=false})ah(ai)C.
ScreenGui=ai ai.DescendantRemoving:Connect(function(X)C:RemoveFromRegistry(X)end)local X,Y,Z=(af('TextButton',{
BackgroundTransparency=1,Modal=false,Size=UDim2.fromScale(0,0),AnchorPoint=Vector2.zero,Text='',ZIndex=-999,Parent=ai}))
do Y=af('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',Size=UDim2.fromOffset(9,1),Visible=false
,ZIndex=999,Parent=ai})af('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='DarkColor',Position=UDim2.
fromScale(0.5,0.5),Size=UDim2.new(1,2,1,2),ZIndex=998,Parent=Y})local _=af('Frame',{AnchorPoint=Vector2.new(0.5,0.5),
BackgroundColor3='WhiteColor',Position=UDim2.fromScale(0.5,0.5),Size=UDim2.fromOffset(1,9),Parent=Y})af('Frame',{
AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='DarkColor',Position=UDim2.fromScale(0.5,0.5),Size=UDim2.new(1,2,1,2),
ZIndex=998,Parent=_})Z=af('ImageLabel',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundTransparency=1,Position=UDim2.
fromScale(0.5,0.5),Size=UDim2.fromOffset(20,20),ZIndex=1000,Visible=false,Parent=Y})end local _,aj do _=af('Frame',{
AnchorPoint=Vector2.new(1,0),BackgroundTransparency=1,Position=UDim2.new(1,-6,0,6),Size=UDim2.new(0,300,1,-6),Parent=ai}
)table.insert(C.Scales,af('UIScale',{Parent=_}))aj=af('UIListLayout',{HorizontalAlignment=Enum.HorizontalAlignment.Right
,Padding=UDim.new(0,8),Parent=_})end function C.ResetCursorIcon(ak)Z.Visible=false Z.Size=UDim2.fromOffset(20,20)end
function C.ChangeCursorIcon(ak,al:string)if not al or al==''then C:ResetCursorIcon()return end local am=C:GetCustomIcon(
al)assert(am,[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])Z.Visible=true Z.Image=am.Url
Z.ImageRectOffset=am.ImageRectOffset Z.ImageRectSize=am.ImageRectSize end function C.ChangeCursorIconSize(ak,al:UDim2)
assert(typeof(al)=='UDim2','UDim2 expected.')Z.Size=al end function C.GetBetterColor(ak,al:Color3,am:number):Color3 am=
am*(C.IsLightTheme and-4 or 2)return Color3.fromRGB(math.clamp(al.R*255+am,0,255),math.clamp(al.G*255+am,0,255),math.
clamp(al.B*255+am,0,255))end function C.GetLighterColor(ak,al:Color3):Color3 local am,an,ao=al:ToHSV()return Color3.
fromHSV(am,math.max(0,an-0.1),math.min(1,ao+0.1))end function C.GetDarkerColor(ak,al:Color3):Color3 local am,an,ao=al:
ToHSV()return Color3.fromHSV(am,an,ao/2)end function C.GetKeyString(ak,al:Enum.KeyCode)if al.EnumType==Enum.KeyCode and
al.Value>33 and al.Value<127 then return string.char(al.Value)end return al.Name end function C.GetTextBounds(ak,al:
string,am:Font,an:number,ao:number?):(number,number)local ap=Instance.new'GetTextBoundsParams'ap.Text=al ap.RichText=
true ap.Font=am ap.Size=an ap.Width=ao or workspace.CurrentCamera.ViewportSize.X-32 local aq=l:GetTextBoundsAsync(ap)
return aq.X,aq.Y end function C.MouseIsOverFrame(ak,al:GuiObject,am:Vector2):boolean local an,ao=al.AbsolutePosition,al.
AbsoluteSize return am.X>=an.X and am.X<=an.X+ao.X and am.Y>=an.Y and am.Y<=an.Y+ao.Y end function C.SafeCallback(ak,al:
(...any)->...any,...:any)if not(al and typeof(al)=='function')then return end local am=table.pack(xpcall(al,function(am)
task.defer(error,debug.traceback(am,2))if C.NotifyOnError then C:Notify(am)end return am end,...))if not am[1]then
return nil end return table.unpack(am,2,am.n)end function C.MakeDraggable(ak,al:GuiObject,am:GuiObject,an:boolean?,ao:
boolean?)local ap,aq,ar,as=false am.InputBegan:Connect(function(at:InputObject)if not L(at)or ao and C.CantDragForced
then return end aq=at.Position ar=al.Position ap=true as=at.Changed:Connect(function()if at.UserInputState~=Enum.
UserInputState.End then return end ap=false if as and as.Connected then as:Disconnect()as=nil end end)end)C:GiveSignal(k
.InputChanged:Connect(function(at:InputObject)if(not an and not C.Toggled)or(ao and C.CantDragForced)or not(ai and ai.
Parent)then ap=false if as and as.Connected then as:Disconnect()as=nil end return end if ap and M(at)then local au=at.
Position-aq al.Position=UDim2.new(ar.X.Scale,ar.X.Offset+au.X,ar.Y.Scale,ar.Y.Offset+au.Y)end end))end function C.
MakeResizable(ak,al:GuiObject,am:GuiObject,an:(()->())?)local ao,ap,aq,ar=false am.InputBegan:Connect(function(as:
InputObject)if not L(as)then return end ap=as.Position aq=al.Size ao=true ar=as.Changed:Connect(function()if as.
UserInputState~=Enum.UserInputState.End then return end ao=false if ar and ar.Connected then ar:Disconnect()ar=nil end
end)end)C:GiveSignal(k.InputChanged:Connect(function(as:InputObject)if not al.Visible or not(ai and ai.Parent)then ao=
false if ar and ar.Connected then ar:Disconnect()ar=nil end return end if ao and M(as)then local at=as.Position-ap al.
Size=UDim2.new(aq.X.Scale,math.clamp(aq.X.Offset+at.X,C.MinSize.X,math.huge),aq.Y.Scale,math.clamp(aq.Y.Offset+at.Y,C.
MinSize.Y,math.huge))if an then C:SafeCallback(an)end end end))end function C.MakeCover(ak,al:GuiObject,am:string)local
an,ao=E[am]or{0,0},F[am]or{1,0.5}local ap=af('Frame',{AnchorPoint=Vector2.new(an[1],an[2]),BackgroundColor3=al.
BackgroundColor3,Position=UDim2.fromScale(an[1],an[2]),Size=UDim2.fromScale(ao[1],ao[2]),Parent=al})return ap end
function C.MakeLine(ak,al:GuiObject,am)local an=af('Frame',{AnchorPoint=am.AnchorPoint or Vector2.zero,BackgroundColor3=
'OutlineColor',Position=am.Position,Size=am.Size,ZIndex=am.ZIndex or al.ZIndex,Parent=al})return an end function C.
AddOutline(ak,al:GuiObject)local am,an=af('UIStroke',{Color='OutlineColor',Thickness=1,ZIndex=2,Parent=al}),af(
'UIStroke',{Color='DarkColor',Thickness=1.5,ZIndex=1,Parent=al})return am,an end function C.AddBlank(ak,al:GuiObject,am:
UDim2)return af('Frame',{BackgroundTransparency=1,Size=am or UDim2.fromScale(0,0),Parent=al})end function C.MakeOutline(
ak,al:GuiObject,am:number?,an:number?)warn
[[Obsidian:MakeOutline is deprecated, please use Obsidian:AddOutline instead.]]local ao=af('Frame',{BackgroundColor3=
'DarkColor',Position=UDim2.fromOffset(-2,-2),Size=UDim2.new(1,4,1,4),ZIndex=an,Parent=al})local ap=af('Frame',{
BackgroundColor3='OutlineColor',Position=UDim2.fromOffset(1,1),Size=UDim2.new(1,-2,1,-2),ZIndex=an,Parent=ao})if am and
am>0 then af('UICorner',{CornerRadius=UDim.new(0,am+1),Parent=ao})af('UICorner',{CornerRadius=UDim.new(0,am),Parent=ap})
end return ao,ap end function C.AddDraggableLabel(ak,al:string)local am,an={},af('TextLabel',{AutomaticSize=Enum.
AutomaticSize.XY,BackgroundColor3='BackgroundColor',Size=UDim2.fromOffset(0,0),Position=UDim2.fromOffset(6,6),Text=al,
TextSize=15,ZIndex=10,Parent=ai})af('UICorner',{CornerRadius=UDim.new(0,C.CornerRadius),Parent=an})af('UIPadding',{
PaddingBottom=UDim.new(0,6),PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12),PaddingTop=UDim.new(0,6),Parent=an})
table.insert(C.Scales,af('UIScale',{Parent=an}))C:AddOutline(an)C:MakeDraggable(an,an,true)am.Label=an function am.
SetText(ao,ap:string)an.Text=ap end function am.SetVisible(ao,ap:boolean)an.Visible=ap end return am end function C.
AddDraggableButton(ak,al:string,am,an:boolean?)local ao,ap={},af('TextButton',{BackgroundColor3='BackgroundColor',
Position=UDim2.fromOffset(6,6),TextSize=16,ZIndex=10,Parent=ai})af('UICorner',{CornerRadius=UDim.new(0,C.CornerRadius),
Parent=ap})if not an then table.insert(C.Scales,af('UIScale',{Parent=ap}))end C:AddOutline(ap)ap.MouseButton1Click:
Connect(function()C:SafeCallback(am,ao)end)C:MakeDraggable(ap,ap,true)ao.Button=ap function ao.SetText(aq,ar:string)
local as,at=C:GetTextBounds(ar,C.Scheme.Font,16)ap.Text=ar ap.Size=UDim2.fromOffset(as*2,at*2)end ao:SetText(al)return
ao end function C.AddDraggableMenu(ak,al:string)local am=af('Frame',{AutomaticSize=Enum.AutomaticSize.XY,
BackgroundColor3='BackgroundColor',Position=UDim2.fromOffset(6,6),Size=UDim2.fromOffset(0,0),ZIndex=10,Parent=ai})af(
'UICorner',{CornerRadius=UDim.new(0,C.CornerRadius),Parent=am})table.insert(C.Scales,af('UIScale',{Parent=am}))C:
AddOutline(am)C:MakeLine(am,{Position=UDim2.fromOffset(0,34),Size=UDim2.new(1,0,0,1)})local an=af('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,34),Text=al,TextSize=15,TextXAlignment=Enum.TextXAlignment.Left,Parent=am}
)af('UIPadding',{PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12),Parent=an})local ao=af('Frame',{
BackgroundTransparency=1,Position=UDim2.fromOffset(0,35),Size=UDim2.new(1,0,1,-35),Parent=am})af('UIListLayout',{Padding
=UDim.new(0,7),Parent=ao})af('UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,
7),PaddingTop=UDim.new(0,7),Parent=ao})C:MakeDraggable(am,an,true)return am,ao end do local ak=C:AddDraggableLabel''ak:
SetVisible(false)function C.SetWatermark(al,am:string)warn
[[Watermark is deprecated, please use Library:AddDraggableLabel instead.]]ak:SetText(am)end function C.
SetWatermarkVisibility(al,am:boolean)warn[[Watermark is deprecated, please use Library:AddDraggableLabel instead.]]ak:
SetVisible(am)end end local ak function C.AddContextMenu(al,am:GuiObject,an:UDim2|(()->()),ao:{[number]:number}|(()->{})
,ap:number?,aq:((Active:boolean)->())?)local ar if ap then ar=af('ScrollingFrame',{AutomaticCanvasSize=ap==2 and Enum.
AutomaticSize.Y or Enum.AutomaticSize.None,AutomaticSize=ap==1 and Enum.AutomaticSize.Y or Enum.AutomaticSize.None,
BackgroundColor3='BackgroundColor',BorderColor3='OutlineColor',BorderSizePixel=1,BottomImage=
'rbxasset://textures/ui/Scroll/scroll-middle.png',CanvasSize=UDim2.fromOffset(0,0),ScrollBarImageColor3='OutlineColor',
ScrollBarThickness=ap==2 and 2 or 0,Size=typeof(an)=='function'and an()or an,TopImage=
'rbxasset://textures/ui/Scroll/scroll-middle.png',Visible=false,ZIndex=10,Parent=ai})else ar=af('Frame',{
BackgroundColor3='BackgroundColor',BorderColor3='OutlineColor',BorderSizePixel=1,Size=typeof(an)=='function'and an()or
an,Visible=false,ZIndex=10,Parent=ai})end table.insert(C.Scales,af('UIScale',{Parent=ar}))local as={Active=false,Holder=
am,Menu=ar,List=nil,Signal=nil,Size=an}if ap then as.List=af('UIListLayout',{Parent=ar})end function as.Open(at)if ak==
as then return elseif ak then ak:Close()end ak=as as.Active=true if typeof(ao)=='function'then ar.Position=UDim2.
fromOffset(math.floor(am.AbsolutePosition.X+ao()[1]),math.floor(am.AbsolutePosition.Y+ao()[2]))else ar.Position=UDim2.
fromOffset(math.floor(am.AbsolutePosition.X+ao[1]),math.floor(am.AbsolutePosition.Y+ao[2]))end ar.Size=typeof(as.Size)==
'function'and as.Size()or as.Size if typeof(aq)=='function'then C:SafeCallback(aq,true)end ar.Visible=true as.Signal=am:
GetPropertyChangedSignal'AbsolutePosition':Connect(function()if typeof(ao)=='function'then ar.Position=UDim2.fromOffset(
math.floor(am.AbsolutePosition.X+ao()[1]),math.floor(am.AbsolutePosition.Y+ao()[2]))else ar.Position=UDim2.fromOffset(
math.floor(am.AbsolutePosition.X+ao[1]),math.floor(am.AbsolutePosition.Y+ao[2]))end end)end function as.Close(at)if ak~=
as then return end ar.Visible=false if as.Signal then as.Signal:Disconnect()as.Signal=nil end as.Active=false ak=nil if
typeof(aq)=='function'then C:SafeCallback(aq,false)end end function as.Toggle(at)if as.Active then as:Close()else as:
Open()end end function as.SetSize(at,au)as.Size=au ar.Size=typeof(au)=='function'and au()or au end return as end C:
GiveSignal(k.InputBegan:Connect(function(al:InputObject)if C.Unloaded then return end if L(al,true)then local am=al.
Position if ak and not(C:MouseIsOverFrame(ak.Menu,am)or C:MouseIsOverFrame(ak.Holder,am))then ak:Close()end end end))
local al=af('TextLabel',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundColor3='BackgroundColor',BorderColor3=
'OutlineColor',BorderSizePixel=1,TextSize=14,TextWrapped=true,Visible=false,ZIndex=20,Parent=ai})af('UIPadding',{
PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,4),PaddingRight=UDim.new(0,4),PaddingTop=UDim.new(0,2),Parent=al})
table.insert(C.Scales,af('UIScale',{Parent=al}))al:GetPropertyChangedSignal'AbsolutePosition':Connect(function()if C.
Unloaded then return end local am,an=C:GetTextBounds(al.Text,al.FontFace,al.TextSize,(workspace.CurrentCamera.
ViewportSize.X-al.AbsolutePosition.X-8)/C.DPIScale)al.Size=UDim2.fromOffset(am+8)end)local am function C.AddTooltip(an,
ao:string,ap:string,aq:GuiObject)local ar={Disabled=false,Hovering=false,Signals={}}local function as()if am==aq or(ak
and C:MouseIsOverFrame(ak.Menu,t))or(ar.Disabled and typeof(ap)~='string')or(not ar.Disabled and typeof(ao)~='string')
then return end am=aq al.Text=ar.Disabled and ap or ao al.Visible=true while C.Toggled and C:MouseIsOverFrame(aq,t)and
not(ak and C:MouseIsOverFrame(ak.Menu,t))do al.Position=UDim2.fromOffset(t.X+(C.ShowCustomCursor and 8 or 14),t.Y+(C.
ShowCustomCursor and 8 or 12))i.RenderStepped:Wait()end al.Visible=false am=nil end local function at(au:
RBXScriptConnection|RBXScriptSignal)local av=typeof(au)if au and(av=='RBXScriptConnection'or av=='RBXScriptSignal')then
table.insert(ar.Signals,au)end return au end at(aq.MouseEnter:Connect(as))at(aq.MouseMoved:Connect(as))at(aq.MouseLeave:
Connect(function()if am~=aq then return end al.Visible=false am=nil end))function ar.Destroy(au)for av=#ar.Signals,1,-1
do local aw=table.remove(ar.Signals,av)if aw and aw.Connected then aw:Disconnect()end end if am==aq then if al then al.
Visible=false end am=nil end end table.insert(y,al)return ar end function C.OnUnload(an,ao)table.insert(C.UnloadSignals,
ao)end function C.Unload(an)for ao=#C.Signals,1,-1 do local ap=table.remove(C.Signals,ao)if ap and ap.Connected then ap:
Disconnect()end end for ao,ap in C.UnloadSignals do C:SafeCallback(ap)end for ao,ap in y do C:SafeCallback(ap.Destroy,ap
)end C.Unloaded=true ai:Destroy()o().Library=nil end local an,ao,ap,aq,ar=C:GetIcon'check',C:GetIcon'chevron-up',C:
GetIcon'move-diagonal-2',C:GetIcon'key',C:GetIcon'move'function C.SetIconModule(as,at:IconModule)ac=true ad=at an=C:
GetIcon'check'ao=C:GetIcon'chevron-up'ap=C:GetIcon'move-diagonal-2'aq=C:GetIcon'key'ar=C:GetIcon'move'end local as={}do
local at={}function at.AddKeyPicker(au,av,aw)aw=C:Validate(aw,D.KeyPicker)local ax=au local ay,az=ax.TextLabel,{Text=aw.
Text,Value=aw.Default,Modifiers=aw.DefaultModifiers,DisplayValue=aw.Default,Toggled=false,Mode=aw.Mode,SyncToggleState=
aw.SyncToggleState,Callback=aw.Callback,ChangedCallback=aw.ChangedCallback,Changed=aw.Changed,Clicked=aw.Clicked,Type=
'KeyPicker'}if az.Mode=='Press'then assert(ax.Type=='Label',
[[KeyPicker with the mode 'Press' can be only applied on Labels.]])az.SyncToggleState=false aw.Modes={'Press'}aw.Mode=
'Press'end if az.SyncToggleState then aw.Modes={'Toggle','Hold'}if not table.find(aw.Modes,aw.Mode)then aw.Mode='Toggle'
end end local aA,aB,aC,aD,aE=false,{MB1=Enum.UserInputType.MouseButton1,MB2=Enum.UserInputType.MouseButton2,MB3=Enum.
UserInputType.MouseButton3},{[Enum.UserInputType.MouseButton1]='MB1',[Enum.UserInputType.MouseButton2]='MB2',[Enum.
UserInputType.MouseButton3]='MB3'},{LAlt=Enum.KeyCode.LeftAlt,RAlt=Enum.KeyCode.RightAlt,LCtrl=Enum.KeyCode.LeftControl,
RCtrl=Enum.KeyCode.RightControl,LShift=Enum.KeyCode.LeftShift,RShift=Enum.KeyCode.RightShift,Tab=Enum.KeyCode.Tab,
CapsLock=Enum.KeyCode.CapsLock},{[Enum.KeyCode.LeftAlt]='LAlt',[Enum.KeyCode.RightAlt]='RAlt',[Enum.KeyCode.LeftControl]
='LCtrl',[Enum.KeyCode.RightControl]='RCtrl',[Enum.KeyCode.LeftShift]='LShift',[Enum.KeyCode.RightShift]='RShift',[Enum.
KeyCode.Tab]='Tab',[Enum.KeyCode.CapsLock]='CapsLock'}local aF,aG=function(aF)return aF.UserInputType==Enum.
UserInputType.Keyboard and aE[aF.KeyCode]~=nil end,function()local aF={}for aG,aH in aD do if table.find(aF,aG)then
continue end if not k:IsKeyDown(aH)then continue end table.insert(aF,aG)end return aF end local aH,aI,aJ,aK=function(aH)
if not(typeof(aH)=='table'and O(aH)>0)then return true end local aI,aJ=aG(),true for aK,aL in aH do if table.find(aI,aL)
then continue end aJ=false break end return aJ end,function(aH)if not aH then return false end if aC[aH.UserInputType]~=
nil then return k:IsMouseButtonPressed(aH.UserInputType)and not k:GetFocusedTextBox()elseif aH.UserInputType==Enum.
UserInputType.Keyboard then return k:IsKeyDown(aH.KeyCode)and not k:GetFocusedTextBox()else return false end end,
function(aH)local aI={}for aJ,aK in aH do table.insert(aI,aD[aK])end return aI end,function(aH)if typeof(aH)~='table'
then return{}end local aI={}for aJ,aK in aH do if not aD[aK]then continue end table.insert(aI,aK)end return aI end az.
Modifiers=aK(az.Modifiers)local aL,aM=af('TextButton',{BackgroundColor3='MainColor',BorderColor3='OutlineColor',
BorderSizePixel=1,Size=UDim2.fromOffset(18,18),Text=az.Value,TextSize=14,Parent=ay}),{Normal=az.Mode~='Toggle'}do local
aN=af('TextButton',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,16),Text='',Visible=not aw.NoUI,Parent=C.
KeybindContainer})local aO,aP=af('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.
fromScale(0,1),Text='',TextSize=14,TextTransparency=0.5,Parent=aN}),af('Frame',{AnchorPoint=Vector2.new(0,0.5),
BackgroundColor3='MainColor',Position=UDim2.fromScale(0,0.5),Size=UDim2.fromOffset(14,14),SizeConstraint=Enum.
SizeConstraint.RelativeYY,Parent=aN})af('UICorner',{CornerRadius=UDim.new(0,C.CornerRadius/2),Parent=aP})af('UIStroke',{
Color='OutlineColor',Parent=aP})local aQ=af('ImageLabel',{Image=an and an.Url or'',ImageColor3='FontColor',
ImageRectOffset=an and an.ImageRectOffset or Vector2.zero,ImageRectSize=an and an.ImageRectSize or Vector2.zero,
ImageTransparency=1,Position=UDim2.fromOffset(2,2),Size=UDim2.new(1,-4,1,-4),Parent=aP})function aM.Display(aR,aS)aO.
TextTransparency=aS and 0 or 0.5 aQ.ImageTransparency=aS and 0 or 1 end function aM.SetText(aR,aS)aO.Text=aS end
function aM.SetVisibility(aR,aS)aN.Visible=aS end function aM.SetNormal(aR,aS)aM.Normal=aS aN.Active=not aS aO.Position=
aS and UDim2.fromOffset(0,0)or UDim2.fromOffset(22,0)aP.Visible=not aS end az.DoClick=function(...)end aN.
MouseButton1Click:Connect(function()if aM.Normal then return end az.Toggled=not az.Toggled az:DoClick()end)aM.Holder=aN
aM.Label=aO aM.Checkbox=aP aM.Loaded=true table.insert(C.KeybindToggles,aM)end local aN=C:AddContextMenu(aL,UDim2.
fromOffset(62,0),function()return{aL.AbsoluteSize.X+1.5,0.5}end,1)az.Menu=aN local aO={}for aP,aQ in aw.Modes do local
aR,aS={},af('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,Size=UDim2.new(1,0,0,21),Text=aQ,
TextSize=14,TextTransparency=0.5,Parent=aN.Menu})function aR.Select(aT)for aU,aV in aO do aV:Deselect()end az.Mode=aQ aS
.BackgroundTransparency=0 aS.TextTransparency=0 aN:Close()end function aR.Deselect(aT)az.Mode=nil aS.
BackgroundTransparency=1 aS.TextTransparency=0.5 end aS.MouseButton1Click:Connect(function()aR:Select()end)if az.Mode==
aQ then aR:Select()end aO[aQ]=aR end function az.Display(aP,aQ)if C.Unloaded then return end local aR,aS=C:
GetTextBounds(aQ or az.DisplayValue,aL.FontFace,aL.TextSize,ay.AbsoluteSize.X)aL.Text=aQ or az.DisplayValue aL.Size=
UDim2.fromOffset((aR+9),(aS+4))end function az.Update(aP)az:Display()if aw.NoUI then return end if az.Mode=='Toggle'and
ax.Type=='Toggle'and ax.Disabled then aM:SetVisibility(false)return end local aQ,aR=az:GetState(),C.
ShowToggleFrameInKeybinds and az.Mode=='Toggle'if az.SyncToggleState and ax.Value~=aQ then ax:SetValue(aQ)end if aM.
Loaded then if aR then aM:SetNormal(false)else aM:SetNormal(true)end aM:SetText(('[%s] %s (%s)'):format(az.DisplayValue,
az.Text,az.Mode))aM:SetVisibility(true)aM:Display(aQ)end end function az.GetState(aP)if az.Mode=='Always'then return
true elseif az.Mode=='Hold'then local aQ=az.Value if aQ=='None'then return false end if not aH(az.Modifiers)then return
false end if aB[aQ]~=nil then return k:IsMouseButtonPressed(aB[aQ])and not k:GetFocusedTextBox()else return k:IsKeyDown(
Enum.KeyCode[aQ])and not k:GetFocusedTextBox()end else return az.Toggled end end function az.OnChanged(aP,aQ)az.Changed=
aQ end function az.OnClick(aP,aQ)az.Clicked=aQ end function az.DoClick(aP)if az.Mode=='Press'then if az.Toggled and aw.
WaitForCallback==true then return end az.Toggled=true end C:SafeCallback(az.Callback,az.Toggled)C:SafeCallback(az.
Clicked,az.Toggled)if az.Mode=='Press'then az.Toggled=false end end function az.SetValue(aP,aQ)local aR,aS,aT=aQ[1],aQ[2
],aQ[3]local aU,aV=pcall(function()if aR=='None'then aR=nil return nil end if aB[aR]==nil then return Enum.KeyCode[aR]
end return aB[aR]end)if aR==nil then az.Value='None'elseif aU then az.Value=aR else az.Value='Unknown'end az.Modifiers=
aK(if typeof(aT)=='table'then aT else az.Modifiers)az.DisplayValue=if O(az.Modifiers)>0 then(table.concat(az.Modifiers,
' + ')..' + '..az.Value)else az.Value if aO[aS]then aO[aS]:Select()end local aW=aJ(az.Modifiers)C:SafeCallback(az.
ChangedCallback,aV,aW)C:SafeCallback(az.Changed,aV,aW)az:Update()end function az.SetText(aP,aQ)aM:SetText(aQ)az:Update()
end aL.MouseButton1Click:Connect(function()if aA then return end aA=true aL.Text='...'aL.Size=UDim2.fromOffset(29,18)
local aP,aQ={}local aR=function()aQ=k.InputBegan:Wait()return k:GetFocusedTextBox()~=nil end repeat task.wait()aL.Text=
'...'aL.Size=UDim2.fromOffset(29,18)if aR()then aA=false az:Update()return end if aQ.KeyCode==Enum.KeyCode.Escape then
break end if aF(aQ)then local aS=false repeat task.wait()if k:IsKeyDown(aQ.KeyCode)then task.wait(0.075)if k:IsKeyDown(
aQ.KeyCode)then if not table.find(aP,aE[aQ.KeyCode])then aP[#aP+1]=aE[aQ.KeyCode]az:Display(table.concat(aP,' + ')..
' + ...')end if aR()then aS=true break end if aQ.KeyCode==Enum.KeyCode.Escape then break end if not aF(aQ)then break end
else if not table.find(aP,aE[aQ.KeyCode])then break end end end until false if aS then aA=false az:Update()return end
end break until false local aS='Unknown'if aC[aQ.UserInputType]~=nil then aS=aC[aQ.UserInputType]elseif aQ.UserInputType
==Enum.UserInputType.Keyboard then aS=aQ.KeyCode==Enum.KeyCode.Escape and'None'or aQ.KeyCode.Name end aP=if aQ.KeyCode==
Enum.KeyCode.Escape or aS=='Unknown'then{}else aP az.Toggled=false az:SetValue{aS,az.Mode,aP}repeat task.wait()until not
aI(aQ)or k:GetFocusedTextBox()aA=false end)aL.MouseButton2Click:Connect(aN.Toggle)C:GiveSignal(k.InputBegan:Connect(
function(aP:InputObject)if C.Unloaded then return end if az.Mode=='Always'or az.Value=='Unknown'or az.Value=='None'or aA
or k:GetFocusedTextBox()then return end local aQ,aR,aS=az.Value,aH(az.Modifiers),false if aQ and aR==true and(aC[aP.
UserInputType]==aQ or(aP.UserInputType==Enum.UserInputType.Keyboard and aP.KeyCode.Name==aQ))then aS=true end if az.Mode
=='Toggle'then if aS then az.Toggled=not az.Toggled az:DoClick()end elseif az.Mode=='Press'then if aS then az:DoClick()
end end az:Update()end))C:GiveSignal(k.InputEnded:Connect(function()if C.Unloaded then return end if az.Value=='Unknown'
or az.Value=='None'or aA or k:GetFocusedTextBox()then return end az:Update()end))az:Update()if ax.Addons then table.
insert(ax.Addons,az)end az.Default=az.Value az.DefaultModifiers=table.clone(az.Modifiers or{})x[av]=az return au end
local au={}for av=0,1,0.1 do table.insert(au,ColorSequenceKeypoint.new(av,Color3.fromHSV(av,1,1)))end function at.
AddColorPicker(av,aw,ax)ax=C:Validate(ax,D.ColorPicker)local ay=av local az,aA=ay.TextLabel,{Value=ax.Default,
Transparency=ax.Transparency or 0,Title=ax.Title,Callback=ax.Callback,Changed=ax.Changed,Type='ColorPicker'}aA.Hue,aA.
Sat,aA.Vib=aA.Value:ToHSV()local aB=af('TextButton',{BackgroundColor3=aA.Value,BorderColor3=C:GetDarkerColor(aA.Value),
BorderSizePixel=1,Size=UDim2.fromOffset(18,18),Text='',Parent=az})local aC,aD=af('ImageLabel',{Image=A.GetAsset
'TransparencyTexture',ImageTransparency=(1-aA.Transparency),ScaleType=Enum.ScaleType.Tile,Size=UDim2.fromScale(1,1),
TileSize=UDim2.fromOffset(9,9),Parent=aB}),C:AddContextMenu(aB,UDim2.fromOffset(ax.Transparency and 256 or 234,0),
function()return{0.5,aB.AbsoluteSize.Y+1.5}end,1)aD.List.Padding=UDim.new(0,8)aA.ColorMenu=aD af('UIPadding',{
PaddingBottom=UDim.new(0,6),PaddingLeft=UDim.new(0,6),PaddingRight=UDim.new(0,6),PaddingTop=UDim.new(0,6),Parent=aD.Menu
})if typeof(aA.Title)=='string'then af('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,8),Text=aA.Title,
TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=aD.Menu})end local aE=af('Frame',{BackgroundTransparency=1,
Size=UDim2.new(1,0,0,200),Parent=aD.Menu})af('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.
new(0,6),Parent=aE})local aF=af('ImageButton',{BackgroundColor3=aA.Value,Image=A.GetAsset'SaturationMap',Size=UDim2.
fromOffset(200,200),Parent=aE})local aG=af('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',Size=
UDim2.fromOffset(6,6),Parent=aF})af('UICorner',{CornerRadius=UDim.new(1,0),Parent=aG})af('UIStroke',{Color='DarkColor',
Parent=aG})local aH=af('TextButton',{Size=UDim2.fromOffset(16,200),Text='',Parent=aE})af('UIGradient',{Color=
ColorSequence.new(au),Rotation=90,Parent=aH})local aI,aJ,aK,aL=(af('Frame',{AnchorPoint=Vector2.new(0.5,0.5),
BackgroundColor3='WhiteColor',BorderColor3='DarkColor',BorderSizePixel=1,Position=UDim2.fromScale(0.5,aA.Hue),Size=UDim2
.new(1,2,0,1),Parent=aH}))if ax.Transparency then aJ=af('ImageButton',{Image=A.GetAsset'TransparencyTexture',ScaleType=
Enum.ScaleType.Tile,Size=UDim2.fromOffset(16,200),TileSize=UDim2.fromOffset(8,8),Parent=aE})aK=af('Frame',{
BackgroundColor3=aA.Value,Size=UDim2.fromScale(1,1),Parent=aJ})af('UIGradient',{Rotation=90,Transparency=NumberSequence.
new{NumberSequenceKeypoint.new(0,0),NumberSequenceKeypoint.new(1,1)},Parent=aK})aL=af('Frame',{AnchorPoint=Vector2.new(
0.5,0.5),BackgroundColor3='WhiteColor',BorderColor3='DarkColor',BorderSizePixel=1,Position=UDim2.fromScale(0.5,aA.
Transparency),Size=UDim2.new(1,2,0,1),Parent=aJ})end local aM=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,
20),Parent=aD.Menu})af('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalFlex=Enum.UIFlexAlignment.
Fill,Padding=UDim.new(0,8),Parent=aM})local aN,aO,aP=af('TextBox',{BackgroundColor3='MainColor',BorderColor3=
'OutlineColor',BorderSizePixel=1,ClearTextOnFocus=false,Size=UDim2.fromScale(1,1),Text='#??????',TextSize=14,Parent=aM})
,af('TextBox',{BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,ClearTextOnFocus=false,Size=
UDim2.fromScale(1,1),Text='?, ?, ?',TextSize=14,Parent=aM}),C:AddContextMenu(aB,UDim2.fromOffset(93,0),function()return{
aB.AbsoluteSize.X+1.5,0.5}end,1)aA.ContextMenu=aP do local function aQ(aR,aS)local aT=af('TextButton',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,21),Text=aR,TextSize=14,Parent=aP.Menu})aT.MouseButton1Click:Connect(
function()C:SafeCallback(aS)aP:Close()end)end aQ('Copy color',function()C.CopiedColor={aA.Value,aA.Transparency}end)aA.
SetValueRGB=function(...)end aQ('Paste color',function()aA:SetValueRGB(C.CopiedColor[1],C.CopiedColor[2])end)if p then
aQ('Copy Hex',function()p(tostring(aA.Value:ToHex()))end)aQ('Copy RGB',function()p(table.concat({math.floor(aA.Value.R*
255),math.floor(aA.Value.G*255),math.floor(aA.Value.B*255)},', '))end)end end function aA.SetHSVFromRGB(aQ,aR)aA.Hue,aA.
Sat,aA.Vib=aR:ToHSV()end function aA.Display(aQ)if C.Unloaded then return end aA.Value=Color3.fromHSV(aA.Hue,aA.Sat,aA.
Vib)aB.BackgroundColor3=aA.Value aB.BorderColor3=C:GetDarkerColor(aA.Value)aC.ImageTransparency=(1-aA.Transparency)aF.
BackgroundColor3=Color3.fromHSV(aA.Hue,1,1)if aK then aK.BackgroundColor3=aA.Value end aG.Position=UDim2.fromScale(aA.
Sat,1-aA.Vib)aI.Position=UDim2.fromScale(0.5,aA.Hue)if aL then aL.Position=UDim2.fromScale(0.5,aA.Transparency)end aN.
Text='#'..aA.Value:ToHex()aO.Text=table.concat({math.floor(aA.Value.R*255),math.floor(aA.Value.G*255),math.floor(aA.
Value.B*255)},', ')end function aA.Update(aQ)aA:Display()C:SafeCallback(aA.Callback,aA.Value)C:SafeCallback(aA.Changed,
aA.Value)end function aA.OnChanged(aQ,aR)aA.Changed=aR end function aA.SetValue(aQ,aR,aS)if typeof(aR)=='Color3'then aA:
SetValueRGB(aR,aS)return end local aT=Color3.fromHSV(aR[1],aR[2],aR[3])aA.Transparency=ax.Transparency and aS or 0 aA:
SetHSVFromRGB(aT)aA:Update()end function aA.SetValueRGB(aQ,aR,aS)aA.Transparency=ax.Transparency and aS or 0 aA:
SetHSVFromRGB(aR)aA:Update()end aB.MouseButton1Click:Connect(aD.Toggle)aB.MouseButton2Click:Connect(aP.Toggle)aF.
InputBegan:Connect(function(aQ:InputObject)while N(aQ)do local aR=aF.AbsolutePosition.X local aS=aR+aF.AbsoluteSize.X
local aT,aU=math.clamp(t.X,aR,aS),aF.AbsolutePosition.Y local aV=aU+aF.AbsoluteSize.Y local aW,aX,aY=math.clamp(t.Y,aU,
aV),aA.Sat,aA.Vib aA.Sat=(aT-aR)/(aS-aR)aA.Vib=1-((aW-aU)/(aV-aU))if aA.Sat~=aX or aA.Vib~=aY then aA:Update()end i.
RenderStepped:Wait()end end)aH.InputBegan:Connect(function(aQ:InputObject)while N(aQ)do local aR=aH.AbsolutePosition.Y
local aS=aR+aH.AbsoluteSize.Y local aT,aU=math.clamp(t.Y,aR,aS),aA.Hue aA.Hue=(aT-aR)/(aS-aR)if aA.Hue~=aU then aA:
Update()end i.RenderStepped:Wait()end end)if aJ then aJ.InputBegan:Connect(function(aQ:InputObject)while N(aQ)do local
aR,aS=aJ.AbsolutePosition.Y,aJ.AbsolutePosition.Y+aJ.AbsoluteSize.Y local aT,aU=math.clamp(t.Y,aR,aS),aA.Transparency aA
.Transparency=(aT-aR)/(aS-aR)if aA.Transparency~=aU then aA:Update()end i.RenderStepped:Wait()end end)end aN.FocusLost:
Connect(function(aQ)if not aQ then return end local aR,aS=pcall(Color3.fromHex,aN.Text)if aR and typeof(aS)=='Color3'
then aA.Hue,aA.Sat,aA.Vib=aS:ToHSV()end aA:Update()end)aO.FocusLost:Connect(function(aQ)if not aQ then return end local
aR,aS,aT=aO.Text:match'(%d+),%s*(%d+),%s*(%d+)'if aR and aS and aT then aA:SetHSVFromRGB(Color3.fromRGB(aR,aS,aT))end aA
:Update()end)aA:Display()if ay.Addons then table.insert(ay.Addons,aA)end aA.Default=aA.Value x[aw]=aA return av end as.
__index=at as.__namecall=function(av,aw,...)return at[aw](...)end end local at={}do local au={}function au.AddDivider(av
,aw)local ax=av local ay=ax.Container local az=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,6),Parent=ay})
if aw then local aA=af('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.fromScale(1,0
),Text=aw,TextSize=14,TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Center,Parent=az})local aB,aC=C:
GetTextBounds(aw,aA.FontFace,aA.TextSize,aA.AbsoluteSize.X)local aD=aB//2+10 af('Frame',{AnchorPoint=Vector2.new(0,0.5),
BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(0,0.5),Size=UDim2.
new(0.5,-aD,0,2),Parent=az})af('Frame',{AnchorPoint=Vector2.new(1,0.5),BackgroundColor3='MainColor',BorderColor3=
'OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(1,0.5),Size=UDim2.new(0.5,-aD,0,2),Parent=az})else af('Frame',
{AnchorPoint=Vector2.new(0,0.5),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=
UDim2.fromScale(0,0.5),Size=UDim2.new(1,0,0,2),Parent=az})end ax:Resize()table.insert(ax.Elements,{Holder=az,Type=
'Divider'})end function au.AddLabel(av,...)local aw,ax,ay,az={},{},select(1,...),select(2,...)if typeof(ay)=='table'or
typeof(az)=='table'then local aA=typeof(ay)=='table'and ay or az aw.Text=aA.Text or''aw.DoesWrap=aA.DoesWrap or false aw
.Size=aA.Size or 14 aw.Visible=aA.Visible or true aw.Idx=typeof(az)=='table'and ay or nil else aw.Text=ay or''aw.
DoesWrap=az or false aw.Size=14 aw.Visible=true aw.Idx=select(3,...)or nil end local aA=av local aB,aC=aA.Container,{
Text=aw.Text,DoesWrap=aw.DoesWrap,Addons=ax,Visible=aw.Visible,Type='Label'}local aD=af('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,18),Text=aC.Text,TextSize=aw.Size,TextWrapped=aC.DoesWrap,TextXAlignment=
aA.IsKeyTab and Enum.TextXAlignment.Center or Enum.TextXAlignment.Left,Parent=aB})function aC.SetVisible(aE,aF:boolean)
aC.Visible=aF aD.Visible=aC.Visible aA:Resize()end function aC.SetText(aE,aF:string)aC.Text=aF aD.Text=aF if aC.DoesWrap
then local aG,aH=C:GetTextBounds(aC.Text,aD.FontFace,aD.TextSize,aD.AbsoluteSize.X)aD.Size=UDim2.new(1,0,0,aH+4)end aA:
Resize()end if aC.DoesWrap then local aE,aF=C:GetTextBounds(aC.Text,aD.FontFace,aD.TextSize,aD.AbsoluteSize.X)aD.Size=
UDim2.new(1,0,0,aF+4)local aG=aD.AbsoluteSize aD:GetPropertyChangedSignal'AbsoluteSize':Connect(function()if aD.
AbsoluteSize==aG then return end local aH,aI=C:GetTextBounds(aC.Text,aD.FontFace,aD.TextSize,aD.AbsoluteSize.X)aD.Size=
UDim2.new(1,0,0,aI+4)aG=aD.AbsoluteSize aA:Resize()end)else af('UIListLayout',{FillDirection=Enum.FillDirection.
Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Right,Padding=UDim.new(0,6),Parent=aD})end aA:Resize()aC.
TextLabel=aD aC.Container=aB if not aw.DoesWrap then setmetatable(aC,as)end aC.Holder=aD table.insert(aA.Elements,aC)if
aw.Idx then u[aw.Idx]=aC else table.insert(u,aC)end return aC end function au.AddButton(av,...)local function aw(...)
local ax,ay,az={},select(1,...),select(2,...)if typeof(ay)=='table'or typeof(az)=='table'then local aA=typeof(ay)==
'table'and ay or az ax.Text=aA.Text or''ax.Func=aA.Func or aA.Callback or function()end ax.DoubleClick=aA.DoubleClick ax
.Tooltip=aA.Tooltip ax.DisabledTooltip=aA.DisabledTooltip ax.Risky=aA.Risky or false ax.Disabled=aA.Disabled or false ax
.Visible=aA.Visible or true ax.Idx=typeof(az)=='table'and ay or nil else ax.Text=ay or''ax.Func=az or function()end ax.
DoubleClick=false ax.Tooltip=nil ax.DisabledTooltip=nil ax.Risky=false ax.Disabled=false ax.Visible=true ax.Idx=select(3
,...)or nil end return ax end local ax,ay=aw(...),av local az,aA=ay.Container,{Text=ax.Text,Func=ax.Func,DoubleClick=ax.
DoubleClick,Tooltip=ax.Tooltip,DisabledTooltip=ax.DisabledTooltip,TooltipTable=nil,Risky=ax.Risky,Disabled=ax.Disabled,
Visible=ax.Visible,Tween=nil,Type='Button'}local aB=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,21),Parent
=az})af('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalFlex=Enum.UIFlexAlignment.Fill,Padding=
UDim.new(0,9),Parent=aB})local function aC(aD)local aE=af('TextButton',{Active=not aD.Disabled,BackgroundColor3=aD.
Disabled and'BackgroundColor'or'MainColor',Size=UDim2.fromScale(1,1),Text=aD.Text,TextSize=14,TextTransparency=0.4,
Visible=aD.Visible,Parent=aB})local aF=af('UIStroke',{Color='OutlineColor',Transparency=aD.Disabled and 0.5 or 0,Parent=
aE})return aE,aF end local function aD(aE)aE.Base.MouseEnter:Connect(function()if aE.Disabled then return end aE.Tween=n
:Create(aE.Base,C.TweenInfo,{TextTransparency=0})aE.Tween:Play()end)aE.Base.MouseLeave:Connect(function()if aE.Disabled
then return end aE.Tween=n:Create(aE.Base,C.TweenInfo,{TextTransparency=0.4})aE.Tween:Play()end)aE.Base.
MouseButton1Click:Connect(function()if aE.Disabled or aE.Locked then return end if aE.DoubleClick then aE.Locked=true aE
.Base.Text='Are you sure?'aE.Base.TextColor3=C.Scheme.AccentColor C.Registry[aE.Base].TextColor3='AccentColor'local aF=
J(aE.Base.MouseButton1Click,0.5)aE.Base.Text=aE.Text aE.Base.TextColor3=aE.Risky and C.Scheme.RedColor or C.Scheme.
FontColor C.Registry[aE.Base].TextColor3=aE.Risky and'RedColor'or'FontColor'if aF then C:SafeCallback(aE.Func)end i.
RenderStepped:Wait()aE.Locked=false return end C:SafeCallback(aE.Func)end)end aA.Base,aA.Stroke=aC(aA)aD(aA)function aA.
AddButton(aE,...)local aF=aw(...)local aG={Text=aF.Text,Func=aF.Func,DoubleClick=aF.DoubleClick,Tooltip=aF.Tooltip,
DisabledTooltip=aF.DisabledTooltip,TooltipTable=nil,Risky=aF.Risky,Disabled=aF.Disabled,Visible=aF.Visible,Tween=nil,
Type='SubButton'}aA.SubButton=aG aG.Base,aG.Stroke=aC(aG)aD(aG)function aG.UpdateColors(aH)if C.Unloaded then return end
P(aG.Tween)aG.Base.BackgroundColor3=aG.Disabled and C.Scheme.BackgroundColor or C.Scheme.MainColor aG.Base.
TextTransparency=aG.Disabled and 0.8 or 0.4 aG.Stroke.Transparency=aG.Disabled and 0.5 or 0 C.Registry[aG.Base].
BackgroundColor3=aG.Disabled and'BackgroundColor'or'MainColor'end function aG.SetDisabled(aH,aI:boolean)aG.Disabled=aI
if aG.TooltipTable then aG.TooltipTable.Disabled=aG.Disabled end aG.Base.Active=not aG.Disabled aG:UpdateColors()end
function aG.SetVisible(aH,aI:boolean)aG.Visible=aI aG.Base.Visible=aG.Visible ay:Resize()end function aG.SetText(aH,aI:
string)aG.Text=aI aG.Base.Text=aI end if typeof(aG.Tooltip)=='string'or typeof(aG.DisabledTooltip)=='string'then aG.
TooltipTable=C:AddTooltip(aG.Tooltip,aG.DisabledTooltip,aG.Base)aG.TooltipTable.Disabled=aG.Disabled end if aG.Risky
then aG.Base.TextColor3=C.Scheme.RedColor C.Registry[aG.Base].TextColor3='RedColor'end aG:UpdateColors()if aF.Idx then v
[aF.Idx]=aG else table.insert(v,aG)end return aG end function aA.UpdateColors(aE)if C.Unloaded then return end P(aA.
Tween)aA.Base.BackgroundColor3=aA.Disabled and C.Scheme.BackgroundColor or C.Scheme.MainColor aA.Base.TextTransparency=
aA.Disabled and 0.8 or 0.4 aA.Stroke.Transparency=aA.Disabled and 0.5 or 0 C.Registry[aA.Base].BackgroundColor3=aA.
Disabled and'BackgroundColor'or'MainColor'end function aA.SetDisabled(aE,aF:boolean)aA.Disabled=aF if aA.TooltipTable
then aA.TooltipTable.Disabled=aA.Disabled end aA.Base.Active=not aA.Disabled aA:UpdateColors()end function aA.SetVisible
(aE,aF:boolean)aA.Visible=aF aB.Visible=aA.Visible ay:Resize()end function aA.SetText(aE,aF:string)aA.Text=aF aA.Base.
Text=aF end if typeof(aA.Tooltip)=='string'or typeof(aA.DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.
Tooltip,aA.DisabledTooltip,aA.Base)aA.TooltipTable.Disabled=aA.Disabled end if aA.Risky then aA.Base.TextColor3=C.Scheme
.RedColor C.Registry[aA.Base].TextColor3='RedColor'end aA:UpdateColors()ay:Resize()aA.Holder=aB table.insert(ay.Elements
,aA)if ax.Idx then v[ax.Idx]=aA else table.insert(v,aA)end return aA end function au.AddCheckbox(av,aw,ax)ax=C:Validate(
ax,D.Toggle)local ay=av local az,aA=ay.Container,{Text=ax.Text,Value=ax.Default,Tooltip=ax.Tooltip,DisabledTooltip=ax.
DisabledTooltip,TooltipTable=nil,Callback=ax.Callback,Changed=ax.Changed,Risky=ax.Risky,Disabled=ax.Disabled,Visible=ax.
Visible,Addons={},Type='Toggle'}local aB=af('TextButton',{Active=not aA.Disabled,BackgroundTransparency=1,Size=UDim2.
new(1,0,0,18),Text='',Visible=aA.Visible,Parent=az})local aC=af('TextLabel',{BackgroundTransparency=1,Position=UDim2.
fromOffset(26,0),Size=UDim2.new(1,-26,1,0),Text=aA.Text,TextSize=14,TextTransparency=0.4,TextXAlignment=Enum.
TextXAlignment.Left,Parent=aB})af('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.
HorizontalAlignment.Right,Padding=UDim.new(0,6),Parent=aC})local aD=af('Frame',{BackgroundColor3='MainColor',Size=UDim2.
fromScale(1,1),SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=aB})af('UICorner',{CornerRadius=UDim.new(0,C.
CornerRadius/2),Parent=aD})local aE,aF=af('UIStroke',{Color='OutlineColor',Parent=aD}),af('ImageLabel',{Image=an and an.
Url or'',ImageColor3='FontColor',ImageRectOffset=an and an.ImageRectOffset or Vector2.zero,ImageRectSize=an and an.
ImageRectSize or Vector2.zero,ImageTransparency=1,Position=UDim2.fromOffset(2,2),Size=UDim2.new(1,-4,1,-4),Parent=aD})
function aA.UpdateColors(aG)aA:Display()end function aA.Display(aG)if C.Unloaded then return end aE.Transparency=aA.
Disabled and 0.5 or 0 if aA.Disabled then aC.TextTransparency=0.8 aF.ImageTransparency=aA.Value and 0.8 or 1 aD.
BackgroundColor3=C.Scheme.BackgroundColor C.Registry[aD].BackgroundColor3='BackgroundColor'return end n:Create(aC,C.
TweenInfo,{TextTransparency=aA.Value and 0 or 0.4}):Play()n:Create(aF,C.TweenInfo,{ImageTransparency=aA.Value and 0 or 1
}):Play()aD.BackgroundColor3=C.Scheme.MainColor C.Registry[aD].BackgroundColor3='MainColor'end function aA.OnChanged(aG,
aH)aA.Changed=aH end function aA.SetValue(aG,aH)if aA.Disabled then return end aA.Value=aH aA:Display()for aI,aJ in aA.
Addons do if aJ.Type=='KeyPicker'and aJ.SyncToggleState then aJ.Toggled=aA.Value aJ:Update()end end C:
UpdateDependencyBoxes()C:SafeCallback(aA.Callback,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end function aA.
SetDisabled(aG,aH:boolean)aA.Disabled=aH if aA.TooltipTable then aA.TooltipTable.Disabled=aA.Disabled end for aI,aJ in
aA.Addons do if aJ.Type=='KeyPicker'and aJ.SyncToggleState then aJ:Update()end end aB.Active=not aA.Disabled aA:Display(
)end function aA.SetVisible(aG,aH:boolean)aA.Visible=aH aB.Visible=aA.Visible ay:Resize()end function aA.SetText(aG,aH:
string)aA.Text=aH aC.Text=aH end aB.MouseButton1Click:Connect(function()if aA.Disabled then return end aA:SetValue(not
aA.Value)end)if typeof(aA.Tooltip)=='string'or typeof(aA.DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.
Tooltip,aA.DisabledTooltip,aB)aA.TooltipTable.Disabled=aA.Disabled end if aA.Risky then aC.TextColor3=C.Scheme.RedColor
C.Registry[aC].TextColor3='RedColor'end aA:Display()ay:Resize()aA.TextLabel=aC aA.Container=az setmetatable(aA,as)aA.
Holder=aB table.insert(ay.Elements,aA)aA.Default=aA.Value w[aw]=aA return aA end function au.AddToggle(av,aw,ax)if C.
ForceCheckbox then return au.AddCheckbox(av,aw,ax)end ax=C:Validate(ax,D.Toggle)local ay=av local az,aA=ay.Container,{
Text=ax.Text,Value=ax.Default,Tooltip=ax.Tooltip,DisabledTooltip=ax.DisabledTooltip,TooltipTable=nil,Callback=ax.
Callback,Changed=ax.Changed,Risky=ax.Risky,Disabled=ax.Disabled,Visible=ax.Visible,Addons={},Type='Toggle'}local aB=af(
'TextButton',{Active=not aA.Disabled,BackgroundTransparency=1,Size=UDim2.new(1,0,0,18),Text='',Visible=aA.Visible,Parent
=az})local aC=af('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,-40,1,0),Text=aA.Text,TextSize=14,
TextTransparency=0.4,TextXAlignment=Enum.TextXAlignment.Left,Parent=aB})af('UIListLayout',{FillDirection=Enum.
FillDirection.Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Right,Padding=UDim.new(0,6),Parent=aC})local aD=
af('Frame',{AnchorPoint=Vector2.new(1,0),BackgroundColor3='MainColor',Position=UDim2.fromScale(1,0),Size=UDim2.
fromOffset(32,18),Parent=aB})af('UICorner',{CornerRadius=UDim.new(1,0),Parent=aD})af('UIPadding',{PaddingBottom=UDim.
new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=UDim.new(0,2),PaddingTop=UDim.new(0,2),Parent=aD})local aE,aF=af(
'UIStroke',{Color='OutlineColor',Parent=aD}),af('Frame',{BackgroundColor3='FontColor',Size=UDim2.fromScale(1,1),
SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=aD})af('UICorner',{CornerRadius=UDim.new(1,0),Parent=aF})function
aA.UpdateColors(aG)aA:Display()end function aA.Display(aG)if C.Unloaded then return end local aH=aA.Value and 1 or 0 aD.
BackgroundTransparency=aA.Disabled and 0.75 or 0 aE.Transparency=aA.Disabled and 0.75 or 0 aD.BackgroundColor3=aA.Value
and C.Scheme.AccentColor or C.Scheme.MainColor aE.Color=aA.Value and C.Scheme.AccentColor or C.Scheme.OutlineColor C.
Registry[aD].BackgroundColor3=aA.Value and'AccentColor'or'MainColor'C.Registry[aE].Color=aA.Value and'AccentColor'or
'OutlineColor'if aA.Disabled then aC.TextTransparency=0.8 aF.AnchorPoint=Vector2.new(aH,0)aF.Position=UDim2.fromScale(aH
,0)aF.BackgroundColor3=C:GetDarkerColor(C.Scheme.FontColor)C.Registry[aF].BackgroundColor3=function()return C:
GetDarkerColor(C.Scheme.FontColor)end return end n:Create(aC,C.TweenInfo,{TextTransparency=aA.Value and 0 or 0.4}):Play(
)n:Create(aF,C.TweenInfo,{AnchorPoint=Vector2.new(aH,0),Position=UDim2.fromScale(aH,0)}):Play()aF.BackgroundColor3=C.
Scheme.FontColor C.Registry[aF].BackgroundColor3='FontColor'end function aA.OnChanged(aG,aH)aA.Changed=aH end function
aA.SetValue(aG,aH)if aA.Disabled then return end aA.Value=aH aA:Display()for aI,aJ in aA.Addons do if aJ.Type==
'KeyPicker'and aJ.SyncToggleState then aJ.Toggled=aA.Value aJ:Update()end end C:UpdateDependencyBoxes()C:SafeCallback(aA
.Callback,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end function aA.SetDisabled(aG,aH:boolean)aA.Disabled=aH if aA.
TooltipTable then aA.TooltipTable.Disabled=aA.Disabled end for aI,aJ in aA.Addons do if aJ.Type=='KeyPicker'and aJ.
SyncToggleState then aJ:Update()end end aB.Active=not aA.Disabled aA:Display()end function aA.SetVisible(aG,aH:boolean)
aA.Visible=aH aB.Visible=aA.Visible ay:Resize()end function aA.SetText(aG,aH:string)aA.Text=aH aC.Text=aH end aB.
MouseButton1Click:Connect(function()if aA.Disabled then return end aA:SetValue(not aA.Value)end)if typeof(aA.Tooltip)==
'string'or typeof(aA.DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.Tooltip,aA.DisabledTooltip,aB)aA.
TooltipTable.Disabled=aA.Disabled end if aA.Risky then aC.TextColor3=C.Scheme.RedColor C.Registry[aC].TextColor3=
'RedColor'end aA:Display()ay:Resize()aA.TextLabel=aC aA.Container=az setmetatable(aA,as)aA.Holder=aB table.insert(ay.
Elements,aA)aA.Default=aA.Value w[aw]=aA return aA end function au.AddInput(av,aw,ax)ax=C:Validate(ax,D.Input)local ay=
av local az,aA=ay.Container,{Text=ax.Text,Value=ax.Default,Finished=ax.Finished,Numeric=ax.Numeric,ClearTextOnFocus=ax.
ClearTextOnFocus,Placeholder=ax.Placeholder,AllowEmpty=ax.AllowEmpty,EmptyReset=ax.EmptyReset,Tooltip=ax.Tooltip,
DisabledTooltip=ax.DisabledTooltip,TooltipTable=nil,Callback=ax.Callback,Changed=ax.Changed,Disabled=ax.Disabled,Visible
=ax.Visible,Type='Input'}local aB=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,39),Visible=aA.Visible,
Parent=az})local aC,aD=af('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,14),Text=aA.Text,TextSize=14,
TextXAlignment=Enum.TextXAlignment.Left,Parent=aB}),af('TextBox',{AnchorPoint=Vector2.new(0,1),BackgroundColor3=
'MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,ClearTextOnFocus=not aA.Disabled and aA.ClearTextOnFocus,
PlaceholderText=aA.Placeholder,Position=UDim2.fromScale(0,1),Size=UDim2.new(1,0,0,21),Text=aA.Value,TextEditable=not aA.
Disabled,TextScaled=true,TextXAlignment=Enum.TextXAlignment.Left,Parent=aB})af('UIPadding',{PaddingBottom=UDim.new(0,3),
PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=aD})function aA.UpdateColors(aE)if
C.Unloaded then return end aC.TextTransparency=aA.Disabled and 0.8 or 0 aD.TextTransparency=aA.Disabled and 0.8 or 0 end
function aA.OnChanged(aE,aF)aA.Changed=aF end function aA.SetValue(aE,aF)if not aA.AllowEmpty and Q(aF)==''then aF=aA.
EmptyReset end if ax.MaxLength and#aF>ax.MaxLength then aF=aF:sub(1,ax.MaxLength)end if aA.Numeric then if#tostring(aF)>
0 and not tonumber(aF)then aF=aA.Value end end aA.Value=aF aD.Text=aF if not aA.Disabled then C:SafeCallback(aA.Callback
,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end end function aA.SetDisabled(aE,aF:boolean)aA.Disabled=aF if aA.
TooltipTable then aA.TooltipTable.Disabled=aA.Disabled end aD.ClearTextOnFocus=not aA.Disabled and aA.ClearTextOnFocus
aD.TextEditable=not aA.Disabled aA:UpdateColors()end function aA.SetVisible(aE,aF:boolean)aA.Visible=aF aB.Visible=aA.
Visible ay:Resize()end function aA.SetText(aE,aF:string)aA.Text=aF aC.Text=aF end if aA.Finished then aD.FocusLost:
Connect(function(aE)if not aE then return end aA:SetValue(aD.Text)end)else aD:GetPropertyChangedSignal'Text':Connect(
function()if aD.Text==aA.Value then return end aA:SetValue(aD.Text)end)end if typeof(aA.Tooltip)=='string'or typeof(aA.
DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.Tooltip,aA.DisabledTooltip,aD)aA.TooltipTable.Disabled=aA
.Disabled end ay:Resize()aA.Holder=aB table.insert(ay.Elements,aA)aA.Default=aA.Value x[aw]=aA return aA end function au
.AddSlider(av,aw,ax)ax=C:Validate(ax,D.Slider)local ay=av local az,aA=ay.Container,{Text=ax.Text,Value=ax.Default,Min=ax
.Min,Max=ax.Max,Prefix=ax.Prefix,Suffix=ax.Suffix,Compact=ax.Compact,Rounding=ax.Rounding,Tooltip=ax.Tooltip,
DisabledTooltip=ax.DisabledTooltip,TooltipTable=nil,Callback=ax.Callback,Changed=ax.Changed,Disabled=ax.Disabled,Visible
=ax.Visible,Type='Slider'}local aB,aC=(af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,ax.Compact and 13 or 31
),Visible=aA.Visible,Parent=az}))if not ax.Compact then aC=af('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0
,14),Text=aA.Text,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=aB})end local aD=af('TextButton',{Active=
not aA.Disabled,AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,
Position=UDim2.fromScale(0,1),Size=UDim2.new(1,0,0,13),Text='',Parent=aB})local aE=af('TextLabel',{
BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Text='',TextSize=14,ZIndex=2,Parent=aD})af('UIStroke',{
ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual,Color='DarkColor',LineJoinMode=Enum.LineJoinMode.Miter,Parent=aE})local
aF=af('Frame',{BackgroundColor3='AccentColor',Size=UDim2.fromScale(0.5,1),Parent=aD})function aA.UpdateColors(aG)if C.
Unloaded then return end if aC then aC.TextTransparency=aA.Disabled and 0.8 or 0 end aE.TextTransparency=aA.Disabled and
0.8 or 0 aF.BackgroundColor3=aA.Disabled and C.Scheme.OutlineColor or C.Scheme.AccentColor C.Registry[aF].
BackgroundColor3=aA.Disabled and'OutlineColor'or'AccentColor'end function aA.Display(aG)if C.Unloaded then return end
local aH if ax.FormatDisplayValue then aH=ax.FormatDisplayValue(aA,aA.Value)end if aH then aE.Text=tostring(aH)else if
ax.Compact then aE.Text=string.format('%s: %s%s%s',aA.Text,aA.Prefix,aA.Value,aA.Suffix)elseif ax.HideMax then aE.Text=
string.format('%s%s%s',aA.Prefix,aA.Value,aA.Suffix)else aE.Text=string.format('%s%s%s/%s%s%s',aA.Prefix,aA.Value,aA.
Suffix,aA.Prefix,aA.Max,aA.Suffix)end end local aI=(aA.Value-aA.Min)/(aA.Max-aA.Min)aF.Size=UDim2.fromScale(aI,1)end
function aA.OnChanged(aG,aH)aA.Changed=aH end function aA.SetMax(aG,aH)assert(aH>aA.Min,
'Max value cannot be less than the current min value.')aA:SetValue(math.clamp(aA.Value,aA.Min,aH))aA.Max=aH aA:Display()
end function aA.SetMin(aG,aH)assert(aH<aA.Max,'Min value cannot be greater than the current max value.')aA:SetValue(math
.clamp(aA.Value,aH,aA.Max))aA.Min=aH aA:Display()end function aA.SetValue(aG,aH)if aA.Disabled then return end local aI=
tonumber(aH)if not aI or aI==aA.Value then return end aI=math.clamp(aI,aA.Min,aA.Max)aA.Value=aI aA:Display()C:
SafeCallback(aA.Callback,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end function aA.SetDisabled(aG,aH:boolean)aA.
Disabled=aH if aA.TooltipTable then aA.TooltipTable.Disabled=aA.Disabled end aD.Active=not aA.Disabled aA:UpdateColors()
end function aA.SetVisible(aG,aH:boolean)aA.Visible=aH aB.Visible=aA.Visible ay:Resize()end function aA.SetText(aG,aH:
string)aA.Text=aH if aC then aC.Text=aH return end aA:Display()end function aA.SetPrefix(aG,aH:string)aA.Prefix=aH aA:
Display()end function aA.SetSuffix(aG,aH:string)aA.Suffix=aH aA:Display()end aD.InputBegan:Connect(function(aG:
InputObject)if not L(aG)or aA.Disabled then return end for aH,aI in C.ActiveTab.Sides do aI.ScrollingEnabled=false end
while N(aG)do local aH=t.X local aI,aJ=math.clamp((aH-aD.AbsolutePosition.X)/aD.AbsoluteSize.X,0,1),aA.Value aA.Value=S(
aA.Min+((aA.Max-aA.Min)*aI),aA.Rounding)aA:Display()if aA.Value~=aJ then C:SafeCallback(aA.Callback,aA.Value)C:
SafeCallback(aA.Changed,aA.Value)end i.RenderStepped:Wait()end for aH,aI in C.ActiveTab.Sides do aI.ScrollingEnabled=
true end end)if typeof(aA.Tooltip)=='string'or typeof(aA.DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.
Tooltip,aA.DisabledTooltip,aD)aA.TooltipTable.Disabled=aA.Disabled end aA:UpdateColors()aA:Display()ay:Resize()aA.Holder
=aB table.insert(ay.Elements,aA)aA.Default=aA.Value x[aw]=aA return aA end function au.AddDropdown(av,aw,ax)ax=C:
Validate(ax,D.Dropdown)local ay=av local az=ay.Container if ax.SpecialType=='Player'then ax.Values=T(ax.
ExcludeLocalPlayer)ax.AllowNull=true elseif ax.SpecialType=='Team'then ax.Values=U()ax.AllowNull=true end local aA={Text
=typeof(ax.Text)=='string'and ax.Text or nil,Value=ax.Multi and{}or nil,Values=ax.Values,DisabledValues=ax.
DisabledValues,Multi=ax.Multi,SpecialType=ax.SpecialType,ExcludeLocalPlayer=ax.ExcludeLocalPlayer,Tooltip=ax.Tooltip,
DisabledTooltip=ax.DisabledTooltip,TooltipTable=nil,Callback=ax.Callback,Changed=ax.Changed,Disabled=ax.Disabled,Visible
=ax.Visible,Type='Dropdown'}local aB=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,aA.Text and 39 or 21),
Visible=aA.Visible,Parent=az})local aC,aD=af('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,14),Text=aA.Text
,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Visible=not not ax.Text,Parent=aB}),af('TextButton',{Active=not aA.
Disabled,AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,
Position=UDim2.fromScale(0,1),Size=UDim2.new(1,0,0,21),Text='---',TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,
Parent=aB})af('UIPadding',{PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,4),Parent=aD})local aE,aF=(af('ImageLabel',
{AnchorPoint=Vector2.new(1,0.5),Image=ao and ao.Url or'',ImageColor3='FontColor',ImageRectOffset=ao and ao.
ImageRectOffset or Vector2.zero,ImageRectSize=ao and ao.ImageRectSize or Vector2.zero,ImageTransparency=0.5,Position=
UDim2.fromScale(1,0.5),Size=UDim2.fromOffset(16,16),Parent=aD}))if ax.Searchable then aF=af('TextBox',{
BackgroundTransparency=1,PlaceholderText='Search...',Position=UDim2.fromOffset(-8,0),Size=UDim2.new(1,-12,1,0),TextSize=
14,TextXAlignment=Enum.TextXAlignment.Left,Visible=false,Parent=aD})af('UIPadding',{PaddingLeft=UDim.new(0,8),Parent=aF}
)end local aG=C:AddContextMenu(aD,function()return UDim2.fromOffset(aD.AbsoluteSize.X/C.DPIScale,0)end,function()return{
0.5,aD.AbsoluteSize.Y+1.5}end,2,function(aG:boolean)aD.TextTransparency=(aG and aF)and 1 or 0 aE.ImageTransparency=aG
and 0 or 0.5 aE.Rotation=aG and 180 or 0 if aF then aF.Text=''aF.Visible=aG end end)aA.Menu=aG function aA.
RecalculateListSize(aH,aI)local aJ=math.clamp((aI or O(aA.Values))*21,0,ax.MaxVisibleDropdownItems*21)aG:SetSize(
function()return UDim2.fromOffset(aD.AbsoluteSize.X/C.DPIScale,aJ)end)end function aA.UpdateColors(aH)if C.Unloaded then
return end aC.TextTransparency=aA.Disabled and 0.8 or 0 aD.TextTransparency=aA.Disabled and 0.8 or 0 aE.
ImageTransparency=aA.Disabled and 0.8 or aG.Active and 0 or 0.5 end function aA.Display(aH)if C.Unloaded then return end
local aI=''if ax.Multi then for aJ,aK in aA.Values do if aA.Value[aK]then aI=aI..(ax.FormatDisplayValue and tostring(ax.
FormatDisplayValue(aK))or tostring(aK))..', 'end end aI=aI:sub(1,#aI-2)else aI=aA.Value and tostring(aA.Value)or''if aI
~=''and ax.FormatDisplayValue then aI=tostring(ax.FormatDisplayValue(aI))end end if#aI>25 then aI=aI:sub(1,22)..'...'end
aD.Text=(aI==''and'---'or aI)end function aA.OnChanged(aH,aI)aA.Changed=aI end function aA.GetActiveValues(aH)if ax.
Multi then local aI={}for aJ,aK in aA.Value do table.insert(aI,aJ)end return aI end return aA.Value and 1 or 0 end local
aH={}function aA.BuildDropdownList(aI)local aJ,aK=aA.Values,aA.DisabledValues for aL,aM in aH do aL:Destroy()end table.
clear(aH)local aL=0 for aM,aN in aJ do if aF and not tostring(aN):lower():match(aF.Text:lower())then continue end aL+=1
local aO,aP=table.find(aK,aN),{}local aQ=af('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,
LayoutOrder=aO and 1 or 0,Size=UDim2.new(1,0,0,21),Text=tostring(aN),TextSize=14,TextTransparency=0.5,TextXAlignment=
Enum.TextXAlignment.Left,Parent=aG.Menu})af('UIPadding',{PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,7),Parent=aQ}
)local aR if ax.Multi then aR=aA.Value[aN]else aR=aA.Value==aN end function aP.UpdateButton(aS)if ax.Multi then aR=aA.
Value[aN]else aR=aA.Value==aN end aQ.BackgroundTransparency=aR and 0 or 1 aQ.TextTransparency=aO and 0.8 or aR and 0 or
0.5 end if not aO then aQ.MouseButton1Click:Connect(function()local aS=not aR if not(aA:GetActiveValues()==1 and not aS
and not ax.AllowNull)then aR=aS if ax.Multi then aA.Value[aN]=aR and true or nil else aA.Value=aR and aN or nil end for
aT,aU in aH do aU:UpdateButton()end end aP:UpdateButton()aA:Display()C:UpdateDependencyBoxes()C:SafeCallback(aA.Callback
,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end)end aP:UpdateButton()aA:Display()aH[aQ]=aP end aA:RecalculateListSize(
aL)end function aA.SetValue(aI,aJ)if ax.Multi then local aK={}for aL,aM in aJ or{}do if typeof(aM)~='boolean'then aK[aM]
=true elseif aM and table.find(aA.Values,aL)then aK[aL]=true end end aA.Value=aK else if table.find(aA.Values,aJ)then aA
.Value=aJ elseif not aJ then aA.Value=nil end end aA:Display()for aK,aL in aH do aL:UpdateButton()end if not aA.Disabled
then C:UpdateDependencyBoxes()C:SafeCallback(aA.Callback,aA.Value)C:SafeCallback(aA.Changed,aA.Value)end end function aA
.SetValues(aI,aJ)aA.Values=aJ aA:BuildDropdownList()end function aA.AddValues(aI,aJ)if typeof(aJ)=='table'then for aK,aL
in aJ do table.insert(aA.Values,aL)end elseif typeof(aJ)=='string'then table.insert(aA.Values,aJ)else return end aA:
BuildDropdownList()end function aA.SetDisabledValues(aI,aJ)aA.DisabledValues=aJ aA:BuildDropdownList()end function aA.
AddDisabledValues(aI,aJ)if typeof(aJ)=='table'then for aK,aL in aJ do table.insert(aA.DisabledValues,aL)end elseif
typeof(aJ)=='string'then table.insert(aA.DisabledValues,aJ)else return end aA:BuildDropdownList()end function aA.
SetDisabled(aI,aJ:boolean)aA.Disabled=aJ if aA.TooltipTable then aA.TooltipTable.Disabled=aA.Disabled end aG:Close()aD.
Active=not aA.Disabled aA:UpdateColors()end function aA.SetVisible(aI,aJ:boolean)aA.Visible=aJ aB.Visible=aA.Visible ay:
Resize()end function aA.SetText(aI,aJ:string)aA.Text=aJ aB.Size=UDim2.new(1,0,0,aJ and 39 or 21)aC.Text=aJ and aJ or''aC
.Visible=not not aJ end aD.MouseButton1Click:Connect(function()if aA.Disabled then return end aG:Toggle()end)if aF then
aF:GetPropertyChangedSignal'Text':Connect(aA.BuildDropdownList)end local aI={}if typeof(ax.Default)=='string'then local
aJ=table.find(aA.Values,ax.Default)if aJ then table.insert(aI,aJ)end elseif typeof(ax.Default)=='table'then for aJ,aK in
next,ax.Default do local aL=table.find(aA.Values,aK)if aL then table.insert(aI,aL)end end elseif aA.Values[ax.Default]~=
nil then table.insert(aI,ax.Default)end if next(aI)then for aJ=1,#aI do local aK=aI[aJ]if ax.Multi then aA.Value[aA.
Values[aK] ]=true else aA.Value=aA.Values[aK]end if not ax.Multi then break end end end if typeof(aA.Tooltip)=='string'
or typeof(aA.DisabledTooltip)=='string'then aA.TooltipTable=C:AddTooltip(aA.Tooltip,aA.DisabledTooltip,aD)aA.
TooltipTable.Disabled=aA.Disabled end aA:UpdateColors()aA:Display()aA:BuildDropdownList()ay:Resize()aA.Holder=aB table.
insert(ay.Elements,aA)aA.Default=aI aA.DefaultValues=aA.Values x[aw]=aA return aA end function au.AddViewport(av,aw,ax)
ax=C:Validate(ax,D.Viewport)local ay=av local az,aA,aB,aC,aD,aE=ay.Container,false,false,0,(ax.Object)if ax.Clone and
typeof(ax.Object)=='Instance'then if ax.Object.Archivable then aD=aD:Clone()else ax.Object.Archivable=true aD=aD:Clone()
ax.Object.Archivable=false end end local aF={Object=aD,Camera=if not ax.Camera then Instance.new'Camera'else ax.Camera,
Interactive=ax.Interactive,AutoFocus=ax.AutoFocus,Visible=ax.Visible,Type='Viewport'}assert(typeof(aF.Object)==
'Instance'and(aF.Object:IsA'BasePart'or aF.Object:IsA'Model'),'Instance must be a BasePart or Model.')assert(typeof(aF.
Camera)=='Instance'and aF.Camera:IsA'Camera','Camera must be a valid Camera instance.')local function aG(aH)if aH:IsA
'BasePart'then return aH.Size end return select(2,aH:GetBoundingBox())end local function aH()local aI=aG(aF.Object)local
aJ=math.max(aI.X,aI.Y,aI.Z)local aK,aL=aJ*2,aF.Object:GetPivot().Position aF.Camera.CFrame=CFrame.new(aL+Vector3.new(0,
aJ/2,aK),aL)end local aI=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,ax.Height),Visible=aF.Visible,Parent=
az})local aJ=af('Frame',{AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',
BorderSizePixel=1,Position=UDim2.fromScale(0,1),Size=UDim2.fromScale(1,1),Parent=aI})af('UIPadding',{PaddingBottom=UDim.
new(0,3),PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=aJ})local aK=af(
'ViewportFrame',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Parent=aJ,CurrentCamera=aF.Camera,Active=aF.
Interactive})aK.MouseEnter:Connect(function()if not aF.Interactive then return end for aL,aM in ay.Tab.Sides do aM.
ScrollingEnabled=false end end)aK.MouseLeave:Connect(function()if not aF.Interactive then return end for aL,aM in ay.Tab
.Sides do aM.ScrollingEnabled=true end end)aK.InputBegan:Connect(function(aL)if not aF.Interactive then return end if aL
.UserInputType==Enum.UserInputType.MouseButton2 then aA=true aE=aL.Position elseif aL.UserInputType==Enum.UserInputType.
Touch and not aB then aA=true aE=aL.Position end end)C:GiveSignal(k.InputEnded:Connect(function(aL)if C.Unloaded then
return end if not aF.Interactive then return end if aL.UserInputType==Enum.UserInputType.MouseButton2 then aA=false
elseif aL.UserInputType==Enum.UserInputType.Touch then aA=false end end))C:GiveSignal(k.InputChanged:Connect(function(aL
)if C.Unloaded then return end if not aF.Interactive or not aA or aB then return end if aL.UserInputType==Enum.
UserInputType.MouseMovement or aL.UserInputType==Enum.UserInputType.Touch then local aM=aL.Position-aE aE=aL.Position
local aN,aO,aP=aF.Object:GetPivot().Position,aF.Camera,CFrame.fromAxisAngle(Vector3.new(0,1,0),-aM.X*0.01)aO.CFrame=
CFrame.new(aN)*aP*CFrame.new(-aN)*aO.CFrame local aQ=CFrame.fromAxisAngle(aO.CFrame.RightVector,-aM.Y*0.01)local aR=
CFrame.new(aN)*aQ*CFrame.new(-aN)*aO.CFrame if aR.UpVector.Y>0.1 then aO.CFrame=aR end end end))aK.InputChanged:Connect(
function(aL)if not aF.Interactive then return end if aL.UserInputType==Enum.UserInputType.MouseWheel then local aM=aL.
Position.Z*2 aF.Camera.CFrame+=aF.Camera.CFrame.LookVector*aM end end)C:GiveSignal(k.TouchPinch:Connect(function(aL,aM,
aN,aO)if C.Unloaded then return end if not aF.Interactive or not C:MouseIsOverFrame(aK,aL[1])then return end if aO==Enum
.UserInputState.Begin then aB=true aA=false aC=(aL[1]-aL[2]).Magnitude elseif aO==Enum.UserInputState.Change then local
aP=(aL[1]-aL[2]).Magnitude local aQ=(aP-aC)*0.1 aC=aP aF.Camera.CFrame+=aF.Camera.CFrame.LookVector*aQ elseif aO==Enum.
UserInputState.End or aO==Enum.UserInputState.Cancel then aB=false end end))aF.Object.Parent=aK if aF.AutoFocus then aH(
)end function aF.SetObject(aL,aM:Instance,aN:boolean?)assert(aM,'Object cannot be nil.')if aN then aM=aM:Clone()end if
aF.Object then aF.Object:Destroy()end aF.Object=aM aF.Object.Parent=aK ay:Resize()end function aF.SetHeight(aL,aM:number
)assert(aM>0,'Height must be greater than 0.')aI.Size=UDim2.new(1,0,0,aM)ay:Resize()end function aF.Focus(aL)if not aF.
Object then return end aH()end function aF.SetCamera(aL,aM:Instance)assert(aM and typeof(aM)=='Instance'and aM:IsA
'Camera','Camera must be a valid Camera instance.')aF.Camera=aM aK.CurrentCamera=aM end function aF.SetInteractive(aL,aM
:boolean)aF.Interactive=aM aK.Active=aM end function aF.SetVisible(aL,aM:boolean)aF.Visible=aM aI.Visible=aF.Visible ay:
Resize()end ay:Resize()aF.Holder=aI table.insert(ay.Elements,aF)x[aw]=aF return aF end function au.AddImage(av,aw,ax)ax=
C:Validate(ax,D.Image)local ay=av local az,aA=ay.Container,{Image=ax.Image,Color=ax.Color,RectOffset=ax.RectOffset,
RectSize=ax.RectSize,Height=ax.Height,ScaleType=ax.ScaleType,Transparency=ax.Transparency,BackgroundTransparency=ax.
BackgroundTransparency,Visible=ax.Visible,Type='Image'}local aB=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,
0,ax.Height),Visible=aA.Visible,Parent=az})local aC=af('Frame',{AnchorPoint=Vector2.new(0,1),BackgroundColor3=
'MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,BackgroundTransparency=aA.BackgroundTransparency,Position=
UDim2.fromScale(0,1),Size=UDim2.fromScale(1,1),Parent=aB})af('UIPadding',{PaddingBottom=UDim.new(0,3),PaddingLeft=UDim.
new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=aC})local aD={BackgroundTransparency=1,Size=UDim2.
fromScale(1,1),Image=aA.Image,ImageTransparency=aA.Transparency,ImageColor3=aA.Color,ImageRectOffset=aA.RectOffset,
ImageRectSize=aA.RectSize,ScaleType=aA.ScaleType,Parent=aC}local aE=C:GetCustomIcon(aD.Image)assert(aE,
[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])aD.Image=aE.Url aD.ImageRectOffset=aE.
ImageRectOffset aD.ImageRectSize=aE.ImageRectSize local aF=af('ImageLabel',aD)function aA.SetHeight(aG,aH:number)assert(
aH>0,'Height must be greater than 0.')aA.Height=aH aB.Size=UDim2.new(1,0,0,aH)ay:Resize()end function aA.SetImage(aG,aH:
string)assert(typeof(aH)=='string','Image must be a string.')local aI=C:GetCustomIcon(aH)assert(aI,
[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])aH=aI.Url aA.RectOffset=aI.ImageRectOffset
aA.RectSize=aI.ImageRectSize aF.Image=aH aA.Image=aH end function aA.SetColor(aG,aH:Color3)assert(typeof(aH)=='Color3',
'Color must be a Color3 value.')aF.ImageColor3=aH aA.Color=aH end function aA.SetRectOffset(aG,aH:Vector2)assert(typeof(
aH)=='Vector2','RectOffset must be a Vector2 value.')aF.ImageRectOffset=aH aA.RectOffset=aH end function aA.SetRectSize(
aG,aH:Vector2)assert(typeof(aH)=='Vector2','RectSize must be a Vector2 value.')aF.ImageRectSize=aH aA.RectSize=aH end
function aA.SetScaleType(aG,aH:Enum.ScaleType)assert(typeof(aH)=='EnumItem'and aH:IsA'ScaleType',
'ScaleType must be a valid Enum.ScaleType.')aF.ScaleType=aH aA.ScaleType=aH end function aA.SetTransparency(aG,aH:number
)assert(typeof(aH)=='number','Transparency must be a number between 0 and 1.')assert(aH>=0 and aH<=1,
'Transparency must be between 0 and 1.')aF.ImageTransparency=aH aA.Transparency=aH end function aA.SetVisible(aG,aH:
boolean)aA.Visible=aH aB.Visible=aA.Visible ay:Resize()end ay:Resize()aA.Holder=aB table.insert(ay.Elements,aA)x[aw]=aA
return aA end function au.AddVideo(av,aw,ax)ax=C:Validate(ax,D.Video)local ay=av local az,aA=ay.Container,{Video=ax.
Video,Looped=ax.Looped,Playing=ax.Playing,Volume=ax.Volume,Height=ax.Height,Visible=ax.Visible,Type='Video'}local aB=af(
'Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,ax.Height),Visible=aA.Visible,Parent=az})local aC=af('Frame',{
AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.
fromScale(0,1),Size=UDim2.fromScale(1,1),Parent=aB})af('UIPadding',{PaddingBottom=UDim.new(0,3),PaddingLeft=UDim.new(0,8
),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=aC})local aD=af('VideoFrame',{BackgroundTransparency=1,Size
=UDim2.fromScale(1,1),Video=aA.Video,Looped=aA.Looped,Volume=aA.Volume,Parent=aC})aD.Playing=aA.Playing function aA.
SetHeight(aE,aF:number)assert(aF>0,'Height must be greater than 0.')aA.Height=aF aB.Size=UDim2.new(1,0,0,aF)ay:Resize()
end function aA.SetVideo(aE,aF:string)assert(typeof(aF)=='string','Video must be a string.')aD.Video=aF aA.Video=aF end
function aA.SetLooped(aE,aF:boolean)assert(typeof(aF)=='boolean','Looped must be a boolean.')aD.Looped=aF aA.Looped=aF
end function aA.SetVolume(aE,aF:number)assert(typeof(aF)=='number','Volume must be a number between 0 and 10.')aD.Volume
=aF aA.Volume=aF end function aA.SetPlaying(aE,aF:boolean)assert(typeof(aF)=='boolean','Playing must be a boolean.')aD.
Playing=aF aA.Playing=aF end function aA.Play(aE)aD.Playing=true aA.Playing=true end function aA.Pause(aE)aD.Playing=
false aA.Playing=false end function aA.SetVisible(aE,aF:boolean)aA.Visible=aF aB.Visible=aA.Visible ay:Resize()end ay:
Resize()aA.Holder=aB aA.VideoFrame=aD table.insert(ay.Elements,aA)x[aw]=aA return aA end function au.AddUIPassthrough(av
,aw,ax)ax=C:Validate(ax,D.UIPassthrough)local ay=av local az=ay.Container assert(ax.Instance,
'Instance must be provided.')assert(typeof(ax.Instance)=='Instance'and ax.Instance:IsA'GuiBase2d',
'Instance must inherit from GuiBase2d.')assert(typeof(ax.Height)=='number'and ax.Height>0,
'Height must be a number greater than 0.')local aA={Instance=ax.Instance,Height=ax.Height,Visible=ax.Visible,Type=
'UIPassthrough'}local aB=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,ax.Height),Visible=aA.Visible,Parent=
az})aA.Instance.Parent=aB ay:Resize()function aA.SetHeight(aC,aD:number)assert(typeof(aD)=='number'and aD>0,
'Height must be a number greater than 0.')aA.Height=aD aB.Size=UDim2.new(1,0,0,aD)ay:Resize()end function aA.SetInstance
(aC,aD:Instance)assert(aD,'Instance must be provided.')assert(typeof(aD)=='Instance'and aD:IsA'GuiBase2d',
'Instance must inherit from GuiBase2d.')if aA.Instance then aA.Instance.Parent=nil end aA.Instance=aD aA.Instance.Parent
=aB end function aA.SetVisible(aC,aD:boolean)aA.Visible=aD aB.Visible=aA.Visible ay:Resize()end aA.Holder=aB table.
insert(ay.Elements,aA)x[aw]=aA return aA end function au.AddDependencyBox(av)local aw=av local ax,ay,az=(aw.Container)do
ay=af('Frame',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Visible=false,Parent=ax})az=af('UIListLayout',{Padding
=UDim.new(0,8),Parent=ay})end local aA={Visible=false,Dependencies={},Holder=ay,Container=ay,Elements={},DependencyBoxes
={}}function aA.Resize(aB)ay.Size=UDim2.new(1,0,0,az.AbsoluteContentSize.Y/C.DPIScale)aw:Resize()end function aA.Update(
aB,aC)for aD,aE in aA.Dependencies do local aF,aG=aE[1],aE[2]if aF.Type=='Toggle'and aF.Value~=aG then ay.Visible=false
aA.Visible=false return elseif aF.Type=='Dropdown'then if typeof(aF.Value)=='table'then if not aF.Value[aG]then ay.
Visible=false aA.Visible=false return end else if aF.Value~=aG then ay.Visible=false aA.Visible=false return end end end
end aA.Visible=true ay.Visible=true if not C.Searching then task.defer(function()aA:Resize()end)elseif not aC then C:
UpdateSearch(C.SearchText)end end az:GetPropertyChangedSignal'AbsoluteContentSize':Connect(function()if not aA.Visible
then return end aA:Resize()end)function aA.SetupDependencies(aB,aC)for aD,aE in aC do assert(typeof(aE)=='table',
'Dependency should be a table.')assert(aE[1]~=nil,'Dependency is missing element.')assert(aE[2]~=nil,
'Dependency is missing expected value.')end aA.Dependencies=aC aA:Update()end ay:GetPropertyChangedSignal'Visible':
Connect(function()aA:Resize()end)setmetatable(aA,at)table.insert(aw.DependencyBoxes,aA)table.insert(C.DependencyBoxes,aA
)return aA end function au.AddDependencyGroupbox(av)local aw=av local ax,ay,az,aA=aw.Tab,(aw.BoxHolder)do az=af('Frame',
{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,0),Visible=false,Parent=ay})af('UICorner',{CornerRadius=UDim.
new(0,C.CornerRadius),Parent=az})C:AddOutline(az)aA=af('UIListLayout',{Padding=UDim.new(0,8),Parent=az})af('UIPadding',{
PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,7),PaddingTop=UDim.new(0,7),Parent=az})end
local aB={Visible=false,Dependencies={},BoxHolder=ay,Holder=az,Container=az,Tab=ax,Elements={},DependencyBoxes={}}
function aB.Resize(aC)az.Size=UDim2.new(1,0,0,(aA.AbsoluteContentSize.Y/C.DPIScale)+18)end function aB.Update(aC,aD)for
aE,aF in aB.Dependencies do local aG,aH=aF[1],aF[2]if aG.Type=='Toggle'and aG.Value~=aH then az.Visible=false aB.Visible
=false return elseif aG.Type=='Dropdown'then if typeof(aG.Value)=='table'then if not aG.Value[aH]then az.Visible=false
aB.Visible=false return end else if aG.Value~=aH then az.Visible=false aB.Visible=false return end end end end aB.
Visible=true if not C.Searching then az.Visible=true aB:Resize()elseif not aD then C:UpdateSearch(C.SearchText)end end
function aB.SetupDependencies(aC,aD)for aE,aF in aD do assert(typeof(aF)=='table','Dependency should be a table.')
assert(aF[1]~=nil,'Dependency is missing element.')assert(aF[2]~=nil,'Dependency is missing expected value.')end aB.
Dependencies=aD aB:Update()end setmetatable(aB,at)table.insert(ax.DependencyGroupboxes,aB)table.insert(C.DependencyBoxes
,aB)return aB end at.__index=au at.__namecall=function(av,aw,...)return au[aw](...)end end function C.SetFont(au,av)if
typeof(av)=='EnumItem'then av=Font.fromEnum(av)end C.Scheme.Font=av C:UpdateColorsUsingRegistry()end function C.
SetNotifySide(au,av:string)C.NotifySide=av if av:lower()=='left'then _.AnchorPoint=Vector2.new(0,0)_.Position=UDim2.
fromOffset(6,6)aj.HorizontalAlignment=Enum.HorizontalAlignment.Left else _.AnchorPoint=Vector2.new(1,0)_.Position=UDim2.
new(1,-6,0,6)aj.HorizontalAlignment=Enum.HorizontalAlignment.Right end end function C.Notify(au,...)local av,aw={},
select(1,...)if typeof(aw)=='table'then av.Title=tostring(aw.Title)av.Description=tostring(aw.Description)av.Time=aw.
Time or 5 av.SoundId=aw.SoundId av.Steps=aw.Steps av.Persist=aw.Persist else av.Description=tostring(aw)av.Time=select(2
,...)or 5 av.SoundId=select(3,...)end av.Destroyed=false local ax,ay=false if typeof(av.Time)=='Instance'then ay=av.Time
.Destroying:Connect(function()ax=true ay:Disconnect()ay=nil end)end local az=af('Frame',{AutomaticSize=Enum.
AutomaticSize.Y,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Visible=false,Parent=_})local aA=af('Frame',{
AutomaticSize=Enum.AutomaticSize.Y,BackgroundColor3='MainColor',Position=C.NotifySide:lower()=='left'and UDim2.new(-1,-8
,0,-2)or UDim2.new(1,8,0,-2),Size=UDim2.fromScale(1,1),ZIndex=5,Parent=az})af('UICorner',{CornerRadius=UDim.new(0,C.
CornerRadius),Parent=aA})af('UIListLayout',{Padding=UDim.new(0,4),Parent=aA})af('UIPadding',{PaddingBottom=UDim.new(0,8)
,PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,8),Parent=aA})C:AddOutline(aA)local aB,aC,aD
,aE,aF=0,0 if av.Title then aD=af('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.
fromScale(0,0),Text=av.Title,TextSize=15,TextXAlignment=Enum.TextXAlignment.Left,TextWrapped=true,Parent=aA})end if av.
Description then aE=af('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.fromScale(0,0
),Text=av.Description,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,TextWrapped=true,Parent=aA})end function av.
Resize(aG)if aD then local aH,aI=C:GetTextBounds(aD.Text,aD.FontFace,aD.TextSize,(_.AbsoluteSize.X/C.DPIScale)-24)aD.
Size=UDim2.fromOffset(0,aI)aB=aH end if aE then local aH,aI=C:GetTextBounds(aE.Text,aE.FontFace,aE.TextSize,(_.
AbsoluteSize.X/C.DPIScale)-24)aE.Size=UDim2.fromOffset(0,aI)aC=aH end az.Size=UDim2.fromOffset(math.max(aB,aC)+24,0)end
function av.ChangeTitle(aG,aH)if aD then av.Title=tostring(aH)aD.Text=av.Title av:Resize()end end function av.
ChangeDescription(aG,aH)if aE then av.Description=tostring(aH)aE.Text=av.Description av:Resize()end end function av.
ChangeStep(aG,aH)if aF and av.Steps then aH=math.clamp(aH or 0,0,av.Steps)aF.Size=UDim2.fromScale(aH/av.Steps,1)end end
function av.Destroy(aG)av.Destroyed=true if typeof(av.Time)=='Instance'then pcall(av.Time.Destroy,av.Time)end if ay then
ay:Disconnect()end n:Create(aA,C.NotifyTweenInfo,{Position=C.NotifySide:lower()=='left'and UDim2.new(-1,-8,0,-2)or UDim2
.new(1,8,0,-2)}):Play()task.delay(C.NotifyTweenInfo.Time,function()C.Notifications[az]=nil az:Destroy()end)end av:
Resize()local aG=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,7),Visible=(av.Persist~=true and typeof(av.
Time)~='Instance')or typeof(av.Steps)=='number',Parent=aA})local aH=af('Frame',{BackgroundColor3='BackgroundColor',
BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromOffset(0,3),Size=UDim2.new(1,0,0,2),Parent=aG})aF=af(
'Frame',{BackgroundColor3='AccentColor',Size=UDim2.fromScale(1,1),Parent=aH})if typeof(av.Time)=='Instance'then aF.Size=
UDim2.fromScale(0,1)end if av.SoundId then local aI=av.SoundId if typeof(aI)=='number'then aI=string.format(
'rbxassetid://%d',aI)end af('Sound',{SoundId=aI,Volume=3,PlayOnRemove=true,Parent=j}):Destroy()end C.Notifications[az]=
av az.Visible=true n:Create(aA,C.NotifyTweenInfo,{Position=UDim2.fromOffset(0,0)}):Play()task.delay(C.NotifyTweenInfo.
Time,function()if av.Persist then return elseif typeof(av.Time)=='Instance'then repeat task.wait()until ax or av.
Destroyed else n:Create(aF,TweenInfo.new(av.Time,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut),{Size=UDim2.
fromScale(0,1)}):Play()task.wait(av.Time)end if not av.Destroyed then av:Destroy()end end)return av end function C.
CreateWindow(au,av)av=C:Validate(av,D.Window)local aw:Vector2=workspace.CurrentCamera.ViewportSize if i:IsStudio()and aw
.X<=5 and aw.Y<=5 then repeat aw=workspace.CurrentCamera.ViewportSize task.wait()until aw.X>5 and aw.Y>5 end local ax,ay
=aw.X-64,aw.Y-64 C.OriginalMinSize=Vector2.new(math.min(C.OriginalMinSize.X,ax),math.min(C.OriginalMinSize.Y,ay))C.
MinSize=C.OriginalMinSize av.Size=UDim2.fromOffset(math.clamp(av.Size.X.Offset,C.MinSize.X,ax),math.clamp(av.Size.Y.
Offset,C.MinSize.Y,ay))if typeof(av.Font)=='EnumItem'then av.Font=Font.fromEnum(av.Font)end av.CornerRadius=math.min(av.
CornerRadius,20)if av.Compact~=nil then av.SidebarCompacted=av.Compact end if av.SidebarMinWidth~=nil then av.
MinSidebarWidth=av.SidebarMinWidth end av.MinSidebarWidth=math.max(64,av.MinSidebarWidth)av.SidebarCompactWidth=math.
max(48,av.SidebarCompactWidth)av.SidebarCollapseThreshold=math.clamp(av.SidebarCollapseThreshold,0.1,0.9)av.
CompactWidthActivation=math.max(48,av.CompactWidthActivation)C.CornerRadius=av.CornerRadius C:SetNotifySide(av.
NotifySide)C.ShowCustomCursor=av.ShowCustomCursor C.Scheme.Font=av.Font C.ToggleKeybind=av.ToggleKeybind C.GlobalSearch=
av.GlobalSearch local az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO=av.SearchbarSize==UDim2.fromScale(1,1),math.ceil(
av.Size.X.Offset*0.3),(av.SidebarCompacted)local aP=aA do C.KeybindFrame,C.KeybindContainer=C:AddDraggableMenu'Keybinds'
C.KeybindFrame.AnchorPoint=Vector2.new(0,0.5)C.KeybindFrame.Position=UDim2.new(0,6,0.5,0)C.KeybindFrame.Visible=false aC
=af('TextButton',{BackgroundColor3=function()return C:GetBetterColor(C.Scheme.BackgroundColor,-1)end,Name='Main',Text=''
,Position=av.Position,Size=av.Size,Visible=false,Parent=ai})af('UICorner',{CornerRadius=UDim.new(0,av.CornerRadius),
Parent=aC})table.insert(C.Scales,af('UIScale',{Parent=aC}))C:AddOutline(aC)C:MakeLine(aC,{Position=UDim2.fromOffset(0,48
),Size=UDim2.new(1,0,0,1)})aD=af('Frame',{BackgroundColor3='OutlineColor',Position=UDim2.fromOffset(aA,0),Size=UDim2.
new(0,1,1,-21),Parent=aC})if av.BackgroundImage then af('ImageLabel',{Image=av.BackgroundImage,Position=UDim2.fromScale(
0,0),Size=UDim2.fromScale(1,1),ScaleType=Enum.ScaleType.Stretch,ZIndex=999,BackgroundTransparency=1,ImageTransparency=
0.75,Parent=aC})end if av.Center then aC.Position=UDim2.new(0.5,-aC.Size.X.Offset/2,0.5,-aC.Size.Y.Offset/2)end local aQ
=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,48),Parent=aC})C:MakeDraggable(aC,aQ,false,true)aE=af('Frame'
,{BackgroundTransparency=1,Size=UDim2.new(0,aA,1,0),Parent=aQ})af('UIListLayout',{FillDirection=Enum.FillDirection.
Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Center,VerticalAlignment=Enum.VerticalAlignment.Center,Padding=
UDim.new(0,6),Parent=aE})if av.Icon then aG=af('ImageLabel',{Image=if tonumber(av.Icon)then string.format(
'rbxassetid://%d',av.Icon)else av.Icon,Size=av.IconSize,Parent=aE})else aG=af('TextLabel',{BackgroundTransparency=1,Size
=av.IconSize,Text=av.Title:sub(1,1),TextScaled=true,Visible=false,Parent=aE})end local aR=C:GetTextBounds(av.Title,C.
Scheme.Font,20,aE.AbsoluteSize.X-(av.Icon and av.IconSize.X.Offset+6 or 0)-12)aF=af('TextLabel',{BackgroundTransparency=
1,Size=UDim2.new(0,aR,1,0),Text=av.Title,TextSize=20,Parent=aE})aH=af('Frame',{AnchorPoint=Vector2.new(1,0.5),
BackgroundTransparency=1,Position=UDim2.new(1,-49,0.5,0),Size=UDim2.new(1,-aA-57-1,1,-16),Parent=aQ})af('UIListLayout',{
FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Left,VerticalAlignment=Enum.
VerticalAlignment.Center,Padding=UDim.new(0,8),Parent=aH})aJ=af('Frame',{Size=UDim2.fromScale(av.DisableSearch and 1 or
0.5,1),Visible=false,BackgroundTransparency=1,Parent=aH})af('UIFlexItem',{FlexMode=Enum.UIFlexMode.Grow,Parent=aJ})af(
'UIListLayout',{FillDirection=Enum.FillDirection.Vertical,HorizontalAlignment=Enum.HorizontalAlignment.Left,
VerticalAlignment=Enum.VerticalAlignment.Center,Parent=aJ})af('UIPadding',{PaddingBottom=UDim.new(0,8),PaddingLeft=UDim.
new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,8),Parent=aJ})aK=af('TextLabel',{BackgroundTransparency=1,Size
=UDim2.fromScale(1,0),AutomaticSize=Enum.AutomaticSize.Y,Text='',TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,
Parent=aJ})aL=af('TextLabel',{BackgroundTransparency=1,Size=UDim2.fromScale(1,0),AutomaticSize=Enum.AutomaticSize.Y,Text
='',TextWrapped=true,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,TextTransparency=0.5,Parent=aJ})aI=af('TextBox'
,{BackgroundColor3='MainColor',PlaceholderText='Search',Size=av.SearchbarSize,TextScaled=true,Visible=not(av.
DisableSearch or false),Parent=aH})af('UIFlexItem',{FlexMode=Enum.UIFlexMode.Shrink,Parent=aI})af('UICorner',{
CornerRadius=UDim.new(0,av.CornerRadius),Parent=aI})af('UIPadding',{PaddingBottom=UDim.new(0,8),PaddingLeft=UDim.new(0,8
),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,8),Parent=aI})af('UIStroke',{Color='OutlineColor',Parent=aI})local aS
=C:GetIcon'search'if aS then af('ImageLabel',{Image=aS.Url,ImageColor3='FontColor',ImageRectOffset=aS.ImageRectOffset,
ImageRectSize=aS.ImageRectSize,ImageTransparency=0.5,Size=UDim2.fromScale(1,1),SizeConstraint=Enum.SizeConstraint.
RelativeYY,Parent=aI})end if ar then af('ImageLabel',{AnchorPoint=Vector2.new(1,0.5),Image=ar.Url,ImageColor3=
'OutlineColor',ImageRectOffset=ar.ImageRectOffset,ImageRectSize=ar.ImageRectSize,Position=UDim2.new(1,-10,0.5,0),Size=
UDim2.fromOffset(28,28),SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=aQ})end local aT=af('Frame',{AnchorPoint=
Vector2.new(0,1),BackgroundColor3=function()return C:GetBetterColor(C.Scheme.BackgroundColor,4)end,Position=UDim2.
fromScale(0,1),Size=UDim2.new(1,0,0,av.CornerRadius*2),Parent=aC})C:MakeLine(aC,{AnchorPoint=Vector2.new(0,1),Position=
UDim2.new(0,0,1,-20),Size=UDim2.new(1,0,0,1)})local aU=af('Frame',{AnchorPoint=Vector2.new(0,1),BackgroundTransparency=1
,Position=UDim2.fromScale(0,1),Size=UDim2.new(1,0,0,20),Parent=aC})af('UICorner',{CornerRadius=UDim.new(0,av.
CornerRadius),Parent=aT})af('TextLabel',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Text=av.Footer,TextSize=14,
TextTransparency=0.5,Parent=aU})if av.Resizable then aM=af('TextButton',{AnchorPoint=Vector2.new(1,0),
BackgroundTransparency=1,Position=UDim2.new(1,-av.CornerRadius/4,0,0),Size=UDim2.fromScale(1,1),SizeConstraint=Enum.
SizeConstraint.RelativeYY,Text='',Parent=aU})C:MakeResizable(aC,aM,function()for aV,aW in C.Tabs do aW:Resize(true)end
end)end af('ImageLabel',{Image=ap and ap.Url or'',ImageColor3='FontColor',ImageRectOffset=ap and ap.ImageRectOffset or
Vector2.zero,ImageRectSize=ap and ap.ImageRectSize or Vector2.zero,ImageTransparency=0.5,Position=UDim2.fromOffset(2,2),
Size=UDim2.new(1,-4,1,-4),Parent=aM})aN=af('ScrollingFrame',{AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundColor3=
'BackgroundColor',CanvasSize=UDim2.fromScale(0,0),Position=UDim2.fromOffset(0,49),ScrollBarThickness=0,Size=UDim2.new(0,
aA,1,-70),Parent=aC})af('UIListLayout',{Parent=aN})aO=af('Frame',{AnchorPoint=Vector2.new(1,0),BackgroundColor3=function
()return C:GetBetterColor(C.Scheme.BackgroundColor,1)end,Name='Container',Position=UDim2.new(1,0,0,49),Size=UDim2.new(1,
-aA-1,1,-70),Parent=aC})af('UIPadding',{PaddingBottom=UDim.new(0,0),PaddingLeft=UDim.new(0,6),PaddingRight=UDim.new(0,6)
,PaddingTop=UDim.new(0,0),Parent=aO})end local aQ={}function aQ.ChangeTitle(aR,aS)assert(typeof(aS)=='string',
'Expected string for title got: '..typeof(aS))aF.Text=aS av.Title=aS end local function aR()aB=aQ:GetSidebarWidth()==av.
SidebarCompactWidth if av.DisableCompactingSnap then aB=aQ:GetSidebarWidth()<=av.CompactWidthActivation end aF.Visible=
not aB if not av.Icon then aG.Visible=aB end for aS,aT in C.TabButtons do if not aT.Icon then continue end aT.Label.
Visible=not aB aT.Padding.PaddingBottom=UDim.new(0,aB and 6 or 11)aT.Padding.PaddingLeft=UDim.new(0,aB and 6 or 12)aT.
Padding.PaddingRight=UDim.new(0,aB and 6 or 12)aT.Padding.PaddingTop=UDim.new(0,aB and 6 or 11)aT.Icon.SizeConstraint=aB
and Enum.SizeConstraint.RelativeXY or Enum.SizeConstraint.RelativeYY end end function aQ.IsSidebarCompacted(aS)return aB
end function aQ.SetCompact(aS,aT)aQ:SetSidebarWidth(aT and av.SidebarCompactWidth or aP)end function aQ.GetSidebarWidth(
aS)return aN.Size.X.Offset end function aQ.SetSidebarWidth(aS,aT)aT=math.clamp(aT,48,aC.Size.X.Offset-av.
MinContainerWidth-1)aD.Position=UDim2.fromOffset(aT,0)aE.Size=UDim2.new(0,aT,1,0)aH.Size=UDim2.new(1,-aT-57-1,1,-16)aN.
Size=UDim2.new(0,aT,1,-70)aO.Size=UDim2.new(1,-aT-1,1,-70)if av.EnableCompacting then aR()end if not aB then aP=aT end
end function aQ.ShowTabInfo(aS,aT,aU)aK.Text=aT aL.Text=aU if az then aI.Size=UDim2.fromScale(0.5,1)end aJ.Visible=true
end function aQ.HideTabInfo(aS)aJ.Visible=false if az then aI.Size=UDim2.fromScale(1,1)end end function aQ.AddTab(aS,...
)local aT,aU,aV if select('#',...)==1 and typeof(...)=='table'then local aW=select(1,...)aT=aW.Name or'Tab'aU=aW.Icon aV
=aW.Description else aT=select(1,...)aU=select(2,...)aV=select(3,...)end local aW:TextButton,aX,aY,aZ,a_,a0 aU=C:
GetCustomIcon(aU)do aW=af('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,Size=UDim2.new(1,0,0,40),
Text='',Parent=aN})local a1=af('UIPadding',{PaddingBottom=UDim.new(0,aB and 6 or 11),PaddingLeft=UDim.new(0,aB and 6 or
12),PaddingRight=UDim.new(0,aB and 6 or 12),PaddingTop=UDim.new(0,aB and 6 or 11),Parent=aW})aX=af('TextLabel',{
BackgroundTransparency=1,Position=UDim2.fromOffset(30,0),Size=UDim2.new(1,-30,1,0),Text=aT,TextSize=16,TextTransparency=
0.5,TextXAlignment=Enum.TextXAlignment.Left,Visible=not aB,Parent=aW})if aU then aY=af('ImageLabel',{Image=aU.Url,
ImageColor3=aU.Custom and'WhiteColor'or'AccentColor',ImageRectOffset=aU.ImageRectOffset,ImageRectSize=aU.ImageRectSize,
ImageTransparency=0.5,ScaleType=Enum.ScaleType.Fit,Size=UDim2.fromScale(1,1),SizeConstraint=aB and Enum.SizeConstraint.
RelativeXY or Enum.SizeConstraint.RelativeYY,Parent=aW})end table.insert(C.TabButtons,{Label=aX,Padding=a1,Icon=aY})aZ=
af('Frame',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Visible=false,Parent=aO})a_=af('ScrollingFrame',{
AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),
ScrollBarImageTransparency=1,ScrollBarThickness=0,Size=UDim2.new(0.5,-3,1,0),Parent=aZ})af('UIListLayout',{Padding=UDim.
new(0,2),Parent=a_})af('UIPadding',{PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=UDim.new(0,2),
PaddingTop=UDim.new(0,2),Parent=a_})do af('Frame',{BackgroundTransparency=1,LayoutOrder=-1,Parent=a_})af('Frame',{
BackgroundTransparency=1,LayoutOrder=1,Parent=a_})end a0=af('ScrollingFrame',{AnchorPoint=Vector2.new(1,0),
AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),Position=UDim2.
fromScale(1,0),ScrollBarImageTransparency=1,ScrollBarThickness=0,Size=UDim2.new(0.5,-3,1,0),Parent=aZ})af('UIListLayout'
,{Padding=UDim.new(0,2),Parent=a0})af('UIPadding',{PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=
UDim.new(0,2),PaddingTop=UDim.new(0,2),Parent=a0})do af('Frame',{BackgroundTransparency=1,LayoutOrder=-1,Parent=a0})af(
'Frame',{BackgroundTransparency=1,LayoutOrder=1,Parent=a0})end end local a1,a2,a3,a4,a5,a6,a7,a8=(af('Frame',{
AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,Position=UDim2.fromOffset(0,7),Size=UDim2.fromScale(1,0),
Visible=false,Parent=aZ}))do a2=af('Frame',{BackgroundColor3='BackgroundColor',Position=UDim2.fromOffset(2,0),Size=UDim2
.new(1,-5,0,0),Parent=a1})af('UICorner',{CornerRadius=UDim.new(0,av.CornerRadius),Parent=a2})a3,a4=C:AddOutline(a2)a5=
af('ScrollingFrame',{BackgroundTransparency=1,BorderSizePixel=0,Size=UDim2.fromScale(1,1),CanvasSize=UDim2.new(0,0,0,0),
ScrollBarThickness=3,ScrollingDirection=Enum.ScrollingDirection.Y,Parent=a2})af('UIPadding',{PaddingBottom=UDim.new(0,4)
,PaddingLeft=UDim.new(0,6),PaddingRight=UDim.new(0,6),PaddingTop=UDim.new(0,4),Parent=a5})a6=af('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,-4,0,14),Text='',TextColor3=Color3.fromRGB(255,50,50),TextSize=14,
TextXAlignment=Enum.TextXAlignment.Left,Parent=a5})a7=af('UIStroke',{ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual,
Color=Color3.fromRGB(169,0,0),LineJoinMode=Enum.LineJoinMode.Miter,Parent=a6})a8=af('TextLabel',{BackgroundTransparency=
1,Position=UDim2.fromOffset(0,16),Size=UDim2.new(1,-4,0,0),Text='',TextSize=14,TextWrapped=true,Parent=a5,TextXAlignment
=Enum.TextXAlignment.Left,TextYAlignment=Enum.TextYAlignment.Top})af('UIStroke',{ApplyStrokeMode=Enum.ApplyStrokeMode.
Contextual,Color='DarkColor',LineJoinMode=Enum.LineJoinMode.Miter,Parent=a8})end local a9={Groupboxes={},Tabboxes={},
DependencyGroupboxes={},Sides={a_,a0},WarningBox={IsNormal=false,LockSize=false,Visible=false,Title='WARNING',Text=''}}
function a9.UpdateWarningBox(ba,bb)if typeof(bb.IsNormal)=='boolean'then a9.WarningBox.IsNormal=bb.IsNormal end if
typeof(bb.LockSize)=='boolean'then a9.WarningBox.LockSize=bb.LockSize end if typeof(bb.Visible)=='boolean'then a9.
WarningBox.Visible=bb.Visible end if typeof(bb.Title)=='string'then a9.WarningBox.Title=bb.Title end if typeof(bb.Text)
=='string'then a9.WarningBox.Text=bb.Text end a1.Visible=a9.WarningBox.Visible a6.Text=a9.WarningBox.Title a8.Text=a9.
WarningBox.Text a9:Resize(true)a2.BackgroundColor3=a9.WarningBox.IsNormal==true and C.Scheme.BackgroundColor or Color3.
fromRGB(127,0,0)a4.Color=a9.WarningBox.IsNormal==true and C.Scheme.DarkColor or Color3.fromRGB(85,0,0)a3.Color=a9.
WarningBox.IsNormal==true and C.Scheme.OutlineColor or Color3.fromRGB(255,50,50)a6.TextColor3=a9.WarningBox.IsNormal==
true and C.Scheme.FontColor or Color3.fromRGB(255,50,50)a7.Color=a9.WarningBox.IsNormal==true and C.Scheme.OutlineColor
or Color3.fromRGB(169,0,0)if not C.Registry[a2]then C:AddToRegistry(a2,{})end if not C.Registry[a4]then C:AddToRegistry(
a4,{})end if not C.Registry[a3]then C:AddToRegistry(a3,{})end if not C.Registry[a6]then C:AddToRegistry(a6,{})end if not
C.Registry[a7]then C:AddToRegistry(a7,{})end C.Registry[a2].BackgroundColor3=function()return a9.WarningBox.IsNormal==
true and C.Scheme.BackgroundColor or Color3.fromRGB(127,0,0)end C.Registry[a4].Color=function()return a9.WarningBox.
IsNormal==true and C.Scheme.DarkColor or Color3.fromRGB(85,0,0)end C.Registry[a3].Color=function()return a9.WarningBox.
IsNormal==true and C.Scheme.OutlineColor or Color3.fromRGB(255,50,50)end C.Registry[a6].TextColor3=function()return a9.
WarningBox.IsNormal==true and C.Scheme.FontColor or Color3.fromRGB(255,50,50)end C.Registry[a7].Color=function()return
a9.WarningBox.IsNormal==true and C.Scheme.OutlineColor or Color3.fromRGB(169,0,0)end end function a9.RefreshSides(ba)
local bb=a1.Visible and a2.Size.Y.Offset+8 or 0 for bc,bd in a9.Sides do bd.Position=UDim2.new(bd.Position.X.Scale,0,0,
bb)bd.Size=UDim2.new(0.5,-3,1,-bb)end end function a9.Resize(ba,bb:boolean?)if bb then local bc,bd,be=math.floor(aZ.
AbsoluteSize.Y/3.25),C:GetTextBounds(a8.Text,C.Scheme.Font,a8.TextSize,a8.AbsoluteSize.X)local bf=24+be if a9.WarningBox
.LockSize==true and bf>=bc then a5.CanvasSize=UDim2.fromOffset(0,bf)bf=bc else a5.CanvasSize=UDim2.fromOffset(0,0)end a8
.Size=UDim2.new(1,-4,0,be)a2.Size=UDim2.new(1,-5,0,bf+4)end a9:RefreshSides()end function a9.AddGroupbox(ba,bb)local bc=
af('Frame',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Parent=bb.Side==1 and
a_ or a0})af('UIListLayout',{Padding=UDim.new(0,6),Parent=bc})af('UIPadding',{PaddingBottom=UDim.new(0,4),PaddingTop=
UDim.new(0,4),Parent=bc})local bd,be,bf,bg do bd=af('Frame',{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,0
),Parent=bc})af('UICorner',{CornerRadius=UDim.new(0,av.CornerRadius),Parent=bd})C:AddOutline(bd)C:MakeLine(bd,{Position=
UDim2.fromOffset(0,34),Size=UDim2.new(1,0,0,1)})local bh=C:GetCustomIcon(bb.IconName)if bh then af('ImageLabel',{Image=
bh.Url,ImageColor3=bh.Custom and'WhiteColor'or'AccentColor',ImageRectOffset=bh.ImageRectOffset,ImageRectSize=bh.
ImageRectSize,Position=UDim2.fromOffset(6,6),Size=UDim2.fromOffset(22,22),Parent=bd})end be=af('TextLabel',{
BackgroundTransparency=1,Position=UDim2.fromOffset(bh and 24 or 0,0),Size=UDim2.new(1,0,0,34),Text=bb.Name,TextSize=15,
TextXAlignment=Enum.TextXAlignment.Left,Parent=bd})af('UIPadding',{PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12
),Parent=be})bf=af('Frame',{BackgroundTransparency=1,Position=UDim2.fromOffset(0,35),Size=UDim2.new(1,0,1,-35),Parent=bd
})bg=af('UIListLayout',{Padding=UDim.new(0,8),Parent=bf})af('UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.
new(0,7),PaddingRight=UDim.new(0,7),PaddingTop=UDim.new(0,7),Parent=bf})end local bh={BoxHolder=bc,Holder=bd,Container=
bf,Tab=a9,DependencyBoxes={},Elements={}}function bh.Resize(bi)bd.Size=UDim2.new(1,0,0,(bg.AbsoluteContentSize.Y/C.
DPIScale)+49)end setmetatable(bh,at)bh:Resize()a9.Groupboxes[bb.Name]=bh return bh end function a9.AddLeftGroupbox(ba,bb
,bc)return a9:AddGroupbox{Side=1,Name=bb,IconName=bc}end function a9.AddRightGroupbox(ba,bb,bc)return a9:AddGroupbox{
Side=2,Name=bb,IconName=bc}end function a9.AddTabbox(ba,bb)local bc=af('Frame',{AutomaticSize=Enum.AutomaticSize.Y,
BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Parent=bb.Side==1 and a_ or a0})af('UIListLayout',{Padding=UDim.new(0
,6),Parent=bc})af('UIPadding',{PaddingBottom=UDim.new(0,4),PaddingTop=UDim.new(0,4),Parent=bc})local bd,be do bd=af(
'Frame',{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,0),Parent=bc})af('UICorner',{CornerRadius=UDim.new(0,
av.CornerRadius),Parent=bd})C:AddOutline(bd)be=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,34),Parent=bd})
af('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalFlex=Enum.UIFlexAlignment.Fill,Parent=be})end
local bf={ActiveTab=nil,BoxHolder=bc,Holder=bd,Tabs={}}function bf.AddTab(bg,bh)local bi=af('TextButton',{
BackgroundColor3='MainColor',BackgroundTransparency=0,Size=UDim2.fromOffset(0,34),Text=bh,TextSize=15,TextTransparency=
0.5,Parent=be})local bj,bk=C:MakeLine(bi,{AnchorPoint=Vector2.new(0,1),Position=UDim2.new(0,0,1,1),Size=UDim2.new(1,0,0,
1)}),af('Frame',{BackgroundTransparency=1,Position=UDim2.fromOffset(0,35),Size=UDim2.new(1,0,1,-35),Visible=false,Parent
=bd})local bl=af('UIListLayout',{Padding=UDim.new(0,8),Parent=bk})af('UIPadding',{PaddingBottom=UDim.new(0,7),
PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,7),PaddingTop=UDim.new(0,7),Parent=bk})local bm={ButtonHolder=bi,
Container=bk,Tab=a9,Elements={},DependencyBoxes={}}function bm.Show(bn)if bf.ActiveTab then bf.ActiveTab:Hide()end bi.
BackgroundTransparency=1 bi.TextTransparency=0 bj.Visible=false bk.Visible=true bf.ActiveTab=bm bm:Resize()end function
bm.Hide(bn)bi.BackgroundTransparency=0 bi.TextTransparency=0.5 bj.Visible=true bk.Visible=false bf.ActiveTab=nil end
function bm.Resize(bn)if bf.ActiveTab~=bm then return end bd.Size=UDim2.new(1,0,0,(bl.AbsoluteContentSize.Y/C.DPIScale)+
49)end if not bf.ActiveTab then bm:Show()end bi.MouseButton1Click:Connect(bm.Show)setmetatable(bm,at)bf.Tabs[bh]=bm
return bm end if bb.Name then a9.Tabboxes[bb.Name]=bf else table.insert(a9.Tabboxes,bf)end return bf end function a9.
AddLeftTabbox(ba,bb)return a9:AddTabbox{Side=1,Name=bb}end function a9.AddRightTabbox(ba,bb)return a9:AddTabbox{Side=2,
Name=bb}end function a9.Hover(ba,bb)if C.ActiveTab==a9 then return end n:Create(aX,C.TweenInfo,{TextTransparency=bb and
0.25 or 0.5}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=bb and 0.25 or 0.5}):Play()end end function a9
.Show(ba)if C.ActiveTab then C.ActiveTab:Hide()end n:Create(aW,C.TweenInfo,{BackgroundTransparency=0}):Play()n:Create(aX
,C.TweenInfo,{TextTransparency=0}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=0}):Play()end if aV then
aQ:ShowTabInfo(aT,aV)end aZ.Visible=true a9:RefreshSides()C.ActiveTab=a9 if C.Searching then C:UpdateSearch(C.SearchText
)end end function a9.Hide(ba)n:Create(aW,C.TweenInfo,{BackgroundTransparency=1}):Play()n:Create(aX,C.TweenInfo,{
TextTransparency=0.5}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=0.5}):Play()end aZ.Visible=false aQ:
HideTabInfo()C.ActiveTab=nil end if not C.ActiveTab then a9:Show()end aW.MouseEnter:Connect(function()a9:Hover(true)end)
aW.MouseLeave:Connect(function()a9:Hover(false)end)aW.MouseButton1Click:Connect(a9.Show)C.Tabs[aT]=a9 return a9 end
function aQ.AddKeyTab(aS,...)local aT,aU,aV if select('#',...)==1 and typeof(...)=='table'then local aW=select(1,...)aT=
aW.Name or'Tab'aU=aW.Icon aV=aW.Description else aT=select(1,...)or'Tab'aU=select(2,...)aV=select(3,...)end aU=aU or
'key'local aW:TextButton,aX,aY,aZ aU=if aU=='key'then aq else C:GetCustomIcon(aU)do aW=af('TextButton',{BackgroundColor3
='MainColor',BackgroundTransparency=1,Size=UDim2.new(1,0,0,40),Text='',Parent=aN})local a_=af('UIPadding',{PaddingBottom
=UDim.new(0,aB and 6 or 11),PaddingLeft=UDim.new(0,aB and 6 or 12),PaddingRight=UDim.new(0,aB and 6 or 12),PaddingTop=
UDim.new(0,aB and 6 or 11),Parent=aW})aX=af('TextLabel',{BackgroundTransparency=1,Position=UDim2.fromOffset(30,0),Size=
UDim2.new(1,-30,1,0),Text=aT,TextSize=16,TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Left,Visible=not aB,
Parent=aW})if aU then aY=af('ImageLabel',{Image=aU.Url,ImageColor3=aU.Custom and'WhiteColor'or'AccentColor',
ImageRectOffset=aU.ImageRectOffset,ImageRectSize=aU.ImageRectSize,ImageTransparency=0.5,Size=UDim2.fromScale(1,1),
SizeConstraint=aB and Enum.SizeConstraint.RelativeXY or Enum.SizeConstraint.RelativeYY,Parent=aW})end table.insert(C.
TabButtons,{Label=aX,Padding=a_,Icon=aY})aZ=af('ScrollingFrame',{AutomaticCanvasSize=Enum.AutomaticSize.Y,
BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),ScrollBarThickness=0,Size=UDim2.fromScale(1,1),Visible=false,
Parent=aO})af('UIListLayout',{HorizontalAlignment=Enum.HorizontalAlignment.Center,Padding=UDim.new(0,8),
VerticalAlignment=Enum.VerticalAlignment.Center,Parent=aZ})af('UIPadding',{PaddingLeft=UDim.new(0,1),PaddingRight=UDim.
new(0,1),Parent=aZ})end local a_={Elements={},IsKeyTab=true}function a_.AddKeyBox(a0,a1)assert(typeof(a1)=='function',
'Callback must be a function')local a2=af('Frame',{BackgroundTransparency=1,Size=UDim2.new(0.75,0,0,21),Parent=aZ})local
a3=af('TextBox',{BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,PlaceholderText='Key',Size=
UDim2.new(1,-71,1,0),TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=a2})af('UIPadding',{PaddingLeft=UDim.
new(0,8),PaddingRight=UDim.new(0,8),Parent=a3})local a4=af('TextButton',{AnchorPoint=Vector2.new(1,0),BackgroundColor3=
'MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(1,0),Size=UDim2.new(0,63,1,0),Text=
'Execute',TextSize=14,Parent=a2})a4.InputBegan:Connect(function(a5)if not L(a5)then return end if not C:
MouseIsOverFrame(a4,a5.Position)then return end a1(a3.Text)end)end function a_.RefreshSides(a0)end function a_.Resize(a0
)end function a_.Hover(a0,a1)if C.ActiveTab==a_ then return end n:Create(aX,C.TweenInfo,{TextTransparency=a1 and 0.25 or
0.5}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=a1 and 0.25 or 0.5}):Play()end end function a_.Show(a0
)if C.ActiveTab then C.ActiveTab:Hide()end n:Create(aW,C.TweenInfo,{BackgroundTransparency=0}):Play()n:Create(aX,C.
TweenInfo,{TextTransparency=0}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=0}):Play()end aZ.Visible=
true if aV then aQ:ShowTabInfo(aT,aV)end a_:RefreshSides()C.ActiveTab=a_ if C.Searching then C:UpdateSearch(C.SearchText
)end end function a_.Hide(a0)n:Create(aW,C.TweenInfo,{BackgroundTransparency=1}):Play()n:Create(aX,C.TweenInfo,{
TextTransparency=0.5}):Play()if aY then n:Create(aY,C.TweenInfo,{ImageTransparency=0.5}):Play()end aZ.Visible=false aQ:
HideTabInfo()C.ActiveTab=nil end if not C.ActiveTab then a_:Show()end aW.MouseEnter:Connect(function()a_:Hover(true)end)
aW.MouseLeave:Connect(function()a_:Hover(false)end)aW.MouseButton1Click:Connect(a_.Show)a_.Container=aZ setmetatable(a_,
at)C.Tabs[aT]=a_ return a_ end function C.Toggle(aS,aT:boolean?)if typeof(aT)=='boolean'then C.Toggled=aT else C.Toggled
=not C.Toggled end aC.Visible=C.Toggled if av.UnlockMouseWhileOpen then X.Modal=C.Toggled end if C.Toggled and not C.
IsMobile then local aU=k.MouseIconEnabled pcall(function()i:UnbindFromRenderStep'ShowCursor'end)i:BindToRenderStep(
'ShowCursor',Enum.RenderPriority.Last.Value,function()k.MouseIconEnabled=not C.ShowCustomCursor Y.Position=UDim2.
fromOffset(t.X,t.Y)Y.Visible=C.ShowCustomCursor if not(C.Toggled and ai and ai.Parent)then k.MouseIconEnabled=aU Y.
Visible=false i:UnbindFromRenderStep'ShowCursor'end end)elseif not C.Toggled then al.Visible=false for aU,aV in C.
Options do if aV.Type=='ColorPicker'then aV.ColorMenu:Close()aV.ContextMenu:Close()elseif aV.Type=='Dropdown'or aV.Type
=='KeyPicker'then aV.Menu:Close()end end end end if av.EnableSidebarResize then local aS,aT,aU,aV,aW,aX=(av.
MinSidebarWidth+av.SidebarCompactWidth)*av.SidebarCollapseThreshold,false,(af('TextButton',{AnchorPoint=Vector2.new(0.5,
0),BackgroundTransparency=1,Position=UDim2.fromScale(0.5,0),Size=UDim2.new(0,8,1,0),Text='',Parent=aD}))aU.MouseEnter:
Connect(function()n:Create(aD,C.TweenInfo,{BackgroundColor3=C:GetLighterColor(C.Scheme.OutlineColor)}):Play()end)aU.
MouseLeave:Connect(function()if aT then return end n:Create(aD,C.TweenInfo,{BackgroundColor3=C.Scheme.OutlineColor}):
Play()end)aU.InputBegan:Connect(function(aY:InputObject)if not L(aY)then return end C.CantDragForced=true aV=aY.Position
aW=aQ:GetSidebarWidth()aT=true aX=aY.Changed:Connect(function()if aY.UserInputState~=Enum.UserInputState.End then return
end C.CantDragForced=false n:Create(aD,C.TweenInfo,{BackgroundColor3=C.Scheme.OutlineColor}):Play()aT=false if aX and aX
.Connected then aX:Disconnect()aX=nil end end)end)C:GiveSignal(k.InputChanged:Connect(function(aY:InputObject)if not C.
Toggled or not(ai and ai.Parent)then aT=false if aX and aX.Connected then aX:Disconnect()aX=nil end return end if aT and
M(aY)then local aZ=aY.Position-aV local a_=aW+aZ.X if av.DisableCompactingSnap then aQ:SetSidebarWidth(a_)return end if
a_>aS then aQ:SetSidebarWidth(math.max(a_,av.MinSidebarWidth))else aQ:SetSidebarWidth(av.SidebarCompactWidth)end end end
))end if av.EnableCompacting and av.SidebarCompacted then aQ:SetSidebarWidth(av.SidebarCompactWidth)end if av.AutoShow
then task.spawn(C.Toggle)end if C.IsMobile then local aS,aT=C:AddDraggableButton('Toggle',function()C:Toggle()end,true),
C:AddDraggableButton('Lock',function(aS)C.CantDragForced=not C.CantDragForced aS:SetText(C.CantDragForced and'Unlock'or
'Lock')end,true)if av.MobileButtonsSide=='Right'then aS.Button.Position=UDim2.new(1,-6,0,6)aS.Button.AnchorPoint=Vector2
.new(1,0)aT.Button.Position=UDim2.new(1,-6,0,46)aT.Button.AnchorPoint=Vector2.new(1,0)else aT.Button.Position=UDim2.
fromOffset(6,46)end end aI:GetPropertyChangedSignal'Text':Connect(function()C:UpdateSearch(aI.Text)end)C:GiveSignal(k.
InputBegan:Connect(function(aS:InputObject)if C.Unloaded then return end if k:GetFocusedTextBox()then return end if(
typeof(C.ToggleKeybind)=='table'and C.ToggleKeybind.Type=='KeyPicker'and aS.KeyCode.Name==C.ToggleKeybind.Value)or aS.
KeyCode==C.ToggleKeybind then C.Toggle()end end))C:GiveSignal(k.WindowFocused:Connect(function()C.IsRobloxFocused=true
end))C:GiveSignal(k.WindowFocusReleased:Connect(function()C.IsRobloxFocused=false end))return aQ end local function au()
if C.Unloaded then return end local av,aw=T(),T(true)for ax,ay in x do if ay.Type=='Dropdown'and ay.SpecialType==
'Player'then ay:SetValues(ay.ExcludeLocalPlayer and aw or av)end end end local function av()if C.Unloaded then return
end local aw=U()for ax,ay in x do if ay.Type=='Dropdown'and ay.SpecialType=='Team'then ay:SetValues(aw)end end end C:
GiveSignal(h.PlayerAdded:Connect(au))C:GiveSignal(h.PlayerRemoving:Connect(au))C:GiveSignal(m.ChildAdded:Connect(av))C:
GiveSignal(m.ChildRemoved:Connect(av))o().Library=C return C end)()end,[6]=function()local aa,ab,ac=a(6)local ad return(
function(...)local ae,af,ag,ah=game:GetService'Players',game:GetService'TweenService',game:GetService'RunService',{}
local function ai()local aj=ae.LocalPlayer if not aj then return nil end local ak=aj:FindFirstChildOfClass'PlayerGui'if
not ak then ak=Instance.new'PlayerGui'ak.Name='PlayerGui'ak.Parent=aj end local al=Instance.new'ScreenGui'al.Name=
'ObsidianLoader'al.IgnoreGuiInset=true al.ResetOnSpawn=false local am=Instance.new'Frame'am.Name='Root'am.Size=UDim2.
fromScale(1,1)am.BackgroundColor3=Color3.fromRGB(8,10,16)am.BorderSizePixel=0 am.Parent=al local an=Instance.new'Frame'
an.Name='Vignette'an.Size=UDim2.fromScale(1,1)an.BackgroundTransparency=1 an.BorderSizePixel=0 an.Parent=am local ao=
Instance.new'UIGradient'ao.Color=ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(10,12,18)),
ColorSequenceKeypoint.new(1,Color3.fromRGB(4,6,10))}ao.Rotation=90 ao.Parent=an local ap=Instance.new'Frame'ap.Name=
'Panel'ap.Size=UDim2.fromScale(0.36,0.16)ap.Position=UDim2.fromScale(0.5,0.5)ap.AnchorPoint=Vector2.new(0.5,0.5)ap.
BackgroundColor3=Color3.fromRGB(14,18,26)ap.BorderSizePixel=0 ap.Parent=am local aq=Instance.new'UIStroke'aq.Color=
Color3.fromRGB(40,50,66)aq.Thickness=1 aq.Parent=ap local ar=Instance.new'UICorner'ar.CornerRadius=UDim.new(0,10)ar.
Parent=ap local as=Instance.new'TextLabel'as.Name='Title'as.BackgroundTransparency=1 as.Size=UDim2.new(1,-24,0,24)as.
Position=UDim2.new(0,12,0,12)as.Font=Enum.Font.GothamSemibold as.Text='Obsidian'as.TextSize=20 as.TextColor3=Color3.
fromRGB(230,235,245)as.TextXAlignment=Enum.TextXAlignment.Left as.Parent=ap local at=Instance.new'TextLabel'at.Name=
'Subtitle'at.BackgroundTransparency=1 at.Size=UDim2.new(1,-24,0,18)at.Position=UDim2.new(0,12,0,40)at.Font=Enum.Font.
Gotham at.Text='Initializing UI...'at.TextSize=14 at.TextColor3=Color3.fromRGB(160,175,195)at.TextXAlignment=Enum.
TextXAlignment.Left at.Parent=ap local au=Instance.new'Frame'au.Name='Bar'au.Size=UDim2.new(1,-24,0,6)au.Position=UDim2.
new(0,12,1,-20)au.BackgroundColor3=Color3.fromRGB(24,30,42)au.BorderSizePixel=0 au.Parent=ap local av=Instance.new
'UICorner'av.CornerRadius=UDim.new(1,0)av.Parent=au local aw=Instance.new'Frame'aw.Name='Fill'aw.Size=UDim2.new(0.05,0,1
,0)aw.BackgroundColor3=Color3.fromRGB(72,165,255)aw.BorderSizePixel=0 aw.Parent=au local ax=Instance.new'UICorner'ax.
CornerRadius=UDim.new(1,0)ax.Parent=aw al.Parent=ak return al,aw,at end function ah.show()local aj,ak,al=ai()if not aj
then return{destroy=function()end,setProgress=function()end}end local am,an=0.05,true local function ao(ap,aq)am=math.
clamp(ap,0.05,0.98)if aq then al.Text=aq end af:Create(ak,TweenInfo.new(0.2,Enum.EasingStyle.Quad,Enum.EasingDirection.
Out),{Size=UDim2.new(am,0,1,0)}):Play()end local ap ap=ag.Heartbeat:Connect(function()if not an then ap:Disconnect()
return end end)return{setProgress=ao,destroy=function()an=false af:Create(aj.Root,TweenInfo.new(0.25),{
BackgroundTransparency=1}):Play()task.wait(0.2)aj:Destroy()end}end return ah end)()end,[7]=function()local aa,ab,ac=a(7)
local ad return(function(...)local ae=ab.Parent return{ObsidianLibrary=ac(ae:WaitForChild'ObsidianLibrary'),Types=ac(ae:
WaitForChild'ObsidianLibrary.d'),ObsidianUI=ae:WaitForChild'ObsidianUI'}end)()end,[8]=function()local aa,ab,ac=a(8)local
ad return(function(...)local ae=(cloneref or clonereference or function(ae:any)return ae end)local af:CoreGui,ag:Players
,ah:RunService,ai:SoundService,aj:UserInputService,ak:TextService,al:Teams,am:TweenService,an,ao,ap=ae(game:GetService
'CoreGui'),ae(game:GetService'Players'),ae(game:GetService'RunService'),ae(game:GetService'SoundService'),ae(game:
GetService'UserInputService'),ae(game:GetService'TextService'),ae(game:GetService'Teams'),ae(game:GetService
'TweenService'),getgenv or function()return shared end,setclipboard or nil,protectgui or(syn and syn.protect_gui)or
function()end local aq,ar=gethui or function()return af end,ag.LocalPlayer or ag.PlayerAdded:Wait()local as,at,au,av,aw,
ax,ay,az=ae(ar:GetMouse()),{},{},{},{},{},[[https://raw.githubusercontent.com/deividcomsono/Obsidian/refs/heads/main/]],
{}local aA={TransparencyTexture={RobloxId=139785960036434,Path='Obsidian/assets/TransparencyTexture.png',URL=ay..
'assets/TransparencyTexture.png',Id=nil},SaturationMap={RobloxId=4155801252,Path='Obsidian/assets/SaturationMap.png',URL
=ay..'assets/SaturationMap.png',Id=nil}}do local function aB(aC:string,aD:boolean?)if not isfolder or not makefolder
then return end local aE,aF=aC:split'/',''if aD then table.remove(aE,#aE)end for aG,aH in ipairs(aE)do if not isfolder(
aF..aH)then makefolder(aF..aH)end aF=aF..aH..'/'end return aF end function az.AddAsset(aC:string,aD:number,aE:string,aF:
boolean?)if aA[aC]~=nil then error(string.format('Asset %q already exists',aC))end assert(typeof(aD)=='number',
'RobloxAssetId must be a number')aA[aC]={RobloxId=aD,Path=string.format('Obsidian/custom_assets/%s',aC),URL=aE,Id=nil}az
.DownloadAsset(aC,aF)end function az.GetAsset(aC:string)if not aA[aC]then return nil end local aD=aA[aC]if aD.Id then
return aD.Id end local aE=string.format('rbxassetid://%s',aD.RobloxId)if getcustomasset then local aF,aG=pcall(
getcustomasset,aD.Path)if aF and aG then aE=aG end end aD.Id=aE return aE end function az.DownloadAsset(aC:string,aD:
boolean?)if not getcustomasset or not writefile or not isfile then return false,'missing functions'end local aE=aA[aC]
aB(aE.Path,true)if aD~=true and isfile(aE.Path)then return true,nil end local aF,aG=pcall(function()writefile(aE.Path,
game:HttpGet(aE.URL))end)return aF,aG end for aC,aD in aA do az.DownloadAsset(aC)end end local aB={LocalPlayer=ar,
DevicePlatform=nil,IsMobile=false,IsRobloxFocused=true,ScreenGui=nil,SearchText='',Searching=false,GlobalSearch=false,
LastSearchTab=nil,ActiveTab=nil,Tabs={},TabButtons={},DependencyBoxes={},KeybindFrame=nil,KeybindContainer=nil,
KeybindToggles={},Notifications={},ToggleKeybind=Enum.KeyCode.RightControl,TweenInfo=TweenInfo.new(0.1,Enum.EasingStyle.
Quad,Enum.EasingDirection.Out),NotifyTweenInfo=TweenInfo.new(0.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),
Toggled=false,Unloaded=false,Labels=at,Buttons=au,Toggles=av,Options=aw,NotifySide='Right',ShowCustomCursor=true,
ForceCheckbox=false,ShowToggleFrameInKeybinds=true,NotifyOnError=false,CantDragForced=false,Signals={},UnloadSignals={},
OriginalMinSize=Vector2.new(480,360),MinSize=Vector2.new(480,360),DPIScale=1,CornerRadius=4,IsLightTheme=false,Scheme={
BackgroundColor=Color3.fromRGB(15,15,15),MainColor=Color3.fromRGB(25,25,25),AccentColor=Color3.fromRGB(125,85,255),
OutlineColor=Color3.fromRGB(40,40,40),FontColor=Color3.new(1,1,1),Font=Font.fromEnum(Enum.Font.Code),RedColor=Color3.
fromRGB(255,50,50),DarkColor=Color3.new(0,0,0),WhiteColor=Color3.new(1,1,1)},Registry={},Scales={},ImageManager=az}if ah
:IsStudio()then if aj.TouchEnabled and not aj.MouseEnabled then aB.IsMobile=true aB.OriginalMinSize=Vector2.new(480,240)
else aB.IsMobile=false aB.OriginalMinSize=Vector2.new(480,360)end else pcall(function()aB.DevicePlatform=aj:GetPlatform(
)end)aB.IsMobile=(aB.DevicePlatform==Enum.Platform.Android or aB.DevicePlatform==Enum.Platform.IOS)aB.OriginalMinSize=aB
.IsMobile and Vector2.new(480,240)or Vector2.new(480,360)end local aC,aD,aE,aF,aG={Frame={BorderSizePixel=0},ImageLabel=
{BackgroundTransparency=1,BorderSizePixel=0},ImageButton={AutoButtonColor=false,BorderSizePixel=0},ScrollingFrame={
BorderSizePixel=0},TextLabel={BorderSizePixel=0,FontFace='Font',RichText=true,TextColor3='FontColor'},TextButton={
AutoButtonColor=false,BorderSizePixel=0,FontFace='Font',RichText=true,TextColor3='FontColor'},TextBox={BorderSizePixel=0
,FontFace='Font',PlaceholderColor3=function()local aC,aD,aE=aB.Scheme.FontColor:ToHSV()return Color3.fromHSV(aC,aD,aE/2)
end,Text='',TextColor3='FontColor'},UIListLayout={SortOrder=Enum.SortOrder.LayoutOrder},UIStroke={ApplyStrokeMode=Enum.
ApplyStrokeMode.Border},Window={Title='No Title',Footer='No Footer',Position=UDim2.fromOffset(6,6),Size=UDim2.
fromOffset(720,600),IconSize=UDim2.fromOffset(30,30),AutoShow=true,Center=true,Resizable=true,SearchbarSize=UDim2.
fromScale(1,1),GlobalSearch=false,CornerRadius=4,NotifySide='Right',ShowCustomCursor=true,Font=Enum.Font.Code,
ToggleKeybind=Enum.KeyCode.RightControl,MobileButtonsSide='Left',UnlockMouseWhileOpen=true,EnableSidebarResize=false,
EnableCompacting=true,DisableCompactingSnap=false,SidebarCompacted=false,MinContainerWidth=256,MinSidebarWidth=128,
SidebarCompactWidth=48,SidebarCollapseThreshold=0.5,CompactWidthActivation=128},Toggle={Text='Toggle',Default=false,
Callback=function()end,Changed=function()end,Risky=false,Disabled=false,Visible=true},Input={Text='Input',Default='',
Finished=false,Numeric=false,ClearTextOnFocus=true,Placeholder='',AllowEmpty=true,EmptyReset='---',Callback=function()
end,Changed=function()end,Disabled=false,Visible=true},Slider={Text='Slider',Default=0,Min=0,Max=100,Rounding=0,Prefix=
'',Suffix='',Callback=function()end,Changed=function()end,Disabled=false,Visible=true},Dropdown={Values={},
DisabledValues={},Multi=false,MaxVisibleDropdownItems=8,Callback=function()end,Changed=function()end,Disabled=false,
Visible=true},Viewport={Object=nil,Camera=nil,Clone=true,AutoFocus=true,Interactive=false,Height=200,Visible=true},Image
={Image='',Transparency=0,BackgroundTransparency=0,Color=Color3.new(1,1,1),RectOffset=Vector2.zero,RectSize=Vector2.zero
,ScaleType=Enum.ScaleType.Fit,Height=200,Visible=true},Video={Video='',Looped=false,Playing=false,Volume=1,Height=200,
Visible=true},UIPassthrough={Instance=nil,Height=24,Visible=true},KeyPicker={Text='KeyPicker',Default='None',
DefaultModifiers={},Mode='Toggle',Modes={'Always','Toggle','Hold'},SyncToggleState=false,Callback=function()end,
ChangedCallback=function()end,Changed=function()end,Clicked=function()end},ColorPicker={Default=Color3.new(1,1,1),
Callback=function()end,Changed=function()end}},{Bottom={0,1},Right={1,0}},{Left={0.5,1},Right={0.5,1}},{RedColor='Red',
WhiteColor='White',DarkColor='Dark'},{Red='RedColor',White='WhiteColor',Dark='DarkColor'}local function aH(aI)if not aI
then return nil end local aJ=aF[aI]if aJ and aB.Scheme[aJ]~=nil then aB.Scheme[aI]=aB.Scheme[aJ]aB.Scheme[aJ]=nil return
aB.Scheme[aI]end local aK=aG[aI]if aK and aB.Scheme[aK]~=nil then warn(string.format(
'Scheme Value %q is deprecated, please use %q instead.',aI,aK))return aB.Scheme[aK]end return aB.Scheme[aI]end
local function aI(aJ,aK,aL)local aM=Instance.new'BindableEvent'local aN=aJ:Once(function(...)if not aL or typeof(aL)==
'function'and aL(...)then aM:Fire(true)else aM:Fire(false)end end)task.delay(aK,function()aN:Disconnect()aM:Fire(false)
end)local aO=aM.Event:Wait()aM:Destroy()return aO end local function aJ(aK:InputObject,aL:boolean?)return aK.
UserInputType==Enum.UserInputType.MouseButton1 or(aL==true and aK.UserInputType==Enum.UserInputType.MouseButton2)or aK.
UserInputType==Enum.UserInputType.Touch end local function aK(aL:InputObject,aM:boolean?)return aJ(aL,aM)and aL.
UserInputState==Enum.UserInputState.Begin and aB.IsRobloxFocused end local function aL(aM:InputObject)return(aM.
UserInputType==Enum.UserInputType.MouseMovement or aM.UserInputType==Enum.UserInputType.Touch)and aM.UserInputState==
Enum.UserInputState.Change end local function aM(aN:InputObject,aO:boolean?)return aJ(aN,aO)and(aN.UserInputState==Enum.
UserInputState.Begin or aN.UserInputState==Enum.UserInputState.Change)and aB.IsRobloxFocused end local function aN(aO:{[
any]:any})local aP=0 for aQ,aR in aO do aP+=1 end return aP end local function aO(aP:TweenBase)if not(aP and aP.
PlaybackState==Enum.PlaybackState.Playing)then return end aP:Cancel()end local function aP(aR:string)return aR:match
'^%s*(.-)%s*$'end local function aR(aS,aT)assert(aT>=0,'Invalid rounding number.')if aT==0 then return math.floor(aS)end
return tonumber(string.format('%.'..aT..'f',aS))end local function aS(aT:boolean?)local aU=ag:GetPlayers()if aT then
local aV=table.find(aU,ar)if aV then table.remove(aU,aV)end end table.sort(aU,function(aV,aW)return aV.Name:lower()<aW.
Name:lower()end)return aU end local function aT()local aU=al:GetTeams()table.sort(aU,function(aV,aW)return aV.Name:
lower()<aW.Name:lower()end)return aU end function aB.UpdateDependencyBoxes(aU)for aV,aW in aB.DependencyBoxes do aW:
Update(true)end if aB.Searching then aB:UpdateSearch(aB.SearchText)end end local function aU(aV,aW)local aX=0 for aY,aZ
in aV.Elements do if aZ.Type=='Divider'then aZ.Holder.Visible=false continue elseif aZ.SubButton then local a_=false if
aZ.Text:lower():match(aW)and aZ.Visible then a_=true else aZ.Base.Visible=false end if aZ.SubButton.Text:lower():match(
aW)and aZ.SubButton.Visible then a_=true else aZ.SubButton.Base.Visible=false end aZ.Holder.Visible=a_ if a_ then aX+=1
end continue end if aZ.Text and aZ.Text:lower():match(aW)and aZ.Visible then aZ.Holder.Visible=true aX+=1 else aZ.Holder
.Visible=false end end for aY,aZ in aV.DependencyBoxes do if not aZ.Visible then continue end aX+=aU(aZ,aW)end aV.Holder
.Visible=aX>0 return aX end local function aV(aW)for aX,aY in aW.Elements do aY.Holder.Visible=typeof(aY.Visible)==
'boolean'and aY.Visible or true if aY.SubButton then aY.Base.Visible=aY.Visible aY.SubButton.Base.Visible=aY.SubButton.
Visible end end aW:Resize()aW.Holder.Visible=true for aX,aY in aW.DependencyBoxes do if not aY.Visible then continue end
aV(aY)end end local function aW(aX,aY)if not aX then return end local aZ=false for a_,a0 in aX.Groupboxes do local a1=0
for a2,a3 in a0.Elements do if a3.Type=='Divider'then a3.Holder.Visible=false continue elseif a3.SubButton then local a4
=false if a3.Text:lower():match(aY)and a3.Visible then a4=true else a3.Base.Visible=false end if a3.SubButton.Text:
lower():match(aY)and a3.SubButton.Visible then a4=true else a3.SubButton.Base.Visible=false end a3.Holder.Visible=a4 if
a4 then a1+=1 end continue end if a3.Text and a3.Text:lower():match(aY)and a3.Visible then a3.Holder.Visible=true a1+=1
else a3.Holder.Visible=false end end for a2,a3 in a0.DependencyBoxes do if not a3.Visible then continue end a1+=aU(a3,aY
)end if a1>0 then a0:Resize()aZ=true end a0.BoxHolder.Visible=a1>0 end for a_,a0 in aX.Tabboxes do local a1,a2=0,{}for
a3,a4 in a0.Tabs do a2[a4]=0 for a5,a6 in a4.Elements do if a6.Type=='Divider'then a6.Holder.Visible=false continue
elseif a6.SubButton then local a7=false if a6.Text:lower():match(aY)and a6.Visible then a7=true else a6.Base.Visible=
false end if a6.SubButton.Text:lower():match(aY)and a6.SubButton.Visible then a7=true else a6.SubButton.Base.Visible=
false end a6.Holder.Visible=a7 if a7 then a2[a4]+=1 end continue end if a6.Text and a6.Text:lower():match(aY)and a6.
Visible then a6.Holder.Visible=true a2[a4]+=1 else a6.Holder.Visible=false end end for a5,a6 in a4.DependencyBoxes do if
not a6.Visible then continue end a2[a4]+=aU(a6,aY)end end for a3,a4 in a2 do a3.ButtonHolder.Visible=a4>0 if a4>0 then
a1+=1 aZ=true if a0.ActiveTab==a3 then a3:Resize()elseif a0.ActiveTab and a2[a0.ActiveTab]==0 then a3:Show()end end end
a0.BoxHolder.Visible=a1>0 end return aZ end local function aX(aY)if not aY then return end for aZ,a_ in aY.Groupboxes do
for a0,a1 in a_.Elements do a1.Holder.Visible=typeof(a1.Visible)=='boolean'and a1.Visible or true if a1.SubButton then
a1.Base.Visible=a1.Visible a1.SubButton.Base.Visible=a1.SubButton.Visible end end for a0,a1 in a_.DependencyBoxes do if
not a1.Visible then continue end aV(a1)end a_:Resize()a_.BoxHolder.Visible=true end for aZ,a_ in aY.Tabboxes do for a0,
a1 in a_.Tabs do for a2,a3 in a1.Elements do a3.Holder.Visible=typeof(a3.Visible)=='boolean'and a3.Visible or true if a3
.SubButton then a3.Base.Visible=a3.Visible a3.SubButton.Base.Visible=a3.SubButton.Visible end end for a2,a3 in a1.
DependencyBoxes do if not a3.Visible then continue end aV(a3)end a1.ButtonHolder.Visible=true end if a_.ActiveTab then
a_.ActiveTab:Resize()end a_.BoxHolder.Visible=true end end function aB.UpdateSearch(aY,aZ)aB.SearchText=aZ local a_={}if
aB.GlobalSearch then for a0,a1 in aB.Tabs do if typeof(a1)=='table'and not a1.IsKeyTab then table.insert(a_,a1)end end
elseif aB.LastSearchTab and typeof(aB.LastSearchTab)=='table'then table.insert(a_,aB.LastSearchTab)end for a0,a1 in
ipairs(a_)do aX(a1)end local a0=aZ:lower()if aP(a0)==''then aB.Searching=false aB.LastSearchTab=nil return end if not aB
.GlobalSearch and aB.ActiveTab and aB.ActiveTab.IsKeyTab then aB.Searching=false aB.LastSearchTab=nil return end aB.
Searching=true local a1={}if aB.GlobalSearch then a1=a_ if#a1==0 then for a2,a3 in aB.Tabs do if typeof(a3)=='table'and
not a3.IsKeyTab then table.insert(a1,a3)end end end elseif aB.ActiveTab then table.insert(a1,aB.ActiveTab)end local a2,
a3=false for a4,a5 in ipairs(a1)do local a6=aW(a5,a0)if a6 then if not a3 then a3=a5 end if a5==aB.ActiveTab then a2=
true end end end if aB.GlobalSearch then if a2 and aB.ActiveTab then aB.ActiveTab:RefreshSides()elseif a3 then local a4=
aZ task.defer(function()if aB.SearchText~=a4 then return end if aB.ActiveTab~=a3 then a3:Show()end end)end aB.
LastSearchTab=nil else aB.LastSearchTab=aB.ActiveTab end end function aB.AddToRegistry(aY,aZ,a_)aB.Registry[aZ]=a_ end
function aB.RemoveFromRegistry(aY,aZ)aB.Registry[aZ]=nil end function aB.UpdateColorsUsingRegistry(aY)for aZ,a_ in aB.
Registry do for a0,a1 in a_ do local a2=aH(a1)if a2 or typeof(a1)=='function'then aZ[a0]=a2 or a1()end end end end
function aB.SetDPIScale(aY,aZ:number)aB.DPIScale=aZ/100 aB.MinSize=aB.OriginalMinSize*aB.DPIScale for a_,a0 in aB.Scales
do a0.Scale=aB.DPIScale end for a_,a0 in aw do if a0.Type=='Dropdown'then a0:RecalculateListSize()end end for a_,a0 in
aB.Notifications do a0:Resize()end end function aB.GiveSignal(aY,aZ:RBXScriptConnection|RBXScriptSignal)local a_=typeof(
aZ)if aZ and(a_=='RBXScriptConnection'or a_=='RBXScriptSignal')then table.insert(aB.Signals,aZ)end return aZ end
function IsValidCustomIcon(aY:string)return typeof(aY)=='string'and(aY:match'rbxasset'or aY:match
'roblox%.com/asset/%?id='or aY:match'rbxthumb://type=')end type Icon={Url:string,Id:number,IconName:string,
ImageRectOffset:Vector2,ImageRectSize:Vector2}type IconModule={Icons:{string},GetAsset:(Name:string)->Icon?}local aY,aZ=
pcall(function()return(loadstring(game:HttpGet
[[https://raw.githubusercontent.com/deividcomsono/lucide-roblox-direct/refs/heads/main/source.lua]])::()->IconModule)()
end)function aB.GetIcon(a_,a0:string)if not aY then return end local a1,a2=pcall(aZ.GetAsset,a0)if not a1 then return
end return a2 end function aB.GetCustomIcon(a_,a0:string)if not IsValidCustomIcon(a0)then return aB:GetIcon(a0)else
return{Url=a0,ImageRectOffset=Vector2.zero,ImageRectSize=Vector2.zero,Custom=true}end end function aB.Validate(a_,a0:{[
string]:any},a1:{[string]:any}):{[string]:any}if typeof(a0)~='table'then return a1 end for a2,a3 in a1 do if typeof(a2)
=='number'then continue end if typeof(a3)=='table'then a0[a2]=aB:Validate(a0[a2],a3)elseif a0[a2]==nil then a0[a2]=a3
end end return a0 end local function a_(a0:{[string]:any},a1:GuiObject)local a2=aB.Registry[a1]or{}for a3,a4 in a0 do if
a2[a3]then a2[a3]=nil elseif a3~='Text'then local a5=aH(a4)if a5 or typeof(a4)=='function'then a2[a3]=a4 a4=a5 or a4()
end end a1[a3]=a4 end if aN(a2)>0 then aB.Registry[a1]=a2 end end local function a0(a1:string,a2:{[string]:any}):any
local a3=Instance.new(a1)if aC[a1]then a_(aC[a1],a3)end a_(a2,a3)if a2.Parent and not a2.ZIndex then pcall(function()a3.
ZIndex=a2.Parent.ZIndex end)end return a3 end local function a1(a2:Instance,a3:Instance|(()->Instance))local a4,a5=
pcall(function()if not a3 then a3=af end local a4 if typeof(a3)=='function'then a4=a3()else a4=a3 end a2.Parent=a4 end)
if not(a4 and a2.Parent)then a2.Parent=aB.LocalPlayer:WaitForChild('PlayerGui',math.huge)end end local function a2(a3:
Instance,a4:boolean?)if a4 then a1(a3,af)return end pcall(ap,a3)a1(a3,aq)end local a3=a0('ScreenGui',{Name='Obsidian',
DisplayOrder=999,ResetOnSpawn=false})a2(a3)aB.ScreenGui=a3 a3.DescendantRemoving:Connect(function(a4)aB:
RemoveFromRegistry(a4)end)local a4,a5,a6=(a0('TextButton',{BackgroundTransparency=1,Modal=false,Size=UDim2.fromScale(0,0
),AnchorPoint=Vector2.zero,Text='',ZIndex=-999,Parent=a3}))do a5=a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),
BackgroundColor3='WhiteColor',Size=UDim2.fromOffset(9,1),Visible=false,ZIndex=999,Parent=a3})a0('Frame',{AnchorPoint=
Vector2.new(0.5,0.5),BackgroundColor3='DarkColor',Position=UDim2.fromScale(0.5,0.5),Size=UDim2.new(1,2,1,2),ZIndex=998,
Parent=a5})local a7=a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',Position=UDim2.fromScale(
0.5,0.5),Size=UDim2.fromOffset(1,9),Parent=a5})a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='DarkColor'
,Position=UDim2.fromScale(0.5,0.5),Size=UDim2.new(1,2,1,2),ZIndex=998,Parent=a7})a6=a0('ImageLabel',{AnchorPoint=Vector2
.new(0.5,0.5),BackgroundTransparency=1,Position=UDim2.fromScale(0.5,0.5),Size=UDim2.fromOffset(20,20),ZIndex=1000,
Visible=false,Parent=a5})end local a7,a8 do a7=a0('Frame',{AnchorPoint=Vector2.new(1,0),BackgroundTransparency=1,
Position=UDim2.new(1,-6,0,6),Size=UDim2.new(0,300,1,-6),Parent=a3})table.insert(aB.Scales,a0('UIScale',{Parent=a7}))a8=
a0('UIListLayout',{HorizontalAlignment=Enum.HorizontalAlignment.Right,Padding=UDim.new(0,8),Parent=a7})end function aB.
ResetCursorIcon(a9)a6.Visible=false a6.Size=UDim2.fromOffset(20,20)end function aB.ChangeCursorIcon(a9,b:string)if not b
or b==''then aB:ResetCursorIcon()return end local ba=aB:GetCustomIcon(b)assert(ba,
[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])a6.Visible=true a6.Image=ba.Url a6.
ImageRectOffset=ba.ImageRectOffset a6.ImageRectSize=ba.ImageRectSize end function aB.ChangeCursorIconSize(a9,b:UDim2)
assert(typeof(b)=='UDim2','UDim2 expected.')a6.Size=b end function aB.GetBetterColor(a9,b:Color3,ba:number):Color3 ba=ba
*(aB.IsLightTheme and-4 or 2)return Color3.fromRGB(math.clamp(b.R*255+ba,0,255),math.clamp(b.G*255+ba,0,255),math.clamp(
b.B*255+ba,0,255))end function aB.GetLighterColor(a9,b:Color3):Color3 local ba,bb,bc=b:ToHSV()return Color3.fromHSV(ba,
math.max(0,bb-0.1),math.min(1,bc+0.1))end function aB.GetDarkerColor(a9,b:Color3):Color3 local ba,bb,bc=b:ToHSV()return
Color3.fromHSV(ba,bb,bc/2)end function aB.GetKeyString(a9,b:Enum.KeyCode)if b.EnumType==Enum.KeyCode and b.Value>33 and
b.Value<127 then return string.char(b.Value)end return b.Name end function aB.GetTextBounds(a9,b:string,ba:Font,bb:
number,bc:number?):(number,number)local bd=Instance.new'GetTextBoundsParams'bd.Text=b bd.RichText=true bd.Font=ba bd.
Size=bb bd.Width=bc or workspace.CurrentCamera.ViewportSize.X-32 local be=ak:GetTextBoundsAsync(bd)return be.X,be.Y end
function aB.MouseIsOverFrame(a9,b:GuiObject,ba:Vector2):boolean local bb,bc=b.AbsolutePosition,b.AbsoluteSize return ba.
X>=bb.X and ba.X<=bb.X+bc.X and ba.Y>=bb.Y and ba.Y<=bb.Y+bc.Y end function aB.SafeCallback(a9,b:(...any)->...any,...:
any)if not(b and typeof(b)=='function')then return end local ba=table.pack(xpcall(b,function(ba)task.defer(error,debug.
traceback(ba,2))if aB.NotifyOnError then aB:Notify(ba)end return ba end,...))if not ba[1]then return nil end return
table.unpack(ba,2,ba.n)end function aB.MakeDraggable(a9,b:GuiObject,ba:GuiObject,bb:boolean?,bc:boolean?)local bd,be,bf,
bg=false ba.InputBegan:Connect(function(bh:InputObject)if not aK(bh)or bc and aB.CantDragForced then return end be=bh.
Position bf=b.Position bd=true bg=bh.Changed:Connect(function()if bh.UserInputState~=Enum.UserInputState.End then return
end bd=false if bg and bg.Connected then bg:Disconnect()bg=nil end end)end)aB:GiveSignal(aj.InputChanged:Connect(
function(bh:InputObject)if(not bb and not aB.Toggled)or(bc and aB.CantDragForced)or not(a3 and a3.Parent)then bd=false
if bg and bg.Connected then bg:Disconnect()bg=nil end return end if bd and aL(bh)then local bi=bh.Position-be b.Position
=UDim2.new(bf.X.Scale,bf.X.Offset+bi.X,bf.Y.Scale,bf.Y.Offset+bi.Y)end end))end function aB.MakeResizable(a9,b:GuiObject
,ba:GuiObject,bb:(()->())?)local bc,bd,be,bf=false ba.InputBegan:Connect(function(bg:InputObject)if not aK(bg)then
return end bd=bg.Position be=b.Size bc=true bf=bg.Changed:Connect(function()if bg.UserInputState~=Enum.UserInputState.
End then return end bc=false if bf and bf.Connected then bf:Disconnect()bf=nil end end)end)aB:GiveSignal(aj.InputChanged
:Connect(function(bg:InputObject)if not b.Visible or not(a3 and a3.Parent)then bc=false if bf and bf.Connected then bf:
Disconnect()bf=nil end return end if bc and aL(bg)then local bh=bg.Position-bd b.Size=UDim2.new(be.X.Scale,math.clamp(be
.X.Offset+bh.X,aB.MinSize.X,math.huge),be.Y.Scale,math.clamp(be.Y.Offset+bh.Y,aB.MinSize.Y,math.huge))if bb then aB:
SafeCallback(bb)end end end))end function aB.MakeCover(a9,b:GuiObject,ba:string)local bb,bc=aD[ba]or{0,0},aE[ba]or{1,0.5
}local bd=a0('Frame',{AnchorPoint=Vector2.new(bb[1],bb[2]),BackgroundColor3=b.BackgroundColor3,Position=UDim2.fromScale(
bb[1],bb[2]),Size=UDim2.fromScale(bc[1],bc[2]),Parent=b})return bd end function aB.MakeLine(a9,b:GuiObject,ba)local bb=
a0('Frame',{AnchorPoint=ba.AnchorPoint or Vector2.zero,BackgroundColor3='OutlineColor',Position=ba.Position,Size=ba.Size
,ZIndex=ba.ZIndex or b.ZIndex,Parent=b})return bb end function aB.AddOutline(a9,b:GuiObject)local ba,bb=a0('UIStroke',{
Color='OutlineColor',Thickness=1,ZIndex=2,Parent=b}),a0('UIStroke',{Color='DarkColor',Thickness=1.5,ZIndex=1,Parent=b})
return ba,bb end function aB.AddBlank(a9,b:GuiObject,ba:UDim2)return a0('Frame',{BackgroundTransparency=1,Size=ba or
UDim2.fromScale(0,0),Parent=b})end function aB.MakeOutline(a9,b:GuiObject,ba:number?,bb:number?)warn
[[Obsidian:MakeOutline is deprecated, please use Obsidian:AddOutline instead.]]local bc=a0('Frame',{BackgroundColor3=
'DarkColor',Position=UDim2.fromOffset(-2,-2),Size=UDim2.new(1,4,1,4),ZIndex=bb,Parent=b})local bd=a0('Frame',{
BackgroundColor3='OutlineColor',Position=UDim2.fromOffset(1,1),Size=UDim2.new(1,-2,1,-2),ZIndex=bb,Parent=bc})if ba and
ba>0 then a0('UICorner',{CornerRadius=UDim.new(0,ba+1),Parent=bc})a0('UICorner',{CornerRadius=UDim.new(0,ba),Parent=bd})
end return bc,bd end function aB.AddDraggableLabel(a9,b:string)local ba,bb={},a0('TextLabel',{AutomaticSize=Enum.
AutomaticSize.XY,BackgroundColor3='BackgroundColor',Size=UDim2.fromOffset(0,0),Position=UDim2.fromOffset(6,6),Text=b,
TextSize=15,ZIndex=10,Parent=a3})a0('UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius),Parent=bb})a0('UIPadding',{
PaddingBottom=UDim.new(0,6),PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12),PaddingTop=UDim.new(0,6),Parent=bb})
table.insert(aB.Scales,a0('UIScale',{Parent=bb}))aB:AddOutline(bb)aB:MakeDraggable(bb,bb,true)ba.Label=bb function ba.
SetText(bc,bd:string)bb.Text=bd end function ba.SetVisible(bc,bd:boolean)bb.Visible=bd end return ba end function aB.
AddDraggableButton(a9,b:string,ba,bb:boolean?)local bc,bd={},a0('TextButton',{BackgroundColor3='BackgroundColor',
Position=UDim2.fromOffset(6,6),TextSize=16,ZIndex=10,Parent=a3})a0('UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius),
Parent=bd})if not bb then table.insert(aB.Scales,a0('UIScale',{Parent=bd}))end aB:AddOutline(bd)bd.MouseButton1Click:
Connect(function()aB:SafeCallback(ba,bc)end)aB:MakeDraggable(bd,bd,true)bc.Button=bd function bc.SetText(be,bf:string)
local bg,bh=aB:GetTextBounds(bf,aB.Scheme.Font,16)bd.Text=bf bd.Size=UDim2.fromOffset(bg*2,bh*2)end bc:SetText(b)return
bc end function aB.AddDraggableMenu(a9,b:string)local ba=a0('Frame',{AutomaticSize=Enum.AutomaticSize.XY,
BackgroundColor3='BackgroundColor',Position=UDim2.fromOffset(6,6),Size=UDim2.fromOffset(0,0),ZIndex=10,Parent=a3})a0(
'UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius),Parent=ba})table.insert(aB.Scales,a0('UIScale',{Parent=ba}))aB:
AddOutline(ba)aB:MakeLine(ba,{Position=UDim2.fromOffset(0,34),Size=UDim2.new(1,0,0,1)})local bb=a0('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,34),Text=b,TextSize=15,TextXAlignment=Enum.TextXAlignment.Left,Parent=ba})
a0('UIPadding',{PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12),Parent=bb})local bc=a0('Frame',{
BackgroundTransparency=1,Position=UDim2.fromOffset(0,35),Size=UDim2.new(1,0,1,-35),Parent=ba})a0('UIListLayout',{Padding
=UDim.new(0,7),Parent=bc})a0('UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,
7),PaddingTop=UDim.new(0,7),Parent=bc})aB:MakeDraggable(ba,bb,true)return ba,bc end do local a9=aB:AddDraggableLabel''a9
:SetVisible(false)function aB.SetWatermark(b,ba:string)warn
[[Watermark is deprecated, please use Library:AddDraggableLabel instead.]]a9:SetText(ba)end function aB.
SetWatermarkVisibility(b,ba:boolean)warn[[Watermark is deprecated, please use Library:AddDraggableLabel instead.]]a9:
SetVisible(ba)end end local a9 function aB.AddContextMenu(b,ba:GuiObject,bb:UDim2|(()->()),bc:{[number]:number}|(()->{})
,bd:number?,be:((Active:boolean)->())?)local bf if bd then bf=a0('ScrollingFrame',{AutomaticCanvasSize=bd==2 and Enum.
AutomaticSize.Y or Enum.AutomaticSize.None,AutomaticSize=bd==1 and Enum.AutomaticSize.Y or Enum.AutomaticSize.None,
BackgroundColor3='BackgroundColor',BorderColor3='OutlineColor',BorderSizePixel=1,BottomImage=
'rbxasset://textures/ui/Scroll/scroll-middle.png',CanvasSize=UDim2.fromOffset(0,0),ScrollBarImageColor3='OutlineColor',
ScrollBarThickness=bd==2 and 2 or 0,Size=typeof(bb)=='function'and bb()or bb,TopImage=
'rbxasset://textures/ui/Scroll/scroll-middle.png',Visible=false,ZIndex=10,Parent=a3})else bf=a0('Frame',{
BackgroundColor3='BackgroundColor',BorderColor3='OutlineColor',BorderSizePixel=1,Size=typeof(bb)=='function'and bb()or
bb,Visible=false,ZIndex=10,Parent=a3})end table.insert(aB.Scales,a0('UIScale',{Parent=bf}))local bg={Active=false,Holder
=ba,Menu=bf,List=nil,Signal=nil,Size=bb}if bd then bg.List=a0('UIListLayout',{Parent=bf})end function bg.Open(bh)if a9==
bg then return elseif a9 then a9:Close()end a9=bg bg.Active=true if typeof(bc)=='function'then bf.Position=UDim2.
fromOffset(math.floor(ba.AbsolutePosition.X+bc()[1]),math.floor(ba.AbsolutePosition.Y+bc()[2]))else bf.Position=UDim2.
fromOffset(math.floor(ba.AbsolutePosition.X+bc[1]),math.floor(ba.AbsolutePosition.Y+bc[2]))end bf.Size=typeof(bg.Size)==
'function'and bg.Size()or bg.Size if typeof(be)=='function'then aB:SafeCallback(be,true)end bf.Visible=true bg.Signal=ba
:GetPropertyChangedSignal'AbsolutePosition':Connect(function()if typeof(bc)=='function'then bf.Position=UDim2.
fromOffset(math.floor(ba.AbsolutePosition.X+bc()[1]),math.floor(ba.AbsolutePosition.Y+bc()[2]))else bf.Position=UDim2.
fromOffset(math.floor(ba.AbsolutePosition.X+bc[1]),math.floor(ba.AbsolutePosition.Y+bc[2]))end end)end function bg.Close
(bh)if a9~=bg then return end bf.Visible=false if bg.Signal then bg.Signal:Disconnect()bg.Signal=nil end bg.Active=false
a9=nil if typeof(be)=='function'then aB:SafeCallback(be,false)end end function bg.Toggle(bh)if bg.Active then bg:Close()
else bg:Open()end end function bg.SetSize(bh,bi)bg.Size=bi bf.Size=typeof(bi)=='function'and bi()or bi end return bg end
aB:GiveSignal(aj.InputBegan:Connect(function(b:InputObject)if aB.Unloaded then return end if aK(b,true)then local ba=b.
Position if a9 and not(aB:MouseIsOverFrame(a9.Menu,ba)or aB:MouseIsOverFrame(a9.Holder,ba))then a9:Close()end end end))
local b=a0('TextLabel',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundColor3='BackgroundColor',BorderColor3=
'OutlineColor',BorderSizePixel=1,TextSize=14,TextWrapped=true,Visible=false,ZIndex=20,Parent=a3})a0('UIPadding',{
PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,4),PaddingRight=UDim.new(0,4),PaddingTop=UDim.new(0,2),Parent=b})
table.insert(aB.Scales,a0('UIScale',{Parent=b}))b:GetPropertyChangedSignal'AbsolutePosition':Connect(function()if aB.
Unloaded then return end local ba,bb=aB:GetTextBounds(b.Text,b.FontFace,b.TextSize,(workspace.CurrentCamera.ViewportSize
.X-b.AbsolutePosition.X-8)/aB.DPIScale)b.Size=UDim2.fromOffset(ba+8)end)local ba function aB.AddTooltip(bb,bc:string,bd:
string,be:GuiObject)local bf={Disabled=false,Hovering=false,Signals={}}local function bg()if ba==be or(a9 and aB:
MouseIsOverFrame(a9.Menu,as))or(bf.Disabled and typeof(bd)~='string')or(not bf.Disabled and typeof(bc)~='string')then
return end ba=be b.Text=bf.Disabled and bd or bc b.Visible=true while aB.Toggled and aB:MouseIsOverFrame(be,as)and not(
a9 and aB:MouseIsOverFrame(a9.Menu,as))do b.Position=UDim2.fromOffset(as.X+(aB.ShowCustomCursor and 8 or 14),as.Y+(aB.
ShowCustomCursor and 8 or 12))ah.RenderStepped:Wait()end b.Visible=false ba=nil end local function bh(bi:
RBXScriptConnection|RBXScriptSignal)local bj=typeof(bi)if bi and(bj=='RBXScriptConnection'or bj=='RBXScriptSignal')then
table.insert(bf.Signals,bi)end return bi end bh(be.MouseEnter:Connect(bg))bh(be.MouseMoved:Connect(bg))bh(be.MouseLeave:
Connect(function()if ba~=be then return end b.Visible=false ba=nil end))function bf.Destroy(bi)for bj=#bf.Signals,1,-1
do local bk=table.remove(bf.Signals,bj)if bk and bk.Connected then bk:Disconnect()end end if ba==be then if b then b.
Visible=false end ba=nil end end table.insert(ax,b)return bf end function aB.OnUnload(bb,bc)table.insert(aB.
UnloadSignals,bc)end function aB.Unload(bb)for bc=#aB.Signals,1,-1 do local bd=table.remove(aB.Signals,bc)if bd and bd.
Connected then bd:Disconnect()end end for bc,bd in aB.UnloadSignals do aB:SafeCallback(bd)end for bc,bd in ax do aB:
SafeCallback(bd.Destroy,bd)end aB.Unloaded=true a3:Destroy()an().Library=nil end local bb,bc,bd,be,bf=aB:GetIcon'check',
aB:GetIcon'chevron-up',aB:GetIcon'move-diagonal-2',aB:GetIcon'key',aB:GetIcon'move'function aB.SetIconModule(bg,bh:
IconModule)aY=true aZ=bh bb=aB:GetIcon'check'bc=aB:GetIcon'chevron-up'bd=aB:GetIcon'move-diagonal-2'be=aB:GetIcon'key'bf
=aB:GetIcon'move'end local bg={}do local bh={}function bh.AddKeyPicker(bi,bj,bk)bk=aB:Validate(bk,aC.KeyPicker)local bl=
bi local bm,bn=bl.TextLabel,{Text=bk.Text,Value=bk.Default,Modifiers=bk.DefaultModifiers,DisplayValue=bk.Default,Toggled
=false,Mode=bk.Mode,SyncToggleState=bk.SyncToggleState,Callback=bk.Callback,ChangedCallback=bk.ChangedCallback,Changed=
bk.Changed,Clicked=bk.Clicked,Type='KeyPicker'}if bn.Mode=='Press'then assert(bl.Type=='Label',
[[KeyPicker with the mode 'Press' can be only applied on Labels.]])bn.SyncToggleState=false bk.Modes={'Press'}bk.Mode=
'Press'end if bn.SyncToggleState then bk.Modes={'Toggle','Hold'}if not table.find(bk.Modes,bk.Mode)then bk.Mode='Toggle'
end end local c,d,e,f,g=false,{MB1=Enum.UserInputType.MouseButton1,MB2=Enum.UserInputType.MouseButton2,MB3=Enum.
UserInputType.MouseButton3},{[Enum.UserInputType.MouseButton1]='MB1',[Enum.UserInputType.MouseButton2]='MB2',[Enum.
UserInputType.MouseButton3]='MB3'},{LAlt=Enum.KeyCode.LeftAlt,RAlt=Enum.KeyCode.RightAlt,LCtrl=Enum.KeyCode.LeftControl,
RCtrl=Enum.KeyCode.RightControl,LShift=Enum.KeyCode.LeftShift,RShift=Enum.KeyCode.RightShift,Tab=Enum.KeyCode.Tab,
CapsLock=Enum.KeyCode.CapsLock},{[Enum.KeyCode.LeftAlt]='LAlt',[Enum.KeyCode.RightAlt]='RAlt',[Enum.KeyCode.LeftControl]
='LCtrl',[Enum.KeyCode.RightControl]='RCtrl',[Enum.KeyCode.LeftShift]='LShift',[Enum.KeyCode.RightShift]='RShift',[Enum.
KeyCode.Tab]='Tab',[Enum.KeyCode.CapsLock]='CapsLock'}local h,i=function(h)return h.UserInputType==Enum.UserInputType.
Keyboard and g[h.KeyCode]~=nil end,function()local h={}for i,j in f do if table.find(h,i)then continue end if not aj:
IsKeyDown(j)then continue end table.insert(h,i)end return h end local j,k,l,m=function(j)if not(typeof(j)=='table'and
aN(j)>0)then return true end local k,l=i(),true for m,n in j do if table.find(k,n)then continue end l=false break end
return l end,function(j)if not j then return false end if e[j.UserInputType]~=nil then return aj:IsMouseButtonPressed(j.
UserInputType)and not aj:GetFocusedTextBox()elseif j.UserInputType==Enum.UserInputType.Keyboard then return aj:
IsKeyDown(j.KeyCode)and not aj:GetFocusedTextBox()else return false end end,function(j)local k={}for l,m in j do table.
insert(k,f[m])end return k end,function(j)if typeof(j)~='table'then return{}end local k={}for l,m in j do if not f[m]
then continue end table.insert(k,m)end return k end bn.Modifiers=m(bn.Modifiers)local n,o=a0('TextButton',{
BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Size=UDim2.fromOffset(18,18),Text=bn.Value,
TextSize=14,Parent=bm}),{Normal=bn.Mode~='Toggle'}do local p=a0('TextButton',{BackgroundTransparency=1,Size=UDim2.new(1,
0,0,16),Text='',Visible=not bk.NoUI,Parent=aB.KeybindContainer})local q,r=a0('TextLabel',{AutomaticSize=Enum.
AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.fromScale(0,1),Text='',TextSize=14,TextTransparency=0.5,Parent=p}),
a0('Frame',{AnchorPoint=Vector2.new(0,0.5),BackgroundColor3='MainColor',Position=UDim2.fromScale(0,0.5),Size=UDim2.
fromOffset(14,14),SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=p})a0('UICorner',{CornerRadius=UDim.new(0,aB.
CornerRadius/2),Parent=r})a0('UIStroke',{Color='OutlineColor',Parent=r})local s=a0('ImageLabel',{Image=bb and bb.Url or
'',ImageColor3='FontColor',ImageRectOffset=bb and bb.ImageRectOffset or Vector2.zero,ImageRectSize=bb and bb.
ImageRectSize or Vector2.zero,ImageTransparency=1,Position=UDim2.fromOffset(2,2),Size=UDim2.new(1,-4,1,-4),Parent=r})
function o.Display(t,u)q.TextTransparency=u and 0 or 0.5 s.ImageTransparency=u and 0 or 1 end function o.SetText(t,u)q.
Text=u end function o.SetVisibility(t,u)p.Visible=u end function o.SetNormal(t,u)o.Normal=u p.Active=not u q.Position=u
and UDim2.fromOffset(0,0)or UDim2.fromOffset(22,0)r.Visible=not u end bn.DoClick=function(...)end p.MouseButton1Click:
Connect(function()if o.Normal then return end bn.Toggled=not bn.Toggled bn:DoClick()end)o.Holder=p o.Label=q o.Checkbox=
r o.Loaded=true table.insert(aB.KeybindToggles,o)end local p=aB:AddContextMenu(n,UDim2.fromOffset(62,0),function()return
{n.AbsoluteSize.X+1.5,0.5}end,1)bn.Menu=p local q={}for r,s in bk.Modes do local t,u={},a0('TextButton',{
BackgroundColor3='MainColor',BackgroundTransparency=1,Size=UDim2.new(1,0,0,21),Text=s,TextSize=14,TextTransparency=0.5,
Parent=p.Menu})function t.Select(v)for w,x in q do x:Deselect()end bn.Mode=s u.BackgroundTransparency=0 u.
TextTransparency=0 p:Close()end function t.Deselect(v)bn.Mode=nil u.BackgroundTransparency=1 u.TextTransparency=0.5 end
u.MouseButton1Click:Connect(function()t:Select()end)if bn.Mode==s then t:Select()end q[s]=t end function bn.Display(r,s)
if aB.Unloaded then return end local t,u=aB:GetTextBounds(s or bn.DisplayValue,n.FontFace,n.TextSize,bm.AbsoluteSize.X)n
.Text=s or bn.DisplayValue n.Size=UDim2.fromOffset((t+9),(u+4))end function bn.Update(r)bn:Display()if bk.NoUI then
return end if bn.Mode=='Toggle'and bl.Type=='Toggle'and bl.Disabled then o:SetVisibility(false)return end local s,t=bn:
GetState(),aB.ShowToggleFrameInKeybinds and bn.Mode=='Toggle'if bn.SyncToggleState and bl.Value~=s then bl:SetValue(s)
end if o.Loaded then if t then o:SetNormal(false)else o:SetNormal(true)end o:SetText(('[%s] %s (%s)'):format(bn.
DisplayValue,bn.Text,bn.Mode))o:SetVisibility(true)o:Display(s)end end function bn.GetState(r)if bn.Mode=='Always'then
return true elseif bn.Mode=='Hold'then local s=bn.Value if s=='None'then return false end if not j(bn.Modifiers)then
return false end if d[s]~=nil then return aj:IsMouseButtonPressed(d[s])and not aj:GetFocusedTextBox()else return aj:
IsKeyDown(Enum.KeyCode[s])and not aj:GetFocusedTextBox()end else return bn.Toggled end end function bn.OnChanged(r,s)bn.
Changed=s end function bn.OnClick(r,s)bn.Clicked=s end function bn.DoClick(r)if bn.Mode=='Press'then if bn.Toggled and
bk.WaitForCallback==true then return end bn.Toggled=true end aB:SafeCallback(bn.Callback,bn.Toggled)aB:SafeCallback(bn.
Clicked,bn.Toggled)if bn.Mode=='Press'then bn.Toggled=false end end function bn.SetValue(r,s)local t,u,v=s[1],s[2],s[3]
local w,x=pcall(function()if t=='None'then t=nil return nil end if d[t]==nil then return Enum.KeyCode[t]end return d[t]
end)if t==nil then bn.Value='None'elseif w then bn.Value=t else bn.Value='Unknown'end bn.Modifiers=m(if typeof(v)==
'table'then v else bn.Modifiers)bn.DisplayValue=if aN(bn.Modifiers)>0 then(table.concat(bn.Modifiers,' + ')..' + '..bn.
Value)else bn.Value if q[u]then q[u]:Select()end local y=l(bn.Modifiers)aB:SafeCallback(bn.ChangedCallback,x,y)aB:
SafeCallback(bn.Changed,x,y)bn:Update()end function bn.SetText(r,s)o:SetText(s)bn:Update()end n.MouseButton1Click:
Connect(function()if c then return end c=true n.Text='...'n.Size=UDim2.fromOffset(29,18)local r,s={}local t=function()s=
aj.InputBegan:Wait()return aj:GetFocusedTextBox()~=nil end repeat task.wait()n.Text='...'n.Size=UDim2.fromOffset(29,18)
if t()then c=false bn:Update()return end if s.KeyCode==Enum.KeyCode.Escape then break end if h(s)then local u=false
repeat task.wait()if aj:IsKeyDown(s.KeyCode)then task.wait(0.075)if aj:IsKeyDown(s.KeyCode)then if not table.find(r,g[s.
KeyCode])then r[#r+1]=g[s.KeyCode]bn:Display(table.concat(r,' + ')..' + ...')end if t()then u=true break end if s.
KeyCode==Enum.KeyCode.Escape then break end if not h(s)then break end else if not table.find(r,g[s.KeyCode])then break
end end end until false if u then c=false bn:Update()return end end break until false local u='Unknown'if e[s.
UserInputType]~=nil then u=e[s.UserInputType]elseif s.UserInputType==Enum.UserInputType.Keyboard then u=s.KeyCode==Enum.
KeyCode.Escape and'None'or s.KeyCode.Name end r=if s.KeyCode==Enum.KeyCode.Escape or u=='Unknown'then{}else r bn.Toggled
=false bn:SetValue{u,bn.Mode,r}repeat task.wait()until not k(s)or aj:GetFocusedTextBox()c=false end)n.MouseButton2Click:
Connect(p.Toggle)aB:GiveSignal(aj.InputBegan:Connect(function(r:InputObject)if aB.Unloaded then return end if bn.Mode==
'Always'or bn.Value=='Unknown'or bn.Value=='None'or c or aj:GetFocusedTextBox()then return end local s,t,u=bn.Value,j(bn
.Modifiers),false if s and t==true and(e[r.UserInputType]==s or(r.UserInputType==Enum.UserInputType.Keyboard and r.
KeyCode.Name==s))then u=true end if bn.Mode=='Toggle'then if u then bn.Toggled=not bn.Toggled bn:DoClick()end elseif bn.
Mode=='Press'then if u then bn:DoClick()end end bn:Update()end))aB:GiveSignal(aj.InputEnded:Connect(function()if aB.
Unloaded then return end if bn.Value=='Unknown'or bn.Value=='None'or c or aj:GetFocusedTextBox()then return end bn:
Update()end))bn:Update()if bl.Addons then table.insert(bl.Addons,bn)end bn.Default=bn.Value bn.DefaultModifiers=table.
clone(bn.Modifiers or{})aw[bj]=bn return bi end local bi={}for bj=0,1,0.1 do table.insert(bi,ColorSequenceKeypoint.new(
bj,Color3.fromHSV(bj,1,1)))end function bh.AddColorPicker(bj,bk,bl)bl=aB:Validate(bl,aC.ColorPicker)local bm=bj local bn
,c=bm.TextLabel,{Value=bl.Default,Transparency=bl.Transparency or 0,Title=bl.Title,Callback=bl.Callback,Changed=bl.
Changed,Type='ColorPicker'}c.Hue,c.Sat,c.Vib=c.Value:ToHSV()local d=a0('TextButton',{BackgroundColor3=c.Value,
BorderColor3=aB:GetDarkerColor(c.Value),BorderSizePixel=1,Size=UDim2.fromOffset(18,18),Text='',Parent=bn})local e,f=a0(
'ImageLabel',{Image=az.GetAsset'TransparencyTexture',ImageTransparency=(1-c.Transparency),ScaleType=Enum.ScaleType.Tile,
Size=UDim2.fromScale(1,1),TileSize=UDim2.fromOffset(9,9),Parent=d}),aB:AddContextMenu(d,UDim2.fromOffset(bl.Transparency
and 256 or 234,0),function()return{0.5,d.AbsoluteSize.Y+1.5}end,1)f.List.Padding=UDim.new(0,8)c.ColorMenu=f a0(
'UIPadding',{PaddingBottom=UDim.new(0,6),PaddingLeft=UDim.new(0,6),PaddingRight=UDim.new(0,6),PaddingTop=UDim.new(0,6),
Parent=f.Menu})if typeof(c.Title)=='string'then a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,8),Text=c.
Title,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=f.Menu})end local g=a0('Frame',{BackgroundTransparency=
1,Size=UDim2.new(1,0,0,200),Parent=f.Menu})a0('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.
new(0,6),Parent=g})local h=a0('ImageButton',{BackgroundColor3=c.Value,Image=az.GetAsset'SaturationMap',Size=UDim2.
fromOffset(200,200),Parent=g})local i=a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',Size=
UDim2.fromOffset(6,6),Parent=h})a0('UICorner',{CornerRadius=UDim.new(1,0),Parent=i})a0('UIStroke',{Color='DarkColor',
Parent=i})local j=a0('TextButton',{Size=UDim2.fromOffset(16,200),Text='',Parent=g})a0('UIGradient',{Color=ColorSequence.
new(bi),Rotation=90,Parent=j})local k,l,m,n=(a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',
BorderColor3='DarkColor',BorderSizePixel=1,Position=UDim2.fromScale(0.5,c.Hue),Size=UDim2.new(1,2,0,1),Parent=j}))if bl.
Transparency then l=a0('ImageButton',{Image=az.GetAsset'TransparencyTexture',ScaleType=Enum.ScaleType.Tile,Size=UDim2.
fromOffset(16,200),TileSize=UDim2.fromOffset(8,8),Parent=g})m=a0('Frame',{BackgroundColor3=c.Value,Size=UDim2.fromScale(
1,1),Parent=l})a0('UIGradient',{Rotation=90,Transparency=NumberSequence.new{NumberSequenceKeypoint.new(0,0),
NumberSequenceKeypoint.new(1,1)},Parent=m})n=a0('Frame',{AnchorPoint=Vector2.new(0.5,0.5),BackgroundColor3='WhiteColor',
BorderColor3='DarkColor',BorderSizePixel=1,Position=UDim2.fromScale(0.5,c.Transparency),Size=UDim2.new(1,2,0,1),Parent=l
})end local o=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,20),Parent=f.Menu})a0('UIListLayout',{
FillDirection=Enum.FillDirection.Horizontal,HorizontalFlex=Enum.UIFlexAlignment.Fill,Padding=UDim.new(0,8),Parent=o})
local p,q,r=a0('TextBox',{BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,ClearTextOnFocus=
false,Size=UDim2.fromScale(1,1),Text='#??????',TextSize=14,Parent=o}),a0('TextBox',{BackgroundColor3='MainColor',
BorderColor3='OutlineColor',BorderSizePixel=1,ClearTextOnFocus=false,Size=UDim2.fromScale(1,1),Text='?, ?, ?',TextSize=
14,Parent=o}),aB:AddContextMenu(d,UDim2.fromOffset(93,0),function()return{d.AbsoluteSize.X+1.5,0.5}end,1)c.ContextMenu=r
do local function s(t,u)local v=a0('TextButton',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,21),Text=t,TextSize=14,
Parent=r.Menu})v.MouseButton1Click:Connect(function()aB:SafeCallback(u)r:Close()end)end s('Copy color',function()aB.
CopiedColor={c.Value,c.Transparency}end)c.SetValueRGB=function(...)end s('Paste color',function()c:SetValueRGB(aB.
CopiedColor[1],aB.CopiedColor[2])end)if ao then s('Copy Hex',function()ao(tostring(c.Value:ToHex()))end)s('Copy RGB',
function()ao(table.concat({math.floor(c.Value.R*255),math.floor(c.Value.G*255),math.floor(c.Value.B*255)},', '))end)end
end function c.SetHSVFromRGB(s,t)c.Hue,c.Sat,c.Vib=t:ToHSV()end function c.Display(s)if aB.Unloaded then return end c.
Value=Color3.fromHSV(c.Hue,c.Sat,c.Vib)d.BackgroundColor3=c.Value d.BorderColor3=aB:GetDarkerColor(c.Value)e.
ImageTransparency=(1-c.Transparency)h.BackgroundColor3=Color3.fromHSV(c.Hue,1,1)if m then m.BackgroundColor3=c.Value end
i.Position=UDim2.fromScale(c.Sat,1-c.Vib)k.Position=UDim2.fromScale(0.5,c.Hue)if n then n.Position=UDim2.fromScale(0.5,c
.Transparency)end p.Text='#'..c.Value:ToHex()q.Text=table.concat({math.floor(c.Value.R*255),math.floor(c.Value.G*255),
math.floor(c.Value.B*255)},', ')end function c.Update(s)c:Display()aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.
Changed,c.Value)end function c.OnChanged(s,t)c.Changed=t end function c.SetValue(s,t,u)if typeof(t)=='Color3'then c:
SetValueRGB(t,u)return end local v=Color3.fromHSV(t[1],t[2],t[3])c.Transparency=bl.Transparency and u or 0 c:
SetHSVFromRGB(v)c:Update()end function c.SetValueRGB(s,t,u)c.Transparency=bl.Transparency and u or 0 c:SetHSVFromRGB(t)c
:Update()end d.MouseButton1Click:Connect(f.Toggle)d.MouseButton2Click:Connect(r.Toggle)h.InputBegan:Connect(function(s:
InputObject)while aM(s)do local t=h.AbsolutePosition.X local u=t+h.AbsoluteSize.X local v,w=math.clamp(as.X,t,u),h.
AbsolutePosition.Y local x=w+h.AbsoluteSize.Y local y,z,A=math.clamp(as.Y,w,x),c.Sat,c.Vib c.Sat=(v-t)/(u-t)c.Vib=1-((y-
w)/(x-w))if c.Sat~=z or c.Vib~=A then c:Update()end ah.RenderStepped:Wait()end end)j.InputBegan:Connect(function(s:
InputObject)while aM(s)do local t=j.AbsolutePosition.Y local u=t+j.AbsoluteSize.Y local v,w=math.clamp(as.Y,t,u),c.Hue c
.Hue=(v-t)/(u-t)if c.Hue~=w then c:Update()end ah.RenderStepped:Wait()end end)if l then l.InputBegan:Connect(function(s:
InputObject)while aM(s)do local t,u=l.AbsolutePosition.Y,l.AbsolutePosition.Y+l.AbsoluteSize.Y local v,w=math.clamp(as.Y
,t,u),c.Transparency c.Transparency=(v-t)/(u-t)if c.Transparency~=w then c:Update()end ah.RenderStepped:Wait()end end)
end p.FocusLost:Connect(function(s)if not s then return end local t,u=pcall(Color3.fromHex,p.Text)if t and typeof(u)==
'Color3'then c.Hue,c.Sat,c.Vib=u:ToHSV()end c:Update()end)q.FocusLost:Connect(function(s)if not s then return end local
t,u,v=q.Text:match'(%d+),%s*(%d+),%s*(%d+)'if t and u and v then c:SetHSVFromRGB(Color3.fromRGB(t,u,v))end c:Update()end
)c:Display()if bm.Addons then table.insert(bm.Addons,c)end c.Default=c.Value aw[bk]=c return bj end bg.__index=bh bg.
__namecall=function(bj,bk,...)return bh[bk](...)end end local bh={}do local bi={}function bi.AddDivider(bj,bk)local bl=
bj local bm=bl.Container local bn=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,6),Parent=bm})if bk then
local c=a0('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Text=bk,
TextSize=14,TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Center,Parent=bn})local d,e=aB:GetTextBounds(bk,c.
FontFace,c.TextSize,c.AbsoluteSize.X)local f=d//2+10 a0('Frame',{AnchorPoint=Vector2.new(0,0.5),BackgroundColor3=
'MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(0,0.5),Size=UDim2.new(0.5,-f,0,2),
Parent=bn})a0('Frame',{AnchorPoint=Vector2.new(1,0.5),BackgroundColor3='MainColor',BorderColor3='OutlineColor',
BorderSizePixel=1,Position=UDim2.fromScale(1,0.5),Size=UDim2.new(0.5,-f,0,2),Parent=bn})else a0('Frame',{AnchorPoint=
Vector2.new(0,0.5),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(0
,0.5),Size=UDim2.new(1,0,0,2),Parent=bn})end bl:Resize()table.insert(bl.Elements,{Holder=bn,Type='Divider'})end function
bi.AddLabel(bj,...)local bk,bl,bm,bn={},{},select(1,...),select(2,...)if typeof(bm)=='table'or typeof(bn)=='table'then
local c=typeof(bm)=='table'and bm or bn bk.Text=c.Text or''bk.DoesWrap=c.DoesWrap or false bk.Size=c.Size or 14 bk.
Visible=c.Visible or true bk.Idx=typeof(bn)=='table'and bm or nil else bk.Text=bm or''bk.DoesWrap=bn or false bk.Size=14
bk.Visible=true bk.Idx=select(3,...)or nil end local c=bj local d,e=c.Container,{Text=bk.Text,DoesWrap=bk.DoesWrap,
Addons=bl,Visible=bk.Visible,Type='Label'}local f=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,18),Text
=e.Text,TextSize=bk.Size,TextWrapped=e.DoesWrap,TextXAlignment=c.IsKeyTab and Enum.TextXAlignment.Center or Enum.
TextXAlignment.Left,Parent=d})function e.SetVisible(g,h:boolean)e.Visible=h f.Visible=e.Visible c:Resize()end function e
.SetText(g,h:string)e.Text=h f.Text=h if e.DoesWrap then local i,j=aB:GetTextBounds(e.Text,f.FontFace,f.TextSize,f.
AbsoluteSize.X)f.Size=UDim2.new(1,0,0,j+4)end c:Resize()end if e.DoesWrap then local g,h=aB:GetTextBounds(e.Text,f.
FontFace,f.TextSize,f.AbsoluteSize.X)f.Size=UDim2.new(1,0,0,h+4)local i=f.AbsoluteSize f:GetPropertyChangedSignal
'AbsoluteSize':Connect(function()if f.AbsoluteSize==i then return end local j,k=aB:GetTextBounds(e.Text,f.FontFace,f.
TextSize,f.AbsoluteSize.X)f.Size=UDim2.new(1,0,0,k+4)i=f.AbsoluteSize c:Resize()end)else a0('UIListLayout',{
FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Right,Padding=UDim.new(0,6),
Parent=f})end c:Resize()e.TextLabel=f e.Container=d if not bk.DoesWrap then setmetatable(e,bg)end e.Holder=f table.
insert(c.Elements,e)if bk.Idx then at[bk.Idx]=e else table.insert(at,e)end return e end function bi.AddButton(bj,...)
local function bk(...)local bl,bm,bn={},select(1,...),select(2,...)if typeof(bm)=='table'or typeof(bn)=='table'then
local c=typeof(bm)=='table'and bm or bn bl.Text=c.Text or''bl.Func=c.Func or c.Callback or function()end bl.DoubleClick=
c.DoubleClick bl.Tooltip=c.Tooltip bl.DisabledTooltip=c.DisabledTooltip bl.Risky=c.Risky or false bl.Disabled=c.Disabled
or false bl.Visible=c.Visible or true bl.Idx=typeof(bn)=='table'and bm or nil else bl.Text=bm or''bl.Func=bn or function
()end bl.DoubleClick=false bl.Tooltip=nil bl.DisabledTooltip=nil bl.Risky=false bl.Disabled=false bl.Visible=true bl.Idx
=select(3,...)or nil end return bl end local bl,bm=bk(...),bj local bn,c=bm.Container,{Text=bl.Text,Func=bl.Func,
DoubleClick=bl.DoubleClick,Tooltip=bl.Tooltip,DisabledTooltip=bl.DisabledTooltip,TooltipTable=nil,Risky=bl.Risky,
Disabled=bl.Disabled,Visible=bl.Visible,Tween=nil,Type='Button'}local d=a0('Frame',{BackgroundTransparency=1,Size=UDim2.
new(1,0,0,21),Parent=bn})a0('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalFlex=Enum.
UIFlexAlignment.Fill,Padding=UDim.new(0,9),Parent=d})local function e(f)local g=a0('TextButton',{Active=not f.Disabled,
BackgroundColor3=f.Disabled and'BackgroundColor'or'MainColor',Size=UDim2.fromScale(1,1),Text=f.Text,TextSize=14,
TextTransparency=0.4,Visible=f.Visible,Parent=d})local h=a0('UIStroke',{Color='OutlineColor',Transparency=f.Disabled and
0.5 or 0,Parent=g})return g,h end local function f(g)g.Base.MouseEnter:Connect(function()if g.Disabled then return end g
.Tween=am:Create(g.Base,aB.TweenInfo,{TextTransparency=0})g.Tween:Play()end)g.Base.MouseLeave:Connect(function()if g.
Disabled then return end g.Tween=am:Create(g.Base,aB.TweenInfo,{TextTransparency=0.4})g.Tween:Play()end)g.Base.
MouseButton1Click:Connect(function()if g.Disabled or g.Locked then return end if g.DoubleClick then g.Locked=true g.Base
.Text='Are you sure?'g.Base.TextColor3=aB.Scheme.AccentColor aB.Registry[g.Base].TextColor3='AccentColor'local h=aI(g.
Base.MouseButton1Click,0.5)g.Base.Text=g.Text g.Base.TextColor3=g.Risky and aB.Scheme.RedColor or aB.Scheme.FontColor aB
.Registry[g.Base].TextColor3=g.Risky and'RedColor'or'FontColor'if h then aB:SafeCallback(g.Func)end ah.RenderStepped:
Wait()g.Locked=false return end aB:SafeCallback(g.Func)end)end c.Base,c.Stroke=e(c)f(c)function c.AddButton(g,...)local
h=bk(...)local i={Text=h.Text,Func=h.Func,DoubleClick=h.DoubleClick,Tooltip=h.Tooltip,DisabledTooltip=h.DisabledTooltip,
TooltipTable=nil,Risky=h.Risky,Disabled=h.Disabled,Visible=h.Visible,Tween=nil,Type='SubButton'}c.SubButton=i i.Base,i.
Stroke=e(i)f(i)function i.UpdateColors(j)if aB.Unloaded then return end aO(i.Tween)i.Base.BackgroundColor3=i.Disabled
and aB.Scheme.BackgroundColor or aB.Scheme.MainColor i.Base.TextTransparency=i.Disabled and 0.8 or 0.4 i.Stroke.
Transparency=i.Disabled and 0.5 or 0 aB.Registry[i.Base].BackgroundColor3=i.Disabled and'BackgroundColor'or'MainColor'
end function i.SetDisabled(j,k:boolean)i.Disabled=k if i.TooltipTable then i.TooltipTable.Disabled=i.Disabled end i.Base
.Active=not i.Disabled i:UpdateColors()end function i.SetVisible(j,k:boolean)i.Visible=k i.Base.Visible=i.Visible bm:
Resize()end function i.SetText(j,k:string)i.Text=k i.Base.Text=k end if typeof(i.Tooltip)=='string'or typeof(i.
DisabledTooltip)=='string'then i.TooltipTable=aB:AddTooltip(i.Tooltip,i.DisabledTooltip,i.Base)i.TooltipTable.Disabled=i
.Disabled end if i.Risky then i.Base.TextColor3=aB.Scheme.RedColor aB.Registry[i.Base].TextColor3='RedColor'end i:
UpdateColors()if h.Idx then au[h.Idx]=i else table.insert(au,i)end return i end function c.UpdateColors(g)if aB.Unloaded
then return end aO(c.Tween)c.Base.BackgroundColor3=c.Disabled and aB.Scheme.BackgroundColor or aB.Scheme.MainColor c.
Base.TextTransparency=c.Disabled and 0.8 or 0.4 c.Stroke.Transparency=c.Disabled and 0.5 or 0 aB.Registry[c.Base].
BackgroundColor3=c.Disabled and'BackgroundColor'or'MainColor'end function c.SetDisabled(g,h:boolean)c.Disabled=h if c.
TooltipTable then c.TooltipTable.Disabled=c.Disabled end c.Base.Active=not c.Disabled c:UpdateColors()end function c.
SetVisible(g,h:boolean)c.Visible=h d.Visible=c.Visible bm:Resize()end function c.SetText(g,h:string)c.Text=h c.Base.Text
=h end if typeof(c.Tooltip)=='string'or typeof(c.DisabledTooltip)=='string'then c.TooltipTable=aB:AddTooltip(c.Tooltip,c
.DisabledTooltip,c.Base)c.TooltipTable.Disabled=c.Disabled end if c.Risky then c.Base.TextColor3=aB.Scheme.RedColor aB.
Registry[c.Base].TextColor3='RedColor'end c:UpdateColors()bm:Resize()c.Holder=d table.insert(bm.Elements,c)if bl.Idx
then au[bl.Idx]=c else table.insert(au,c)end return c end function bi.AddCheckbox(bj,bk,bl)bl=aB:Validate(bl,aC.Toggle)
local bm=bj local bn,c=bm.Container,{Text=bl.Text,Value=bl.Default,Tooltip=bl.Tooltip,DisabledTooltip=bl.DisabledTooltip
,TooltipTable=nil,Callback=bl.Callback,Changed=bl.Changed,Risky=bl.Risky,Disabled=bl.Disabled,Visible=bl.Visible,Addons=
{},Type='Toggle'}local d=a0('TextButton',{Active=not c.Disabled,BackgroundTransparency=1,Size=UDim2.new(1,0,0,18),Text=
'',Visible=c.Visible,Parent=bn})local e=a0('TextLabel',{BackgroundTransparency=1,Position=UDim2.fromOffset(26,0),Size=
UDim2.new(1,-26,1,0),Text=c.Text,TextSize=14,TextTransparency=0.4,TextXAlignment=Enum.TextXAlignment.Left,Parent=d})a0(
'UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Right,Padding=
UDim.new(0,6),Parent=e})local f=a0('Frame',{BackgroundColor3='MainColor',Size=UDim2.fromScale(1,1),SizeConstraint=Enum.
SizeConstraint.RelativeYY,Parent=d})a0('UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius/2),Parent=f})local g,h=a0(
'UIStroke',{Color='OutlineColor',Parent=f}),a0('ImageLabel',{Image=bb and bb.Url or'',ImageColor3='FontColor',
ImageRectOffset=bb and bb.ImageRectOffset or Vector2.zero,ImageRectSize=bb and bb.ImageRectSize or Vector2.zero,
ImageTransparency=1,Position=UDim2.fromOffset(2,2),Size=UDim2.new(1,-4,1,-4),Parent=f})function c.UpdateColors(i)c:
Display()end function c.Display(i)if aB.Unloaded then return end g.Transparency=c.Disabled and 0.5 or 0 if c.Disabled
then e.TextTransparency=0.8 h.ImageTransparency=c.Value and 0.8 or 1 f.BackgroundColor3=aB.Scheme.BackgroundColor aB.
Registry[f].BackgroundColor3='BackgroundColor'return end am:Create(e,aB.TweenInfo,{TextTransparency=c.Value and 0 or 0.4
}):Play()am:Create(h,aB.TweenInfo,{ImageTransparency=c.Value and 0 or 1}):Play()f.BackgroundColor3=aB.Scheme.MainColor
aB.Registry[f].BackgroundColor3='MainColor'end function c.OnChanged(i,j)c.Changed=j end function c.SetValue(i,j)if c.
Disabled then return end c.Value=j c:Display()for k,l in c.Addons do if l.Type=='KeyPicker'and l.SyncToggleState then l.
Toggled=c.Value l:Update()end end aB:UpdateDependencyBoxes()aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.Changed
,c.Value)end function c.SetDisabled(i,j:boolean)c.Disabled=j if c.TooltipTable then c.TooltipTable.Disabled=c.Disabled
end for k,l in c.Addons do if l.Type=='KeyPicker'and l.SyncToggleState then l:Update()end end d.Active=not c.Disabled c:
Display()end function c.SetVisible(i,j:boolean)c.Visible=j d.Visible=c.Visible bm:Resize()end function c.SetText(i,j:
string)c.Text=j e.Text=j end d.MouseButton1Click:Connect(function()if c.Disabled then return end c:SetValue(not c.Value)
end)if typeof(c.Tooltip)=='string'or typeof(c.DisabledTooltip)=='string'then c.TooltipTable=aB:AddTooltip(c.Tooltip,c.
DisabledTooltip,d)c.TooltipTable.Disabled=c.Disabled end if c.Risky then e.TextColor3=aB.Scheme.RedColor aB.Registry[e].
TextColor3='RedColor'end c:Display()bm:Resize()c.TextLabel=e c.Container=bn setmetatable(c,bg)c.Holder=d table.insert(bm
.Elements,c)c.Default=c.Value av[bk]=c return c end function bi.AddToggle(bj,bk,bl)if aB.ForceCheckbox then return bi.
AddCheckbox(bj,bk,bl)end bl=aB:Validate(bl,aC.Toggle)local bm=bj local bn,c=bm.Container,{Text=bl.Text,Value=bl.Default,
Tooltip=bl.Tooltip,DisabledTooltip=bl.DisabledTooltip,TooltipTable=nil,Callback=bl.Callback,Changed=bl.Changed,Risky=bl.
Risky,Disabled=bl.Disabled,Visible=bl.Visible,Addons={},Type='Toggle'}local d=a0('TextButton',{Active=not c.Disabled,
BackgroundTransparency=1,Size=UDim2.new(1,0,0,18),Text='',Visible=c.Visible,Parent=bn})local e=a0('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,-40,1,0),Text=c.Text,TextSize=14,TextTransparency=0.4,TextXAlignment=Enum.
TextXAlignment.Left,Parent=d})a0('UIListLayout',{FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.
HorizontalAlignment.Right,Padding=UDim.new(0,6),Parent=e})local f=a0('Frame',{AnchorPoint=Vector2.new(1,0),
BackgroundColor3='MainColor',Position=UDim2.fromScale(1,0),Size=UDim2.fromOffset(32,18),Parent=d})a0('UICorner',{
CornerRadius=UDim.new(1,0),Parent=f})a0('UIPadding',{PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=
UDim.new(0,2),PaddingTop=UDim.new(0,2),Parent=f})local g,h=a0('UIStroke',{Color='OutlineColor',Parent=f}),a0('Frame',{
BackgroundColor3='FontColor',Size=UDim2.fromScale(1,1),SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=f})a0(
'UICorner',{CornerRadius=UDim.new(1,0),Parent=h})function c.UpdateColors(i)c:Display()end function c.Display(i)if aB.
Unloaded then return end local j=c.Value and 1 or 0 f.BackgroundTransparency=c.Disabled and 0.75 or 0 g.Transparency=c.
Disabled and 0.75 or 0 f.BackgroundColor3=c.Value and aB.Scheme.AccentColor or aB.Scheme.MainColor g.Color=c.Value and
aB.Scheme.AccentColor or aB.Scheme.OutlineColor aB.Registry[f].BackgroundColor3=c.Value and'AccentColor'or'MainColor'aB.
Registry[g].Color=c.Value and'AccentColor'or'OutlineColor'if c.Disabled then e.TextTransparency=0.8 h.AnchorPoint=
Vector2.new(j,0)h.Position=UDim2.fromScale(j,0)h.BackgroundColor3=aB:GetDarkerColor(aB.Scheme.FontColor)aB.Registry[h].
BackgroundColor3=function()return aB:GetDarkerColor(aB.Scheme.FontColor)end return end am:Create(e,aB.TweenInfo,{
TextTransparency=c.Value and 0 or 0.4}):Play()am:Create(h,aB.TweenInfo,{AnchorPoint=Vector2.new(j,0),Position=UDim2.
fromScale(j,0)}):Play()h.BackgroundColor3=aB.Scheme.FontColor aB.Registry[h].BackgroundColor3='FontColor'end function c.
OnChanged(i,j)c.Changed=j end function c.SetValue(i,j)if c.Disabled then return end c.Value=j c:Display()for k,l in c.
Addons do if l.Type=='KeyPicker'and l.SyncToggleState then l.Toggled=c.Value l:Update()end end aB:UpdateDependencyBoxes(
)aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.Changed,c.Value)end function c.SetDisabled(i,j:boolean)c.Disabled=
j if c.TooltipTable then c.TooltipTable.Disabled=c.Disabled end for k,l in c.Addons do if l.Type=='KeyPicker'and l.
SyncToggleState then l:Update()end end d.Active=not c.Disabled c:Display()end function c.SetVisible(i,j:boolean)c.
Visible=j d.Visible=c.Visible bm:Resize()end function c.SetText(i,j:string)c.Text=j e.Text=j end d.MouseButton1Click:
Connect(function()if c.Disabled then return end c:SetValue(not c.Value)end)if typeof(c.Tooltip)=='string'or typeof(c.
DisabledTooltip)=='string'then c.TooltipTable=aB:AddTooltip(c.Tooltip,c.DisabledTooltip,d)c.TooltipTable.Disabled=c.
Disabled end if c.Risky then e.TextColor3=aB.Scheme.RedColor aB.Registry[e].TextColor3='RedColor'end c:Display()bm:
Resize()c.TextLabel=e c.Container=bn setmetatable(c,bg)c.Holder=d table.insert(bm.Elements,c)c.Default=c.Value av[bk]=c
return c end function bi.AddInput(bj,bk,bl)bl=aB:Validate(bl,aC.Input)local bm=bj local bn,c=bm.Container,{Text=bl.Text,
Value=bl.Default,Finished=bl.Finished,Numeric=bl.Numeric,ClearTextOnFocus=bl.ClearTextOnFocus,Placeholder=bl.Placeholder
,AllowEmpty=bl.AllowEmpty,EmptyReset=bl.EmptyReset,Tooltip=bl.Tooltip,DisabledTooltip=bl.DisabledTooltip,TooltipTable=
nil,Callback=bl.Callback,Changed=bl.Changed,Disabled=bl.Disabled,Visible=bl.Visible,Type='Input'}local d=a0('Frame',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,39),Visible=c.Visible,Parent=bn})local e,f=a0('TextLabel',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,14),Text=c.Text,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent
=d}),a0('TextBox',{AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel
=1,ClearTextOnFocus=not c.Disabled and c.ClearTextOnFocus,PlaceholderText=c.Placeholder,Position=UDim2.fromScale(0,1),
Size=UDim2.new(1,0,0,21),Text=c.Value,TextEditable=not c.Disabled,TextScaled=true,TextXAlignment=Enum.TextXAlignment.
Left,Parent=d})a0('UIPadding',{PaddingBottom=UDim.new(0,3),PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),
PaddingTop=UDim.new(0,4),Parent=f})function c.UpdateColors(g)if aB.Unloaded then return end e.TextTransparency=c.
Disabled and 0.8 or 0 f.TextTransparency=c.Disabled and 0.8 or 0 end function c.OnChanged(g,h)c.Changed=h end function c
.SetValue(g,h)if not c.AllowEmpty and aP(h)==''then h=c.EmptyReset end if bl.MaxLength and#h>bl.MaxLength then h=h:sub(1
,bl.MaxLength)end if c.Numeric then if#tostring(h)>0 and not tonumber(h)then h=c.Value end end c.Value=h f.Text=h if not
c.Disabled then aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.Changed,c.Value)end end function c.SetDisabled(g,h:
boolean)c.Disabled=h if c.TooltipTable then c.TooltipTable.Disabled=c.Disabled end f.ClearTextOnFocus=not c.Disabled and
c.ClearTextOnFocus f.TextEditable=not c.Disabled c:UpdateColors()end function c.SetVisible(g,h:boolean)c.Visible=h d.
Visible=c.Visible bm:Resize()end function c.SetText(g,h:string)c.Text=h e.Text=h end if c.Finished then f.FocusLost:
Connect(function(g)if not g then return end c:SetValue(f.Text)end)else f:GetPropertyChangedSignal'Text':Connect(function
()if f.Text==c.Value then return end c:SetValue(f.Text)end)end if typeof(c.Tooltip)=='string'or typeof(c.DisabledTooltip
)=='string'then c.TooltipTable=aB:AddTooltip(c.Tooltip,c.DisabledTooltip,f)c.TooltipTable.Disabled=c.Disabled end bm:
Resize()c.Holder=d table.insert(bm.Elements,c)c.Default=c.Value aw[bk]=c return c end function bi.AddSlider(bj,bk,bl)bl=
aB:Validate(bl,aC.Slider)local bm=bj local bn,c=bm.Container,{Text=bl.Text,Value=bl.Default,Min=bl.Min,Max=bl.Max,Prefix
=bl.Prefix,Suffix=bl.Suffix,Compact=bl.Compact,Rounding=bl.Rounding,Tooltip=bl.Tooltip,DisabledTooltip=bl.
DisabledTooltip,TooltipTable=nil,Callback=bl.Callback,Changed=bl.Changed,Disabled=bl.Disabled,Visible=bl.Visible,Type=
'Slider'}local d,e=(a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,bl.Compact and 13 or 31),Visible=c.Visible
,Parent=bn}))if not bl.Compact then e=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,14),Text=c.Text,
TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=d})end local f=a0('TextButton',{Active=not c.Disabled,
AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.
fromScale(0,1),Size=UDim2.new(1,0,0,13),Text='',Parent=d})local g=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.
fromScale(1,1),Text='',TextSize=14,ZIndex=2,Parent=f})a0('UIStroke',{ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual,
Color='DarkColor',LineJoinMode=Enum.LineJoinMode.Miter,Parent=g})local h=a0('Frame',{BackgroundColor3='AccentColor',Size
=UDim2.fromScale(0.5,1),Parent=f})function c.UpdateColors(i)if aB.Unloaded then return end if e then e.TextTransparency=
c.Disabled and 0.8 or 0 end g.TextTransparency=c.Disabled and 0.8 or 0 h.BackgroundColor3=c.Disabled and aB.Scheme.
OutlineColor or aB.Scheme.AccentColor aB.Registry[h].BackgroundColor3=c.Disabled and'OutlineColor'or'AccentColor'end
function c.Display(i)if aB.Unloaded then return end local j if bl.FormatDisplayValue then j=bl.FormatDisplayValue(c,c.
Value)end if j then g.Text=tostring(j)else if bl.Compact then g.Text=string.format('%s: %s%s%s',c.Text,c.Prefix,c.Value,
c.Suffix)elseif bl.HideMax then g.Text=string.format('%s%s%s',c.Prefix,c.Value,c.Suffix)else g.Text=string.format(
'%s%s%s/%s%s%s',c.Prefix,c.Value,c.Suffix,c.Prefix,c.Max,c.Suffix)end end local k=(c.Value-c.Min)/(c.Max-c.Min)h.Size=
UDim2.fromScale(k,1)end function c.OnChanged(i,j)c.Changed=j end function c.SetMax(i,j)assert(j>c.Min,
'Max value cannot be less than the current min value.')c:SetValue(math.clamp(c.Value,c.Min,j))c.Max=j c:Display()end
function c.SetMin(i,j)assert(j<c.Max,'Min value cannot be greater than the current max value.')c:SetValue(math.clamp(c.
Value,j,c.Max))c.Min=j c:Display()end function c.SetValue(i,j)if c.Disabled then return end local k=tonumber(j)if not k
or k==c.Value then return end k=math.clamp(k,c.Min,c.Max)c.Value=k c:Display()aB:SafeCallback(c.Callback,c.Value)aB:
SafeCallback(c.Changed,c.Value)end function c.SetDisabled(i,j:boolean)c.Disabled=j if c.TooltipTable then c.TooltipTable
.Disabled=c.Disabled end f.Active=not c.Disabled c:UpdateColors()end function c.SetVisible(i,j:boolean)c.Visible=j d.
Visible=c.Visible bm:Resize()end function c.SetText(i,j:string)c.Text=j if e then e.Text=j return end c:Display()end
function c.SetPrefix(i,j:string)c.Prefix=j c:Display()end function c.SetSuffix(i,j:string)c.Suffix=j c:Display()end f.
InputBegan:Connect(function(i:InputObject)if not aK(i)or c.Disabled then return end for j,k in aB.ActiveTab.Sides do k.
ScrollingEnabled=false end while aM(i)do local j=as.X local k,l=math.clamp((j-f.AbsolutePosition.X)/f.AbsoluteSize.X,0,1
),c.Value c.Value=aR(c.Min+((c.Max-c.Min)*k),c.Rounding)c:Display()if c.Value~=l then aB:SafeCallback(c.Callback,c.Value
)aB:SafeCallback(c.Changed,c.Value)end ah.RenderStepped:Wait()end for j,k in aB.ActiveTab.Sides do k.ScrollingEnabled=
true end end)if typeof(c.Tooltip)=='string'or typeof(c.DisabledTooltip)=='string'then c.TooltipTable=aB:AddTooltip(c.
Tooltip,c.DisabledTooltip,f)c.TooltipTable.Disabled=c.Disabled end c:UpdateColors()c:Display()bm:Resize()c.Holder=d
table.insert(bm.Elements,c)c.Default=c.Value aw[bk]=c return c end function bi.AddDropdown(bj,bk,bl)bl=aB:Validate(bl,aC
.Dropdown)local bm=bj local bn=bm.Container if bl.SpecialType=='Player'then bl.Values=aS(bl.ExcludeLocalPlayer)bl.
AllowNull=true elseif bl.SpecialType=='Team'then bl.Values=aT()bl.AllowNull=true end local c={Text=typeof(bl.Text)==
'string'and bl.Text or nil,Value=bl.Multi and{}or nil,Values=bl.Values,DisabledValues=bl.DisabledValues,Multi=bl.Multi,
SpecialType=bl.SpecialType,ExcludeLocalPlayer=bl.ExcludeLocalPlayer,Tooltip=bl.Tooltip,DisabledTooltip=bl.
DisabledTooltip,TooltipTable=nil,Callback=bl.Callback,Changed=bl.Changed,Disabled=bl.Disabled,Visible=bl.Visible,Type=
'Dropdown'}local d=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,c.Text and 39 or 21),Visible=c.Visible,
Parent=bn})local e,f=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,14),Text=c.Text,TextSize=14,
TextXAlignment=Enum.TextXAlignment.Left,Visible=not not bl.Text,Parent=d}),a0('TextButton',{Active=not c.Disabled,
AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.
fromScale(0,1),Size=UDim2.new(1,0,0,21),Text='---',TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=d})a0(
'UIPadding',{PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,4),Parent=f})local g,h=(a0('ImageLabel',{AnchorPoint=
Vector2.new(1,0.5),Image=bc and bc.Url or'',ImageColor3='FontColor',ImageRectOffset=bc and bc.ImageRectOffset or Vector2
.zero,ImageRectSize=bc and bc.ImageRectSize or Vector2.zero,ImageTransparency=0.5,Position=UDim2.fromScale(1,0.5),Size=
UDim2.fromOffset(16,16),Parent=f}))if bl.Searchable then h=a0('TextBox',{BackgroundTransparency=1,PlaceholderText=
'Search...',Position=UDim2.fromOffset(-8,0),Size=UDim2.new(1,-12,1,0),TextSize=14,TextXAlignment=Enum.TextXAlignment.
Left,Visible=false,Parent=f})a0('UIPadding',{PaddingLeft=UDim.new(0,8),Parent=h})end local i=aB:AddContextMenu(f,
function()return UDim2.fromOffset(f.AbsoluteSize.X/aB.DPIScale,0)end,function()return{0.5,f.AbsoluteSize.Y+1.5}end,2,
function(i:boolean)f.TextTransparency=(i and h)and 1 or 0 g.ImageTransparency=i and 0 or 0.5 g.Rotation=i and 180 or 0
if h then h.Text=''h.Visible=i end end)c.Menu=i function c.RecalculateListSize(j,k)local l=math.clamp((k or aN(c.Values)
)*21,0,bl.MaxVisibleDropdownItems*21)i:SetSize(function()return UDim2.fromOffset(f.AbsoluteSize.X/aB.DPIScale,l)end)end
function c.UpdateColors(j)if aB.Unloaded then return end e.TextTransparency=c.Disabled and 0.8 or 0 f.TextTransparency=c
.Disabled and 0.8 or 0 g.ImageTransparency=c.Disabled and 0.8 or i.Active and 0 or 0.5 end function c.Display(j)if aB.
Unloaded then return end local k=''if bl.Multi then for l,m in c.Values do if c.Value[m]then k=k..(bl.FormatDisplayValue
and tostring(bl.FormatDisplayValue(m))or tostring(m))..', 'end end k=k:sub(1,#k-2)else k=c.Value and tostring(c.Value)or
''if k~=''and bl.FormatDisplayValue then k=tostring(bl.FormatDisplayValue(k))end end if#k>25 then k=k:sub(1,22)..'...'
end f.Text=(k==''and'---'or k)end function c.OnChanged(j,k)c.Changed=k end function c.GetActiveValues(j)if bl.Multi then
local k={}for l,m in c.Value do table.insert(k,l)end return k end return c.Value and 1 or 0 end local j={}function c.
BuildDropdownList(k)local l,m=c.Values,c.DisabledValues for n,o in j do n:Destroy()end table.clear(j)local n=0 for o,p
in l do if h and not tostring(p):lower():match(h.Text:lower())then continue end n+=1 local q,r=table.find(m,p),{}local s
=a0('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,LayoutOrder=q and 1 or 0,Size=UDim2.new(1,0,0,21
),Text=tostring(p),TextSize=14,TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Left,Parent=i.Menu})a0(
'UIPadding',{PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,7),Parent=s})local t if bl.Multi then t=c.Value[p]else t=
c.Value==p end function r.UpdateButton(u)if bl.Multi then t=c.Value[p]else t=c.Value==p end s.BackgroundTransparency=t
and 0 or 1 s.TextTransparency=q and 0.8 or t and 0 or 0.5 end if not q then s.MouseButton1Click:Connect(function()local
u=not t if not(c:GetActiveValues()==1 and not u and not bl.AllowNull)then t=u if bl.Multi then c.Value[p]=t and true or
nil else c.Value=t and p or nil end for v,w in j do w:UpdateButton()end end r:UpdateButton()c:Display()aB:
UpdateDependencyBoxes()aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.Changed,c.Value)end)end r:UpdateButton()c:
Display()j[s]=r end c:RecalculateListSize(n)end function c.SetValue(k,l)if bl.Multi then local m={}for n,o in l or{}do
if typeof(o)~='boolean'then m[o]=true elseif o and table.find(c.Values,n)then m[n]=true end end c.Value=m else if table.
find(c.Values,l)then c.Value=l elseif not l then c.Value=nil end end c:Display()for m,n in j do n:UpdateButton()end if
not c.Disabled then aB:UpdateDependencyBoxes()aB:SafeCallback(c.Callback,c.Value)aB:SafeCallback(c.Changed,c.Value)end
end function c.SetValues(k,l)c.Values=l c:BuildDropdownList()end function c.AddValues(k,l)if typeof(l)=='table'then for
m,n in l do table.insert(c.Values,n)end elseif typeof(l)=='string'then table.insert(c.Values,l)else return end c:
BuildDropdownList()end function c.SetDisabledValues(k,l)c.DisabledValues=l c:BuildDropdownList()end function c.
AddDisabledValues(k,l)if typeof(l)=='table'then for m,n in l do table.insert(c.DisabledValues,n)end elseif typeof(l)==
'string'then table.insert(c.DisabledValues,l)else return end c:BuildDropdownList()end function c.SetDisabled(k,l:boolean
)c.Disabled=l if c.TooltipTable then c.TooltipTable.Disabled=c.Disabled end i:Close()f.Active=not c.Disabled c:
UpdateColors()end function c.SetVisible(k,l:boolean)c.Visible=l d.Visible=c.Visible bm:Resize()end function c.SetText(k,
l:string)c.Text=l d.Size=UDim2.new(1,0,0,l and 39 or 21)e.Text=l and l or''e.Visible=not not l end f.MouseButton1Click:
Connect(function()if c.Disabled then return end i:Toggle()end)if h then h:GetPropertyChangedSignal'Text':Connect(c.
BuildDropdownList)end local k={}if typeof(bl.Default)=='string'then local l=table.find(c.Values,bl.Default)if l then
table.insert(k,l)end elseif typeof(bl.Default)=='table'then for l,m in next,bl.Default do local n=table.find(c.Values,m)
if n then table.insert(k,n)end end elseif c.Values[bl.Default]~=nil then table.insert(k,bl.Default)end if next(k)then
for l=1,#k do local m=k[l]if bl.Multi then c.Value[c.Values[m] ]=true else c.Value=c.Values[m]end if not bl.Multi then
break end end end if typeof(c.Tooltip)=='string'or typeof(c.DisabledTooltip)=='string'then c.TooltipTable=aB:AddTooltip(
c.Tooltip,c.DisabledTooltip,f)c.TooltipTable.Disabled=c.Disabled end c:UpdateColors()c:Display()c:BuildDropdownList()bm:
Resize()c.Holder=d table.insert(bm.Elements,c)c.Default=k c.DefaultValues=c.Values aw[bk]=c return c end function bi.
AddViewport(bj,bk,bl)bl=aB:Validate(bl,aC.Viewport)local bm=bj local bn,c,d,e,f,g=bm.Container,false,false,0,(bl.Object)
if bl.Clone and typeof(bl.Object)=='Instance'then if bl.Object.Archivable then f=f:Clone()else bl.Object.Archivable=true
f=f:Clone()bl.Object.Archivable=false end end local h={Object=f,Camera=if not bl.Camera then Instance.new'Camera'else bl
.Camera,Interactive=bl.Interactive,AutoFocus=bl.AutoFocus,Visible=bl.Visible,Type='Viewport'}assert(typeof(h.Object)==
'Instance'and(h.Object:IsA'BasePart'or h.Object:IsA'Model'),'Instance must be a BasePart or Model.')assert(typeof(h.
Camera)=='Instance'and h.Camera:IsA'Camera','Camera must be a valid Camera instance.')local function i(j)if j:IsA
'BasePart'then return j.Size end return select(2,j:GetBoundingBox())end local function j()local k=i(h.Object)local l=
math.max(k.X,k.Y,k.Z)local m,n=l*2,h.Object:GetPivot().Position h.Camera.CFrame=CFrame.new(n+Vector3.new(0,l/2,m),n)end
local k=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,bl.Height),Visible=h.Visible,Parent=bn})local l=a0(
'Frame',{AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,
Position=UDim2.fromScale(0,1),Size=UDim2.fromScale(1,1),Parent=k})a0('UIPadding',{PaddingBottom=UDim.new(0,3),
PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=l})local m=a0('ViewportFrame',{
BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Parent=l,CurrentCamera=h.Camera,Active=h.Interactive})m.MouseEnter:
Connect(function()if not h.Interactive then return end for n,o in bm.Tab.Sides do o.ScrollingEnabled=false end end)m.
MouseLeave:Connect(function()if not h.Interactive then return end for n,o in bm.Tab.Sides do o.ScrollingEnabled=true end
end)m.InputBegan:Connect(function(n)if not h.Interactive then return end if n.UserInputType==Enum.UserInputType.
MouseButton2 then c=true g=n.Position elseif n.UserInputType==Enum.UserInputType.Touch and not d then c=true g=n.
Position end end)aB:GiveSignal(aj.InputEnded:Connect(function(n)if aB.Unloaded then return end if not h.Interactive then
return end if n.UserInputType==Enum.UserInputType.MouseButton2 then c=false elseif n.UserInputType==Enum.UserInputType.
Touch then c=false end end))aB:GiveSignal(aj.InputChanged:Connect(function(n)if aB.Unloaded then return end if not h.
Interactive or not c or d then return end if n.UserInputType==Enum.UserInputType.MouseMovement or n.UserInputType==Enum.
UserInputType.Touch then local o=n.Position-g g=n.Position local p,q,r=h.Object:GetPivot().Position,h.Camera,CFrame.
fromAxisAngle(Vector3.new(0,1,0),-o.X*0.01)q.CFrame=CFrame.new(p)*r*CFrame.new(-p)*q.CFrame local s=CFrame.
fromAxisAngle(q.CFrame.RightVector,-o.Y*0.01)local t=CFrame.new(p)*s*CFrame.new(-p)*q.CFrame if t.UpVector.Y>0.1 then q.
CFrame=t end end end))m.InputChanged:Connect(function(n)if not h.Interactive then return end if n.UserInputType==Enum.
UserInputType.MouseWheel then local o=n.Position.Z*2 h.Camera.CFrame+=h.Camera.CFrame.LookVector*o end end)aB:
GiveSignal(aj.TouchPinch:Connect(function(n,o,p,q)if aB.Unloaded then return end if not h.Interactive or not aB:
MouseIsOverFrame(m,n[1])then return end if q==Enum.UserInputState.Begin then d=true c=false e=(n[1]-n[2]).Magnitude
elseif q==Enum.UserInputState.Change then local r=(n[1]-n[2]).Magnitude local s=(r-e)*0.1 e=r h.Camera.CFrame+=h.Camera.
CFrame.LookVector*s elseif q==Enum.UserInputState.End or q==Enum.UserInputState.Cancel then d=false end end))h.Object.
Parent=m if h.AutoFocus then j()end function h.SetObject(n,o:Instance,p:boolean?)assert(o,'Object cannot be nil.')if p
then o=o:Clone()end if h.Object then h.Object:Destroy()end h.Object=o h.Object.Parent=m bm:Resize()end function h.
SetHeight(n,o:number)assert(o>0,'Height must be greater than 0.')k.Size=UDim2.new(1,0,0,o)bm:Resize()end function h.
Focus(n)if not h.Object then return end j()end function h.SetCamera(n,o:Instance)assert(o and typeof(o)=='Instance'and o
:IsA'Camera','Camera must be a valid Camera instance.')h.Camera=o m.CurrentCamera=o end function h.SetInteractive(n,o:
boolean)h.Interactive=o m.Active=o end function h.SetVisible(n,o:boolean)h.Visible=o k.Visible=h.Visible bm:Resize()end
bm:Resize()h.Holder=k table.insert(bm.Elements,h)aw[bk]=h return h end function bi.AddImage(bj,bk,bl)bl=aB:Validate(bl,
aC.Image)local bm=bj local bn,c=bm.Container,{Image=bl.Image,Color=bl.Color,RectOffset=bl.RectOffset,RectSize=bl.
RectSize,Height=bl.Height,ScaleType=bl.ScaleType,Transparency=bl.Transparency,BackgroundTransparency=bl.
BackgroundTransparency,Visible=bl.Visible,Type='Image'}local d=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0
,bl.Height),Visible=c.Visible,Parent=bn})local e=a0('Frame',{AnchorPoint=Vector2.new(0,1),BackgroundColor3='MainColor',
BorderColor3='OutlineColor',BorderSizePixel=1,BackgroundTransparency=c.BackgroundTransparency,Position=UDim2.fromScale(0
,1),Size=UDim2.fromScale(1,1),Parent=d})a0('UIPadding',{PaddingBottom=UDim.new(0,3),PaddingLeft=UDim.new(0,8),
PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=e})local f={BackgroundTransparency=1,Size=UDim2.fromScale(1,1
),Image=c.Image,ImageTransparency=c.Transparency,ImageColor3=c.Color,ImageRectOffset=c.RectOffset,ImageRectSize=c.
RectSize,ScaleType=c.ScaleType,Parent=e}local g=aB:GetCustomIcon(f.Image)assert(g,
[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])f.Image=g.Url f.ImageRectOffset=g.
ImageRectOffset f.ImageRectSize=g.ImageRectSize local h=a0('ImageLabel',f)function c.SetHeight(i,j:number)assert(j>0,
'Height must be greater than 0.')c.Height=j d.Size=UDim2.new(1,0,0,j)bm:Resize()end function c.SetImage(i,j:string)
assert(typeof(j)=='string','Image must be a string.')local k=aB:GetCustomIcon(j)assert(k,
[[Image must be a valid Roblox asset or a valid URL or a valid lucide icon.]])j=k.Url c.RectOffset=k.ImageRectOffset c.
RectSize=k.ImageRectSize h.Image=j c.Image=j end function c.SetColor(i,j:Color3)assert(typeof(j)=='Color3',
'Color must be a Color3 value.')h.ImageColor3=j c.Color=j end function c.SetRectOffset(i,j:Vector2)assert(typeof(j)==
'Vector2','RectOffset must be a Vector2 value.')h.ImageRectOffset=j c.RectOffset=j end function c.SetRectSize(i,j:
Vector2)assert(typeof(j)=='Vector2','RectSize must be a Vector2 value.')h.ImageRectSize=j c.RectSize=j end function c.
SetScaleType(i,j:Enum.ScaleType)assert(typeof(j)=='EnumItem'and j:IsA'ScaleType',
'ScaleType must be a valid Enum.ScaleType.')h.ScaleType=j c.ScaleType=j end function c.SetTransparency(i,j:number)
assert(typeof(j)=='number','Transparency must be a number between 0 and 1.')assert(j>=0 and j<=1,
'Transparency must be between 0 and 1.')h.ImageTransparency=j c.Transparency=j end function c.SetVisible(i,j:boolean)c.
Visible=j d.Visible=c.Visible bm:Resize()end bm:Resize()c.Holder=d table.insert(bm.Elements,c)aw[bk]=c return c end
function bi.AddVideo(bj,bk,bl)bl=aB:Validate(bl,aC.Video)local bm=bj local bn,c=bm.Container,{Video=bl.Video,Looped=bl.
Looped,Playing=bl.Playing,Volume=bl.Volume,Height=bl.Height,Visible=bl.Visible,Type='Video'}local d=a0('Frame',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,bl.Height),Visible=c.Visible,Parent=bn})local e=a0('Frame',{AnchorPoint=
Vector2.new(0,1),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(0,1
),Size=UDim2.fromScale(1,1),Parent=d})a0('UIPadding',{PaddingBottom=UDim.new(0,3),PaddingLeft=UDim.new(0,8),PaddingRight
=UDim.new(0,8),PaddingTop=UDim.new(0,4),Parent=e})local f=a0('VideoFrame',{BackgroundTransparency=1,Size=UDim2.
fromScale(1,1),Video=c.Video,Looped=c.Looped,Volume=c.Volume,Parent=e})f.Playing=c.Playing function c.SetHeight(g,h:
number)assert(h>0,'Height must be greater than 0.')c.Height=h d.Size=UDim2.new(1,0,0,h)bm:Resize()end function c.
SetVideo(g,h:string)assert(typeof(h)=='string','Video must be a string.')f.Video=h c.Video=h end function c.SetLooped(g,
h:boolean)assert(typeof(h)=='boolean','Looped must be a boolean.')f.Looped=h c.Looped=h end function c.SetVolume(g,h:
number)assert(typeof(h)=='number','Volume must be a number between 0 and 10.')f.Volume=h c.Volume=h end function c.
SetPlaying(g,h:boolean)assert(typeof(h)=='boolean','Playing must be a boolean.')f.Playing=h c.Playing=h end function c.
Play(g)f.Playing=true c.Playing=true end function c.Pause(g)f.Playing=false c.Playing=false end function c.SetVisible(g,
h:boolean)c.Visible=h d.Visible=c.Visible bm:Resize()end bm:Resize()c.Holder=d c.VideoFrame=f table.insert(bm.Elements,c
)aw[bk]=c return c end function bi.AddUIPassthrough(bj,bk,bl)bl=aB:Validate(bl,aC.UIPassthrough)local bm=bj local bn=bm.
Container assert(bl.Instance,'Instance must be provided.')assert(typeof(bl.Instance)=='Instance'and bl.Instance:IsA
'GuiBase2d','Instance must inherit from GuiBase2d.')assert(typeof(bl.Height)=='number'and bl.Height>0,
'Height must be a number greater than 0.')local c={Instance=bl.Instance,Height=bl.Height,Visible=bl.Visible,Type=
'UIPassthrough'}local d=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,bl.Height),Visible=c.Visible,Parent=bn
})c.Instance.Parent=d bm:Resize()function c.SetHeight(e,f:number)assert(typeof(f)=='number'and f>0,
'Height must be a number greater than 0.')c.Height=f d.Size=UDim2.new(1,0,0,f)bm:Resize()end function c.SetInstance(e,f:
Instance)assert(f,'Instance must be provided.')assert(typeof(f)=='Instance'and f:IsA'GuiBase2d',
'Instance must inherit from GuiBase2d.')if c.Instance then c.Instance.Parent=nil end c.Instance=f c.Instance.Parent=d
end function c.SetVisible(e,f:boolean)c.Visible=f d.Visible=c.Visible bm:Resize()end c.Holder=d table.insert(bm.Elements
,c)aw[bk]=c return c end function bi.AddDependencyBox(bj)local bk=bj local bl,bm,bn=(bk.Container)do bm=a0('Frame',{
BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Visible=false,Parent=bl})bn=a0('UIListLayout',{Padding=UDim.new(0,8),
Parent=bm})end local c={Visible=false,Dependencies={},Holder=bm,Container=bm,Elements={},DependencyBoxes={}}function c.
Resize(d)bm.Size=UDim2.new(1,0,0,bn.AbsoluteContentSize.Y/aB.DPIScale)bk:Resize()end function c.Update(d,e)for f,g in c.
Dependencies do local h,i=g[1],g[2]if h.Type=='Toggle'and h.Value~=i then bm.Visible=false c.Visible=false return elseif
h.Type=='Dropdown'then if typeof(h.Value)=='table'then if not h.Value[i]then bm.Visible=false c.Visible=false return end
else if h.Value~=i then bm.Visible=false c.Visible=false return end end end end c.Visible=true bm.Visible=true if not aB
.Searching then task.defer(function()c:Resize()end)elseif not e then aB:UpdateSearch(aB.SearchText)end end bn:
GetPropertyChangedSignal'AbsoluteContentSize':Connect(function()if not c.Visible then return end c:Resize()end)function
c.SetupDependencies(d,e)for f,g in e do assert(typeof(g)=='table','Dependency should be a table.')assert(g[1]~=nil,
'Dependency is missing element.')assert(g[2]~=nil,'Dependency is missing expected value.')end c.Dependencies=e c:Update(
)end bm:GetPropertyChangedSignal'Visible':Connect(function()c:Resize()end)setmetatable(c,bh)table.insert(bk.
DependencyBoxes,c)table.insert(aB.DependencyBoxes,c)return c end function bi.AddDependencyGroupbox(bj)local bk=bj local
bl,bm,bn,c=bk.Tab,(bk.BoxHolder)do bn=a0('Frame',{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,0),Visible=
false,Parent=bm})a0('UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius),Parent=bn})aB:AddOutline(bn)c=a0('UIListLayout'
,{Padding=UDim.new(0,8),Parent=bn})a0('UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=
UDim.new(0,7),PaddingTop=UDim.new(0,7),Parent=bn})end local d={Visible=false,Dependencies={},BoxHolder=bm,Holder=bn,
Container=bn,Tab=bl,Elements={},DependencyBoxes={}}function d.Resize(e)bn.Size=UDim2.new(1,0,0,(c.AbsoluteContentSize.Y/
aB.DPIScale)+18)end function d.Update(e,f)for g,h in d.Dependencies do local i,j=h[1],h[2]if i.Type=='Toggle'and i.Value
~=j then bn.Visible=false d.Visible=false return elseif i.Type=='Dropdown'then if typeof(i.Value)=='table'then if not i.
Value[j]then bn.Visible=false d.Visible=false return end else if i.Value~=j then bn.Visible=false d.Visible=false return
end end end end d.Visible=true if not aB.Searching then bn.Visible=true d:Resize()elseif not f then aB:UpdateSearch(aB.
SearchText)end end function d.SetupDependencies(e,f)for g,h in f do assert(typeof(h)=='table',
'Dependency should be a table.')assert(h[1]~=nil,'Dependency is missing element.')assert(h[2]~=nil,
'Dependency is missing expected value.')end d.Dependencies=f d:Update()end setmetatable(d,bh)table.insert(bl.
DependencyGroupboxes,d)table.insert(aB.DependencyBoxes,d)return d end bh.__index=bi bh.__namecall=function(bj,bk,...)
return bi[bk](...)end end function aB.SetFont(bi,bj)if typeof(bj)=='EnumItem'then bj=Font.fromEnum(bj)end aB.Scheme.Font
=bj aB:UpdateColorsUsingRegistry()end function aB.SetNotifySide(bi,bj:string)aB.NotifySide=bj if bj:lower()=='left'then
a7.AnchorPoint=Vector2.new(0,0)a7.Position=UDim2.fromOffset(6,6)a8.HorizontalAlignment=Enum.HorizontalAlignment.Left
else a7.AnchorPoint=Vector2.new(1,0)a7.Position=UDim2.new(1,-6,0,6)a8.HorizontalAlignment=Enum.HorizontalAlignment.Right
end end function aB.Notify(bi,...)local bj,bk={},select(1,...)if typeof(bk)=='table'then bj.Title=tostring(bk.Title)bj.
Description=tostring(bk.Description)bj.Time=bk.Time or 5 bj.SoundId=bk.SoundId bj.Steps=bk.Steps bj.Persist=bk.Persist
else bj.Description=tostring(bk)bj.Time=select(2,...)or 5 bj.SoundId=select(3,...)end bj.Destroyed=false local bl,bm=
false if typeof(bj.Time)=='Instance'then bm=bj.Time.Destroying:Connect(function()bl=true bm:Disconnect()bm=nil end)end
local bn=a0('Frame',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Visible=false
,Parent=a7})local c=a0('Frame',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundColor3='MainColor',Position=aB.NotifySide:
lower()=='left'and UDim2.new(-1,-8,0,-2)or UDim2.new(1,8,0,-2),Size=UDim2.fromScale(1,1),ZIndex=5,Parent=bn})a0(
'UICorner',{CornerRadius=UDim.new(0,aB.CornerRadius),Parent=c})a0('UIListLayout',{Padding=UDim.new(0,4),Parent=c})a0(
'UIPadding',{PaddingBottom=UDim.new(0,8),PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,8),
Parent=c})aB:AddOutline(c)local d,e,f,g,h=0,0 if bj.Title then f=a0('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,
BackgroundTransparency=1,Size=UDim2.fromScale(0,0),Text=bj.Title,TextSize=15,TextXAlignment=Enum.TextXAlignment.Left,
TextWrapped=true,Parent=c})end if bj.Description then g=a0('TextLabel',{AutomaticSize=Enum.AutomaticSize.X,
BackgroundTransparency=1,Size=UDim2.fromScale(0,0),Text=bj.Description,TextSize=14,TextXAlignment=Enum.TextXAlignment.
Left,TextWrapped=true,Parent=c})end function bj.Resize(i)if f then local j,k=aB:GetTextBounds(f.Text,f.FontFace,f.
TextSize,(a7.AbsoluteSize.X/aB.DPIScale)-24)f.Size=UDim2.fromOffset(0,k)d=j end if g then local j,k=aB:GetTextBounds(g.
Text,g.FontFace,g.TextSize,(a7.AbsoluteSize.X/aB.DPIScale)-24)g.Size=UDim2.fromOffset(0,k)e=j end bn.Size=UDim2.
fromOffset(math.max(d,e)+24,0)end function bj.ChangeTitle(i,j)if f then bj.Title=tostring(j)f.Text=bj.Title bj:Resize()
end end function bj.ChangeDescription(i,j)if g then bj.Description=tostring(j)g.Text=bj.Description bj:Resize()end end
function bj.ChangeStep(i,j)if h and bj.Steps then j=math.clamp(j or 0,0,bj.Steps)h.Size=UDim2.fromScale(j/bj.Steps,1)end
end function bj.Destroy(i)bj.Destroyed=true if typeof(bj.Time)=='Instance'then pcall(bj.Time.Destroy,bj.Time)end if bm
then bm:Disconnect()end am:Create(c,aB.NotifyTweenInfo,{Position=aB.NotifySide:lower()=='left'and UDim2.new(-1,-8,0,-2)
or UDim2.new(1,8,0,-2)}):Play()task.delay(aB.NotifyTweenInfo.Time,function()aB.Notifications[bn]=nil bn:Destroy()end)end
bj:Resize()local i=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,7),Visible=(bj.Persist~=true and typeof(bj.
Time)~='Instance')or typeof(bj.Steps)=='number',Parent=c})local j=a0('Frame',{BackgroundColor3='BackgroundColor',
BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromOffset(0,3),Size=UDim2.new(1,0,0,2),Parent=i})h=a0(
'Frame',{BackgroundColor3='AccentColor',Size=UDim2.fromScale(1,1),Parent=j})if typeof(bj.Time)=='Instance'then h.Size=
UDim2.fromScale(0,1)end if bj.SoundId then local k=bj.SoundId if typeof(k)=='number'then k=string.format(
'rbxassetid://%d',k)end a0('Sound',{SoundId=k,Volume=3,PlayOnRemove=true,Parent=ai}):Destroy()end aB.Notifications[bn]=
bj bn.Visible=true am:Create(c,aB.NotifyTweenInfo,{Position=UDim2.fromOffset(0,0)}):Play()task.delay(aB.NotifyTweenInfo.
Time,function()if bj.Persist then return elseif typeof(bj.Time)=='Instance'then repeat task.wait()until bl or bj.
Destroyed else am:Create(h,TweenInfo.new(bj.Time,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut),{Size=UDim2.
fromScale(0,1)}):Play()task.wait(bj.Time)end if not bj.Destroyed then bj:Destroy()end end)return bj end function aB.
CreateWindow(bi,bj)bj=aB:Validate(bj,aC.Window)local bk:Vector2=workspace.CurrentCamera.ViewportSize if ah:IsStudio()and
bk.X<=5 and bk.Y<=5 then repeat bk=workspace.CurrentCamera.ViewportSize task.wait()until bk.X>5 and bk.Y>5 end local bl,
bm=bk.X-64,bk.Y-64 aB.OriginalMinSize=Vector2.new(math.min(aB.OriginalMinSize.X,bl),math.min(aB.OriginalMinSize.Y,bm))aB
.MinSize=aB.OriginalMinSize bj.Size=UDim2.fromOffset(math.clamp(bj.Size.X.Offset,aB.MinSize.X,bl),math.clamp(bj.Size.Y.
Offset,aB.MinSize.Y,bm))if typeof(bj.Font)=='EnumItem'then bj.Font=Font.fromEnum(bj.Font)end bj.CornerRadius=math.min(bj
.CornerRadius,20)if bj.Compact~=nil then bj.SidebarCompacted=bj.Compact end if bj.SidebarMinWidth~=nil then bj.
MinSidebarWidth=bj.SidebarMinWidth end bj.MinSidebarWidth=math.max(64,bj.MinSidebarWidth)bj.SidebarCompactWidth=math.
max(48,bj.SidebarCompactWidth)bj.SidebarCollapseThreshold=math.clamp(bj.SidebarCollapseThreshold,0.1,0.9)bj.
CompactWidthActivation=math.max(48,bj.CompactWidthActivation)aB.CornerRadius=bj.CornerRadius aB:SetNotifySide(bj.
NotifySide)aB.ShowCustomCursor=bj.ShowCustomCursor aB.Scheme.Font=bj.Font aB.ToggleKeybind=bj.ToggleKeybind aB.
GlobalSearch=bj.GlobalSearch local bn,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=bj.SearchbarSize==UDim2.fromScale(1,1),math.ceil(bj.
Size.X.Offset*0.3),(bj.SidebarCompacted)local r=c do aB.KeybindFrame,aB.KeybindContainer=aB:AddDraggableMenu'Keybinds'aB
.KeybindFrame.AnchorPoint=Vector2.new(0,0.5)aB.KeybindFrame.Position=UDim2.new(0,6,0.5,0)aB.KeybindFrame.Visible=false e
=a0('TextButton',{BackgroundColor3=function()return aB:GetBetterColor(aB.Scheme.BackgroundColor,-1)end,Name='Main',Text=
'',Position=bj.Position,Size=bj.Size,Visible=false,Parent=a3})a0('UICorner',{CornerRadius=UDim.new(0,bj.CornerRadius),
Parent=e})table.insert(aB.Scales,a0('UIScale',{Parent=e}))aB:AddOutline(e)aB:MakeLine(e,{Position=UDim2.fromOffset(0,48)
,Size=UDim2.new(1,0,0,1)})f=a0('Frame',{BackgroundColor3='OutlineColor',Position=UDim2.fromOffset(c,0),Size=UDim2.new(0,
1,1,-21),Parent=e})if bj.BackgroundImage then a0('ImageLabel',{Image=bj.BackgroundImage,Position=UDim2.fromScale(0,0),
Size=UDim2.fromScale(1,1),ScaleType=Enum.ScaleType.Stretch,ZIndex=999,BackgroundTransparency=1,ImageTransparency=0.75,
Parent=e})end if bj.Center then e.Position=UDim2.new(0.5,-e.Size.X.Offset/2,0.5,-e.Size.Y.Offset/2)end local s=a0(
'Frame',{BackgroundTransparency=1,Size=UDim2.new(1,0,0,48),Parent=e})aB:MakeDraggable(e,s,false,true)g=a0('Frame',{
BackgroundTransparency=1,Size=UDim2.new(0,c,1,0),Parent=s})a0('UIListLayout',{FillDirection=Enum.FillDirection.
Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Center,VerticalAlignment=Enum.VerticalAlignment.Center,Padding=
UDim.new(0,6),Parent=g})if bj.Icon then i=a0('ImageLabel',{Image=if tonumber(bj.Icon)then string.format(
'rbxassetid://%d',bj.Icon)else bj.Icon,Size=bj.IconSize,Parent=g})else i=a0('TextLabel',{BackgroundTransparency=1,Size=
bj.IconSize,Text=bj.Title:sub(1,1),TextScaled=true,Visible=false,Parent=g})end local t=aB:GetTextBounds(bj.Title,aB.
Scheme.Font,20,g.AbsoluteSize.X-(bj.Icon and bj.IconSize.X.Offset+6 or 0)-12)h=a0('TextLabel',{BackgroundTransparency=1,
Size=UDim2.new(0,t,1,0),Text=bj.Title,TextSize=20,Parent=g})j=a0('Frame',{AnchorPoint=Vector2.new(1,0.5),
BackgroundTransparency=1,Position=UDim2.new(1,-49,0.5,0),Size=UDim2.new(1,-c-57-1,1,-16),Parent=s})a0('UIListLayout',{
FillDirection=Enum.FillDirection.Horizontal,HorizontalAlignment=Enum.HorizontalAlignment.Left,VerticalAlignment=Enum.
VerticalAlignment.Center,Padding=UDim.new(0,8),Parent=j})l=a0('Frame',{Size=UDim2.fromScale(bj.DisableSearch and 1 or
0.5,1),Visible=false,BackgroundTransparency=1,Parent=j})a0('UIFlexItem',{FlexMode=Enum.UIFlexMode.Grow,Parent=l})a0(
'UIListLayout',{FillDirection=Enum.FillDirection.Vertical,HorizontalAlignment=Enum.HorizontalAlignment.Left,
VerticalAlignment=Enum.VerticalAlignment.Center,Parent=l})a0('UIPadding',{PaddingBottom=UDim.new(0,8),PaddingLeft=UDim.
new(0,8),PaddingRight=UDim.new(0,8),PaddingTop=UDim.new(0,8),Parent=l})m=a0('TextLabel',{BackgroundTransparency=1,Size=
UDim2.fromScale(1,0),AutomaticSize=Enum.AutomaticSize.Y,Text='',TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,
Parent=l})n=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2.fromScale(1,0),AutomaticSize=Enum.AutomaticSize.Y,Text=
'',TextWrapped=true,TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,TextTransparency=0.5,Parent=l})k=a0('TextBox',{
BackgroundColor3='MainColor',PlaceholderText='Search',Size=bj.SearchbarSize,TextScaled=true,Visible=not(bj.DisableSearch
or false),Parent=j})a0('UIFlexItem',{FlexMode=Enum.UIFlexMode.Shrink,Parent=k})a0('UICorner',{CornerRadius=UDim.new(0,bj
.CornerRadius),Parent=k})a0('UIPadding',{PaddingBottom=UDim.new(0,8),PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8
),PaddingTop=UDim.new(0,8),Parent=k})a0('UIStroke',{Color='OutlineColor',Parent=k})local u=aB:GetIcon'search'if u then
a0('ImageLabel',{Image=u.Url,ImageColor3='FontColor',ImageRectOffset=u.ImageRectOffset,ImageRectSize=u.ImageRectSize,
ImageTransparency=0.5,Size=UDim2.fromScale(1,1),SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=k})end if bf then
a0('ImageLabel',{AnchorPoint=Vector2.new(1,0.5),Image=bf.Url,ImageColor3='OutlineColor',ImageRectOffset=bf.
ImageRectOffset,ImageRectSize=bf.ImageRectSize,Position=UDim2.new(1,-10,0.5,0),Size=UDim2.fromOffset(28,28),
SizeConstraint=Enum.SizeConstraint.RelativeYY,Parent=s})end local v=a0('Frame',{AnchorPoint=Vector2.new(0,1),
BackgroundColor3=function()return aB:GetBetterColor(aB.Scheme.BackgroundColor,4)end,Position=UDim2.fromScale(0,1),Size=
UDim2.new(1,0,0,bj.CornerRadius*2),Parent=e})aB:MakeLine(e,{AnchorPoint=Vector2.new(0,1),Position=UDim2.new(0,0,1,-20),
Size=UDim2.new(1,0,0,1)})local w=a0('Frame',{AnchorPoint=Vector2.new(0,1),BackgroundTransparency=1,Position=UDim2.
fromScale(0,1),Size=UDim2.new(1,0,0,20),Parent=e})a0('UICorner',{CornerRadius=UDim.new(0,bj.CornerRadius),Parent=v})a0(
'TextLabel',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Text=bj.Footer,TextSize=14,TextTransparency=0.5,Parent=w
})if bj.Resizable then o=a0('TextButton',{AnchorPoint=Vector2.new(1,0),BackgroundTransparency=1,Position=UDim2.new(1,-bj
.CornerRadius/4,0,0),Size=UDim2.fromScale(1,1),SizeConstraint=Enum.SizeConstraint.RelativeYY,Text='',Parent=w})aB:
MakeResizable(e,o,function()for x,y in aB.Tabs do y:Resize(true)end end)end a0('ImageLabel',{Image=bd and bd.Url or'',
ImageColor3='FontColor',ImageRectOffset=bd and bd.ImageRectOffset or Vector2.zero,ImageRectSize=bd and bd.ImageRectSize
or Vector2.zero,ImageTransparency=0.5,Position=UDim2.fromOffset(2,2),Size=UDim2.new(1,-4,1,-4),Parent=o})p=a0(
'ScrollingFrame',{AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundColor3='BackgroundColor',CanvasSize=UDim2.
fromScale(0,0),Position=UDim2.fromOffset(0,49),ScrollBarThickness=0,Size=UDim2.new(0,c,1,-70),Parent=e})a0(
'UIListLayout',{Parent=p})q=a0('Frame',{AnchorPoint=Vector2.new(1,0),BackgroundColor3=function()return aB:
GetBetterColor(aB.Scheme.BackgroundColor,1)end,Name='Container',Position=UDim2.new(1,0,0,49),Size=UDim2.new(1,-c-1,1,-70
),Parent=e})a0('UIPadding',{PaddingBottom=UDim.new(0,0),PaddingLeft=UDim.new(0,6),PaddingRight=UDim.new(0,6),PaddingTop=
UDim.new(0,0),Parent=q})end local s={}function s.ChangeTitle(t,u)assert(typeof(u)=='string',
'Expected string for title got: '..typeof(u))h.Text=u bj.Title=u end local function t()d=s:GetSidebarWidth()==bj.
SidebarCompactWidth if bj.DisableCompactingSnap then d=s:GetSidebarWidth()<=bj.CompactWidthActivation end h.Visible=not
d if not bj.Icon then i.Visible=d end for u,v in aB.TabButtons do if not v.Icon then continue end v.Label.Visible=not d
v.Padding.PaddingBottom=UDim.new(0,d and 6 or 11)v.Padding.PaddingLeft=UDim.new(0,d and 6 or 12)v.Padding.PaddingRight=
UDim.new(0,d and 6 or 12)v.Padding.PaddingTop=UDim.new(0,d and 6 or 11)v.Icon.SizeConstraint=d and Enum.SizeConstraint.
RelativeXY or Enum.SizeConstraint.RelativeYY end end function s.IsSidebarCompacted(u)return d end function s.SetCompact(
u,v)s:SetSidebarWidth(v and bj.SidebarCompactWidth or r)end function s.GetSidebarWidth(u)return p.Size.X.Offset end
function s.SetSidebarWidth(u,v)v=math.clamp(v,48,e.Size.X.Offset-bj.MinContainerWidth-1)f.Position=UDim2.fromOffset(v,0)
g.Size=UDim2.new(0,v,1,0)j.Size=UDim2.new(1,-v-57-1,1,-16)p.Size=UDim2.new(0,v,1,-70)q.Size=UDim2.new(1,-v-1,1,-70)if bj
.EnableCompacting then t()end if not d then r=v end end function s.ShowTabInfo(u,v,w)m.Text=v n.Text=w if bn then k.Size
=UDim2.fromScale(0.5,1)end l.Visible=true end function s.HideTabInfo(u)l.Visible=false if bn then k.Size=UDim2.
fromScale(1,1)end end function s.AddTab(u,...)local v,w,x if select('#',...)==1 and typeof(...)=='table'then local y=
select(1,...)v=y.Name or'Tab'w=y.Icon x=y.Description else v=select(1,...)w=select(2,...)x=select(3,...)end local y:
TextButton,z,A,B,C,D w=aB:GetCustomIcon(w)do y=a0('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,
Size=UDim2.new(1,0,0,40),Text='',Parent=p})local E=a0('UIPadding',{PaddingBottom=UDim.new(0,d and 6 or 11),PaddingLeft=
UDim.new(0,d and 6 or 12),PaddingRight=UDim.new(0,d and 6 or 12),PaddingTop=UDim.new(0,d and 6 or 11),Parent=y})z=a0(
'TextLabel',{BackgroundTransparency=1,Position=UDim2.fromOffset(30,0),Size=UDim2.new(1,-30,1,0),Text=v,TextSize=16,
TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Left,Visible=not d,Parent=y})if w then A=a0('ImageLabel',{Image=
w.Url,ImageColor3=w.Custom and'WhiteColor'or'AccentColor',ImageRectOffset=w.ImageRectOffset,ImageRectSize=w.
ImageRectSize,ImageTransparency=0.5,ScaleType=Enum.ScaleType.Fit,Size=UDim2.fromScale(1,1),SizeConstraint=d and Enum.
SizeConstraint.RelativeXY or Enum.SizeConstraint.RelativeYY,Parent=y})end table.insert(aB.TabButtons,{Label=z,Padding=E,
Icon=A})B=a0('Frame',{BackgroundTransparency=1,Size=UDim2.fromScale(1,1),Visible=false,Parent=q})C=a0('ScrollingFrame',{
AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),
ScrollBarImageTransparency=1,ScrollBarThickness=0,Size=UDim2.new(0.5,-3,1,0),Parent=B})a0('UIListLayout',{Padding=UDim.
new(0,2),Parent=C})a0('UIPadding',{PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=UDim.new(0,2),
PaddingTop=UDim.new(0,2),Parent=C})do a0('Frame',{BackgroundTransparency=1,LayoutOrder=-1,Parent=C})a0('Frame',{
BackgroundTransparency=1,LayoutOrder=1,Parent=C})end D=a0('ScrollingFrame',{AnchorPoint=Vector2.new(1,0),
AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),Position=UDim2.
fromScale(1,0),ScrollBarImageTransparency=1,ScrollBarThickness=0,Size=UDim2.new(0.5,-3,1,0),Parent=B})a0('UIListLayout',
{Padding=UDim.new(0,2),Parent=D})a0('UIPadding',{PaddingBottom=UDim.new(0,2),PaddingLeft=UDim.new(0,2),PaddingRight=UDim
.new(0,2),PaddingTop=UDim.new(0,2),Parent=D})do a0('Frame',{BackgroundTransparency=1,LayoutOrder=-1,Parent=D})a0('Frame'
,{BackgroundTransparency=1,LayoutOrder=1,Parent=D})end end local E,F,G,H,I,J,K,L=(a0('Frame',{AutomaticSize=Enum.
AutomaticSize.Y,BackgroundTransparency=1,Position=UDim2.fromOffset(0,7),Size=UDim2.fromScale(1,0),Visible=false,Parent=B
}))do F=a0('Frame',{BackgroundColor3='BackgroundColor',Position=UDim2.fromOffset(2,0),Size=UDim2.new(1,-5,0,0),Parent=E}
)a0('UICorner',{CornerRadius=UDim.new(0,bj.CornerRadius),Parent=F})G,H=aB:AddOutline(F)I=a0('ScrollingFrame',{
BackgroundTransparency=1,BorderSizePixel=0,Size=UDim2.fromScale(1,1),CanvasSize=UDim2.new(0,0,0,0),ScrollBarThickness=3,
ScrollingDirection=Enum.ScrollingDirection.Y,Parent=F})a0('UIPadding',{PaddingBottom=UDim.new(0,4),PaddingLeft=UDim.new(
0,6),PaddingRight=UDim.new(0,6),PaddingTop=UDim.new(0,4),Parent=I})J=a0('TextLabel',{BackgroundTransparency=1,Size=UDim2
.new(1,-4,0,14),Text='',TextColor3=Color3.fromRGB(255,50,50),TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=
I})K=a0('UIStroke',{ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual,Color=Color3.fromRGB(169,0,0),LineJoinMode=Enum.
LineJoinMode.Miter,Parent=J})L=a0('TextLabel',{BackgroundTransparency=1,Position=UDim2.fromOffset(0,16),Size=UDim2.new(1
,-4,0,0),Text='',TextSize=14,TextWrapped=true,Parent=I,TextXAlignment=Enum.TextXAlignment.Left,TextYAlignment=Enum.
TextYAlignment.Top})a0('UIStroke',{ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual,Color='DarkColor',LineJoinMode=Enum.
LineJoinMode.Miter,Parent=L})end local M={Groupboxes={},Tabboxes={},DependencyGroupboxes={},Sides={C,D},WarningBox={
IsNormal=false,LockSize=false,Visible=false,Title='WARNING',Text=''}}function M.UpdateWarningBox(N,O)if typeof(O.
IsNormal)=='boolean'then M.WarningBox.IsNormal=O.IsNormal end if typeof(O.LockSize)=='boolean'then M.WarningBox.LockSize
=O.LockSize end if typeof(O.Visible)=='boolean'then M.WarningBox.Visible=O.Visible end if typeof(O.Title)=='string'then
M.WarningBox.Title=O.Title end if typeof(O.Text)=='string'then M.WarningBox.Text=O.Text end E.Visible=M.WarningBox.
Visible J.Text=M.WarningBox.Title L.Text=M.WarningBox.Text M:Resize(true)F.BackgroundColor3=M.WarningBox.IsNormal==true
and aB.Scheme.BackgroundColor or Color3.fromRGB(127,0,0)H.Color=M.WarningBox.IsNormal==true and aB.Scheme.DarkColor or
Color3.fromRGB(85,0,0)G.Color=M.WarningBox.IsNormal==true and aB.Scheme.OutlineColor or Color3.fromRGB(255,50,50)J.
TextColor3=M.WarningBox.IsNormal==true and aB.Scheme.FontColor or Color3.fromRGB(255,50,50)K.Color=M.WarningBox.IsNormal
==true and aB.Scheme.OutlineColor or Color3.fromRGB(169,0,0)if not aB.Registry[F]then aB:AddToRegistry(F,{})end if not
aB.Registry[H]then aB:AddToRegistry(H,{})end if not aB.Registry[G]then aB:AddToRegistry(G,{})end if not aB.Registry[J]
then aB:AddToRegistry(J,{})end if not aB.Registry[K]then aB:AddToRegistry(K,{})end aB.Registry[F].BackgroundColor3=
function()return M.WarningBox.IsNormal==true and aB.Scheme.BackgroundColor or Color3.fromRGB(127,0,0)end aB.Registry[H].
Color=function()return M.WarningBox.IsNormal==true and aB.Scheme.DarkColor or Color3.fromRGB(85,0,0)end aB.Registry[G].
Color=function()return M.WarningBox.IsNormal==true and aB.Scheme.OutlineColor or Color3.fromRGB(255,50,50)end aB.
Registry[J].TextColor3=function()return M.WarningBox.IsNormal==true and aB.Scheme.FontColor or Color3.fromRGB(255,50,50)
end aB.Registry[K].Color=function()return M.WarningBox.IsNormal==true and aB.Scheme.OutlineColor or Color3.fromRGB(169,0
,0)end end function M.RefreshSides(N)local O=E.Visible and F.Size.Y.Offset+8 or 0 for P,Q in M.Sides do Q.Position=UDim2
.new(Q.Position.X.Scale,0,0,O)Q.Size=UDim2.new(0.5,-3,1,-O)end end function M.Resize(N,O:boolean?)if O then local P,Q,S=
math.floor(B.AbsoluteSize.Y/3.25),aB:GetTextBounds(L.Text,aB.Scheme.Font,L.TextSize,L.AbsoluteSize.X)local T=24+S if M.
WarningBox.LockSize==true and T>=P then I.CanvasSize=UDim2.fromOffset(0,T)T=P else I.CanvasSize=UDim2.fromOffset(0,0)end
L.Size=UDim2.new(1,-4,0,S)F.Size=UDim2.new(1,-5,0,T+4)end M:RefreshSides()end function M.AddGroupbox(N,O)local P=a0(
'Frame',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Parent=O.Side==1 and C or
D})a0('UIListLayout',{Padding=UDim.new(0,6),Parent=P})a0('UIPadding',{PaddingBottom=UDim.new(0,4),PaddingTop=UDim.new(0,
4),Parent=P})local Q,S,T,U do Q=a0('Frame',{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,0),Parent=P})a0(
'UICorner',{CornerRadius=UDim.new(0,bj.CornerRadius),Parent=Q})aB:AddOutline(Q)aB:MakeLine(Q,{Position=UDim2.fromOffset(
0,34),Size=UDim2.new(1,0,0,1)})local V=aB:GetCustomIcon(O.IconName)if V then a0('ImageLabel',{Image=V.Url,ImageColor3=V.
Custom and'WhiteColor'or'AccentColor',ImageRectOffset=V.ImageRectOffset,ImageRectSize=V.ImageRectSize,Position=UDim2.
fromOffset(6,6),Size=UDim2.fromOffset(22,22),Parent=Q})end S=a0('TextLabel',{BackgroundTransparency=1,Position=UDim2.
fromOffset(V and 24 or 0,0),Size=UDim2.new(1,0,0,34),Text=O.Name,TextSize=15,TextXAlignment=Enum.TextXAlignment.Left,
Parent=Q})a0('UIPadding',{PaddingLeft=UDim.new(0,12),PaddingRight=UDim.new(0,12),Parent=S})T=a0('Frame',{
BackgroundTransparency=1,Position=UDim2.fromOffset(0,35),Size=UDim2.new(1,0,1,-35),Parent=Q})U=a0('UIListLayout',{
Padding=UDim.new(0,8),Parent=T})a0('UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=UDim.
new(0,7),PaddingTop=UDim.new(0,7),Parent=T})end local V={BoxHolder=P,Holder=Q,Container=T,Tab=M,DependencyBoxes={},
Elements={}}function V.Resize(W)Q.Size=UDim2.new(1,0,0,(U.AbsoluteContentSize.Y/aB.DPIScale)+49)end setmetatable(V,bh)V:
Resize()M.Groupboxes[O.Name]=V return V end function M.AddLeftGroupbox(N,O,P)return M:AddGroupbox{Side=1,Name=O,IconName
=P}end function M.AddRightGroupbox(N,O,P)return M:AddGroupbox{Side=2,Name=O,IconName=P}end function M.AddTabbox(N,O)
local P=a0('Frame',{AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,Size=UDim2.fromScale(1,0),Parent=O.Side
==1 and C or D})a0('UIListLayout',{Padding=UDim.new(0,6),Parent=P})a0('UIPadding',{PaddingBottom=UDim.new(0,4),
PaddingTop=UDim.new(0,4),Parent=P})local Q,S do Q=a0('Frame',{BackgroundColor3='BackgroundColor',Size=UDim2.fromScale(1,
0),Parent=P})a0('UICorner',{CornerRadius=UDim.new(0,bj.CornerRadius),Parent=Q})aB:AddOutline(Q)S=a0('Frame',{
BackgroundTransparency=1,Size=UDim2.new(1,0,0,34),Parent=Q})a0('UIListLayout',{FillDirection=Enum.FillDirection.
Horizontal,HorizontalFlex=Enum.UIFlexAlignment.Fill,Parent=S})end local T={ActiveTab=nil,BoxHolder=P,Holder=Q,Tabs={}}
function T.AddTab(U,V)local W=a0('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=0,Size=UDim2.
fromOffset(0,34),Text=V,TextSize=15,TextTransparency=0.5,Parent=S})local X,Y=aB:MakeLine(W,{AnchorPoint=Vector2.new(0,1)
,Position=UDim2.new(0,0,1,1),Size=UDim2.new(1,0,0,1)}),a0('Frame',{BackgroundTransparency=1,Position=UDim2.fromOffset(0,
35),Size=UDim2.new(1,0,1,-35),Visible=false,Parent=Q})local Z=a0('UIListLayout',{Padding=UDim.new(0,8),Parent=Y})a0(
'UIPadding',{PaddingBottom=UDim.new(0,7),PaddingLeft=UDim.new(0,7),PaddingRight=UDim.new(0,7),PaddingTop=UDim.new(0,7),
Parent=Y})local _={ButtonHolder=W,Container=Y,Tab=M,Elements={},DependencyBoxes={}}function _.Show(bo)if T.ActiveTab
then T.ActiveTab:Hide()end W.BackgroundTransparency=1 W.TextTransparency=0 X.Visible=false Y.Visible=true T.ActiveTab=_
_:Resize()end function _.Hide(bo)W.BackgroundTransparency=0 W.TextTransparency=0.5 X.Visible=true Y.Visible=false T.
ActiveTab=nil end function _.Resize(bo)if T.ActiveTab~=_ then return end Q.Size=UDim2.new(1,0,0,(Z.AbsoluteContentSize.Y
/aB.DPIScale)+49)end if not T.ActiveTab then _:Show()end W.MouseButton1Click:Connect(_.Show)setmetatable(_,bh)T.Tabs[V]=
_ return _ end if O.Name then M.Tabboxes[O.Name]=T else table.insert(M.Tabboxes,T)end return T end function M.
AddLeftTabbox(bo,N)return M:AddTabbox{Side=1,Name=N}end function M.AddRightTabbox(bo,N)return M:AddTabbox{Side=2,Name=N}
end function M.Hover(bo,N)if aB.ActiveTab==M then return end am:Create(z,aB.TweenInfo,{TextTransparency=N and 0.25 or
0.5}):Play()if A then am:Create(A,aB.TweenInfo,{ImageTransparency=N and 0.25 or 0.5}):Play()end end function M.Show(bo)
if aB.ActiveTab then aB.ActiveTab:Hide()end am:Create(y,aB.TweenInfo,{BackgroundTransparency=0}):Play()am:Create(z,aB.
TweenInfo,{TextTransparency=0}):Play()if A then am:Create(A,aB.TweenInfo,{ImageTransparency=0}):Play()end if x then s:
ShowTabInfo(v,x)end B.Visible=true M:RefreshSides()aB.ActiveTab=M if aB.Searching then aB:UpdateSearch(aB.SearchText)end
end function M.Hide(bo)am:Create(y,aB.TweenInfo,{BackgroundTransparency=1}):Play()am:Create(z,aB.TweenInfo,{
TextTransparency=0.5}):Play()if A then am:Create(A,aB.TweenInfo,{ImageTransparency=0.5}):Play()end B.Visible=false s:
HideTabInfo()aB.ActiveTab=nil end if not aB.ActiveTab then M:Show()end y.MouseEnter:Connect(function()M:Hover(true)end)y
.MouseLeave:Connect(function()M:Hover(false)end)y.MouseButton1Click:Connect(M.Show)aB.Tabs[v]=M return M end function s.
AddKeyTab(bo,...)local u,v,w if select('#',...)==1 and typeof(...)=='table'then local x=select(1,...)u=x.Name or'Tab'v=x
.Icon w=x.Description else u=select(1,...)or'Tab'v=select(2,...)w=select(3,...)end v=v or'key'local x:TextButton,y,z,A v
=if v=='key'then be else aB:GetCustomIcon(v)do x=a0('TextButton',{BackgroundColor3='MainColor',BackgroundTransparency=1,
Size=UDim2.new(1,0,0,40),Text='',Parent=p})local B=a0('UIPadding',{PaddingBottom=UDim.new(0,d and 6 or 11),PaddingLeft=
UDim.new(0,d and 6 or 12),PaddingRight=UDim.new(0,d and 6 or 12),PaddingTop=UDim.new(0,d and 6 or 11),Parent=x})y=a0(
'TextLabel',{BackgroundTransparency=1,Position=UDim2.fromOffset(30,0),Size=UDim2.new(1,-30,1,0),Text=u,TextSize=16,
TextTransparency=0.5,TextXAlignment=Enum.TextXAlignment.Left,Visible=not d,Parent=x})if v then z=a0('ImageLabel',{Image=
v.Url,ImageColor3=v.Custom and'WhiteColor'or'AccentColor',ImageRectOffset=v.ImageRectOffset,ImageRectSize=v.
ImageRectSize,ImageTransparency=0.5,Size=UDim2.fromScale(1,1),SizeConstraint=d and Enum.SizeConstraint.RelativeXY or
Enum.SizeConstraint.RelativeYY,Parent=x})end table.insert(aB.TabButtons,{Label=y,Padding=B,Icon=z})A=a0('ScrollingFrame'
,{AutomaticCanvasSize=Enum.AutomaticSize.Y,BackgroundTransparency=1,CanvasSize=UDim2.fromScale(0,0),ScrollBarThickness=0
,Size=UDim2.fromScale(1,1),Visible=false,Parent=q})a0('UIListLayout',{HorizontalAlignment=Enum.HorizontalAlignment.
Center,Padding=UDim.new(0,8),VerticalAlignment=Enum.VerticalAlignment.Center,Parent=A})a0('UIPadding',{PaddingLeft=UDim.
new(0,1),PaddingRight=UDim.new(0,1),Parent=A})end local B={Elements={},IsKeyTab=true}function B.AddKeyBox(C,D)assert(
typeof(D)=='function','Callback must be a function')local E=a0('Frame',{BackgroundTransparency=1,Size=UDim2.new(0.75,0,0
,21),Parent=A})local F=a0('TextBox',{BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,
PlaceholderText='Key',Size=UDim2.new(1,-71,1,0),TextSize=14,TextXAlignment=Enum.TextXAlignment.Left,Parent=E})a0(
'UIPadding',{PaddingLeft=UDim.new(0,8),PaddingRight=UDim.new(0,8),Parent=F})local G=a0('TextButton',{AnchorPoint=Vector2
.new(1,0),BackgroundColor3='MainColor',BorderColor3='OutlineColor',BorderSizePixel=1,Position=UDim2.fromScale(1,0),Size=
UDim2.new(0,63,1,0),Text='Execute',TextSize=14,Parent=E})G.InputBegan:Connect(function(H)if not aK(H)then return end if
not aB:MouseIsOverFrame(G,H.Position)then return end D(F.Text)end)end function B.RefreshSides(C)end function B.Resize(C)
end function B.Hover(C,D)if aB.ActiveTab==B then return end am:Create(y,aB.TweenInfo,{TextTransparency=D and 0.25 or 0.5
}):Play()if z then am:Create(z,aB.TweenInfo,{ImageTransparency=D and 0.25 or 0.5}):Play()end end function B.Show(C)if aB
.ActiveTab then aB.ActiveTab:Hide()end am:Create(x,aB.TweenInfo,{BackgroundTransparency=0}):Play()am:Create(y,aB.
TweenInfo,{TextTransparency=0}):Play()if z then am:Create(z,aB.TweenInfo,{ImageTransparency=0}):Play()end A.Visible=true
if w then s:ShowTabInfo(u,w)end B:RefreshSides()aB.ActiveTab=B if aB.Searching then aB:UpdateSearch(aB.SearchText)end
end function B.Hide(C)am:Create(x,aB.TweenInfo,{BackgroundTransparency=1}):Play()am:Create(y,aB.TweenInfo,{
TextTransparency=0.5}):Play()if z then am:Create(z,aB.TweenInfo,{ImageTransparency=0.5}):Play()end A.Visible=false s:
HideTabInfo()aB.ActiveTab=nil end if not aB.ActiveTab then B:Show()end x.MouseEnter:Connect(function()B:Hover(true)end)x
.MouseLeave:Connect(function()B:Hover(false)end)x.MouseButton1Click:Connect(B.Show)B.Container=A setmetatable(B,bh)aB.
Tabs[u]=B return B end function aB.Toggle(bo,u:boolean?)if typeof(u)=='boolean'then aB.Toggled=u else aB.Toggled=not aB.
Toggled end e.Visible=aB.Toggled if bj.UnlockMouseWhileOpen then a4.Modal=aB.Toggled end if aB.Toggled and not aB.
IsMobile then local v=aj.MouseIconEnabled pcall(function()ah:UnbindFromRenderStep'ShowCursor'end)ah:BindToRenderStep(
'ShowCursor',Enum.RenderPriority.Last.Value,function()aj.MouseIconEnabled=not aB.ShowCustomCursor a5.Position=UDim2.
fromOffset(as.X,as.Y)a5.Visible=aB.ShowCustomCursor if not(aB.Toggled and a3 and a3.Parent)then aj.MouseIconEnabled=v a5
.Visible=false ah:UnbindFromRenderStep'ShowCursor'end end)elseif not aB.Toggled then b.Visible=false for v,w in aB.
Options do if w.Type=='ColorPicker'then w.ColorMenu:Close()w.ContextMenu:Close()elseif w.Type=='Dropdown'or w.Type==
'KeyPicker'then w.Menu:Close()end end end end if bj.EnableSidebarResize then local bo,u,v,w,x,y=(bj.MinSidebarWidth+bj.
SidebarCompactWidth)*bj.SidebarCollapseThreshold,false,(a0('TextButton',{AnchorPoint=Vector2.new(0.5,0),
BackgroundTransparency=1,Position=UDim2.fromScale(0.5,0),Size=UDim2.new(0,8,1,0),Text='',Parent=f}))v.MouseEnter:
Connect(function()am:Create(f,aB.TweenInfo,{BackgroundColor3=aB:GetLighterColor(aB.Scheme.OutlineColor)}):Play()end)v.
MouseLeave:Connect(function()if u then return end am:Create(f,aB.TweenInfo,{BackgroundColor3=aB.Scheme.OutlineColor}):
Play()end)v.InputBegan:Connect(function(z:InputObject)if not aK(z)then return end aB.CantDragForced=true w=z.Position x=
s:GetSidebarWidth()u=true y=z.Changed:Connect(function()if z.UserInputState~=Enum.UserInputState.End then return end aB.
CantDragForced=false am:Create(f,aB.TweenInfo,{BackgroundColor3=aB.Scheme.OutlineColor}):Play()u=false if y and y.
Connected then y:Disconnect()y=nil end end)end)aB:GiveSignal(aj.InputChanged:Connect(function(z:InputObject)if not aB.
Toggled or not(a3 and a3.Parent)then u=false if y and y.Connected then y:Disconnect()y=nil end return end if u and aL(z)
then local A=z.Position-w local B=x+A.X if bj.DisableCompactingSnap then s:SetSidebarWidth(B)return end if B>bo then s:
SetSidebarWidth(math.max(B,bj.MinSidebarWidth))else s:SetSidebarWidth(bj.SidebarCompactWidth)end end end))end if bj.
EnableCompacting and bj.SidebarCompacted then s:SetSidebarWidth(bj.SidebarCompactWidth)end if bj.AutoShow then task.
spawn(aB.Toggle)end if aB.IsMobile then local bo,u=aB:AddDraggableButton('Toggle',function()aB:Toggle()end,true),aB:
AddDraggableButton('Lock',function(bo)aB.CantDragForced=not aB.CantDragForced bo:SetText(aB.CantDragForced and'Unlock'or
'Lock')end,true)if bj.MobileButtonsSide=='Right'then bo.Button.Position=UDim2.new(1,-6,0,6)bo.Button.AnchorPoint=Vector2
.new(1,0)u.Button.Position=UDim2.new(1,-6,0,46)u.Button.AnchorPoint=Vector2.new(1,0)else u.Button.Position=UDim2.
fromOffset(6,46)end end k:GetPropertyChangedSignal'Text':Connect(function()aB:UpdateSearch(k.Text)end)aB:GiveSignal(aj.
InputBegan:Connect(function(bo:InputObject)if aB.Unloaded then return end if aj:GetFocusedTextBox()then return end if(
typeof(aB.ToggleKeybind)=='table'and aB.ToggleKeybind.Type=='KeyPicker'and bo.KeyCode.Name==aB.ToggleKeybind.Value)or bo
.KeyCode==aB.ToggleKeybind then aB.Toggle()end end))aB:GiveSignal(aj.WindowFocused:Connect(function()aB.IsRobloxFocused=
true end))aB:GiveSignal(aj.WindowFocusReleased:Connect(function()aB.IsRobloxFocused=false end))return s end
local function bi()if aB.Unloaded then return end local bj,bk=aS(),aS(true)for bl,bm in aw do if bm.Type=='Dropdown'and
bm.SpecialType=='Player'then bm:SetValues(bm.ExcludeLocalPlayer and bk or bj)end end end local function bj()if aB.
Unloaded then return end local bk=aT()for bl,bm in aw do if bm.Type=='Dropdown'and bm.SpecialType=='Team'then bm:
SetValues(bk)end end end aB:GiveSignal(ag.PlayerAdded:Connect(bi))aB:GiveSignal(ag.PlayerRemoving:Connect(bi))aB:
GiveSignal(al.ChildAdded:Connect(bj))aB:GiveSignal(al.ChildRemoved:Connect(bj))an().Library=aB return aB end)()end,[9]=
function()local aa,ab,ac=a(9)local ad return(function(...)export type Scheme={BackgroundColor:Color3,MainColor:Color3,
AccentColor:Color3,OutlineColor:Color3,FontColor:Color3,Font:Font,RedColor:Color3,DarkColor:Color3,WhiteColor:Color3}
export type Icon={Url:string,ImageRectOffset:Vector2,ImageRectSize:Vector2}export type ContextMenu={Active:boolean,
Holder:GuiObject,Menu:GuiObject,List:UIListLayout?,Signal:RBXScriptConnection?,Size:UDim2|(()->UDim2),Open:(self:
ContextMenu)->(),Close:(self:ContextMenu)->(),Toggle:(self:ContextMenu)->(),SetSize:(self:ContextMenu,Size:UDim2|(()->
UDim2))->()}export type Tooltip={Disabled:boolean,Hovering:boolean,Signals:{[number]:RBXScriptConnection},Destroy:(self:
Tooltip)->()}export type Notification={Title:string?,Description:string,Time:number|Instance,SoundId:string|number?,
Steps:number?,Persist:boolean?,Destroyed:boolean,Resize:(self:Notification)->(),ChangeTitle:(self:Notification,Text:
string)->(),ChangeDescription:(self:Notification,Text:string)->(),ChangeStep:(self:Notification,NewStep:number)->(),
Destroy:(self:Notification)->()}export type KeybindToggle={Normal:boolean,Holder:TextButton,Label:TextLabel,Checkbox:
Frame,Loaded:boolean,Display:(self:KeybindToggle,State:boolean)->(),SetText:(self:KeybindToggle,Text:string)->(),
SetVisibility:(self:KeybindToggle,Visibility:boolean)->(),SetNormal:(self:KeybindToggle,Normal:boolean)->()}export type
DraggableLabel={Label:TextLabel,SetText:(self:DraggableLabel,Text:string)->(),SetVisible:(self:DraggableLabel,Visible:
boolean)->()}export type DraggableButton={Button:TextButton,SetText:(self:DraggableButton,Text:string)->()}export type
ButtonInfo={Text:string,Func:()->(),DoubleClick:boolean?,Tooltip:string?,DisabledTooltip:string?,Risky:boolean?,Disabled
:boolean?,Visible:boolean?}export type ToggleInfo={Text:string,Default:boolean?,Callback:((boolean)->())?,Changed:((
boolean)->())?,Tooltip:string?,DisabledTooltip:string?,Risky:boolean?,Disabled:boolean?,Visible:boolean?}export type
InputInfo={Text:string,Default:string?,Finished:boolean?,Numeric:boolean?,ClearTextOnFocus:boolean?,Placeholder:string?,
AllowEmpty:boolean?,EmptyReset:string?,MaxLength:number?,Tooltip:string?,DisabledTooltip:string?,Callback:((string)->())
?,Changed:((string)->())?,Disabled:boolean?,Visible:boolean?}export type SliderInfo={Text:string,Default:number?,Min:
number?,Max:number?,Rounding:number?,Prefix:string?,Suffix:string?,Compact:boolean?,HideMax:boolean?,FormatDisplayValue:
((Slider,number)->string)?,Tooltip:string?,DisabledTooltip:string?,Callback:((number)->())?,Changed:((number)->())?,
Disabled:boolean?,Visible:boolean?}export type DropdownInfo={Text:string?,Values:{any},Default:any,DisabledValues:{any}?
,Multi:boolean?,MaxVisibleDropdownItems:number?,SpecialType:'Player'|'Team'?,ExcludeLocalPlayer:boolean?,AllowNull:
boolean?,Searchable:boolean?,FormatDisplayValue:((any)->string)?,Tooltip:string?,DisabledTooltip:string?,Callback:((any
)->())?,Changed:((any)->())?,Disabled:boolean?,Visible:boolean?}export type ViewportInfo={Object:BasePart|Model,Camera:
Camera?,Clone:boolean?,AutoFocus:boolean?,Interactive:boolean?,Height:number?,Visible:boolean?}export type ImageInfo={
Image:string,Transparency:number?,Color:Color3?,RectOffset:Vector2?,RectSize:Vector2?,ScaleType:Enum.ScaleType?,Height:
number?,Visible:boolean?}export type VideoInfo={Video:string,Looped:boolean?,Playing:boolean?,Volume:number?,Height:
number?,Visible:boolean?}export type UIPassthroughInfo={Instance:GuiBase2d,Height:number?,Visible:boolean?}export type
KeyPickerInfo={Text:string,Default:string?,Mode:'Always'|'Toggle'|'Hold'|'Press'?,Modes:{'Always'|'Toggle'|'Hold'|
'Press'}?,SyncToggleState:boolean?,NoUI:boolean?,WaitForCallback:boolean?,Callback:((boolean)->())?,ChangedCallback:((
Enum.KeyCode|Enum.UserInputType)->())?,Changed:((Enum.KeyCode|Enum.UserInputType)->())?,Clicked:(()->())?}export type
ColorPickerInfo={Default:Color3?,Transparency:number?,Title:string?,Callback:((Color3)->())?,Changed:((Color3)->())?}
export type KeyPicker={Text:string,Value:string,Toggled:boolean,Mode:'Always'|'Toggle'|'Hold'|'Press',SyncToggleState:
boolean,Callback:(Toggled:boolean)->(),ChangedCallback:(Key:Enum.KeyCode|Enum.UserInputType)->(),Changed:(Key:Enum.
KeyCode|Enum.UserInputType)->(),Clicked:()->(),Type:'KeyPicker',Menu:ContextMenu,Display:(self:KeyPicker)->(),Update:(
self:KeyPicker)->(),GetState:(self:KeyPicker)->boolean,OnChanged:(self:KeyPicker,Func:(Key:Enum.KeyCode|Enum.
UserInputType)->())->(),OnClick:(self:KeyPicker,Func:()->())->(),DoClick:(self:KeyPicker)->(),SetValue:(self:KeyPicker,
Data:{string})->(),SetText:(self:KeyPicker,Text:string)->()}export type ColorPicker={Value:Color3,Transparency:number,
Title:string?,Callback:(Value:Color3)->(),Changed:(Value:Color3)->(),Type:'ColorPicker',Hue:number,Sat:number,Vib:number
,ColorMenu:ContextMenu,ContextMenu:ContextMenu,SetHSVFromRGB:(self:ColorPicker,Color:Color3)->(),Display:(self:
ColorPicker)->(),Update:(self:ColorPicker)->(),OnChanged:(self:ColorPicker,Func:(Value:Color3)->())->(),SetValue:(self:
ColorPicker,HSV:{number},Transparency:number?)->(),SetValueRGB:(self:ColorPicker,Color:Color3,Transparency:number?)->()}
export type Addon=KeyPicker|ColorPicker export type Label={Text:string,DoesWrap:boolean,Addons:{[number]:Addon},Visible:
boolean,Type:'Label',TextLabel:TextLabel,Container:GuiObject,Holder:TextLabel,SetVisible:(self:Label,Visible:boolean)->(
),SetText:(self:Label,Text:string)->(),AddKeyPicker:(self:Label,Idx:string,Info:KeyPickerInfo)->Label,AddColorPicker:(
self:Label,Idx:string,Info:ColorPickerInfo)->Label}export type Button={Text:string,Func:()->(),DoubleClick:boolean?,
Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Risky:boolean,Disabled:boolean,Visible:boolean,Tween:Tween
?,Type:'Button',Base:TextButton,Stroke:UIStroke,Holder:Frame,SubButton:SubButton?,AddButton:(self:Button,Info:ButtonInfo
|string,Func:(()->())?,Idx:string?)->SubButton,UpdateColors:(self:Button)->(),SetDisabled:(self:Button,Disabled:boolean
)->(),SetVisible:(self:Button,Visible:boolean)->(),SetText:(self:Button,Text:string)->()}export type SubButton={Text:
string,Func:()->(),DoubleClick:boolean?,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Risky:boolean,
Disabled:boolean,Visible:boolean,Tween:Tween?,Type:'SubButton',Base:TextButton,Stroke:UIStroke,UpdateColors:(self:
SubButton)->(),SetDisabled:(self:SubButton,Disabled:boolean)->(),SetVisible:(self:SubButton,Visible:boolean)->(),SetText
:(self:SubButton,Text:string)->()}export type Toggle={Text:string,Value:boolean,Tooltip:string?,DisabledTooltip:string?,
TooltipTable:Tooltip?,Callback:(Value:boolean)->(),Changed:(Value:boolean)->(),Risky:boolean,Disabled:boolean,Visible:
boolean,Addons:{[number]:Addon},Type:'Toggle',TextLabel:TextLabel,Container:GuiObject,Holder:TextButton,UpdateColors:(
self:Toggle)->(),Display:(self:Toggle)->(),OnChanged:(self:Toggle,Func:(Value:boolean)->())->(),SetValue:(self:Toggle,
Value:boolean)->(),SetDisabled:(self:Toggle,Disabled:boolean)->(),SetVisible:(self:Toggle,Visible:boolean)->(),SetText:(
self:Toggle,Text:string)->(),AddKeyPicker:(self:Toggle,Idx:string,Info:KeyPickerInfo)->Toggle,AddColorPicker:(self:
Toggle,Idx:string,Info:ColorPickerInfo)->Toggle}export type Input={Text:string,Value:string,Finished:boolean,Numeric:
boolean,ClearTextOnFocus:boolean,Placeholder:string,AllowEmpty:boolean,EmptyReset:string,Tooltip:string?,DisabledTooltip
:string?,TooltipTable:Tooltip?,Callback:(Value:string)->(),Changed:(Value:string)->(),Disabled:boolean,Visible:boolean,
Type:'Input',Holder:Frame,UpdateColors:(self:Input)->(),OnChanged:(self:Input,Func:(Value:string)->())->(),SetValue:(
self:Input,Text:string)->(),SetDisabled:(self:Input,Disabled:boolean)->(),SetVisible:(self:Input,Visible:boolean)->(),
SetText:(self:Input,Text:string)->()}export type Slider={Text:string,Value:number,Min:number,Max:number,Prefix:string,
Suffix:string,Compact:boolean?,Rounding:number,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Callback:(
Value:number)->(),Changed:(Value:number)->(),Disabled:boolean,Visible:boolean,Type:'Slider',Holder:Frame,UpdateColors:(
self:Slider)->(),Display:(self:Slider)->(),OnChanged:(self:Slider,Func:(Value:number)->())->(),SetMax:(self:Slider,Value
:number)->(),SetMin:(self:Slider,Value:number)->(),SetValue:(self:Slider,Value:number|string)->(),SetDisabled:(self:
Slider,Disabled:boolean)->(),SetVisible:(self:Slider,Visible:boolean)->(),SetText:(self:Slider,Text:string)->(),
SetPrefix:(self:Slider,Prefix:string)->(),SetSuffix:(self:Slider,Suffix:string)->()}export type Dropdown={Text:string?,
Value:{[any]:boolean}|any,Values:{any},DisabledValues:{any},Multi:boolean,SpecialType:'Player'|'Team'?,
ExcludeLocalPlayer:boolean?,Tooltip:string?,DisabledTooltip:string?,TooltipTable:Tooltip?,Callback:(Value:any)->(),
Changed:(Value:any)->(),Disabled:boolean,Visible:boolean,Type:'Dropdown',Menu:ContextMenu,Holder:Frame,
RecalculateListSize:(self:Dropdown,Count:number?)->(),UpdateColors:(self:Dropdown)->(),Display:(self:Dropdown)->(),
OnChanged:(self:Dropdown,Func:(Value:any)->())->(),GetActiveValues:(self:Dropdown)->{any}|number,BuildDropdownList:(self
:Dropdown)->(),SetValue:(self:Dropdown,Value:any)->(),SetValues:(self:Dropdown,Values:{any})->(),AddValues:(self:
Dropdown,Values:{any}|string)->(),SetDisabledValues:(self:Dropdown,DisabledValues:{any})->(),AddDisabledValues:(self:
Dropdown,DisabledValues:{any}|string)->(),SetDisabled:(self:Dropdown,Disabled:boolean)->(),SetVisible:(self:Dropdown,
Visible:boolean)->(),SetText:(self:Dropdown,Text:string)->()}export type Viewport={Object:BasePart|Model,Camera:Camera,
Interactive:boolean,AutoFocus:boolean,Visible:boolean,Type:'Viewport',Holder:Frame,SetObject:(self:Viewport,Object:
Instance,Clone:boolean?)->(),SetHeight:(self:Viewport,Height:number)->(),Focus:(self:Viewport)->(),SetCamera:(self:
Viewport,Camera:Camera)->(),SetInteractive:(self:Viewport,Interactive:boolean)->(),SetVisible:(self:Viewport,Visible:
boolean)->()}export type Image={Image:string,Color:Color3,RectOffset:Vector2,RectSize:Vector2,Height:number,ScaleType:
Enum.ScaleType,Transparency:number,Visible:boolean,Type:'Image',Holder:Frame,SetHeight:(self:Image,Height:number)->(),
SetImage:(self:Image,NewImage:string)->(),SetColor:(self:Image,Color:Color3)->(),SetRectOffset:(self:Image,RectOffset:
Vector2)->(),SetRectSize:(self:Image,RectSize:Vector2)->(),SetScaleType:(self:Image,ScaleType:Enum.ScaleType)->(),
SetTransparency:(self:Image,Transparency:number)->(),SetVisible:(self:Image,Visible:boolean)->()}export type Video={
Video:string,Looped:boolean,Playing:boolean,Volume:number,Height:number,Visible:boolean,Type:'Video',Holder:Frame,
VideoFrame:VideoFrame,SetHeight:(self:Video,Height:number)->(),SetVideo:(self:Video,NewVideo:string)->(),SetLooped:(self
:Video,Looped:boolean)->(),SetVolume:(self:Video,Volume:number)->(),SetPlaying:(self:Video,Playing:boolean)->(),Play:(
self:Video)->(),Pause:(self:Video)->(),SetVisible:(self:Video,Visible:boolean)->()}export type UIPassthrough={Instance:
GuiBase2d,Height:number,Visible:boolean,Type:'UIPassthrough',Holder:Frame,SetHeight:(self:UIPassthrough,Height:number)->
(),SetInstance:(self:UIPassthrough,Instance:GuiBase2d)->(),SetVisible:(self:UIPassthrough,Visible:boolean)->()}export
type Divider={Type:'Divider',Holder:Frame}export type Element=Label|Button|Toggle|Input|Slider|Dropdown|Viewport|Image|
Video|UIPassthrough|Divider export type Option=Toggle|Input|Slider|Dropdown|Viewport|Image|Video|UIPassthrough|KeyPicker
|ColorPicker export type BaseGroupbox={AddDivider:(self:Groupbox)->(),AddLabel:(self:Groupbox,Info:{Text:string,DoesWrap
:boolean?,Size:number?,Visible:boolean?,Idx:string?}|string,DoesWrap:boolean?,Idx:string?)->Label,AddButton:(self:
Groupbox,Info:ButtonInfo|string,Func:(()->())?,Idx:string?)->Button,AddCheckbox:(self:Groupbox,Idx:string,Info:
ToggleInfo)->Toggle,AddToggle:(self:Groupbox,Idx:string,Info:ToggleInfo)->Toggle,AddInput:(self:Groupbox,Idx:string,Info
:InputInfo)->Input,AddSlider:(self:Groupbox,Idx:string,Info:SliderInfo)->Slider,AddDropdown:(self:Groupbox,Idx:string,
Info:DropdownInfo)->Dropdown,AddViewport:(self:Groupbox,Idx:string,Info:ViewportInfo)->Viewport,AddImage:(self:Groupbox,
Idx:string,Info:ImageInfo)->Image,AddVideo:(self:Groupbox,Idx:string,Info:VideoInfo)->Video,AddUIPassthrough:(self:
Groupbox,Idx:string,Info:UIPassthroughInfo)->UIPassthrough,AddDependencyBox:(self:Groupbox)->DependencyBox,
AddDependencyGroupbox:(self:Groupbox)->DependencyGroupbox}export type DependencyBox=BaseGroupbox&{Visible:boolean,
Dependencies:{[number]:{Element}},Holder:Frame,Container:Frame,Elements:{[number]:Element},DependencyBoxes:{[number]:
DependencyBox},Resize:(self:DependencyBox)->(),Update:(self:DependencyBox,CancelSearch:boolean?)->(),SetupDependencies:(
self:DependencyBox,Dependencies:{{Element}})->()}export type DependencyGroupbox=BaseGroupbox&{Visible:boolean,
Dependencies:{[number]:{Element}},BoxHolder:Frame,Holder:Frame,Container:Frame,Tab:Tab,Elements:{[number]:Element},
DependencyBoxes:{[number]:DependencyBox},Resize:(self:DependencyGroupbox)->(),Update:(self:DependencyGroupbox,
CancelSearch:boolean?)->(),SetupDependencies:(self:DependencyGroupbox,Dependencies:{{Element}})->()}export type Groupbox
=BaseGroupbox&{BoxHolder:Frame,Holder:Frame,Container:Frame,Tab:Tab,DependencyBoxes:{[number]:DependencyBox},Elements:{[
number]:Element},Resize:(self:Groupbox)->()}export type SubTab=BaseGroupbox&{ButtonHolder:TextButton,Container:Frame,Tab
:Tab,Elements:{[number]:Element},DependencyBoxes:{[number]:DependencyBox},Show:(self:SubTab)->(),Hide:(self:SubTab)->(),
Resize:(self:SubTab)->()}export type Tabbox={ActiveTab:SubTab?,BoxHolder:Frame,Holder:Frame,Tabs:{[string]:SubTab},
AddTab:(self:Tabbox,Name:string)->SubTab}export type Tab={Groupboxes:{[string]:Groupbox},Tabboxes:{[string]:Tabbox},
DependencyGroupboxes:{[number]:DependencyGroupbox},Sides:{ScrollingFrame},WarningBox:{IsNormal:boolean,LockSize:boolean,
Visible:boolean,Title:string,Text:string},UpdateWarningBox:(self:Tab,Info:{IsNormal:boolean?,LockSize:boolean?,Visible:
boolean?,Title:string?,Text:string?})->(),Resize:(self:Tab,ResizeWarningBox:boolean?)->(),AddGroupbox:(self:Tab,Info:{
Side:number,Name:string,IconName:string?})->Groupbox,AddLeftGroupbox:(self:Tab,Name:string,IconName:string?)->Groupbox,
AddRightGroupbox:(self:Tab,Name:string,IconName:string?)->Groupbox,AddTabbox:(self:Tab,Info:{Side:number,Name:string?}
)->Tabbox,AddLeftTabbox:(self:Tab,Name:string?)->Tabbox,AddRightTabbox:(self:Tab,Name:string?)->Tabbox,Hover:(self:Tab,
Hovering:boolean)->(),Show:(self:Tab)->(),Hide:(self:Tab)->()}export type KeyTab=BaseGroupbox&{Elements:{[any]:any},
IsKeyTab:true,Container:ScrollingFrame,AddKeyBox:(self:KeyTab,ExpectedKey:string?,Callback:(Success:boolean,Key:string
)->())->(),Resize:(self:KeyTab)->(),Hover:(self:KeyTab,Hovering:boolean)->(),Show:(self:KeyTab)->(),Hide:(self:KeyTab)->
()}export type Window={IsSidebarCompacted:(self:Window)->boolean,GetSidebarWidth:(self:Window)->number,SetSidebarWidth:(
self:Window,Width:number)->(),AddTab:(self:Window,Info:{Name:string,Icon:string?,Description:string?}|string,Icon:string
?,Description:string?)->Tab,AddKeyTab:(self:Window,Info:{Name:string,Icon:string?,Description:string?}|string,Icon:
string?,Description:string?)->KeyTab}export type Library={LocalPlayer:Player,DevicePlatform:Enum.Platform?,IsMobile:
boolean,IsRobloxFocused:boolean,ScreenGui:ScreenGui?,SearchText:string,Searching:boolean,GlobalSearch:boolean,
LastSearchTab:Tab?,ActiveTab:Tab?,Tabs:{[string]:Tab|KeyTab},DependencyBoxes:{[number]:DependencyBox|DependencyGroupbox}
,KeybindFrame:Frame?,KeybindContainer:Frame?,KeybindToggles:{[number]:KeybindToggle},Notifications:{[GuiObject]:
Notification},ToggleKeybind:Enum.KeyCode,TweenInfo:TweenInfo,NotifyTweenInfo:TweenInfo,Toggled:boolean,Unloaded:boolean,
Labels:{[(string|number)]:Label},Buttons:{[(string|number)]:Button|SubButton},Toggles:{[(string|number)]:Toggle},Options
:{[(string|number)]:Option},NotifySide:'Right'|'Left',ShowCustomCursor:boolean,ForceCheckbox:boolean,
ShowToggleFrameInKeybinds:boolean,NotifyOnError:boolean,CantDragForced:boolean,Signals:{[number]:RBXScriptConnection},
UnloadSignals:{[number]:()->()},MinSize:Vector2,DPIScale:number,CornerRadius:number,IsLightTheme:boolean,Scheme:Scheme,
Registry:{[GuiObject]:{[string]:string|(()->Color3)}},DPIRegistry:{[GuiObject]:{[string]:any}},CopiedColor:{Color3|
number}?,ImageManager:{AddAsset:(AssetName:string,RobloxAssetId:number,URL:string,ForceRedownload:boolean?)->nil,
GetAsset:(AssetName:string)->string?,DownloadAsset:(AssetName:string,ForceRedownload:boolean?)->nil},UpdateKeybindFrame:
(self:Library)->(),UpdateDependencyBoxes:(self:Library)->(),UpdateSearch:(self:Library,SearchText:string)->(),
AddToRegistry:(self:Library,Instance:GuiObject,Properties:{[string]:string|(()->Color3)})->(),RemoveFromRegistry:(self:
Library,Instance:GuiObject)->(),UpdateColorsUsingRegistry:(self:Library)->(),UpdateDPI:(self:Library,Instance:GuiObject,
Properties:{[string]:any})->(),SetDPIScale:(self:Library,DPIScale:number)->(),GiveSignal:(self:Library,Connection:
RBXScriptConnection)->RBXScriptConnection,GetIcon:(self:Library,IconName:string)->Icon?,Validate:(self:Library,Table:{[
string]:any},Template:{[string]:any})->{[string]:any},GetBetterColor:(self:Library,Color:Color3,Add:number)->Color3,
GetDarkerColor:(self:Library,Color:Color3)->Color3,GetKeyString:(self:Library,KeyCode:Enum.KeyCode)->string,
GetTextBounds:(self:Library,Text:string,Font:Font,Size:number,Width:number?)->(number,number),MouseIsOverFrame:(self:
Library,Frame:GuiObject,Mouse:Vector2)->boolean,SafeCallback:(self:Library,Func:(...any)->...any,...any)->...any,
MakeDraggable:(self:Library,UI:GuiObject,DragFrame:GuiObject,IgnoreToggled:boolean?,IsMainWindow:boolean?)->(),
MakeResizable:(self:Library,UI:GuiObject,DragFrame:GuiObject,Callback:(()->())?)->(),MakeCover:(self:Library,Holder:
GuiObject,Place:string)->Frame,MakeLine:(self:Library,Frame:GuiObject,Info:{AnchorPoint:Vector2?,Position:UDim2,Size:
UDim2})->Frame,MakeOutline:(self:Library,Frame:GuiObject,Corner:number?,ZIndex:number?)->Frame,AddDraggableButton:(self:
Library,Text:string,Func:(DraggableButton)->())->DraggableButton,AddDraggableMenu:(self:Library,Name:string)->(Frame,
Frame),SetWatermarkVisibility:(self:Library,Visible:boolean)->(),SetWatermark:(self:Library,Text:string)->(),
AddContextMenu:(self:Library,Holder:GuiObject,Size:UDim2|(()->UDim2),Offset:{[number]:number}|(()->{[number]:number}),
List:number?,ActiveCallback:((boolean)->())?)->ContextMenu,AddTooltip:(self:Library,InfoStr:string,DisabledInfoStr:
string,HoverInstance:GuiObject)->Tooltip,OnUnload:(self:Library,Callback:()->())->(),Unload:(self:Library)->(),SetFont:(
self:Library,FontFace:Font|Enum.Font)->(),SetNotifySide:(self:Library,Side:'Left'|'Right')->(),Notify:(self:Library,Info
:{Title:string,Description:string,Time:number?,SoundId:string|number?,Steps:number?,Persist:boolean?}|string,Time:number
?,SoundId:string|number?)->Notification,CreateWindow:(self:Library,WindowInfo:{Title:string?,Footer:string?,Position:
UDim2?,Size:UDim2?,Icon:string?,IconSize:UDim2?,BackgroundImage:string?,AutoShow:boolean?,Center:boolean?,Resizable:
boolean?,DisableSearch:boolean?,SearchbarSize:UDim2?,GlobalSearch:boolean?,CornerRadius:number?,NotifySide:'Left'|
'Right'?,ShowCustomCursor:boolean?,Font:Font|Enum.Font?,ToggleKeybind:Enum.KeyCode?,MobileButtonsSide:'Left'|'Right'?,
UnlockMouseWhileOpen:boolean?,EnableSidebarResize:boolean?,EnableCompacting:boolean?,DisableCompactingSnap:boolean?,
SidebarCompacted:boolean?,MinContainerWidth:number?,MinSidebarWidth:number?,SidebarCompactWidth:number?,
CompactWidthActivation:number?})->Window,Toggle:(self:Library,Value:boolean?)->()}return nil end)()end,[11]=function()
local aa,ab,ac=a(11)local ad return(function(...)local ae,af=game:GetService'ReplicatedStorage',ab.Parent local ag,ah,ai
,aj,ak=ac(af:WaitForChild'UIConfig'),ac(af:WaitForChild'tabs':WaitForChild'ESPTab'),ac(af:WaitForChild'tabs':
WaitForChild'FlyTab'),ac(af:WaitForChild'tabs':WaitForChild'NoclipTab'),ac(af:WaitForChild'tabs':WaitForChild
'UISettingsTab')local function al():ModuleScript local am=ae:FindFirstChild'Init'if am and am.ClassName=='ModuleScript'
then return am end local an=af.Parent and af.Parent:FindFirstChild'Init'if an and an.ClassName=='ModuleScript'then
return an end local ao=ae:FindFirstChild'Shared'if ao then local ap=ao:FindFirstChild'init'or ao:FindFirstChild'Init'if
ap and ap.ClassName=='ModuleScript'then return ap end end error
[[Konnte Obsidian Init-Module nicht finden. Erwartet: ReplicatedStorage.Init oder ReplicatedStorage.Shared.init]]end
local am={}function am.start()local an=ac(al())local ao=an.Library local ap=ao.Options ao.Scheme.AccentColor=Color3.
fromRGB(72,165,255)ao.Scheme.BackgroundColor=Color3.fromRGB(10,12,18)ao.Scheme.MainColor=Color3.fromRGB(17,22,31)ao.
Scheme.OutlineColor=Color3.fromRGB(42,50,66)local aq=ao:CreateWindow(ag.Window)local ar={ESP=aq:AddTab('ESP',
'rbxassetid://85516936572279'),Fly=aq:AddTab('Fly','rbxassetid://123769058034984'),Noclip=aq:AddTab('Noclip',
'rbxassetid://129313475515456'),['UI Settings']=aq:AddTab('UI Settings','rbxassetid://78969686563882')}ah.build(ao,ar,af
)ai.build(ao,ar,af)aj.build(ao,ar,af)ak.build(ao,ar,ap)end return am end)()end,[12]=function()local aa,ab,ac=a(12)local
ad return(function(...)local ae,af='rbxasset://textures/ui/GuiImagePlaceholder.png',{'radar','feather','layers',
'sliders','sparkles','target','wind','shield','palette','monitor','bolt','brush','book-open','wand-sparkles'}local ag={
Icons=af}function ag.GetAsset(ah)for ai,aj in ipairs(af)do if aj==ah then return{Url=ae,ImageRectOffset=Vector2.zero,
ImageRectSize=Vector2.zero,Custom=true}end end return nil end return ag end)()end,[13]=function()local aa,ab,ac=a(13)
local ad return(function(...)return{Window={Title='Obsidian Example',Footer='Game: Roblox Studio Test',Center=true,
AutoShow=true,Resizable=true,NotifySide='Right',ShowCustomCursor=true}}end)()end,[15]=function()local aa,ab,ac=a(15)
local ad return(function(...)local ae,af,ag,ah=game:GetService'Players',game:GetService'RunService',game:GetService
'Workspace',{}ah.__index=ah local ai={Enabled=true,ShowHighlights=true,ShowLabels=true,ShowDistance=true,TextSize=15,
LabelOffsetY=3,MaxDistance=3000,HighlightColor=Color3.fromRGB(255,170,0),LabelColor=Color3.fromRGB(255,230,150),
FillTransparency=0.55,OutlineTransparency=0}local function aj(ak)if not ak then return nil end return ak:FindFirstChild
'HumanoidRootPart'or ak:FindFirstChild'UpperTorso'or ak:FindFirstChild'Torso'or ak.PrimaryPart or ak:
FindFirstChildWhichIsA'BasePart'end local function ak(al)return al:FindFirstChild'HumanoidRootPart'or al:FindFirstChild
'UpperTorso'or al:FindFirstChild'Torso'or al.PrimaryPart or al:FindFirstChildWhichIsA'BasePart'end local function al(am)
if not am:IsA'Model'then return false end if ae:GetPlayerFromCharacter(am)then return false end local an=am:
FindFirstChildOfClass'Humanoid'if not an then return false end return ak(am)~=nil end function ah.new()local am=
setmetatable({},ah)am.config=table.clone(ai)am.entries={}am.connections={}am.running=false return am end function ah.
UpdateConfig(am,an)for ao,ap in an do am.config[ao]=ap end end function ah._createEntry(am,an)if am.entries[an]or not
al(an)then return end local ao=ak(an)if not ao then return end local ap=Instance.new'Highlight'ap.Name=
'CustomESP_Highlight'ap.Adornee=an ap.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop ap.Parent=an local aq=Instance.new
'BillboardGui'aq.Name='CustomESP_Billboard'aq.Adornee=ao aq.AlwaysOnTop=true aq.Size=UDim2.fromOffset(180,40)aq.
StudsOffset=Vector3.new(0,3,0)aq.Parent=an local ar=Instance.new'TextLabel'ar.BackgroundTransparency=1 ar.Size=UDim2.
fromScale(1,1)ar.Font=Enum.Font.Code ar.TextScaled=false ar.TextSize=am.config.TextSize ar.TextStrokeTransparency=0.3 ar
.TextXAlignment=Enum.TextXAlignment.Center ar.TextYAlignment=Enum.TextYAlignment.Center ar.Parent=aq am.entries[an]={
model=an,rootPart=ao,highlight=ap,billboard=aq,text=ar}end function ah._removeEntry(am,an)local ao=am.entries[an]if not
ao then return end if ao.highlight then ao.highlight:Destroy()end if ao.billboard then ao.billboard:Destroy()end am.
entries[an]=nil end function ah._updateEntry(am,an)if not an.model.Parent then am:_removeEntry(an.model)return end an.
rootPart=ak(an.model)if not an.rootPart then am:_removeEntry(an.model)return end an.billboard.Adornee=an.rootPart an.
highlight.Adornee=an.model local ao,ap=ag.CurrentCamera,ae.LocalPlayer local aq=aj(ap and ap.Character)local ar=aq and
aq.Position or(ao and ao.CFrame.Position)if not ar then return end local as=(an.rootPart.Position-ar).Magnitude local at
=as<=am.config.MaxDistance local au=am.config.Enabled and at an.highlight.Enabled=au and am.config.ShowHighlights an.
billboard.Enabled=au and am.config.ShowLabels an.highlight.FillColor=am.config.HighlightColor an.highlight.OutlineColor=
am.config.LabelColor an.highlight.FillTransparency=am.config.FillTransparency an.highlight.OutlineTransparency=am.config
.OutlineTransparency an.billboard.StudsOffset=Vector3.new(0,am.config.LabelOffsetY,0)an.text.TextSize=am.config.TextSize
an.text.TextColor3=am.config.LabelColor if am.config.ShowDistance then an.text.Text=string.format('%s [%.0f]',an.model.
Name,as)else an.text.Text=an.model.Name end end function ah._scanWorkspace(am)for an,ao in ag:GetDescendants()do if ao:
IsA'Model'then am:_createEntry(ao)end end end function ah.Start(am)if am.running then return end am.running=true am:
_scanWorkspace()table.insert(am.connections,ag.DescendantAdded:Connect(function(an)if an:IsA'Model'then am:_createEntry(
an)end end))table.insert(am.connections,ag.DescendantRemoving:Connect(function(an)if an:IsA'Model'then am:_removeEntry(
an)end end))table.insert(am.connections,af.RenderStepped:Connect(function()for an,ao in am.entries do am:_updateEntry(ao
)end end))end function ah.Stop(am)if not am.running then return end am.running=false for an,ao in am.connections do if
ao and ao.Connected then ao:Disconnect()end end table.clear(am.connections)for an,ao in am.entries do am:_removeEntry(an
)end end return ah end)()end,[16]=function()local aa,ab,ac=a(16)local ad return(function(...)local ae,af,ag,ah,ai=game:
GetService'Players',game:GetService'RunService',game:GetService'UserInputService',game:GetService'Workspace',{}ai.
__index=ai local aj={Enabled=false,Speed=80,BoostMultiplier=2,Noclip=true}local function ak()local al=ae.LocalPlayer if
not al or not al.Character then return nil,nil end local am=al.Character local an,ao=am:FindFirstChildOfClass'Humanoid',
am:FindFirstChild'HumanoidRootPart'return ao,an end function ai.new()local al=setmetatable({},ai)al.config=table.clone(
aj)al.connections={}al.keyDown={[Enum.KeyCode.W]=false,[Enum.KeyCode.A]=false,[Enum.KeyCode.S]=false,[Enum.KeyCode.D]=
false}al.cachedCollision={}return al end function ai.UpdateConfig(al,am)for an,ao in am do al.config[an]=ao end end
function ai._disconnectAll(al)for am,an in al.connections do if an and an.Connected then an:Disconnect()end end table.
clear(al.connections)end function ai._setNoclip(al,am,an)for ao,ap in am:GetDescendants()do if ap:IsA'BasePart'then if
an then if al.cachedCollision[ap]==nil then al.cachedCollision[ap]=ap.CanCollide end ap.CanCollide=false else local aq=
al.cachedCollision[ap]if aq~=nil then ap.CanCollide=aq al.cachedCollision[ap]=nil end end end end end function ai.Start(
al)al:Stop()table.insert(al.connections,ag.InputBegan:Connect(function(am,an)if an then return end if al.keyDown[am.
KeyCode]~=nil then al.keyDown[am.KeyCode]=true end end))table.insert(al.connections,ag.InputEnded:Connect(function(am)if
al.keyDown[am.KeyCode]~=nil then al.keyDown[am.KeyCode]=false end end))table.insert(al.connections,af.RenderStepped:
Connect(function(am)if not al.config.Enabled then return end local an,ao=ak()if not an or not ao then return end ao:
ChangeState(Enum.HumanoidStateType.Physics)ao.AutoRotate=false local ap=ah.CurrentCamera if ap then local aq,ar,as=ap.
CFrame.LookVector,ap.CFrame.RightVector,Vector3.zero if al.keyDown[Enum.KeyCode.W]then as+=aq end if al.keyDown[Enum.
KeyCode.S]then as-=aq end if al.keyDown[Enum.KeyCode.A]then as-=ar end if al.keyDown[Enum.KeyCode.D]then as+=ar end if
as.Magnitude>0 then as=as.Unit end local at=al.config.Speed if ag:IsKeyDown(Enum.KeyCode.LeftShift)then at*=al.config.
BoostMultiplier end an.CFrame=an.CFrame+(as*at*am)an.AssemblyLinearVelocity=Vector3.zero an.AssemblyAngularVelocity=
Vector3.zero end if al.config.Noclip then al:_setNoclip(an.Parent,true)else al:_setNoclip(an.Parent,false)end end))end
function ai.Stop(al)al:_disconnectAll()for am,an in al.keyDown do al.keyDown[am]=false end local am,an=ak()if an then an
.AutoRotate=true an:ChangeState(Enum.HumanoidStateType.Running)end if am then al:_setNoclip(am.Parent,false)am.
AssemblyLinearVelocity=Vector3.zero end end return ai end)()end,[17]=function()local aa,ab,ac=a(17)local ad return(
function(...)local ae,af,ag=game:GetService'Players',game:GetService'RunService',{}ag.__index=ag local ah={Enabled=false
}local function ai()local aj=ae.LocalPlayer return aj and aj.Character or nil end function ag.new()local aj=
setmetatable({},ag)aj.config=table.clone(ah)aj.connections={}aj.cachedCollision={}return aj end function ag.UpdateConfig
(aj,ak)for al,am in ak do aj.config[al]=am end end function ag._disconnectAll(aj)for ak,al in aj.connections do if al
and al.Connected then al:Disconnect()end end table.clear(aj.connections)end function ag._apply(aj,ak,al)for am,an in ak:
GetDescendants()do if an:IsA'BasePart'then if al then if aj.cachedCollision[an]==nil then aj.cachedCollision[an]=an.
CanCollide end an.CanCollide=false else local ao=aj.cachedCollision[an]if ao~=nil then an.CanCollide=ao aj.
cachedCollision[an]=nil end end end end end function ag.Start(aj)aj:Stop()table.insert(aj.connections,af.Stepped:
Connect(function()local ak=ai()if not ak then return end aj:_apply(ak,aj.config.Enabled)end))end function ag.Stop(aj)aj:
_disconnectAll()local ak=ai()if ak then aj:_apply(ak,false)end table.clear(aj.cachedCollision)end return ag end)()end,[
19]=function()local aa,ab,ac=a(19)local ad return(function(...)local ae,af=ac(ab.Parent.Parent:WaitForChild'scripts':
WaitForChild'CustomESP'),{}function af.build(ag,ah)local ai,aj={Enabled=false,ShowHighlights=true,ShowLabels=true,
ShowDistance=true,TextSize=15,LabelOffsetY=3,MaxDistance=3000,HighlightColor=Color3.fromRGB(255,170,0),LabelColor=Color3
.fromRGB(255,230,150),FillTransparency=0.55,OutlineTransparency=0}local function ak()if aj then aj:UpdateConfig(ai)end
end local function al()if aj then return end aj=ae.new()aj:UpdateConfig(ai)aj:Start()ag:Notify{Title='Custom ESP',
Description='Custom NPC ESP aktiviert.',Time=2}end local function am()if not aj then return end aj:Stop()aj=nil ag:
Notify{Title='Custom ESP',Description='Custom NPC ESP deaktiviert.',Time=2}end local an=ah.ESP:AddLeftGroupbox('NPC ESP'
,'rbxassetid://110420827043048')an:AddToggle('CustomNpcEspEnabled',{Text='Custom NPC ESP',Default=ai.Enabled,Callback=
function(ao)ai.Enabled=ao if ao then al()else am()end end})an:AddLabel'Presets'an:AddButton{Text='Default',Func=function
()ai.HighlightColor=Color3.fromRGB(255,170,0)ai.LabelColor=Color3.fromRGB(255,230,150)ai.FillTransparency=0.55 ai.
OutlineTransparency=0 ai.TextSize=15 ai.LabelOffsetY=3 ak()ag:Notify{Title='ESP',Description=
'Default preset angewendet.',Time=2}end}local ao=ah.ESP:AddRightGroupbox('ESP Settings','rbxassetid://126437119963884')
ao:AddToggle('CustomEspHighlights',{Text='Highlights',Default=ai.ShowHighlights,Callback=function(ap)ai.ShowHighlights=
ap ak()end})ao:AddToggle('CustomEspLabels',{Text='Labels',Default=ai.ShowLabels,Callback=function(ap)ai.ShowLabels=ap
ak()end})ao:AddToggle('CustomEspDistance',{Text='Distance Text',Default=ai.ShowDistance,Callback=function(ap)ai.
ShowDistance=ap ak()end})ao:AddSlider('CustomEspMaxDistance',{Text='Max Distance',Default=ai.MaxDistance,Min=100,Max=
10000,Rounding=0,Suffix=' studs',Callback=function(ap)ai.MaxDistance=ap ak()end})ao:AddSlider('CustomEspTextSize',{Text=
'Text Size',Default=ai.TextSize,Min=10,Max=30,Rounding=0,Callback=function(ap)ai.TextSize=ap ak()end})ao:AddSlider(
'CustomEspLabelOffsetY',{Text='Label Height',Default=ai.LabelOffsetY,Min=1,Max=8,Rounding=1,Callback=function(ap)ai.
LabelOffsetY=ap ak()end})ao:AddLabel'Highlight Color':AddColorPicker('CustomEspHighlightColor',{Default=ai.
HighlightColor,Callback=function(ap)ai.HighlightColor=ap ak()end})ao:AddLabel'Label Color':AddColorPicker(
'CustomEspLabelColor',{Default=ai.LabelColor,Callback=function(ap)ai.LabelColor=ap ak()end})ao:AddSlider(
'CustomEspFillTransparency',{Text='Fill Transparency',Default=ai.FillTransparency,Min=0,Max=1,Rounding=2,Callback=
function(ap)ai.FillTransparency=ap ak()end})ao:AddSlider('CustomEspOutlineTransparency',{Text='Outline Transparency',
Default=ai.OutlineTransparency,Min=0,Max=1,Rounding=2,Callback=function(ap)ai.OutlineTransparency=ap ak()end})end return
af end)()end,[20]=function()local aa,ab,ac=a(20)local ad return(function(...)local ae,af=ac(ab.Parent.Parent:
WaitForChild'scripts':WaitForChild'FlyController'),{}function af.build(ag,ah)local ai,aj,ak=ae.new(),ag.Toggles,{Enabled
=false,Speed=80,BoostMultiplier=2,Noclip=true}local function al()ai:UpdateConfig(ak)end local function am(an)ak.Enabled=
an al()if an then ai:Start()ag:Notify{Title='Fly',Description='Fly aktiviert.',Time=2}else ai:Stop()ag:Notify{Title=
'Fly',Description='Fly deaktiviert.',Time=2}end end local an=ah.Fly:AddLeftGroupbox('Fly','rbxassetid://140475550761298'
)an:AddToggle('FlyEnabled',{Text='Fly Enabled',Default=ak.Enabled,Callback=function(ao)am(ao)end})an:AddSlider(
'FlySpeed',{Text='Speed',Default=ak.Speed,Min=10,Max=300,Rounding=0,Suffix=' studs/s',Callback=function(ao)ak.Speed=ao
al()end})an:AddSlider('FlyBoostMultiplier',{Text='Shift Boost',Default=ak.BoostMultiplier,Min=1,Max=5,Rounding=1,
Callback=function(ao)ak.BoostMultiplier=ao al()end})an:AddToggle('FlyNoclip',{Text='Noclip While Flying',Default=ak.
Noclip,Callback=function(ao)ak.Noclip=ao al()end})an:AddLabel'Fly Hotkey':AddKeyPicker('FlyToggleKeybind',{Default='F',
Mode='Press',Text='Toggle Fly',Callback=function()local ao=not ak.Enabled if aj.FlyEnabled then aj.FlyEnabled:SetValue(
ao)else am(ao)end end})local ao=ah.Fly:AddRightGroupbox('Controls','rbxassetid://90912587435986')ao:AddLabel
'WASD = Move in camera direction'ao:AddLabel'LeftShift = Boost'ao:AddLabel'Hotkey = F (change in Fly tab)'end return af
end)()end,[21]=function()local aa,ab,ac=a(21)local ad return(function(...)local ae={}function ae.build(af,ag)local ah=ag
.Main:AddLeftGroupbox('Demo','boxes')ah:AddLabel'Features sind jetzt in separaten Tabs links.'ah:AddLabel
'Nutze den ESP-Tab und den Fly-Tab.'end return ae end)()end,[22]=function()local aa,ab,ac=a(22)local ad return(function(
...)local ae,af=ac(ab.Parent.Parent:WaitForChild'scripts':WaitForChild'NoclipController'),{}function af.build(ag,ah)
local ai,aj,ak=ag.Toggles,ae.new(),{Enabled=false}local function al()aj:UpdateConfig(ak)end local function am(an)ak.
Enabled=an al()if an then aj:Start()ag:Notify{Title='Noclip',Description='Noclip aktiviert.',Time=2}else aj:Stop()ag:
Notify{Title='Noclip',Description='Noclip deaktiviert.',Time=2}end end local an=ah.Noclip:AddLeftGroupbox('Noclip',
'rbxassetid://85396477857239')an:AddToggle('NoclipEnabled',{Text='Noclip Enabled',Default=ak.Enabled,Callback=function(
ao)am(ao)end})an:AddLabel'Noclip Hotkey':AddKeyPicker('NoclipToggleKeybind',{Default='N',Mode='Press',Text=
'Toggle Noclip',Callback=function()local ao=not ak.Enabled if ai.NoclipEnabled then ai.NoclipEnabled:SetValue(ao)else
am(ao)end end})local ao=ah.Noclip:AddRightGroupbox('Settings','rbxassetid://108161736734904')ao:AddLabel
'Noclip bleibt bei Respawn aktiv,'ao:AddLabel'solange der Toggle eingeschaltet ist.'ao:AddButton{Text='Force Disable',
Func=function()if ai.NoclipEnabled then ai.NoclipEnabled:SetValue(false)else am(false)end end}end return af end)()end,[
23]=function()local aa,ab,ac=a(23)local ad return(function(...)local ae={}function ae.build(af,ag,ah)local ai=ag[
'UI Settings']:AddLeftGroupbox('Menu','wrench')ai:AddLabel'Menu Keybind':AddKeyPicker('MenuKeybind',{Default=
'RightShift',NoUI=true,Text='Menu keybind'})ai:AddToggle('ShowCustomCursor',{Text='Custom Cursor',Default=true,Callback=
function(aj)af.ShowCustomCursor=aj end})ai:AddToggle('OpenKeybindMenu',{Text='Keybind Menu',Default=af.KeybindFrame and
af.KeybindFrame.Visible or false,Callback=function(aj)if af.KeybindFrame then af.KeybindFrame.Visible=aj end end})ai:
AddDropdown('NotificationSide',{Values={'Left','Right'},Default='Right',Multi=false,Text='Notification Side',Callback=
function(aj)af:SetNotifySide(aj)end})ai:AddDropdown('DPIScale',{Values={'75%','100%','125%','150%','175%','200%'},
Default='100%',Multi=false,Text='DPI Scale',Callback=function(aj)local ak=tonumber(aj:gsub('%%',''))if ak then af:
SetDPIScale(ak)end end})ai:AddDivider()ai:AddButton{Text='Unload UI',Func=function()af:Unload()end}af.ToggleKeybind=ah.
MenuKeybind end return ae end)()end,[25]=function()local aa,ab,ac=a(25)local ad return(function(...)local ae,af={[
'lucide-air-vent']='rbxassetid://113088244245544',['lucide-a-arrow-down']='rbxassetid://120414505628310',[
'lucide-airplay']='rbxassetid://84819241115336',['lucide-activity']='rbxassetid://95440027512297',['lucide-a-arrow-up']=
'rbxassetid://96834340832343',['lucide-alarm-clock-check']='rbxassetid://98975592700921',['lucide-a-large-small']=
'rbxassetid://107161607517892',['lucide-accessibility']='rbxassetid://89312644787341',['lucide-alarm-clock-minus']=
'rbxassetid://82130050165851',['lucide-alarm-smoke']='rbxassetid://73760741091094',['lucide-alarm-clock-plus']=
'rbxassetid://107534211370017',['lucide-alarm-clock']='rbxassetid://98565867866733',['lucide-album']=
'rbxassetid://81701758864352',['lucide-align-center-horizontal']='rbxassetid://90152735878239',[
'lucide-align-center-vertical']='rbxassetid://137580719499796',['lucide-alarm-clock-off']='rbxassetid://82479038323456',
['lucide-align-horizontal-distribute-end']='rbxassetid://130288633910138',['lucide-align-end-vertical']=
'rbxassetid://79375195184015',['lucide-align-horizontal-distribute-start']='rbxassetid://115759685434358',[
'lucide-align-horizontal-justify-end']='rbxassetid://132086487303478',['lucide-align-horizontal-distribute-center']=
'rbxassetid://101218054531765',['lucide-align-end-horizontal']='rbxassetid://130647352184453',[
'lucide-align-horizontal-justify-start']='rbxassetid://123061644053286',['lucide-align-horizontal-justify-center']=
'rbxassetid://130462992510518',['lucide-align-start-vertical']='rbxassetid://75467192558846',[
'lucide-align-vertical-distribute-end']='rbxassetid://70663488913005',['lucide-align-vertical-distribute-start']=
'rbxassetid://93076316561590',['lucide-align-vertical-distribute-center']='rbxassetid://112680826860842',[
'lucide-align-horizontal-space-around']='rbxassetid://135300504827397',['lucide-align-horizontal-space-between']=
'rbxassetid://101539620584007',['lucide-align-vertical-justify-center']='rbxassetid://108023935392097',[
'lucide-align-start-horizontal']='rbxassetid://75045942856873',['lucide-align-vertical-space-around']=
'rbxassetid://91561844813295',['lucide-align-vertical-justify-end']='rbxassetid://82519435764532',[
'lucide-align-vertical-space-between']='rbxassetid://130004655159352',['lucide-align-vertical-justify-start']=
'rbxassetid://131206149699386',['lucide-ambulance']='rbxassetid://106769645430045',['lucide-ampersands']=
'rbxassetid://93939543590778',['lucide-amphora']='rbxassetid://114809125365665',['lucide-ampersand']=
'rbxassetid://132582081191428',['lucide-annoyed']='rbxassetid://129313977435040',['lucide-anchor']=
'rbxassetid://134444532304744',['lucide-angry']='rbxassetid://103432430359962',['lucide-antenna']=
'rbxassetid://85182227753391',['lucide-arrow-up-0-1']='rbxassetid://90304809894863',['lucide-arrow-right']=
'rbxassetid://77716250995685',['lucide-arrow-up-down']='rbxassetid://116007484352857',['lucide-arrow-right-to-line']=
'rbxassetid://130302853811067',['lucide-arrow-up-from-dot']='rbxassetid://77075818203314',['lucide-arrow-up-1-0']=
'rbxassetid://82920579849338',['lucide-arrow-up-a-z']='rbxassetid://98736822641557',['lucide-arrow-up-from-line']=
'rbxassetid://79511043291321',['lucide-arrow-up-left']='rbxassetid://101219738563532',['lucide-arrow-up-to-line']=
'rbxassetid://80522631977965',['lucide-arrow-up']='rbxassetid://98979600473533',['lucide-arrow-up-wide-narrow']=
'rbxassetid://128135935592172',['lucide-arrow-up-z-a']='rbxassetid://80259664662816',['lucide-arrow-up-narrow-wide']=
'rbxassetid://114413647002523',['lucide-arrows-up-from-line']='rbxassetid://85448327430869',['lucide-arrow-up-right']=
'rbxassetid://85768846153053',['lucide-asterisk']='rbxassetid://79613632867728',['lucide-at-sign']=
'rbxassetid://132050649903695',['lucide-audio-waveform']='rbxassetid://105657332422535',['lucide-atom']=
'rbxassetid://119903768232341',['lucide-audio-lines']='rbxassetid://102485709988523',['lucide-award']=
'rbxassetid://109642232951251',['lucide-axe']='rbxassetid://137270702075192',['lucide-axis-3d']=
'rbxassetid://95186769537241',['lucide-baby']='rbxassetid://80466052275228',['lucide-badge-dollar-sign']=
'rbxassetid://72214133963083',['lucide-badge-check']='rbxassetid://75706152439533',['lucide-backpack']=
'rbxassetid://126071485947627',['lucide-badge-alert']='rbxassetid://81414335979300',['lucide-badge-cent']=
'rbxassetid://76850285035350',['lucide-badge-indian-rupee']='rbxassetid://103682477938619',['lucide-badge-euro']=
'rbxassetid://85552724808775',['lucide-badge-plus']='rbxassetid://104455648105353',['lucide-badge-info']=
'rbxassetid://98380410122482',['lucide-badge-percent']='rbxassetid://70488566289726',['lucide-badge-question-mark']=
'rbxassetid://102240877066011',['lucide-badge-minus']='rbxassetid://101315554345083',['lucide-badge-japanese-yen']=
'rbxassetid://113045284352658',['lucide-badge-pound-sterling']='rbxassetid://98935044155029',[
'lucide-badge-russian-ruble']='rbxassetid://112275627279902',['lucide-badge-x']='rbxassetid://101243395319925',[
'lucide-badge-turkish-lira']='rbxassetid://101434263132943',['lucide-badge-swiss-franc']='rbxassetid://78642697556686',[
'lucide-ban']='rbxassetid://101518975242759',['lucide-baggage-claim']='rbxassetid://140431745519415',['lucide-banana']=
'rbxassetid://86734447359422',['lucide-badge']='rbxassetid://94978560489891',['lucide-bandage']=
'rbxassetid://78234939423601',['lucide-banknote-arrow-down']='rbxassetid://134457083065515',['lucide-banknote-arrow-up']
='rbxassetid://77764025685875',['lucide-barcode']='rbxassetid://121608699969250',['lucide-banknote']=
'rbxassetid://102066585318630',['lucide-baseline']='rbxassetid://128247774141861',['lucide-banknote-x']=
'rbxassetid://118738923534676',['lucide-barrel']='rbxassetid://116612716986134',['lucide-bath']=
'rbxassetid://101067851305042',['lucide-battery']='rbxassetid://78118317085253',['lucide-battery-charging']=
'rbxassetid://98180549695204',['lucide-battery-low']='rbxassetid://88294799598630',['lucide-battery-full']=
'rbxassetid://125340133800865',['lucide-battery-warning']='rbxassetid://120288517373566',['lucide-battery-plus']=
'rbxassetid://106711223904991',['lucide-battery-medium']='rbxassetid://73715347041489',['lucide-beaker']=
'rbxassetid://73110467757578',['lucide-bean']='rbxassetid://72912374193199',['lucide-bed-single']=
'rbxassetid://105005085469178',['lucide-bed-double']='rbxassetid://87256665828685',['lucide-bed']=
'rbxassetid://123966478228386',['lucide-beef']='rbxassetid://107606626961304',['lucide-bean-off']=
'rbxassetid://128820952943018',['lucide-beer-off']='rbxassetid://112815418189732',['lucide-beer']=
'rbxassetid://132755047015747',['lucide-bell-dot']='rbxassetid://92844550428675',['lucide-bell-off']=
'rbxassetid://82850239154074',['lucide-bell-minus']='rbxassetid://119315335306046',['lucide-bell-plus']=
'rbxassetid://95786634636936',['lucide-bell-ring']='rbxassetid://108990608140289',['lucide-between-horizontal-end']=
'rbxassetid://78170749508107',['lucide-bell-electric']='rbxassetid://106606348469124',['lucide-bell']=
'rbxassetid://92986018789671',['lucide-between-horizontal-start']='rbxassetid://73392709295543',['lucide-biceps-flexed']
='rbxassetid://129098746499387',['lucide-bike']='rbxassetid://86948678675242',['lucide-between-vertical-start']=
'rbxassetid://90527894877833',['lucide-between-vertical-end']='rbxassetid://92678977822333',['lucide-binary']=
'rbxassetid://98571973201255',['lucide-binoculars']='rbxassetid://123282186340151',['lucide-biohazard']=
'rbxassetid://106659899610477',['lucide-birdhouse']='rbxassetid://89873652934066',['lucide-bird']=
'rbxassetid://128051070767918',['lucide-blinds']='rbxassetid://118851224898282',['lucide-bitcoin']=
'rbxassetid://133789665523083',['lucide-blend']='rbxassetid://115800779463786',['lucide-blocks']=
'rbxassetid://102716213912912',['lucide-bluetooth-connected']='rbxassetid://101031220149152',['lucide-bluetooth-off']=
'rbxassetid://88650866432234',['lucide-bluetooth-searching']='rbxassetid://90389994706536',['lucide-bluetooth']=
'rbxassetid://104154761844829',['lucide-bold']='rbxassetid://111520769173402',['lucide-bolt']=
'rbxassetid://100119987131796',['lucide-bomb']='rbxassetid://93241930182003',['lucide-bone']=
'rbxassetid://79800390446261',['lucide-book-a']='rbxassetid://137104343428455',['lucide-book-alert']=
'rbxassetid://91488851625933',['lucide-book-check']='rbxassetid://121069401172336',['lucide-book-audio']=
'rbxassetid://92694694813663',['lucide-book-copy']='rbxassetid://70771353229611',['lucide-book-dashed']=
'rbxassetid://135248639794134',['lucide-book-headphones']='rbxassetid://124546088059614',['lucide-book-image']=
'rbxassetid://104183725295808',['lucide-book-down']='rbxassetid://107990586598244',['lucide-book-heart']=
'rbxassetid://117316245973630',['lucide-book-key']='rbxassetid://85786219507047',['lucide-book-lock']=
'rbxassetid://114707451339109',['lucide-book-marked']='rbxassetid://87495016304285',['lucide-book-minus']=
'rbxassetid://125338544034101',['lucide-book-open-text']='rbxassetid://126539006156634',['lucide-book-open-check']=
'rbxassetid://126176385003423',['lucide-book-open']='rbxassetid://90912587435986',['lucide-book-plus']=
'rbxassetid://106800842279251',['lucide-book-type']='rbxassetid://112713438928681',['lucide-book-text']=
'rbxassetid://110858035175756',['lucide-book-up-2']='rbxassetid://140644523318440',['lucide-book-up']=
'rbxassetid://82634423935348',['lucide-book-x']='rbxassetid://75519368428679',['lucide-book-user']=
'rbxassetid://115260150286267',['lucide-book']='rbxassetid://122723818641136',['lucide-bookmark-check']=
'rbxassetid://100305287679595',['lucide-bookmark-minus']='rbxassetid://89339472182643',['lucide-bookmark-plus']=
'rbxassetid://121629455703261',['lucide-bookmark-x']='rbxassetid://95199400082726',['lucide-bookmark']=
'rbxassetid://79402714274099',['lucide-boom-box']='rbxassetid://79278219767666',['lucide-bot-message-square']=
'rbxassetid://140005134976316',['lucide-bot-off']='rbxassetid://108232370142862',['lucide-bot']=
'rbxassetid://140736083325394',['lucide-bow-arrow']='rbxassetid://120505014624085',['lucide-bottle-wine']=
'rbxassetid://83525579067279',['lucide-box']='rbxassetid://124463062989036',['lucide-boxes']=
'rbxassetid://80428483999163',['lucide-braces']='rbxassetid://134464413061657',['lucide-brain-circuit']=
'rbxassetid://140345789749626',['lucide-brain-cog']='rbxassetid://112334082333372',['lucide-brackets']=
'rbxassetid://82255555018168',['lucide-brick-wall-fire']='rbxassetid://113638535614716',['lucide-brain']=
'rbxassetid://117595464594048',['lucide-brick-wall-shield']='rbxassetid://130727573120968',['lucide-brick-wall']=
'rbxassetid://72678001347999',['lucide-briefcase-business']='rbxassetid://130776517324525',[
'lucide-briefcase-conveyor-belt']='rbxassetid://129801966448976',['lucide-briefcase-medical']=
'rbxassetid://139347477504625',['lucide-briefcase']='rbxassetid://82757538374728',['lucide-bring-to-front']=
'rbxassetid://98158815328542',['lucide-brush-cleaning']='rbxassetid://114865910576575',['lucide-brush']=
'rbxassetid://104804660794508',['lucide-bubbles']='rbxassetid://74043669293391',['lucide-bug-off']=
'rbxassetid://70750253825664',['lucide-bug']='rbxassetid://133217899175868',['lucide-bug-play']=
'rbxassetid://101255792432435',['lucide-building-2']='rbxassetid://90211404869801',['lucide-building']=
'rbxassetid://94142196417142',['lucide-bus-front']='rbxassetid://114061367083086',['lucide-bus']=
'rbxassetid://103533775544693',['lucide-cable']='rbxassetid://123971108968315',['lucide-cake']=
'rbxassetid://78809026942881',['lucide-calculator']='rbxassetid://111319996351107',['lucide-cable-car']=
'rbxassetid://100990843310986',['lucide-cake-slice']='rbxassetid://77017796632392',['lucide-calendar-1']=
'rbxassetid://97520920737467',['lucide-calendar-arrow-down']='rbxassetid://91064263011603',['lucide-calendar-arrow-up']=
'rbxassetid://99637106996581',['lucide-calendar-check-2']='rbxassetid://114125132570695',['lucide-calendar-check']=
'rbxassetid://116253684302599',['lucide-calendar-clock']='rbxassetid://136384122630507',['lucide-calendar-cog']=
'rbxassetid://108707456136692',['lucide-calendar-days']='rbxassetid://116053302884403',['lucide-calendar-fold']=
'rbxassetid://78499415876043',['lucide-calendar-heart']='rbxassetid://129045890791373',['lucide-calendar-minus-2']=
'rbxassetid://92914082775319',['lucide-calendar-minus']='rbxassetid://98794994270597',['lucide-calendar-off']=
'rbxassetid://129310823272421',['lucide-calendar-plus-2']='rbxassetid://85285860422019',['lucide-calendar-plus']=
'rbxassetid://100688207800828',['lucide-calendar-range']='rbxassetid://111810913033024',['lucide-calendar-sync']=
'rbxassetid://133220655127088',['lucide-calendar-search']='rbxassetid://114039715128216',['lucide-calendar-x-2']=
'rbxassetid://97240797436634',['lucide-calendar-x']='rbxassetid://128431845692537',['lucide-calendar']=
'rbxassetid://122212681541035',['lucide-camera-off']='rbxassetid://133932005072215',['lucide-camera']=
'rbxassetid://103581066098430',['lucide-candy-cane']='rbxassetid://94939985265229',['lucide-candy-off']=
'rbxassetid://88990479901694',['lucide-candy']='rbxassetid://74395895317493',['lucide-cannabis']=
'rbxassetid://75289534442544',['lucide-captions-off']='rbxassetid://99426968303211',['lucide-car-front']=
'rbxassetid://99974862129908',['lucide-captions']='rbxassetid://81276942849544',['lucide-car-taxi-front']=
'rbxassetid://75835068120509',['lucide-car']='rbxassetid://82812587709594',['lucide-caravan']=
'rbxassetid://116439873777523',['lucide-card-sim']='rbxassetid://85439953191353',['lucide-carrot']=
'rbxassetid://123662079147516',['lucide-case-lower']='rbxassetid://132422866744394',['lucide-case-upper']=
'rbxassetid://139433939295333',['lucide-case-sensitive']='rbxassetid://95136793964342',['lucide-cassette-tape']=
'rbxassetid://75499923724913',['lucide-cast']='rbxassetid://128033542394208',['lucide-castle']=
'rbxassetid://74342594680492',['lucide-cat']='rbxassetid://123889736680476',['lucide-cctv']=
'rbxassetid://82683346848440',['lucide-chart-area']='rbxassetid://118262958526826',['lucide-chart-bar-big']=
'rbxassetid://82562770849927',['lucide-chart-bar-decreasing']='rbxassetid://96375771294561',[
'lucide-chart-bar-increasing']='rbxassetid://110809152432047',['lucide-chart-bar-stacked']='rbxassetid://82174193159719'
,['lucide-chart-bar']='rbxassetid://103995825613537',['lucide-chart-candlestick']='rbxassetid://112748651353579',[
'lucide-chart-column-big']='rbxassetid://90681415263457',['lucide-chart-column-decreasing']=
'rbxassetid://95111949611377',['lucide-chart-column-increasing']='rbxassetid://112854116621325',[
'lucide-chart-column-stacked']='rbxassetid://130815119774342',['lucide-chart-column']='rbxassetid://113570673491876',[
'lucide-chart-gantt']='rbxassetid://105536255199936',['lucide-chart-network']='rbxassetid://79520870122240',[
'lucide-chart-line']='rbxassetid://131046231337699',['lucide-chart-no-axes-column-decreasing']=
'rbxassetid://126343881898808',['lucide-chart-no-axes-column-increasing']='rbxassetid://99281337487173',[
'lucide-chart-no-axes-combined']='rbxassetid://108729618602768',['lucide-chart-no-axes-gantt']=
'rbxassetid://124799685645328',['lucide-chart-pie']='rbxassetid://96106407745361',['lucide-chart-scatter']=
'rbxassetid://129693290375415',['lucide-chart-spline']='rbxassetid://133038781937336',['lucide-check-check']=
'rbxassetid://82008427041187',['lucide-check-line']='rbxassetid://87594411605293',['lucide-check']=
'rbxassetid://87094841427580',['lucide-cherry']='rbxassetid://80140793814176',['lucide-chef-hat']=
'rbxassetid://76995841204351',['lucide-chess-bishop']='rbxassetid://134317427411066',['lucide-chess-king']=
'rbxassetid://125706376827705',['lucide-chess-pawn']='rbxassetid://103120686818215',['lucide-chess-knight']=
'rbxassetid://126712097152759',['lucide-chess-queen']='rbxassetid://88518024426987',['lucide-chess-rook']=
'rbxassetid://118683442753293',['lucide-chevron-first']='rbxassetid://121886420549566',['lucide-chevron-down']=
'rbxassetid://103223387937319',['lucide-chevron-last']='rbxassetid://110016827907126',['lucide-chevron-left']=
'rbxassetid://94181145808233',['lucide-chevron-up']='rbxassetid://129408335757027',['lucide-chevron-right']=
'rbxassetid://104874753130630',['lucide-chevrons-down-up']='rbxassetid://79293562088887',['lucide-chevrons-down']=
'rbxassetid://120950821242934',['lucide-chevrons-left-right-ellipsis']='rbxassetid://84983020575513',[
'lucide-chevrons-left-right']='rbxassetid://75769819897403',['lucide-chevrons-left']='rbxassetid://125809177615447',[
'lucide-chevrons-right-left']='rbxassetid://137573153592233',['lucide-chevrons-right']='rbxassetid://107104911377550',[
'lucide-chevrons-up-down']='rbxassetid://82924571843667',['lucide-chevrons-up']='rbxassetid://107154820316297',[
'lucide-chromium']='rbxassetid://135518195940817',['lucide-cigarette-off']='rbxassetid://108894229209554',[
'lucide-church']='rbxassetid://106317033319260',['lucide-cigarette']='rbxassetid://132115894045225',[
'lucide-circle-alert']='rbxassetid://107514968688735',['lucide-circle-arrow-down']='rbxassetid://84529918944346',[
'lucide-circle-arrow-left']='rbxassetid://88991329949001',['lucide-circle-arrow-out-down-left']=
'rbxassetid://132564871193338',['lucide-circle-arrow-out-down-right']='rbxassetid://125571968216970',[
'lucide-circle-arrow-out-up-left']='rbxassetid://123299086652800',['lucide-circle-arrow-right']=
'rbxassetid://85317839380029',['lucide-circle-check-big']='rbxassetid://113030214027267',['lucide-circle-arrow-up']=
'rbxassetid://89466164270861',['lucide-circle-check']='rbxassetid://138722225919600',['lucide-circle-chevron-right']=
'rbxassetid://135660060313721',['lucide-circle-chevron-down']='rbxassetid://102007457949013',['lucide-circle-chevron-up'
]='rbxassetid://85036267451789',['lucide-circle-chevron-left']='rbxassetid://124384902180726',['lucide-circle-dashed']=
'rbxassetid://84342901022097',['lucide-circle-divide']='rbxassetid://88295424429169',['lucide-circle-arrow-out-up-right'
]='rbxassetid://84631329515480',['lucide-circle-dot-dashed']='rbxassetid://104267974984791',['lucide-circle-dollar-sign'
]='rbxassetid://131850032806063',['lucide-circle-dot']='rbxassetid://88018780936807',['lucide-circle-ellipsis']=
'rbxassetid://98452861805576',['lucide-circle-equal']='rbxassetid://115567608354532',['lucide-circle-fading-arrow-up']=
'rbxassetid://136248854954252',['lucide-circle-fading-plus']='rbxassetid://109146422378799',['lucide-circle-gauge']=
'rbxassetid://118873788439098',['lucide-circle-minus']='rbxassetid://94451483271759',['lucide-circle-off']=
'rbxassetid://103851042045774',['lucide-circle-parking-off']='rbxassetid://81011530136572',['lucide-circle-parking']=
'rbxassetid://111444708821861',['lucide-circle-pause']='rbxassetid://115909305286891',['lucide-circle-percent']=
'rbxassetid://108345882434902',['lucide-circle-play']='rbxassetid://102297279653970',['lucide-circle-plus']=
'rbxassetid://119568567947937',['lucide-circle-pound-sterling']='rbxassetid://134660977089510',['lucide-circle-power']=
'rbxassetid://125238902438636',['lucide-circle-question-mark']='rbxassetid://85169507614755',['lucide-circle-slash-2']=
'rbxassetid://86810307205966',['lucide-circle-slash']='rbxassetid://111994989162803',['lucide-circle-small']=
'rbxassetid://96386484116204',['lucide-circle-star']='rbxassetid://131963629948566',['lucide-circle-stop']=
'rbxassetid://101880983726386',['lucide-circle-user-round']='rbxassetid://70980270104566',['lucide-circle-x']=
'rbxassetid://78733624425654',['lucide-circle']='rbxassetid://130206663687965',['lucide-circuit-board']=
'rbxassetid://131162320590629',['lucide-citrus']='rbxassetid://133914484046351',['lucide-clapperboard']=
'rbxassetid://87994290469459',['lucide-clipboard-check']='rbxassetid://117382012272220',['lucide-circle-user']=
'rbxassetid://71619064953472',['lucide-clipboard-clock']='rbxassetid://124441263777250',['lucide-clipboard-copy']=
'rbxassetid://100403352598119',['lucide-clipboard-list']='rbxassetid://123821058500206',['lucide-clipboard-minus']=
'rbxassetid://131504614214997',['lucide-clipboard-paste']='rbxassetid://80182306978235',['lucide-clipboard-pen-line']=
'rbxassetid://123860301063934',['lucide-clipboard-pen']='rbxassetid://93320544956716',['lucide-clipboard-plus']=
'rbxassetid://77662757035255',['lucide-clipboard-type']='rbxassetid://138196914632931',['lucide-clipboard-x']=
'rbxassetid://93366806355520',['lucide-clipboard']='rbxassetid://113663117976023',['lucide-clock-1']=
'rbxassetid://113454898752373',['lucide-clock-11']='rbxassetid://137246905548889',['lucide-clock-12']=
'rbxassetid://138293101540822',['lucide-clock-2']='rbxassetid://138441442475093',['lucide-clock-3']=
'rbxassetid://115343663198256',['lucide-clock-10']='rbxassetid://120387560227337',['lucide-clock-4']=
'rbxassetid://97771013312549',['lucide-clock-5']='rbxassetid://73888387072203',['lucide-clock-6']=
'rbxassetid://83784677808341',['lucide-clock-7']='rbxassetid://76118988452703',['lucide-clock-8']=
'rbxassetid://123266581784685',['lucide-clock-9']='rbxassetid://78708548463132',['lucide-clock-alert']=
'rbxassetid://93063264012489',['lucide-clock-arrow-down']='rbxassetid://127543269177042',['lucide-clock-arrow-up']=
'rbxassetid://76821217588234',['lucide-clock-check']='rbxassetid://109732547038762',['lucide-clock-fading']=
'rbxassetid://114819314915942',['lucide-clock-plus']='rbxassetid://93925110724700',['lucide-clock']=
'rbxassetid://139851423696667',['lucide-closed-caption']='rbxassetid://118738254580900',['lucide-cloud-alert']=
'rbxassetid://89478949399625',['lucide-cloud-check']='rbxassetid://132881979830173',['lucide-cloud-cog']=
'rbxassetid://122417099827577',['lucide-cloud-download']='rbxassetid://72478173326379',['lucide-cloud-fog']=
'rbxassetid://124079870744890',['lucide-cloud-hail']='rbxassetid://91192738645993',['lucide-cloud-lightning']=
'rbxassetid://137833039705770',['lucide-cloud-drizzle']='rbxassetid://121557270237341',['lucide-cloud-moon-rain']=
'rbxassetid://112788800748992',['lucide-cloud-moon']='rbxassetid://129642273666664',['lucide-cloud-off']=
'rbxassetid://107155061269103',['lucide-cloud-rain-wind']='rbxassetid://121245475277579',['lucide-cloud-rain']=
'rbxassetid://121649697528447',['lucide-cloud-snow']='rbxassetid://126439117825655',['lucide-cloud-sun-rain']=
'rbxassetid://138950924654720',['lucide-cloud-sun']='rbxassetid://105178531268580',['lucide-cloud-upload']=
'rbxassetid://100734555816059',['lucide-cloud']='rbxassetid://137231318826123',['lucide-cloudy']=
'rbxassetid://73249767001654',['lucide-clover']='rbxassetid://114845709519789',['lucide-club']=
'rbxassetid://138300983997218',['lucide-code-xml']='rbxassetid://101748661956945',['lucide-code']=
'rbxassetid://72069146538086',['lucide-codesandbox']='rbxassetid://133284865067332',['lucide-codepen']=
'rbxassetid://101438025548085',['lucide-coffee']='rbxassetid://100395382589803',['lucide-cog']=
'rbxassetid://88736731606398',['lucide-coins']='rbxassetid://132443494570075',['lucide-columns-2']=
'rbxassetid://108264027883109',['lucide-columns-3-cog']='rbxassetid://78745140374932',['lucide-columns-3']=
'rbxassetid://85373797690931',['lucide-columns-4']='rbxassetid://75940935311015',['lucide-combine']=
'rbxassetid://97815463468029',['lucide-command']='rbxassetid://82080879408046',['lucide-compass']=
'rbxassetid://97564727838415',['lucide-component']='rbxassetid://134144485641331',['lucide-computer']=
'rbxassetid://81032027435945',['lucide-concierge-bell']='rbxassetid://81777157339711',['lucide-cone']=
'rbxassetid://115432394754761',['lucide-construction']='rbxassetid://119522917188644',['lucide-contact-round']=
'rbxassetid://95708741521812',['lucide-contact']='rbxassetid://116220461276828',['lucide-container']=
'rbxassetid://88550572218063',['lucide-contrast']='rbxassetid://132967737461639',['lucide-cookie']=
'rbxassetid://122159915499706',['lucide-cooking-pot']='rbxassetid://105005758283498',['lucide-copy-check']=
'rbxassetid://98232166540454',['lucide-copy-plus']='rbxassetid://104981459015752',['lucide-copy-minus']=
'rbxassetid://113996515346735',['lucide-copy-x']='rbxassetid://133499460929346',['lucide-copy-slash']=
'rbxassetid://91220337906231',['lucide-copyleft']='rbxassetid://136562303540665',['lucide-copyright']=
'rbxassetid://76322901353742',['lucide-corner-down-left']='rbxassetid://96677272730579',['lucide-corner-down-right']=
'rbxassetid://134667109074827',['lucide-corner-left-down']='rbxassetid://72470587971918',['lucide-corner-left-up']=
'rbxassetid://73953954863215',['lucide-corner-right-down']='rbxassetid://84941025228999',['lucide-copy']=
'rbxassetid://128463727794542',['lucide-corner-right-up']='rbxassetid://79801870040113',['lucide-corner-up-left']=
'rbxassetid://123514297443736',['lucide-corner-up-right']='rbxassetid://84241960900564',['lucide-cpu']=
'rbxassetid://122936516042287',['lucide-creative-commons']='rbxassetid://71466571846572',['lucide-credit-card']=
'rbxassetid://133360811635727',['lucide-croissant']='rbxassetid://98280325891641',['lucide-crop']=
'rbxassetid://76055472302483',['lucide-cross']='rbxassetid://75100956787938',['lucide-crosshair']=
'rbxassetid://119124184549056',['lucide-crown']='rbxassetid://136122001401017',['lucide-cuboid']=
'rbxassetid://95082826412885',['lucide-currency']='rbxassetid://73671572489615',['lucide-cup-soda']=
'rbxassetid://124008454793344',['lucide-cylinder']='rbxassetid://111253761238108',['lucide-dam']=
'rbxassetid://87881824702178',['lucide-database-backup']='rbxassetid://75311650224117',['lucide-database']=
'rbxassetid://119299664310591',['lucide-database-zap']='rbxassetid://108584033443039',['lucide-decimals-arrow-left']=
'rbxassetid://106742398028170',['lucide-delete']='rbxassetid://129223837108610',['lucide-dessert']=
'rbxassetid://113562954276962',['lucide-decimals-arrow-right']='rbxassetid://135916529001991',['lucide-diameter']=
'rbxassetid://106024440049223',['lucide-diamond-minus']='rbxassetid://94944912113536',['lucide-diamond-percent']=
'rbxassetid://115734739111887',['lucide-diamond-plus']='rbxassetid://123686365574625',['lucide-diamond']=
'rbxassetid://91344995267499',['lucide-dice-2']='rbxassetid://111293771714862',['lucide-dice-1']=
'rbxassetid://99201818629880',['lucide-dice-3']='rbxassetid://140385478470416',['lucide-dice-4']=
'rbxassetid://121522450870676',['lucide-dice-5']='rbxassetid://123629316296933',['lucide-dice-6']=
'rbxassetid://87042080881970',['lucide-dices']='rbxassetid://95089680619494',['lucide-diff']=
'rbxassetid://80112085374614',['lucide-disc-2']='rbxassetid://121078777317372',['lucide-disc-3']=
'rbxassetid://94384652290056',['lucide-disc-album']='rbxassetid://86341639226387',['lucide-disc']=
'rbxassetid://109431817995341',['lucide-divide']='rbxassetid://124908211519684',['lucide-dna-off']=
'rbxassetid://84260545543694',['lucide-dna']='rbxassetid://82925188897386',['lucide-dock']=
'rbxassetid://130432548288501',['lucide-dog']='rbxassetid://135737866848801',['lucide-dollar-sign']=
'rbxassetid://72619464046558',['lucide-donut']='rbxassetid://122654366921014',['lucide-door-closed']=
'rbxassetid://114150080075522',['lucide-door-closed-locked']='rbxassetid://125126374811533',['lucide-door-open']=
'rbxassetid://123778216631047',['lucide-dot']='rbxassetid://136673888685240',['lucide-download']=
'rbxassetid://100820322908093',['lucide-drafting-compass']='rbxassetid://85336386803408',['lucide-drama']=
'rbxassetid://90011340110072',['lucide-dribbble']='rbxassetid://83826963617748',['lucide-drill']=
'rbxassetid://125341078941381',['lucide-drone']='rbxassetid://80273660110899',['lucide-droplet-off']=
'rbxassetid://120009591467366',['lucide-droplet']='rbxassetid://120745643292261',['lucide-droplets']=
'rbxassetid://121681742993337',['lucide-drum']='rbxassetid://124152150067768',['lucide-drumstick']=
'rbxassetid://80983300653310',['lucide-dumbbell']='rbxassetid://138245019812319',['lucide-ear']=
'rbxassetid://124953202931671',['lucide-ear-off']='rbxassetid://106457179918226',['lucide-earth-lock']=
'rbxassetid://77630277353747',['lucide-earth']='rbxassetid://99567852560587',['lucide-eclipse']=
'rbxassetid://120170549207328',['lucide-egg-fried']='rbxassetid://107696247511912',['lucide-egg-off']=
'rbxassetid://71865222834020',['lucide-egg']='rbxassetid://74077828249299',['lucide-ellipsis']=
'rbxassetid://78449915318917',['lucide-ellipsis-vertical']='rbxassetid://130645731741151',['lucide-equal-approximately']
='rbxassetid://123996847137772',['lucide-equal-not']='rbxassetid://108053548732555',['lucide-equal']=
'rbxassetid://97680214480216',['lucide-eraser']='rbxassetid://100652041684396',['lucide-ethernet-port']=
'rbxassetid://83059942598586',['lucide-euro']='rbxassetid://133717180614905',['lucide-expand']=
'rbxassetid://138020628831868',['lucide-ev-charger']='rbxassetid://129061580743760',['lucide-external-link']=
'rbxassetid://108766284581078',['lucide-eye-closed']='rbxassetid://94679378452708',['lucide-eye-off']=
'rbxassetid://71078373482627',['lucide-eye']='rbxassetid://84586229544223',['lucide-facebook']=
'rbxassetid://71385196703457',['lucide-factory']='rbxassetid://132999616234981',['lucide-fast-forward']=
'rbxassetid://118513526984000',['lucide-fan']='rbxassetid://117386414979086',['lucide-feather']=
'rbxassetid://123769058034984',['lucide-fence']='rbxassetid://88818973066412',['lucide-ferris-wheel']=
'rbxassetid://133128632263942',['lucide-figma']='rbxassetid://120705462239526',['lucide-file-archive']=
'rbxassetid://94339146764953',['lucide-file-axis-3d']='rbxassetid://110188053750644',['lucide-file-badge']=
'rbxassetid://111037832298396',['lucide-file-box']='rbxassetid://86680241427851',['lucide-file-braces-corner']=
'rbxassetid://131946856612247',['lucide-file-braces']='rbxassetid://84427132110312',[
'lucide-file-chart-column-increasing']='rbxassetid://87515411829113',['lucide-file-chart-column']=
'rbxassetid://80108292403787',['lucide-file-chart-line']='rbxassetid://118005825824629',['lucide-file-chart-pie']=
'rbxassetid://107639383851167',['lucide-file-check-corner']='rbxassetid://129978795373472',['lucide-file-check']=
'rbxassetid://108618371356640',['lucide-file-clock']='rbxassetid://139643888311815',['lucide-file-code-corner']=
'rbxassetid://133387515339792',['lucide-file-code']='rbxassetid://115281703183663',['lucide-file-cog']=
'rbxassetid://85942694904587',['lucide-file-diff']='rbxassetid://94870713921565',['lucide-file-digit']=
'rbxassetid://85958556237660',['lucide-file-down']='rbxassetid://135257456757735',['lucide-file-exclamation-point']=
'rbxassetid://91750055723378',['lucide-file-headphone']='rbxassetid://108763383896474',['lucide-file-heart']=
'rbxassetid://129966799800008',['lucide-file-image']='rbxassetid://104274766178160',['lucide-file-input']=
'rbxassetid://90646074183163',['lucide-file-key']='rbxassetid://92440256929652',['lucide-file-lock']=
'rbxassetid://76980156391910',['lucide-file-minus-corner']='rbxassetid://120966114846559',['lucide-file-minus']=
'rbxassetid://119106212477183',['lucide-file-music']='rbxassetid://136136876922410',['lucide-file-output']=
'rbxassetid://128552508259693',['lucide-file-pen-line']='rbxassetid://83518561169870',['lucide-file-pen']=
'rbxassetid://95425438458747',['lucide-file-play']='rbxassetid://100763826634694',['lucide-file-plus-corner']=
'rbxassetid://78517434084413',['lucide-file-plus']='rbxassetid://118438263178788',['lucide-file-question-mark']=
'rbxassetid://131885651218637',['lucide-file-scan']='rbxassetid://102713455869698',['lucide-file-search-corner']=
'rbxassetid://83816859916634',['lucide-file-search']='rbxassetid://130659571527880',['lucide-file-signal']=
'rbxassetid://75545722651039',['lucide-file-sliders']='rbxassetid://71903238418061',['lucide-file-spreadsheet']=
'rbxassetid://90200363634013',['lucide-file-stack']='rbxassetid://80727374771864',['lucide-file-symlink']=
'rbxassetid://116471238173611',['lucide-file-terminal']='rbxassetid://133083862330487',['lucide-file-text']=
'rbxassetid://115284332253825',['lucide-file-type-corner']='rbxassetid://117445859705507',['lucide-file-type']=
'rbxassetid://108904497138686',['lucide-file-up']='rbxassetid://70528395015940',['lucide-file-user']=
'rbxassetid://120216706412554',['lucide-file-video-camera']='rbxassetid://105983947710503',['lucide-file-volume']=
'rbxassetid://80573298141215',['lucide-file-x-corner']='rbxassetid://105551647199014',['lucide-file-x']=
'rbxassetid://126193753613258',['lucide-file']='rbxassetid://87255401659870',['lucide-film']=
'rbxassetid://105347963847094',['lucide-files']='rbxassetid://102391076620192',['lucide-fingerprint']=
'rbxassetid://116393223079983',['lucide-fire-extinguisher']='rbxassetid://98055077209529',['lucide-fish-off']=
'rbxassetid://122847512230931',['lucide-fish-symbol']='rbxassetid://123118629335632',['lucide-fish']=
'rbxassetid://82592705493804',['lucide-flag-off']='rbxassetid://121562927612543',['lucide-flag-triangle-left']=
'rbxassetid://75395548540594',['lucide-flag-triangle-right']='rbxassetid://131344001192872',['lucide-flag']=
'rbxassetid://90315583265113',['lucide-flame']='rbxassetid://88573180774976',['lucide-flame-kindling']=
'rbxassetid://93852253183041',['lucide-flashlight-off']='rbxassetid://121575632549357',['lucide-flashlight']=
'rbxassetid://127237270232350',['lucide-flask-conical-off']='rbxassetid://74215918311243',['lucide-flask-conical']=
'rbxassetid://92363223751618',['lucide-flask-round']='rbxassetid://137860883688107',['lucide-flip-horizontal-2']=
'rbxassetid://126220971987740',['lucide-flip-vertical-2']='rbxassetid://120054095852694',['lucide-flip-horizontal']=
'rbxassetid://96623693441271',['lucide-flip-vertical']='rbxassetid://90077372315899',['lucide-flower-2']=
'rbxassetid://108507068937434',['lucide-flower']='rbxassetid://128883084271859',['lucide-focus']=
'rbxassetid://75001591953071',['lucide-fold-horizontal']='rbxassetid://111086196755758',['lucide-fold-vertical']=
'rbxassetid://116627357412632',['lucide-folder-archive']='rbxassetid://77750425007186',['lucide-folder-clock']=
'rbxassetid://75266409782876',['lucide-folder-check']='rbxassetid://128166080923864',['lucide-folder-closed']=
'rbxassetid://96084215893251',['lucide-folder-code']='rbxassetid://111114572127754',['lucide-folder-cog']=
'rbxassetid://92435026944010',['lucide-folder-dot']='rbxassetid://127079206879087',['lucide-folder-down']=
'rbxassetid://122774694127191',['lucide-folder-git-2']='rbxassetid://137882529004198',['lucide-folder-git']=
'rbxassetid://113495028414841',['lucide-folder-heart']='rbxassetid://100812946130537',['lucide-folder-input']=
'rbxassetid://84199859130367',['lucide-folder-kanban']='rbxassetid://90845210247037',['lucide-folder-key']=
'rbxassetid://94247827470011',['lucide-folder-lock']='rbxassetid://129631598904132',['lucide-folder-minus']=
'rbxassetid://85854915193371',['lucide-folder-open-dot']='rbxassetid://125348097394400',['lucide-folder-open']=
'rbxassetid://77744859901309',['lucide-folder-output']='rbxassetid://135285574919155',['lucide-folder-pen']=
'rbxassetid://78587158368364',['lucide-folder-plus']='rbxassetid://93057308721557',['lucide-folder-root']=
'rbxassetid://95224160750678',['lucide-folder-search-2']='rbxassetid://86860614307543',['lucide-folder-search']=
'rbxassetid://131127787857999',['lucide-folder-symlink']='rbxassetid://138650370214952',['lucide-folder-sync']=
'rbxassetid://104408248199533',['lucide-folder-tree']='rbxassetid://86379991475354',['lucide-folder-up']=
'rbxassetid://87980648385612',['lucide-folder-x']='rbxassetid://139720728298750',['lucide-folder']=
'rbxassetid://107268726142323',['lucide-folders']='rbxassetid://96663097513322',['lucide-footprints']=
'rbxassetid://122362549360138',['lucide-forklift']='rbxassetid://71380229503176',['lucide-forward']=
'rbxassetid://132706238679461',['lucide-frame']='rbxassetid://94739752532338',['lucide-framer']=
'rbxassetid://112760292091022',['lucide-frown']='rbxassetid://108168379708837',['lucide-fuel']=
'rbxassetid://98485592959003',['lucide-funnel-plus']='rbxassetid://136496409730859',['lucide-fullscreen']=
'rbxassetid://140029490334827',['lucide-funnel-x']='rbxassetid://92865725363630',['lucide-funnel']=
'rbxassetid://121007436886647',['lucide-gallery-horizontal-end']='rbxassetid://71725977830225',[
'lucide-gallery-horizontal']='rbxassetid://111883023568480',['lucide-gallery-thumbnails']='rbxassetid://99454573206257',
['lucide-gallery-vertical-end']='rbxassetid://96978046171892',['lucide-gallery-vertical']='rbxassetid://135930145074448'
,['lucide-gamepad-2']='rbxassetid://136497971865501',['lucide-gamepad-directional']='rbxassetid://133672138400476',[
'lucide-gauge']='rbxassetid://127095088175101',['lucide-gamepad']='rbxassetid://92764835721066',['lucide-gavel']=
'rbxassetid://104614994868142',['lucide-gem']='rbxassetid://126079406603750',['lucide-georgian-lari']=
'rbxassetid://82868863303787',['lucide-ghost']='rbxassetid://86463660178859',['lucide-gift']=
'rbxassetid://108519120439558',['lucide-git-branch-minus']='rbxassetid://80187999120050',['lucide-git-branch-plus']=
'rbxassetid://100845415440135',['lucide-git-branch']='rbxassetid://98752498655713',['lucide-git-commit-horizontal']=
'rbxassetid://81428079977402',['lucide-git-commit-vertical']='rbxassetid://123084084972444',['lucide-git-compare-arrows'
]='rbxassetid://73447329960275',['lucide-git-compare']='rbxassetid://117915732831013',['lucide-git-fork']=
'rbxassetid://77861673332481',['lucide-git-graph']='rbxassetid://133037283157703',['lucide-git-pull-request-arrow']=
'rbxassetid://127804022642477',['lucide-git-merge']='rbxassetid://108100105720002',['lucide-git-pull-request-closed']=
'rbxassetid://103795784782702',['lucide-git-pull-request-create-arrow']='rbxassetid://110035480366791',[
'lucide-git-pull-request-draft']='rbxassetid://101849838844965',['lucide-git-pull-request-create']=
'rbxassetid://73922009651251',['lucide-git-pull-request']='rbxassetid://134890863887177',['lucide-github']=
'rbxassetid://90442344355717',['lucide-glass-water']='rbxassetid://73852985217447',['lucide-gitlab']=
'rbxassetid://74847303617405',['lucide-glasses']='rbxassetid://138327635108330',['lucide-globe-lock']=
'rbxassetid://124777534934695',['lucide-globe']='rbxassetid://121892495315737',['lucide-goal']=
'rbxassetid://139525313616846',['lucide-gpu']='rbxassetid://86310200329550',['lucide-graduation-cap']=
'rbxassetid://108143073004000',['lucide-grape']='rbxassetid://94212913547728',['lucide-grid-2x2-check']=
'rbxassetid://107778683629728',['lucide-grid-2x2-plus']='rbxassetid://93494065607655',['lucide-grid-2x2-x']=
'rbxassetid://116918270075168',['lucide-grid-2x2']='rbxassetid://74972285132812',['lucide-grid-3x2']=
'rbxassetid://127237607313372',['lucide-grid-3x3']='rbxassetid://130624828845334',['lucide-grip-horizontal']=
'rbxassetid://107452070161871',['lucide-grip-vertical']='rbxassetid://111342175169212',['lucide-grip']=
'rbxassetid://98224060867469',['lucide-group']='rbxassetid://100115796502836',['lucide-guitar']=
'rbxassetid://70634289338498',['lucide-ham']='rbxassetid://103218847878805',['lucide-hammer']=
'rbxassetid://129162084211991',['lucide-hamburger']='rbxassetid://117800720477645',['lucide-hand-coins']=
'rbxassetid://137135612943122',['lucide-hand-grab']='rbxassetid://124852578247982',['lucide-hand-fist']=
'rbxassetid://92264285937687',['lucide-hand-heart']='rbxassetid://107922963485284',['lucide-hand-helping']=
'rbxassetid://105776129286384',['lucide-hand-metal']='rbxassetid://110306157796579',['lucide-hand-platter']=
'rbxassetid://77025962869908',['lucide-hand']='rbxassetid://138061943524463',['lucide-handbag']=
'rbxassetid://126458080699645',['lucide-hard-drive-download']='rbxassetid://101148109842994',['lucide-handshake']=
'rbxassetid://125245507632077',['lucide-hard-drive-upload']='rbxassetid://136949962752918',['lucide-hard-drive']=
'rbxassetid://105496479593334',['lucide-hard-hat']='rbxassetid://107921625644712',['lucide-hash']=
'rbxassetid://138551571043823',['lucide-hat-glasses']='rbxassetid://106151343087559',['lucide-haze']=
'rbxassetid://77593629089346',['lucide-hdmi-port']='rbxassetid://72909074290661',['lucide-heading-1']=
'rbxassetid://108366837595310',['lucide-heading-2']='rbxassetid://108399864495071',['lucide-heading-3']=
'rbxassetid://93187427004275',['lucide-heading-4']='rbxassetid://87490226969795',['lucide-heading-5']=
'rbxassetid://100474818435383',['lucide-heading-6']='rbxassetid://86348102132031',['lucide-heading']=
'rbxassetid://100225229640075',['lucide-headphone-off']='rbxassetid://135565162427522',['lucide-headphones']=
'rbxassetid://130980031990503',['lucide-headset']='rbxassetid://94421619082158',['lucide-heart-crack']=
'rbxassetid://97910916371765',['lucide-heart-handshake']='rbxassetid://83992765024844',['lucide-heart-minus']=
'rbxassetid://106522754548211',['lucide-heart-off']='rbxassetid://84018392298422',['lucide-heart-plus']=
'rbxassetid://140560450564568',['lucide-heart']='rbxassetid://116548733348165',['lucide-helicopter']=
'rbxassetid://80026702359428',['lucide-hexagon']='rbxassetid://77153485156642',['lucide-heart-pulse']=
'rbxassetid://125140331309496',['lucide-highlighter']='rbxassetid://100662309160112',['lucide-history']=
'rbxassetid://78323145134041',['lucide-hop-off']='rbxassetid://99626935397106',['lucide-hop']=
'rbxassetid://99595753034903',['lucide-hospital']='rbxassetid://89780900885543',['lucide-hotel']=
'rbxassetid://129456013028421',['lucide-hourglass']='rbxassetid://107428588046119',['lucide-house-heart']=
'rbxassetid://136128528520278',['lucide-house-plug']='rbxassetid://106231180268417',['lucide-heater']=
'rbxassetid://71620219616184',['lucide-house-plus']='rbxassetid://117387354681806',['lucide-house-wifi']=
'rbxassetid://133543673676580',['lucide-house']='rbxassetid://117158858229715',['lucide-ice-cream-bowl']=
'rbxassetid://116430452211676',['lucide-ice-cream-cone']='rbxassetid://121476220426559',['lucide-id-card-lanyard']=
'rbxassetid://84192683486474',['lucide-image-down']='rbxassetid://103895009628951',['lucide-id-card']=
'rbxassetid://123429919193564',['lucide-image-minus']='rbxassetid://115615448533062',['lucide-image-off']=
'rbxassetid://81334185205824',['lucide-image-play']='rbxassetid://98187451863926',['lucide-image-plus']=
'rbxassetid://119072611707161',['lucide-image-up']='rbxassetid://125952357146523',['lucide-image-upscale']=
'rbxassetid://140597686328401',['lucide-image']='rbxassetid://104728449791983',['lucide-images']=
'rbxassetid://96196781495845',['lucide-import']='rbxassetid://129043146935452',['lucide-inbox']=
'rbxassetid://119132055764026',['lucide-indian-rupee']='rbxassetid://75170758596788',['lucide-infinity']=
'rbxassetid://72806696637649',['lucide-info']='rbxassetid://88068430669656',['lucide-inspection-panel']=
'rbxassetid://137247676785488',['lucide-iteration-ccw']='rbxassetid://73772216441614',['lucide-instagram']=
'rbxassetid://133619240052748',['lucide-japanese-yen']='rbxassetid://87809669933668',['lucide-iteration-cw']=
'rbxassetid://102769450820257',['lucide-italic']='rbxassetid://79356424569147',['lucide-kanban']=
'rbxassetid://106685923834692',['lucide-joystick']='rbxassetid://107172845243539',['lucide-kayak']=
'rbxassetid://126957119651542',['lucide-key-round']='rbxassetid://71121298158320',['lucide-key-square']=
'rbxassetid://120013278174541',['lucide-key']='rbxassetid://136504216693355',['lucide-keyboard-music']=
'rbxassetid://134292800800399',['lucide-keyboard-off']='rbxassetid://83190375371761',['lucide-keyboard']=
'rbxassetid://77247338408610',['lucide-lamp-ceiling']='rbxassetid://73422649706087',['lucide-lamp-desk']=
'rbxassetid://123046250917145',['lucide-lamp-floor']='rbxassetid://140111294843982',['lucide-lamp-wall-down']=
'rbxassetid://133914995491360',['lucide-lamp-wall-up']='rbxassetid://123858651364894',['lucide-lamp']=
'rbxassetid://102144334060895',['lucide-land-plot']='rbxassetid://83920406156963',['lucide-languages']=
'rbxassetid://96791960375235',['lucide-landmark']='rbxassetid://117708186520366',['lucide-laptop-minimal-check']=
'rbxassetid://102433170114071',['lucide-laptop-minimal']='rbxassetid://78632367101590',['lucide-laptop']=
'rbxassetid://76559677350820',['lucide-lasso-select']='rbxassetid://84736713428476',['lucide-lasso']=
'rbxassetid://114131172927866',['lucide-laugh']='rbxassetid://134622393946154',['lucide-layers-2']=
'rbxassetid://116144650165277',['lucide-layers']='rbxassetid://129313475515456',['lucide-layout-dashboard']=
'rbxassetid://85565639978932',['lucide-layout-grid']='rbxassetid://119103903159248',['lucide-layout-list']=
'rbxassetid://81899347699850',['lucide-layout-panel-left']='rbxassetid://74332229491684',['lucide-layout-panel-top']=
'rbxassetid://136612509327033',['lucide-layout-template']='rbxassetid://102401436212569',['lucide-leaf']=
'rbxassetid://118236369495965',['lucide-leafy-green']='rbxassetid://72618576349476',['lucide-lectern']=
'rbxassetid://131890588380254',['lucide-library-big']='rbxassetid://129065535946415',['lucide-library']=
'rbxassetid://119154800743972',['lucide-life-buoy']='rbxassetid://72179775264820',['lucide-ligature']=
'rbxassetid://82539978143925',['lucide-lightbulb-off']='rbxassetid://117986652001052',['lucide-line-squiggle']=
'rbxassetid://80131863470506',['lucide-lightbulb']='rbxassetid://137831108095518',['lucide-link-2-off']=
'rbxassetid://115547392134183',['lucide-link-2']='rbxassetid://78096404862526',['lucide-link']=
'rbxassetid://94869749114315',['lucide-linkedin']='rbxassetid://82447398060669',['lucide-list-check']=
'rbxassetid://133323763781799',['lucide-list-checks']='rbxassetid://110535231838184',['lucide-list-chevrons-up-down']=
'rbxassetid://116491324644612',['lucide-list-chevrons-down-up']='rbxassetid://125986889234147',['lucide-list-collapse']=
'rbxassetid://84084117411967',['lucide-list-end']='rbxassetid://115742538988344',['lucide-list-filter-plus']=
'rbxassetid://131373357759520',['lucide-list-filter']='rbxassetid://131678371413521',['lucide-list-indent-increase']=
'rbxassetid://71190512441232',['lucide-list-indent-decrease']='rbxassetid://91718966727755',['lucide-list-minus']=
'rbxassetid://139486752443311',['lucide-list-music']='rbxassetid://107269645613734',['lucide-list-ordered']=
'rbxassetid://76961664030330',['lucide-list-plus']='rbxassetid://134041752185482',['lucide-list-start']=
'rbxassetid://104083889285543',['lucide-list-todo']='rbxassetid://76548760686802',['lucide-list-tree']=
'rbxassetid://110021838422331',['lucide-list-restart']='rbxassetid://118007916922156',['lucide-list-video']=
'rbxassetid://126776596723007',['lucide-list-x']='rbxassetid://116967934200594',['lucide-list']=
'rbxassetid://101979889191306',['lucide-loader-circle']='rbxassetid://92630967969808',['lucide-loader']=
'rbxassetid://135387269563108',['lucide-loader-pinwheel']='rbxassetid://96229486477236',['lucide-locate-fixed']=
'rbxassetid://92665266803055',['lucide-locate-off']='rbxassetid://132116489352952',['lucide-locate']=
'rbxassetid://114038997508013',['lucide-lock-keyhole-open']='rbxassetid://121620135081253',['lucide-lock-keyhole']=
'rbxassetid://93479983696082',['lucide-lock-open']='rbxassetid://136955323515981',['lucide-log-in']=
'rbxassetid://80731799029478',['lucide-lock']='rbxassetid://90921773104239',['lucide-log-out']=
'rbxassetid://87452029891656',['lucide-logs']='rbxassetid://115342957193649',['lucide-lollipop']=
'rbxassetid://96086436728073',['lucide-luggage']='rbxassetid://102475073472771',['lucide-magnet']=
'rbxassetid://115800338178361',['lucide-mail-check']='rbxassetid://130866366241101',['lucide-mail-minus']=
'rbxassetid://90357440084572',['lucide-mail-open']='rbxassetid://120912370020238',['lucide-mail-plus']=
'rbxassetid://105453437540305',['lucide-mail-search']='rbxassetid://138611539125594',['lucide-mail-warning']=
'rbxassetid://108324270986237',['lucide-mail-x']='rbxassetid://131567019093955',['lucide-mail']=
'rbxassetid://102210422931497',['lucide-mail-question-mark']='rbxassetid://83635124879033',['lucide-mailbox']=
'rbxassetid://136502315559793',['lucide-map-minus']='rbxassetid://79548303981195',['lucide-mails']=
'rbxassetid://95259554750782',['lucide-map-pin-check-inside']='rbxassetid://118855942766023',['lucide-map-pin-check']=
'rbxassetid://75463730278213',['lucide-map-pin-house']='rbxassetid://136620156501660',['lucide-map-pin-minus-inside']=
'rbxassetid://138025408823855',['lucide-map-pin-minus']='rbxassetid://115682143831777',['lucide-map-pin-off']=
'rbxassetid://122175289904916',['lucide-map-pin-plus-inside']='rbxassetid://110959469718100',['lucide-map-pin-pen']=
'rbxassetid://140426111268524',['lucide-map-pin-plus']='rbxassetid://104618035407972',['lucide-map-pin-x-inside']=
'rbxassetid://118077224812868',['lucide-map-pin-x']='rbxassetid://130231979784395',['lucide-map-pin']=
'rbxassetid://111215190487808',['lucide-map-pinned']='rbxassetid://83372619239425',['lucide-map']=
'rbxassetid://77244185329274',['lucide-map-plus']='rbxassetid://81706013346909',['lucide-mars-stroke']=
'rbxassetid://75636090662077',['lucide-mars']='rbxassetid://130238707430444',['lucide-martini']=
'rbxassetid://111385959473534',['lucide-maximize-2']='rbxassetid://84017481744159',['lucide-maximize']=
'rbxassetid://106863270920996',['lucide-medal']='rbxassetid://118342639273903',['lucide-megaphone-off']=
'rbxassetid://98137888897576',['lucide-megaphone']='rbxassetid://140438880308430',['lucide-meh']=
'rbxassetid://71376399314302',['lucide-memory-stick']='rbxassetid://106240521273005',['lucide-menu']=
'rbxassetid://97830048654884',['lucide-merge']='rbxassetid://105469716392923',['lucide-message-circle-code']=
'rbxassetid://87064808045859',['lucide-message-circle-dashed']='rbxassetid://120007143767284',[
'lucide-message-circle-more']='rbxassetid://78585034415216',['lucide-message-circle-off']='rbxassetid://105171695148515'
,['lucide-message-circle-heart']='rbxassetid://123298805854963',['lucide-message-circle-plus']=
'rbxassetid://112808826830629',['lucide-message-circle-question-mark']='rbxassetid://120498335753248',[
'lucide-message-circle-reply']='rbxassetid://123994602133920',['lucide-message-circle-warning']=
'rbxassetid://88791055333891',['lucide-message-square-code']='rbxassetid://127578766801912',[
'lucide-message-square-dashed']='rbxassetid://97339682672545',['lucide-message-circle']='rbxassetid://87724350439979',[
'lucide-message-square-diff']='rbxassetid://104853535561407',['lucide-message-circle-x']='rbxassetid://109185323471410',
['lucide-message-square-dot']='rbxassetid://115155407038598',['lucide-message-square-lock']=
'rbxassetid://74043521317438',['lucide-message-square-heart']='rbxassetid://124866570858282',[
'lucide-message-square-off']='rbxassetid://103392259390261',['lucide-message-square-more']='rbxassetid://74100750389312'
,['lucide-message-square-plus']='rbxassetid://73461125274422',['lucide-message-square-quote']=
'rbxassetid://99789701045701',['lucide-message-square-reply']='rbxassetid://124431495504076',[
'lucide-message-square-share']='rbxassetid://75022422761144',['lucide-message-square-text']=
'rbxassetid://98558503107273',['lucide-message-square-warning']='rbxassetid://114233969982788',[
'lucide-message-square-x']='rbxassetid://114480131577614',['lucide-messages-square']='rbxassetid://88487722728357',[
'lucide-message-square']='rbxassetid://103004885271396',['lucide-mic-off']='rbxassetid://130636196289557',[
'lucide-mic-vocal']='rbxassetid://85452517674120',['lucide-mic']='rbxassetid://113829618217637',['lucide-microchip']=
'rbxassetid://113884581061578',['lucide-microscope']='rbxassetid://105131306622747',['lucide-microwave']=
'rbxassetid://118058013794656',['lucide-milk-off']='rbxassetid://127828908535164',['lucide-milestone']=
'rbxassetid://101221463054316',['lucide-minimize-2']='rbxassetid://73226205274756',['lucide-minimize']=
'rbxassetid://87451643914409',['lucide-milk']='rbxassetid://75221608717275',['lucide-minus']=
'rbxassetid://104589564683158',['lucide-monitor-check']='rbxassetid://79895590653224',['lucide-monitor-cloud']=
'rbxassetid://103436009465276',['lucide-monitor-cog']='rbxassetid://83533301821185',['lucide-monitor-dot']=
'rbxassetid://130058782649938',['lucide-monitor-down']='rbxassetid://92405649947808',['lucide-monitor-off']=
'rbxassetid://86849782824176',['lucide-monitor-pause']='rbxassetid://70451209237229',['lucide-monitor-play']=
'rbxassetid://77299203844191',['lucide-monitor-smartphone']='rbxassetid://136330942918429',['lucide-monitor-speaker']=
'rbxassetid://132422868586647',['lucide-monitor-up']='rbxassetid://131473896147720',['lucide-monitor-stop']=
'rbxassetid://95146484920513',['lucide-monitor']='rbxassetid://139353277780920',['lucide-monitor-x']=
'rbxassetid://139256949689830',['lucide-moon']='rbxassetid://114821576742195',['lucide-moon-star']=
'rbxassetid://86009289158283',['lucide-motorbike']='rbxassetid://124472585034102',['lucide-mountain-snow']=
'rbxassetid://118586013024411',['lucide-mountain']='rbxassetid://112090145410019',['lucide-mouse-off']=
'rbxassetid://111776590515670',['lucide-mouse-pointer-2-off']='rbxassetid://93737676023776',['lucide-mouse-pointer-2']=
'rbxassetid://94380218532701',['lucide-mouse-pointer-ban']='rbxassetid://132810447109064',['lucide-mouse-pointer-click']
='rbxassetid://100974925049833',['lucide-mouse-pointer']='rbxassetid://101670551854156',['lucide-move-3d']=
'rbxassetid://136916458255997',['lucide-mouse']='rbxassetid://86593802299475',['lucide-move-diagonal-2']=
'rbxassetid://113910105805300',['lucide-move-down-left']='rbxassetid://109903174474640',['lucide-move-diagonal']=
'rbxassetid://132396580711279',['lucide-move-down-right']='rbxassetid://74529237705395',['lucide-move-down']=
'rbxassetid://107144619813971',['lucide-move-horizontal']='rbxassetid://115560592546233',['lucide-move-left']=
'rbxassetid://80545322525492',['lucide-move-right']='rbxassetid://131278988329492',['lucide-move-up-left']=
'rbxassetid://95325907649986',['lucide-move-up']='rbxassetid://136239030275514',['lucide-move-up-right']=
'rbxassetid://135754994001652',['lucide-move-vertical']='rbxassetid://95753406408439',['lucide-move']=
'rbxassetid://118949779309780',['lucide-music-2']='rbxassetid://124912153067390',['lucide-music-3']=
'rbxassetid://135975429715794',['lucide-music']='rbxassetid://121735471098353',['lucide-navigation-2-off']=
'rbxassetid://79358410038434',['lucide-navigation-2']='rbxassetid://135794129207799',['lucide-music-4']=
'rbxassetid://86415335147670',['lucide-navigation-off']='rbxassetid://98161080839193',['lucide-network']=
'rbxassetid://124786341443739',['lucide-newspaper']='rbxassetid://124862294983379',['lucide-nfc']=
'rbxassetid://138712621054579',['lucide-navigation']='rbxassetid://121792465392585',['lucide-non-binary']=
'rbxassetid://75354421731746',['lucide-notebook-pen']='rbxassetid://133062962478390',['lucide-notebook-tabs']=
'rbxassetid://115564390577716',['lucide-notebook-text']='rbxassetid://134088135763596',['lucide-notebook']=
'rbxassetid://126255905540075',['lucide-notepad-text-dashed']='rbxassetid://73126859884821',['lucide-notepad-text']=
'rbxassetid://91911619971147',['lucide-nut-off']='rbxassetid://100784148710505',['lucide-nut']=
'rbxassetid://131703004915852',['lucide-octagon-alert']='rbxassetid://136499554527588',['lucide-octagon-pause']=
'rbxassetid://98781271756246',['lucide-octagon-x']='rbxassetid://78831958052419',['lucide-octagon']=
'rbxassetid://136544294572577',['lucide-octagon-minus']='rbxassetid://130368971764103',['lucide-omega']=
'rbxassetid://71963171494289',['lucide-origami']='rbxassetid://122921120807855',['lucide-orbit']=
'rbxassetid://85243485505722',['lucide-package-2']='rbxassetid://72763311044692',['lucide-option']=
'rbxassetid://89689942785813',['lucide-package-open']='rbxassetid://104777964816713',['lucide-package-minus']=
'rbxassetid://111488655185859',['lucide-package-check']='rbxassetid://108722801845888',['lucide-package-plus']=
'rbxassetid://86505458342241',['lucide-package-search']='rbxassetid://90506724414429',['lucide-package-x']=
'rbxassetid://98384048231969',['lucide-package']='rbxassetid://122372419510477',['lucide-paintbrush-vertical']=
'rbxassetid://119919088195374',['lucide-paint-bucket']='rbxassetid://103570577531565',['lucide-paintbrush']=
'rbxassetid://75935012051533',['lucide-paint-roller']='rbxassetid://97134283403504',['lucide-palette']=
'rbxassetid://74054293084301',['lucide-panda']='rbxassetid://88610893340444',['lucide-panel-bottom-close']=
'rbxassetid://73284675013407',['lucide-panel-bottom-dashed']='rbxassetid://114492361603553',['lucide-panel-left-close']=
'rbxassetid://117070029525699',['lucide-panel-bottom-open']='rbxassetid://97397234433778',['lucide-panel-bottom']=
'rbxassetid://110021301688704',['lucide-panel-left-open']='rbxassetid://96678557411248',[
'lucide-panel-left-right-dashed']='rbxassetid://90595885833553',['lucide-panel-left']='rbxassetid://102723108416008',[
'lucide-panel-right-close']='rbxassetid://86731946227423',['lucide-panel-right-open']='rbxassetid://110977219495295',[
'lucide-panel-right-dashed']='rbxassetid://137643530050459',['lucide-panel-right']='rbxassetid://74602496003700',[
'lucide-panel-top-bottom-dashed']='rbxassetid://117786090845649',['lucide-panel-top-close']=
'rbxassetid://87210445949859',['lucide-panel-top-dashed']='rbxassetid://121589066591901',['lucide-panel-top-open']=
'rbxassetid://99893228311049',['lucide-panel-top']='rbxassetid://102271099347923',['lucide-panels-left-bottom']=
'rbxassetid://138265563184579',['lucide-panels-right-bottom']='rbxassetid://76948986785063',['lucide-panels-top-left']=
'rbxassetid://76084228366793',['lucide-panel-left-dashed']='rbxassetid://98002654816384',['lucide-parking-meter']=
'rbxassetid://78386671113020',['lucide-parentheses']='rbxassetid://130294727580309',['lucide-paperclip']=
'rbxassetid://136520131296164',['lucide-pause']='rbxassetid://135513904768640',['lucide-paw-print']=
'rbxassetid://132551318749155',['lucide-party-popper']='rbxassetid://104696324409492',['lucide-pc-case']=
'rbxassetid://72338632594869',['lucide-pen-line']='rbxassetid://79207750112559',['lucide-pen']=
'rbxassetid://108132003351690',['lucide-pen-tool']='rbxassetid://118752548699308',['lucide-pen-off']=
'rbxassetid://126506632784090',['lucide-pencil-off']='rbxassetid://122680978487316',['lucide-pencil-ruler']=
'rbxassetid://134708462236812',['lucide-pencil']='rbxassetid://128681444833298',['lucide-pentagon']=
'rbxassetid://124288658991504',['lucide-pencil-line']='rbxassetid://76780160546129',['lucide-person-standing']=
'rbxassetid://79071083762909',['lucide-philippine-peso']='rbxassetid://136024924825071',['lucide-percent']=
'rbxassetid://92322872773463',['lucide-phone-call']='rbxassetid://130029094319460',['lucide-phone-incoming']=
'rbxassetid://92323292229716',['lucide-phone-missed']='rbxassetid://84934792448995',['lucide-phone-off']=
'rbxassetid://82713668933334',['lucide-phone-forwarded']='rbxassetid://81644719426306',['lucide-phone']=
'rbxassetid://88795801994591',['lucide-phone-outgoing']='rbxassetid://80483489270012',['lucide-pi']=
'rbxassetid://88826660835267',['lucide-piano']='rbxassetid://104768610992067',['lucide-pickaxe']=
'rbxassetid://106477259189320',['lucide-picture-in-picture-2']='rbxassetid://140011529979167',[
'lucide-picture-in-picture']='rbxassetid://78771030814366',['lucide-piggy-bank']='rbxassetid://119782782846245',[
'lucide-pilcrow-left']='rbxassetid://93819104639121',['lucide-pilcrow-right']='rbxassetid://105016372949848',[
'lucide-pilcrow']='rbxassetid://135220007830017',['lucide-pill-bottle']='rbxassetid://111777180996851',['lucide-pill']=
'rbxassetid://112378084142171',['lucide-pin-off']='rbxassetid://117093995106477',['lucide-pin']=
'rbxassetid://79993056003648',['lucide-pipette']='rbxassetid://102027497504842',['lucide-plane-landing']=
'rbxassetid://136071263309262',['lucide-plane-takeoff']='rbxassetid://119652661623788',['lucide-pizza']=
'rbxassetid://139869394551363',['lucide-plane']='rbxassetid://128234826267374',['lucide-play']=
'rbxassetid://71128824073086',['lucide-plug-2']='rbxassetid://78974653313877',['lucide-plug']=
'rbxassetid://88904922802858',['lucide-plus']='rbxassetid://75233805311004',['lucide-pocket-knife']=
'rbxassetid://92514589576221',['lucide-pocket']='rbxassetid://99282467067071',['lucide-plug-zap']=
'rbxassetid://118214863811873',['lucide-podcast']='rbxassetid://70427336185824',['lucide-pointer-off']=
'rbxassetid://98643391791340',['lucide-pointer']='rbxassetid://76371100850914',['lucide-popcorn']=
'rbxassetid://100891489333645',['lucide-popsicle']='rbxassetid://79937060342363',['lucide-pound-sterling']=
'rbxassetid://92307367709333',['lucide-power']='rbxassetid://116019387019283',['lucide-power-off']=
'rbxassetid://134906220166355',['lucide-presentation']='rbxassetid://93292385196782',['lucide-printer-check']=
'rbxassetid://124221840975232',['lucide-printer']='rbxassetid://91501117575989',['lucide-projector']=
'rbxassetid://100820227428181',['lucide-proportions']='rbxassetid://80079739485337',['lucide-pyramid']=
'rbxassetid://73997319071288',['lucide-puzzle']='rbxassetid://137712773156741',['lucide-qr-code']=
'rbxassetid://88778289816383',['lucide-quote']='rbxassetid://125778393758705',['lucide-rabbit']=
'rbxassetid://107924029731870',['lucide-radar']='rbxassetid://85516936572279',['lucide-radical']=
'rbxassetid://103771445404955',['lucide-radiation']='rbxassetid://122393434351904',['lucide-radio-receiver']=
'rbxassetid://87012857291080',['lucide-radio']='rbxassetid://96540597021578',['lucide-radio-tower']=
'rbxassetid://112644587643078',['lucide-radius']='rbxassetid://75933157953988',['lucide-rail-symbol']=
'rbxassetid://107744548277124',['lucide-rainbow']='rbxassetid://98877879692251',['lucide-rat']=
'rbxassetid://85204187886671',['lucide-ratio']='rbxassetid://114690865457229',['lucide-receipt-cent']=
'rbxassetid://75887317556001',['lucide-receipt-indian-rupee']='rbxassetid://73989996512185',['lucide-receipt-euro']=
'rbxassetid://124720883690153',['lucide-receipt-japanese-yen']='rbxassetid://140284274607046',[
'lucide-receipt-pound-sterling']='rbxassetid://73919748127578',['lucide-receipt-russian-ruble']=
'rbxassetid://91232975416657',['lucide-receipt-swiss-franc']='rbxassetid://94699297534923',['lucide-receipt-text']=
'rbxassetid://139174223200610',['lucide-receipt-turkish-lira']='rbxassetid://114032403602770',['lucide-receipt']=
'rbxassetid://85337922519679',['lucide-rectangle-circle']='rbxassetid://133076048892874',['lucide-rectangle-ellipsis']=
'rbxassetid://77019937342882',['lucide-rectangle-goggles']='rbxassetid://99521469654830',['lucide-rectangle-horizontal']
='rbxassetid://70750730929777',['lucide-rectangle-vertical']='rbxassetid://89190528967757',['lucide-recycle']=
'rbxassetid://115665057166963',['lucide-redo-2']='rbxassetid://71651974526455',['lucide-redo-dot']=
'rbxassetid://116365842250701',['lucide-redo']='rbxassetid://93928516180926',['lucide-refresh-ccw-dot']=
'rbxassetid://94309554761997',['lucide-refresh-ccw']='rbxassetid://72522507799666',['lucide-refrigerator']=
'rbxassetid://84727184083995',['lucide-refresh-cw']='rbxassetid://113439063293937',['lucide-refresh-cw-off']=
'rbxassetid://119525641640082',['lucide-regex']='rbxassetid://103803468407262',['lucide-remove-formatting']=
'rbxassetid://89578946912066',['lucide-repeat-1']='rbxassetid://88991549510352',['lucide-repeat-2']=
'rbxassetid://73881787850755',['lucide-repeat']='rbxassetid://80969231189660',['lucide-replace-all']=
'rbxassetid://122535922581628',['lucide-reply-all']='rbxassetid://84987507334398',['lucide-replace']=
'rbxassetid://75814507796370',['lucide-reply']='rbxassetid://108388454668509',['lucide-rewind']=
'rbxassetid://83281479437771',['lucide-ribbon']='rbxassetid://89420089684387',['lucide-rocket']=
'rbxassetid://131788466321954',['lucide-rocking-chair']='rbxassetid://137226760912391',['lucide-rose']=
'rbxassetid://92966935256408',['lucide-roller-coaster']='rbxassetid://87531906222362',['lucide-rotate-3d']=
'rbxassetid://107753252955247',['lucide-rotate-ccw-key']='rbxassetid://124547655089619',['lucide-rotate-ccw-square']=
'rbxassetid://87327058509015',['lucide-rotate-ccw']='rbxassetid://101095599141126',['lucide-rotate-cw-square']=
'rbxassetid://132762140856972',['lucide-rotate-cw']='rbxassetid://100235881273355',['lucide-router']=
'rbxassetid://113510588602895',['lucide-route-off']='rbxassetid://131664016749121',['lucide-route']=
'rbxassetid://85559969651576',['lucide-rows-2']='rbxassetid://113562699653253',['lucide-rows-3']=
'rbxassetid://120332056704542',['lucide-rows-4']='rbxassetid://128933363625820',['lucide-rss']=
'rbxassetid://80649234465619',['lucide-ruler-dimension-line']='rbxassetid://78145988801476',['lucide-ruler']=
'rbxassetid://130027725508939',['lucide-sailboat']='rbxassetid://83683803317575',['lucide-russian-ruble']=
'rbxassetid://106072219675786',['lucide-sandwich']='rbxassetid://140292983569448',['lucide-salad']=
'rbxassetid://116091784915518',['lucide-satellite-dish']='rbxassetid://96177411240810',['lucide-satellite']=
'rbxassetid://77948711641962',['lucide-saudi-riyal']='rbxassetid://73465796556265',['lucide-save-all']=
'rbxassetid://129297987134404',['lucide-save-off']='rbxassetid://110896442853119',['lucide-save']=
'rbxassetid://105897098129184',['lucide-scale']='rbxassetid://78905247749838',['lucide-scale-3d']=
'rbxassetid://125497725117093',['lucide-scaling']='rbxassetid://96994034300108',['lucide-scan-barcode']=
'rbxassetid://73347823484851',['lucide-scan-eye']='rbxassetid://85302441084977',['lucide-scan-face']=
'rbxassetid://131586936133619',['lucide-scan-heart']='rbxassetid://94578578934099',['lucide-scan-line']=
'rbxassetid://71147185268435',['lucide-scan-search']='rbxassetid://107063460056091',['lucide-scan-qr-code']=
'rbxassetid://124392877969987',['lucide-scan-text']='rbxassetid://122179388652143',['lucide-scan']=
'rbxassetid://89218537518607',['lucide-school']='rbxassetid://70499927042660',['lucide-scissors-line-dashed']=
'rbxassetid://139522161251225',['lucide-scissors']='rbxassetid://127225501780663',['lucide-screen-share-off']=
'rbxassetid://112024126206141',['lucide-scroll-text']='rbxassetid://115816594733071',['lucide-screen-share']=
'rbxassetid://77476054564343',['lucide-scroll']='rbxassetid://87829447785627',['lucide-search-check']=
'rbxassetid://103334000418768',['lucide-search-code']='rbxassetid://107061802958601',['lucide-search-slash']=
'rbxassetid://117134211229124',['lucide-search']='rbxassetid://87773460790106',['lucide-search-x']=
'rbxassetid://115390690193877',['lucide-section']='rbxassetid://129318031718496',['lucide-send-horizontal']=
'rbxassetid://101299199046262',['lucide-send-to-back']='rbxassetid://91946303092254',['lucide-send']=
'rbxassetid://103227678696712',['lucide-separator-horizontal']='rbxassetid://83153412585635',[
'lucide-separator-vertical']='rbxassetid://89920753188449',['lucide-server-cog']='rbxassetid://90433595069435',[
'lucide-server-crash']='rbxassetid://82979483303823',['lucide-server-off']='rbxassetid://84983374225435',[
'lucide-server']='rbxassetid://118576905995405',['lucide-settings-2']='rbxassetid://78026012600197',['lucide-settings']=
'rbxassetid://78969686563882',['lucide-shapes']='rbxassetid://104199457318082',['lucide-share']=
'rbxassetid://71244133411900',['lucide-sheet']='rbxassetid://105018203702082',['lucide-shield-alert']=
'rbxassetid://83766235946011',['lucide-shell']='rbxassetid://74808424964483',['lucide-share-2']=
'rbxassetid://87914396702491',['lucide-shield-ban']='rbxassetid://107123141574787',['lucide-shield-check']=
'rbxassetid://104368293929283',['lucide-shield-ellipsis']='rbxassetid://88776952092891',['lucide-shield-minus']=
'rbxassetid://79543120092330',['lucide-shield-half']='rbxassetid://83220624861868',['lucide-shield-off']=
'rbxassetid://129035809248931',['lucide-shield-plus']='rbxassetid://82042477661228',['lucide-shield-question-mark']=
'rbxassetid://132519964651604',['lucide-shield-x']='rbxassetid://132237746795947',['lucide-shield-user']=
'rbxassetid://99843165596934',['lucide-shield']='rbxassetid://85396477857239',['lucide-ship-wheel']=
'rbxassetid://84033407514485',['lucide-ship']='rbxassetid://72375037563525',['lucide-shirt']=
'rbxassetid://107562094208033',['lucide-shopping-bag']='rbxassetid://126537311627645',['lucide-shovel']=
'rbxassetid://135187483599507',['lucide-shopping-basket']='rbxassetid://93759741286879',['lucide-shopping-cart']=
'rbxassetid://137304016272182',['lucide-shower-head']='rbxassetid://102655704410096',['lucide-shredder']=
'rbxassetid://91011927352410',['lucide-shrimp']='rbxassetid://72178430949754',['lucide-shrink']=
'rbxassetid://135757301572032',['lucide-shrub']='rbxassetid://105996642982844',['lucide-shuffle']=
'rbxassetid://119474657247324',['lucide-sigma']='rbxassetid://84632332859432',['lucide-signal-high']=
'rbxassetid://75386493947511',['lucide-signal-low']='rbxassetid://81021409006913',['lucide-signal-medium']=
'rbxassetid://121005469545532',['lucide-signal-zero']='rbxassetid://108153009041314',['lucide-signal']=
'rbxassetid://90685413345324',['lucide-signature']='rbxassetid://100862084654093',['lucide-signpost-big']=
'rbxassetid://112070272930379',['lucide-signpost']='rbxassetid://139408172805267',['lucide-siren']=
'rbxassetid://73212486961741',['lucide-skip-back']='rbxassetid://119198036213678',['lucide-skip-forward']=
'rbxassetid://125244517825680',['lucide-skull']='rbxassetid://77573759887203',['lucide-slack']=
'rbxassetid://127245457408509',['lucide-slash']='rbxassetid://98291711549338',['lucide-slice']=
'rbxassetid://72221382143123',['lucide-sliders-horizontal']='rbxassetid://108956055047682',['lucide-sliders-vertical']=
'rbxassetid://113868595081871',['lucide-smartphone-charging']='rbxassetid://93008390926008',['lucide-smartphone-nfc']=
'rbxassetid://79891244079734',['lucide-smartphone']='rbxassetid://101291940767279',['lucide-smile-plus']=
'rbxassetid://107339849810997',['lucide-smile']='rbxassetid://137761704777819',['lucide-snail']=
'rbxassetid://113498987138706',['lucide-snowflake']='rbxassetid://85686475568714',['lucide-soap-dispenser-droplet']=
'rbxassetid://70801280907574',['lucide-sofa']='rbxassetid://93406168462550',['lucide-solar-panel']=
'rbxassetid://80763909537842',['lucide-soup']='rbxassetid://120184724037658',['lucide-space']=
'rbxassetid://73594882947464',['lucide-spade']='rbxassetid://77338459579855',['lucide-sparkle']=
'rbxassetid://128840054863612',['lucide-sparkles']='rbxassetid://126437119963884',['lucide-speaker']=
'rbxassetid://88534016222141',['lucide-speech']='rbxassetid://99870374037472',['lucide-spell-check-2']=
'rbxassetid://135009332642597',['lucide-spell-check']='rbxassetid://90613896380250',['lucide-spline-pointer']=
'rbxassetid://87798935475023',['lucide-spline']='rbxassetid://75989831308167',['lucide-split']=
'rbxassetid://102240173978641',['lucide-spool']='rbxassetid://130318165820765',['lucide-spotlight']=
'rbxassetid://88335457473579',['lucide-spray-can']='rbxassetid://118623637967969',['lucide-sprout']=
'rbxassetid://127934599821694',['lucide-square-activity']='rbxassetid://77343432103780',['lucide-square-arrow-down-left'
]='rbxassetid://128882841263198',['lucide-square-arrow-down-right']='rbxassetid://121646359336676',[
'lucide-square-arrow-down']='rbxassetid://73895362698649',['lucide-square-arrow-left']='rbxassetid://135536084637118',[
'lucide-square-arrow-out-down-left']='rbxassetid://116028711241071',['lucide-square-arrow-out-down-right']=
'rbxassetid://89908422077315',['lucide-square-arrow-out-up-left']='rbxassetid://88084491602593',[
'lucide-square-arrow-out-up-right']='rbxassetid://76428700975595',['lucide-square-arrow-up-left']=
'rbxassetid://128870810619600',['lucide-square-arrow-up-right']='rbxassetid://114119578696704',['lucide-square-arrow-up'
]='rbxassetid://103734190367828',['lucide-square-asterisk']='rbxassetid://100644113924389',['lucide-square-arrow-right']
='rbxassetid://71160338332426',['lucide-square-bottom-dashed-scissors']='rbxassetid://86059074427494',[
'lucide-square-chart-gantt']='rbxassetid://133774544536563',['lucide-square-check-big']='rbxassetid://90215010800954',[
'lucide-square-check']='rbxassetid://72633199492029',['lucide-square-chevron-down']='rbxassetid://96761990426374',[
'lucide-square-chevron-left']='rbxassetid://125332104115114',['lucide-square-chevron-right']=
'rbxassetid://115550970530608',['lucide-square-chevron-up']='rbxassetid://134343214185815',[
'lucide-square-dashed-bottom-code']='rbxassetid://96406385039434',['lucide-square-code']='rbxassetid://84183972073466',[
'lucide-square-dashed-bottom']='rbxassetid://127975598530174',['lucide-square-dashed-kanban']=
'rbxassetid://132318505319707',['lucide-square-dashed-mouse-pointer']='rbxassetid://112809486489040',[
'lucide-square-dashed-top-solid']='rbxassetid://123755801389199',['lucide-square-dashed']='rbxassetid://99084006927645',
['lucide-square-divide']='rbxassetid://119247396998137',['lucide-square-equal']='rbxassetid://110347545439522',[
'lucide-square-function']='rbxassetid://70952744716838',['lucide-square-dot']='rbxassetid://138432453107615',[
'lucide-square-kanban']='rbxassetid://115572128864502',['lucide-square-library']='rbxassetid://85801068256635',[
'lucide-square-menu']='rbxassetid://82736655112279',['lucide-square-m']='rbxassetid://70435625084901',[
'lucide-square-minus']='rbxassetid://90379781579196',['lucide-square-parking']='rbxassetid://117256761239596',[
'lucide-square-mouse-pointer']='rbxassetid://116964284079569',['lucide-square-parking-off']=
'rbxassetid://85324044172091',['lucide-square-pause']='rbxassetid://116471856834832',['lucide-square-pen']=
'rbxassetid://127378512890782',['lucide-square-pi']='rbxassetid://134751514418506',['lucide-square-percent']=
'rbxassetid://136410823956661',['lucide-square-pilcrow']='rbxassetid://91941848089002',['lucide-square-play']=
'rbxassetid://84160763073727',['lucide-square-plus']='rbxassetid://121674592300105',['lucide-square-power']=
'rbxassetid://73776919289064',['lucide-square-radical']='rbxassetid://78427251625452',['lucide-square-round-corner']=
'rbxassetid://108303481153969',['lucide-square-scissors']='rbxassetid://117282369401047',['lucide-square-sigma']=
'rbxassetid://80124721167205',['lucide-square-slash']='rbxassetid://82906531943020',['lucide-square-split-horizontal']=
'rbxassetid://122046079262273',['lucide-square-split-vertical']='rbxassetid://84387613179489',['lucide-square-square']=
'rbxassetid://108906396828729',['lucide-square-stack']='rbxassetid://139805692512368',['lucide-square-star']=
'rbxassetid://105404945337605',['lucide-square-stop']='rbxassetid://113401039188802',['lucide-square-terminal']=
'rbxassetid://124407348708938',['lucide-square-user-round']='rbxassetid://134689923506315',['lucide-square-x']=
'rbxassetid://100995274570976',['lucide-square']='rbxassetid://100083523975161',['lucide-squares-exclude']=
'rbxassetid://116299821924243',['lucide-squares-intersect']='rbxassetid://106060022534961',['lucide-squares-subtract']=
'rbxassetid://99779230617579',['lucide-squares-unite']='rbxassetid://115226990407111',['lucide-square-user']=
'rbxassetid://71220376528705',['lucide-squircle-dashed']='rbxassetid://84876353045665',['lucide-squircle']=
'rbxassetid://99727143850471',['lucide-squirrel']='rbxassetid://96154475290601',['lucide-stamp']=
'rbxassetid://131862041640736',['lucide-star-half']='rbxassetid://114885266751435',['lucide-star-off']=
'rbxassetid://129927419904098',['lucide-star']='rbxassetid://138472016819607',['lucide-step-back']=
'rbxassetid://82198016885064',['lucide-step-forward']='rbxassetid://78128169561221',['lucide-stethoscope']=
'rbxassetid://133097907321954',['lucide-sticker']='rbxassetid://133878644046104',['lucide-sticky-note']=
'rbxassetid://84825610793394',['lucide-store']='rbxassetid://114109092613272',['lucide-stretch-horizontal']=
'rbxassetid://110639094168105',['lucide-stretch-vertical']='rbxassetid://77687299125223',['lucide-strikethrough']=
'rbxassetid://81834063789665',['lucide-subscript']='rbxassetid://78635685349190',['lucide-sun-dim']=
'rbxassetid://115132407887818',['lucide-sun-medium']='rbxassetid://85685421189424',['lucide-sun-moon']=
'rbxassetid://123998354034796',['lucide-sun-snow']='rbxassetid://101326819655480',['lucide-sun']=
'rbxassetid://122702753843672',['lucide-sunrise']='rbxassetid://104305108039542',['lucide-sunset']=
'rbxassetid://97546838540350',['lucide-superscript']='rbxassetid://88196232787474',['lucide-swiss-franc']=
'rbxassetid://92457377041953',['lucide-switch-camera']='rbxassetid://82483412011752',['lucide-sword']=
'rbxassetid://137759336314865',['lucide-swatch-book']='rbxassetid://100880381738403',['lucide-swords']=
'rbxassetid://93678586917184',['lucide-syringe']='rbxassetid://91452837778553',['lucide-table-2']=
'rbxassetid://119550965037579',['lucide-table-cells-merge']='rbxassetid://101295546072939',['lucide-table-cells-split']=
'rbxassetid://101546699198963',['lucide-table-columns-split']='rbxassetid://98130522842357',['lucide-table-of-contents']
='rbxassetid://124075017766604',['lucide-table-properties']='rbxassetid://96481011896160',['lucide-table']=
'rbxassetid://96874492394332',['lucide-table-rows-split']='rbxassetid://123510754600607',['lucide-tablet-smartphone']=
'rbxassetid://101893214435696',['lucide-tablet']='rbxassetid://79711365524474',['lucide-tablets']=
'rbxassetid://80640579149604',['lucide-tag']='rbxassetid://86760445169142',['lucide-tags']=
'rbxassetid://117108855162841',['lucide-tally-1']='rbxassetid://104986417224831',['lucide-tally-2']=
'rbxassetid://104087559764939',['lucide-tally-3']='rbxassetid://107468906939750',['lucide-tally-4']=
'rbxassetid://103565365665146',['lucide-tally-5']='rbxassetid://89788650221744',['lucide-tangent']=
'rbxassetid://117433122688937',['lucide-target']='rbxassetid://110420827043048',['lucide-telescope']=
'rbxassetid://115116166309298',['lucide-tent']='rbxassetid://90958212648338',['lucide-tent-tree']=
'rbxassetid://73775828583688',['lucide-terminal']='rbxassetid://97374315863655',['lucide-test-tube-diagonal']=
'rbxassetid://85649956026368',['lucide-test-tubes']='rbxassetid://112870217768596',['lucide-text-align-center']=
'rbxassetid://131684392974793',['lucide-text-align-end']='rbxassetid://88824152645125',['lucide-test-tube']=
'rbxassetid://96247517588931',['lucide-text-align-start']='rbxassetid://125368952549429',['lucide-text-align-justify']=
'rbxassetid://128847420024946',['lucide-text-cursor-input']='rbxassetid://119081971768105',['lucide-text-cursor']=
'rbxassetid://103518397713606',['lucide-text-initial']='rbxassetid://85100268827690',['lucide-text-quote']=
'rbxassetid://121207029295158',['lucide-text-select']='rbxassetid://120724470218946',['lucide-theater']=
'rbxassetid://130504036256601',['lucide-text-wrap']='rbxassetid://75588925341713',['lucide-thermometer-snowflake']=
'rbxassetid://112009096262160',['lucide-thermometer-sun']='rbxassetid://125170926734633',['lucide-text-search']=
'rbxassetid://84185821853759',['lucide-thermometer']='rbxassetid://113977315513722',['lucide-thumbs-down']=
'rbxassetid://132770860391509',['lucide-thumbs-up']='rbxassetid://126182753052597',['lucide-ticket-check']=
'rbxassetid://128628476988956',['lucide-ticket-minus']='rbxassetid://132065209072956',['lucide-ticket-percent']=
'rbxassetid://91390289993875',['lucide-ticket-plus']='rbxassetid://101372123976656',['lucide-ticket-x']=
'rbxassetid://116688775069470',['lucide-ticket']='rbxassetid://96674465148169',['lucide-ticket-slash']=
'rbxassetid://71682935003573',['lucide-tickets-plane']='rbxassetid://90385077135944',['lucide-timer-off']=
'rbxassetid://112549762598535',['lucide-tickets']='rbxassetid://80716936657775',['lucide-timer-reset']=
'rbxassetid://77747985854116',['lucide-timer']='rbxassetid://83213933612047',['lucide-toggle-left']=
'rbxassetid://86640936259402',['lucide-toggle-right']='rbxassetid://72757888162800',['lucide-touchpad-off']=
'rbxassetid://107253829673902',['lucide-toilet']='rbxassetid://114819166189430',['lucide-tool-case']=
'rbxassetid://100116237648472',['lucide-torus']='rbxassetid://115373403041424',['lucide-tornado']=
'rbxassetid://76373307014972',['lucide-touchpad']='rbxassetid://91900889086796',['lucide-tower-control']=
'rbxassetid://114113858469166',['lucide-toy-brick']='rbxassetid://129631599857851',['lucide-tractor']=
'rbxassetid://126199115090114',['lucide-train-front-tunnel']='rbxassetid://83194044542605',['lucide-train-front']=
'rbxassetid://93463368859380',['lucide-traffic-cone']='rbxassetid://85075037079197',['lucide-train-track']=
'rbxassetid://128961125198436',['lucide-tram-front']='rbxassetid://76760768039681',['lucide-transgender']=
'rbxassetid://110281558647755',['lucide-trash-2']='rbxassetid://82430852390974',['lucide-trash']=
'rbxassetid://88192090804752',['lucide-tree-palm']='rbxassetid://91638729812789',['lucide-tree-pine']=
'rbxassetid://119135971786446',['lucide-trees']='rbxassetid://100052971940700',['lucide-trello']=
'rbxassetid://111339332890176',['lucide-tree-deciduous']='rbxassetid://88530284712113',['lucide-trending-down']=
'rbxassetid://133305384317439',['lucide-trending-up-down']='rbxassetid://121144453068449',['lucide-trending-up']=
'rbxassetid://79276764011620',['lucide-triangle-alert']='rbxassetid://82094603330968',['lucide-triangle-dashed']=
'rbxassetid://83267032457272',['lucide-triangle-right']='rbxassetid://115367459935008',['lucide-triangle']=
'rbxassetid://132419586859734',['lucide-trophy']='rbxassetid://99605947659852',['lucide-truck-electric']=
'rbxassetid://96200084281099',['lucide-truck']='rbxassetid://72418803525911',['lucide-turkish-lira']=
'rbxassetid://111349646591354',['lucide-turntable']='rbxassetid://105301812889365',['lucide-turtle']=
'rbxassetid://124465596631468',['lucide-tv-minimal-play']='rbxassetid://110289795808224',['lucide-tv-minimal']=
'rbxassetid://109954649614047',['lucide-tv']='rbxassetid://75715857915361',['lucide-twitch']=
'rbxassetid://136587344877168',['lucide-twitter']='rbxassetid://110779789219733',['lucide-type-outline']=
'rbxassetid://99301459264736',['lucide-umbrella-off']='rbxassetid://122875354983478',['lucide-type']=
'rbxassetid://139888359287918',['lucide-umbrella']='rbxassetid://120069237833091',['lucide-underline']=
'rbxassetid://130351503549384',['lucide-undo-2']='rbxassetid://135619844622527',['lucide-undo-dot']=
'rbxassetid://103498133000426',['lucide-undo']='rbxassetid://73324648180952',['lucide-unfold-horizontal']=
'rbxassetid://90809805084640',['lucide-unfold-vertical']='rbxassetid://98925955593115',['lucide-ungroup']=
'rbxassetid://96125012617932',['lucide-university']='rbxassetid://71297320674621',['lucide-unlink-2']=
'rbxassetid://132928128576894',['lucide-unlink']='rbxassetid://127929148856574',['lucide-unplug']=
'rbxassetid://77389791351554',['lucide-upload']='rbxassetid://112384273395852',['lucide-usb']=
'rbxassetid://110615576584508',['lucide-user-check']='rbxassetid://83733831617881',['lucide-user-cog']=
'rbxassetid://73849430413885',['lucide-user-lock']='rbxassetid://100767406112271',['lucide-user-minus']=
'rbxassetid://121199767957523',['lucide-user-pen']='rbxassetid://105163865487460',['lucide-user-plus']=
'rbxassetid://126096571523601',['lucide-user-round-check']='rbxassetid://91598234136274',['lucide-user-round-cog']=
'rbxassetid://92618616577913',['lucide-user-round-minus']='rbxassetid://136065875920885',['lucide-user-round-plus']=
'rbxassetid://110896680175557',['lucide-user-round-pen']='rbxassetid://132512706049372',['lucide-user-round-search']=
'rbxassetid://127405499354686',['lucide-user-round-x']='rbxassetid://117388680433660',['lucide-user-round']=
'rbxassetid://131091716091360',['lucide-user-search']='rbxassetid://75980990439194',['lucide-user-star']=
'rbxassetid://71839304465616',['lucide-user-x']='rbxassetid://108408333226063',['lucide-user']=
'rbxassetid://91474334345243',['lucide-users-round']='rbxassetid://93648694836382',['lucide-users']=
'rbxassetid://109799724386715',['lucide-utensils-crossed']='rbxassetid://94229321631994',['lucide-utensils']=
'rbxassetid://95619070214928',['lucide-utility-pole']='rbxassetid://91190201836678',['lucide-variable']=
'rbxassetid://118069142188827',['lucide-vault']='rbxassetid://112922195109981',['lucide-vector-square']=
'rbxassetid://134525953599385',['lucide-vegan']='rbxassetid://100415093068607',['lucide-venetian-mask']=
'rbxassetid://105811310088940',['lucide-venus-and-mars']='rbxassetid://127359436177296',['lucide-venus']=
'rbxassetid://89999677941853',['lucide-vibrate-off']='rbxassetid://71809838958365',['lucide-vibrate']=
'rbxassetid://125579090406882',['lucide-videotape']='rbxassetid://87329154872260',['lucide-video-off']=
'rbxassetid://128119085782619',['lucide-video']='rbxassetid://96663284364714',['lucide-view']=
'rbxassetid://80193127066722',['lucide-voicemail']='rbxassetid://84433629601724',['lucide-volleyball']=
'rbxassetid://120378261012726',['lucide-volume-1']='rbxassetid://74043360622064',['lucide-volume-2']=
'rbxassetid://90671599972181',['lucide-volume']='rbxassetid://130428943191110',['lucide-vote']=
'rbxassetid://115636316927430',['lucide-volume-off']='rbxassetid://111487376160259',['lucide-volume-x']=
'rbxassetid://77114006716121',['lucide-wallet-cards']='rbxassetid://131959632494049',['lucide-wallet-minimal']=
'rbxassetid://120364156802380',['lucide-wallet']='rbxassetid://88581287221473',['lucide-wallpaper']=
'rbxassetid://131854523371906',['lucide-warehouse']='rbxassetid://123773625545694',['lucide-wand']=
'rbxassetid://105735253992261',['lucide-washing-machine']='rbxassetid://95864892079235',['lucide-wand-sparkles']=
'rbxassetid://108161736734904',['lucide-watch']='rbxassetid://109986400252427',['lucide-waves-ladder']=
'rbxassetid://78838138897144',['lucide-waves']='rbxassetid://114431788291236',['lucide-waypoints']=
'rbxassetid://115456597740575',['lucide-webcam']='rbxassetid://110869261105928',['lucide-webhook-off']=
'rbxassetid://107985831275010',['lucide-webhook']='rbxassetid://115707249192058',['lucide-weight']=
'rbxassetid://80221503960114',['lucide-wheat-off']='rbxassetid://100814520858646',['lucide-wheat']=
'rbxassetid://93689899667052',['lucide-whole-word']='rbxassetid://104653567455214',['lucide-wifi-cog']=
'rbxassetid://114915943367394',['lucide-wifi-high']='rbxassetid://75232149276299',['lucide-wifi-pen']=
'rbxassetid://120601606968871',['lucide-wifi-off']='rbxassetid://109227564316116',['lucide-wifi-low']=
'rbxassetid://80514656704846',['lucide-wifi-sync']='rbxassetid://127729169747586',['lucide-wifi-zero']=
'rbxassetid://80366162994847',['lucide-wifi']='rbxassetid://87518356403818',['lucide-wind-arrow-down']=
'rbxassetid://80552076618251',['lucide-wind']='rbxassetid://140475550761298',['lucide-wine']=
'rbxassetid://111070648545230',['lucide-workflow']='rbxassetid://82829283435740',['lucide-wine-off']=
'rbxassetid://91744421611723',['lucide-worm']='rbxassetid://109189317185920',['lucide-x']='rbxassetid://116998807311805'
,['lucide-wrench']='rbxassetid://126123914381064',['lucide-youtube']='rbxassetid://114818083741535',['lucide-zap-off']=
'rbxassetid://82827541702053',['lucide-zoom-out']='rbxassetid://88164586813836',['lucide-zoom-in']=
'rbxassetid://132505805888775',['lucide-zap']='rbxassetid://139528609101647',['lucide-anvil']=
'rbxassetid://134603584329702',['lucide-app-window']='rbxassetid://98905551433370',['lucide-archive-restore']=
'rbxassetid://120934819638726',['lucide-archive']='rbxassetid://126173454813577',['lucide-app-window-mac']=
'rbxassetid://84460436594082',['lucide-aperture']='rbxassetid://124245394850399',['lucide-apple']=
'rbxassetid://108359623175773',['lucide-arrow-big-down-dash']='rbxassetid://125733643439021',[
'lucide-arrow-big-right-dash']='rbxassetid://135306817546748',['lucide-arrow-big-left']='rbxassetid://80668451409611',[
'lucide-arrow-big-left-dash']='rbxassetid://79097495230729',['lucide-armchair']='rbxassetid://98287222826442',[
'lucide-arrow-big-down']='rbxassetid://81217019746795',['lucide-arrow-big-right']='rbxassetid://112783778650170',[
'lucide-arrow-big-up-dash']='rbxassetid://139499221221421',['lucide-arrow-big-up']='rbxassetid://80868892014936',[
'lucide-arrow-down-1-0']='rbxassetid://110003672883161',['lucide-arrow-down-0-1']='rbxassetid://120418661696671',[
'lucide-arrow-down-from-line']='rbxassetid://104581855260712',['lucide-arrow-down-left']='rbxassetid://103505233541752',
['lucide-arrow-down-a-z']='rbxassetid://81157659900485',['lucide-arrow-down-narrow-wide']='rbxassetid://87097530659688',
['lucide-arrow-down-right']='rbxassetid://84156144906396',['lucide-arrow-down-wide-narrow']=
'rbxassetid://95668665826995',['lucide-arrow-down-to-line']='rbxassetid://89978220173827',['lucide-arrow-down-up']=
'rbxassetid://108632631078657',['lucide-arrow-down-to-dot']='rbxassetid://94264146936668',['lucide-arrow-down']=
'rbxassetid://121138744416131',['lucide-arrow-down-z-a']='rbxassetid://128586087695065',['lucide-arrow-left-right']=
'rbxassetid://121197368097623',['lucide-arrow-left-from-line']='rbxassetid://92907415444853',['lucide-arrow-left']=
'rbxassetid://76468390144997',['lucide-arrow-right-left']='rbxassetid://98920092617667',['lucide-arrow-right-from-line']
='rbxassetid://118130042636840',['lucide-arrow-left-to-line']='rbxassetid://122880152766242'},{Icons={}}for ag,ah in ae
do table.insert(af.Icons,ag)end function af.GetAsset(ag)local ah=tostring(ag):lower()local ai,aj=ah,ah if not ah:match
'^lucide%-'then ai='lucide-'..ah else aj=ah:gsub('^lucide%-','')end local ak=ae[ah]or ae[ai]or ae[aj]if ak==nil then
return nil end return{Url=ak,ImageRectOffset=Vector2.zero,ImageRectSize=Vector2.zero,Custom=false}end return af end)()
end},{{1,1,{'waxbundle'},{{3,2,{'Init'},{{5,2,{'ObsidianLibrary'}},{4,2,{'ObsidianLibrary.d'}}}},{6,2,{'Loader'}},{9,2,{
'ObsidianLibrary.d'}},{8,2,{'ObsidianLibrary'}},{10,1,{'ObsidianUI'},{{18,1,{'tabs'},{{20,2,{'FlyTab'}},{22,2,{
'NoclipTab'}},{23,2,{'UISettingsTab'}},{21,2,{'MainTab'}},{19,2,{'ESPTab'}}}},{24,1,{'utils'},{{25,2,{'icons'}}}},{14,1,
{'scripts'},{{16,2,{'FlyController'}},{15,2,{'CustomESP'}},{17,2,{'NoclipController'}}}},{12,2,{'FallbackIcons'}},{13,2,
{'UIConfig'}},{11,2,{'Bootstrap'}}}},{7,2,{'MainModule'}},{2,4,{'BundleEntry'}}}}},'0.4.2','WaxRuntime',string,task,
setmetatable,error,next,table,unpack,coroutine,script,type,require,pcall,tostring,tonumber,_VERSION local au,av,aw,ax,ay
,az,aA=aj.insert,aj.remove,aj.freeze or function(au)return au end,al.wrap,ae.sub,ae.match,ae.gmatch if as and ay(as,1,4)
=='Lune'then local aB,aC=ap(ao,'@lune/task')if aB and aC then af=aC end end local aB=af and af.defer local aC,aD,aE,aF,
aG,aH,aI,aJ,aK=aB or function(aC,...)ax(aC)(...)end,{[1]='Folder',[2]='ModuleScript',[3]='Script',[4]='LocalScript',[5]=
'StringValue'},{},{},{},{},{},{},{}local aL,aM={GetFullName={{},function(aL)local aM,aN=aL.Name,aL.Parent while aN do aM
=aN.Name..'.'..aM aN=aN.Parent end return aM end},GetChildren={{},function(aL)local aM={}for aN in ai,aK[aL]do au(aM,aN)
end return aM end},GetDescendants={{},function(aL)local aM={}for aN in ai,aK[aL]do au(aM,aN)for aO,aP in ai,aN:
GetDescendants()do au(aM,aP)end end return aM end},FindFirstChild={{'string','boolean?'},function(aL,aM,aN)local aO=aK[
aL]for aP in ai,aO do if aP.Name==aM then return aP end end if aN then for aP in ai,aO do return aP:FindFirstChild(aM,
true)end end end},FindFirstAncestor={{'string'},function(aL,aM)local aN=aL.Parent while aN do if aN.Name==aM then return
aN end aN=aN.Parent end end},WaitForChild={{'string','number?'},function(aL,aM)return aL:FindFirstChild(aM)end}},{}for
aN,aO in ai,aL do local aP,aR,aS=aO[1],aO[2],{}for aT,aU in ai,aP do local aV,aW=az(aU,'^([^%?]+)(%??)')aS[aT]={aV,aW}
end aM[aN]=function(aT,...)if not aK[aT]then ah("Expected ':' not '.' calling member function "..aN,2)end local aU={...}
for aV,aW in ai,aS do local aX=aU[aV]local aY,aZ,a_=an(aX),aW[1],aW[2]if aX==nil and not a_ then ah('Argument '..aX..
' missing or nil',3)end if aZ~='any'and aY~=aZ and not(aY=='nil'and a_)then ah('Argument '..aV..' expects type "'..aZ..
'", got "'..aY..'"',2)end end return aR(aT,...)end end local function aN(aO,aP,aR)local aS,aT=(ag({},{__mode='k'}))
local function aU(aV)ah(aV..' is not a valid (virtual) member of '..aO..' "'..aP..'"',3)end local function aV(aW)ah(
'Unable to assign (virtual) property '..aW..'. Property is read only',3)end local aW,aX={},{}aX.__metatable=false aX.
__index=function(aY,aZ)if aZ=='ClassName'then return aO elseif aZ=='Name'then return aP elseif aZ=='Parent'then return
aR elseif aO=='StringValue'and aZ=='Value'then return aT else local a_=aM[aZ]if a_ then return a_ end end for a_ in ai,
aS do if a_.Name==aZ then return a_ end end aU(aZ)end aX.__newindex=function(aY,aZ,a_)if aZ=='ClassName'then aV(aZ)
elseif aZ=='Name'then aP=a_ elseif aZ=='Parent'then if a_==aW then return end if aR~=nil then aK[aR][aW]=nil end aR=a_
if a_~=nil then aK[a_][aW]=true end elseif aO=='StringValue'and aZ=='Value'then aT=a_ else aU(aZ)end end aX.__tostring=
function()return aP end ag(aW,aX)aK[aW]=aS if aR~=nil then aK[aR][aW]=true end return aW end local function aO(aP,aR)
local aS,aT,aU,aV=aP[1],aP[2],aP[3],aP[4]local aW=aD[aT]local aX=aU and av(aU,1)or aW local aY=aN(aW,aX,aR)aE[aS]=aY if
aU then for aZ,a_ in ai,aU do aY[aZ]=a_ end end if aV then for aZ,a_ in ai,aV do aO(a_,aY)end end return aY end local aP
=aN('Folder','['..ad..']')for aR,aS in ai,ab do aO(aS,aP)end for aR,aS in ai,aa do local aT=aE[aR]aF[aT]=aS aG[aT]=aR
local aU=aT.ClassName if aU=='LocalScript'or aU=='Script'then au(aI,aT)end end local function aR(aS)local aT,aU=aS.
ClassName,aH[aS]if aU and aT=='ModuleScript'then return ak(aU)end local aV=aF[aS]local function aW(aX)aX=aq(aX)local aY,
aZ,a_=aS:GetFullName(),az(aX,'[^:]+:(%d+): (.+)')if not aZ or not at then return aY..':*: '..(a_ or aX)end aZ=ar(aZ)
local a0=aG[aS]local a1=at[a0]local a2=aZ-a1+1 if a2<0 then a2='?'end return aY..':'..a2..': '..a_ end if aT==
'LocalScript'or aT=='Script'then local aX,aY=ap(aV)if not aX then ah(aW(aY),0)end else local aX={ap(aV)}local aY=av(aX,1
)if not aY then local aZ=av(aX,1)ah(aW(aZ),0)end aH[aS]=aX return ak(aX)end end function a(aS)local aT=aE[aS]
local function aU(aV,...)local aW={ap(aV,...)}local aX=av(aW,1)if not aX then ah(aW[1],3)end return ak(aW)end local aV=
aw(ag({},{__index=aJ,__newindex=function(aV,aW,aX)aJ[aW]=aX end,__len=function()return#aJ end,__iter=function()return ai
,aJ end}))local aW,aX=aw{version=ac,envname=ad,shared=aV,script=am,require=ao},aT local function aY(aZ,...)local a_,a0,
a1=an(aZ),'Attempted to call require with a non-ModuleScript','Attempted to call require with self'if a_=='table'and aK[
aZ]then if aZ.ClassName~='ModuleScript'then ah(a0,2)elseif aZ==aT then ah(a1,2)end return aR(aZ)elseif a_=='string'and
ay(aZ,1,1)~='@'then if#aZ==0 then ah('Attempted to call require with empty string',2)end local a2=aT if ay(aZ,1,1)=='/'
then a2=aP elseif ay(aZ,1,2)=='./'then aZ=ay(aZ,3)end local a3 for a4 in aA(aZ,'([^/]*)/?')do local a5=a4 if a4=='..'
then a5='Parent'end if a5~=''then local a6=a2:FindFirstChild(a5)if not a6 then local a7=a2.Parent if a7 then a6=a7:
FindFirstChild(a5)end end if a6 then a2=a6 elseif a4~=a3 and a4~='init'and a4~='init.server'and a4~='init.client'then
ah('Virtual script path "'..aZ..'" not found',2)end end a3=a4 end if a2.ClassName~='ModuleScript'then ah(a0,2)elseif a2
==aT then ah(a1,2)end return aR(a2)end return aU(ao,aZ,...)end return aW,aX,aY end for aS,aT in ai,aI do aC(aR,aT)end