From 4eedbbc2b4f482b5e3b235dbf040065f69a1e136 Mon Sep 17 00:00:00 2001 From: redstonestudios Date: Thu, 5 Feb 2026 20:29:42 +0000 Subject: [PATCH] Auto-deploy: Update bundled Lua script --- main.luau | 357 +++++++++++++++++++++++++++++------------------------- 1 file changed, 192 insertions(+), 165 deletions(-) diff --git a/main.luau b/main.luau index 234d86c..ffa7df0 100644 --- a/main.luau +++ b/main.luau @@ -2426,95 +2426,97 @@ FindFirstChild'Shared'if au then local av=au:FindFirstChild'init'or au:FindFirst '[LOG] ERROR: Could not find Obsidian Init-Module'error [[Konnte Obsidian Init-Module nicht finden. Erwartet: ReplicatedStorage.Init oder ReplicatedStorage.Shared.init]]end local as={}function as.start()print'[LOG] Loading Obsidian Library...'local at=ac(ar())local au=at.Library local av=au. -Options or{}_G.Library=au print'[LOG] Setting up UI color scheme...'au.Scheme.AccentColor=Color3.fromRGB(72,165,255)au. -Scheme.BackgroundColor=Color3.fromRGB(10,12,18)au.Scheme.MainColor=Color3.fromRGB(17,22,31)au.Scheme.OutlineColor=Color3 -.fromRGB(42,50,66)print'[LOG] Creating main window...'local aw=au:CreateWindow(ah.Window)print -'[LOG] Adding tabs to window...'print('[DEBUG] Window object:',aw)local ax={ESP=aw:AddTab('ESP', -'rbxassetid://6031071053'),Player=aw:AddTab('Player','rbxassetid://6031071508'),Aimbot=aw:AddTab('Aimbot', -'rbxassetid://6031071320'),ItemSpawner=aw:AddTab('Item Spawner','rbxassetid://6031071146'),Visual=aw:AddTab('Visual', -'rbxassetid://6031071569'),Utils=aw:AddTab('Utils','rbxassetid://6031071626'),Fly=aw:AddTab('Fly', -'rbxassetid://6031071087'),Noclip=aw:AddTab('Noclip','rbxassetid://6031071453'),['UI Settings']=aw:AddTab('UI Settings', -'rbxassetid://6031071591')}print('[DEBUG] Tabs table created with',#ax,'entries')local function ay(az,aA,...)if not ax[ -az]then warn(string.format('[ERROR] Tab %q not created (nil). Skipping build.',az))return end local aB,aC=pcall(aA,...) -if not aB then warn(string.format('[ERROR] Failed to build tab %q: %s',az,aC))end end print'[LOG] Building ESP tab...' -ay('ESP',ai.build,au,ax)print'[LOG] Building Player tab...'ay('Player',al.build,au,ax)print -'[LOG] Building Aimbot tab...'ay('Aimbot',am.build,au,ax)print'[LOG] Building Item Spawner tab...'ay('ItemSpawner',an. -build,au,ax)print'[LOG] Building Visual tab...'ay('Visual',ao.build,au,ax)print'[LOG] Building Utils tab...'ay('Utils', -ap.build,au,ax)print'[DEBUG] Utils tab built successfully'print'[LOG] Building Fly tab...'ay('Fly',aj.build,au,ax)print +Options or{}if getgenv then getgenv().Library=au else _G.Library=au end do local aw,ax=pcall(function()return ac(ag: +WaitForChild'utils':WaitForChild'icons')end)if aw and ax then au:SetIconModule(ax)else local ay,az=pcall(function() +return ac(ag:WaitForChild'FallbackIcons')end)if ay and az then au:SetIconModule(az)end end end print +'[LOG] Setting up UI color scheme...'au.Scheme.AccentColor=Color3.fromRGB(72,165,255)au.Scheme.BackgroundColor=Color3. +fromRGB(10,12,18)au.Scheme.MainColor=Color3.fromRGB(17,22,31)au.Scheme.OutlineColor=Color3.fromRGB(42,50,66)print +'[LOG] Creating main window...'local aw=au:CreateWindow(ah.Window)print'[LOG] Adding tabs to window...'print( +'[DEBUG] Window object:',aw)local ax={ESP=aw:AddTab('ESP','target'),Player=aw:AddTab('Player','user'),Aimbot=aw:AddTab( +'Aimbot','crosshair'),ItemSpawner=aw:AddTab('Item Spawner','box'),Visual=aw:AddTab('Visual','palette'),Utils=aw:AddTab( +'Utils','wrench'),Fly=aw:AddTab('Fly','wind'),Noclip=aw:AddTab('Noclip','ghost'),['UI Settings']=aw:AddTab('UI Settings' +,'sliders-horizontal')}print('[DEBUG] Tabs table created with',#ax,'entries')local function ay(az,aA,...)if not ax[az] +then warn(string.format('[ERROR] Tab %q not created (nil). Skipping build.',az))return end local aB,aC=pcall(aA,...)if +not aB then warn(string.format('[ERROR] Failed to build tab %q: %s',az,aC))end end print'[LOG] Building ESP tab...'ay( +'ESP',ai.build,au,ax)print'[LOG] Building Player tab...'ay('Player',al.build,au,ax)print'[LOG] Building Aimbot tab...' +ay('Aimbot',am.build,au,ax)print'[LOG] Building Item Spawner tab...'ay('ItemSpawner',an.build,au,ax)print +'[LOG] Building Visual tab...'ay('Visual',ao.build,au,ax)print'[LOG] Building Utils tab...'ay('Utils',ap.build,au,ax) +print'[DEBUG] Utils tab built successfully'print'[LOG] Building Fly tab...'ay('Fly',aj.build,au,ax)print '[DEBUG] Fly tab built successfully'print'[LOG] Building Noclip tab...'ay('Noclip',ak.build,au,ax)print '[DEBUG] Noclip tab built successfully'print'[LOG] Building UI Settings tab...'ay('UI Settings',aq.build,au,ax)print '[DEBUG] UI Settings tab built successfully'print'[LOG] All tabs initialized successfully'print -'[LOG] Obsidian Admin Panel ready!'print'[LOG] Setting up unload mechanism...'_G.unloadObsidian=function()print -'[LOG] Unload requested, unloading UI...'local az,aA=pcall(function()if au and not au.Unloaded then au:Unload()end end) -if az then print'[LOG] UI unloaded successfully'else print('[ERROR] Failed to unload UI:',aA)error(aA)end end au: -OnUnload(function()_G.unloadObsidian=nil _G.Library=nil end)print -'[LOG] Unload mechanism ready. Use: _G.unloadObsidian()'end return as 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,ai=game:GetService'Players',game:GetService'RunService',game:GetService -'Workspace',Drawing,{}ai.__index=ai local aj={Enabled=true,IncludePlayers=true,IncludeNPCs=true,ShowHighlights=true, -ShowLabels=true,ShowDistance=true,ShowTracers=false,TextSize=15,LabelOffsetY=3,MaxDistance=3000,HighlightColor=Color3. -fromRGB(255,170,0),LabelColor=Color3.fromRGB(255,230,150),TracerColor=Color3.fromRGB(255,0,0),FillTransparency=0.55, -OutlineTransparency=0}local function ak(al)if not al then return nil end 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 am.IsA then local an,ao=pcall(function()return am:IsA'BasePart'end)if an then return ao end end -local an=am.ClassName return an=='Part'or an=='MeshPart'or an=='BasePart'or an=='UnionOperation'or an=='WedgePart'or an -=='CornerWedgePart'or an=='TrussPart'end local function am(an,ao)if an.FindFirstChildOfClass then return an: -FindFirstChildOfClass(ao)end for ap,aq in an:GetChildren()do if aq.ClassName==ao then return aq end end return nil end -local function an(ao)for ap,aq in ao:GetChildren()do if al(aq)then return aq end end return nil end local function ao(ap -)return ap:FindFirstChild'HumanoidRootPart'or ap:FindFirstChild'UpperTorso'or ap:FindFirstChild'Torso'or ap.PrimaryPart -or(ap.FindFirstChildWhichIsA and ap:FindFirstChildWhichIsA'BasePart')or an(ap)end local function ap(aq,ar)if aq. -ClassName~='Model'then return false end local as=am(aq,'Humanoid')if not as then return false end local at=ae: -GetPlayerFromCharacter(aq)if at then if not ar.IncludePlayers or at==ae.LocalPlayer then return false end return ao(aq) -~=nil end if not ar.IncludeNPCs then return false end return ao(aq)~=nil end function ai.new()local aq=setmetatable({}, -ai)aq.config=table.clone(aj)aq.entries={}aq.connections={}aq.running=false return aq end function ai.UpdateConfig(aq,ar) -for as,at in ar do aq.config[as]=at end end function ai._createEntry(aq,ar)if aq.entries[ar]or not ap(ar,aq.config)then -return end local as=ao(ar)if not as then return end local at=Instance.new'Highlight'at.Name='CustomESP_Highlight'at. -Adornee=ar at.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop at.Parent=ar local au=Instance.new'BillboardGui'au.Name= -'CustomESP_Billboard'au.Adornee=as au.AlwaysOnTop=true au.Size=UDim2.fromOffset(180,40)au.StudsOffset=Vector3.new(0,3,0) -au.Parent=ar local av=Instance.new'TextLabel'av.BackgroundTransparency=1 av.Size=UDim2.fromScale(1,1)av.Font=Enum.Font. -Code av.TextScaled=false av.TextSize=aq.config.TextSize av.TextStrokeTransparency=0.3 av.TextXAlignment=Enum. -TextXAlignment.Center av.TextYAlignment=Enum.TextYAlignment.Center av.Parent=au local aw=ah.new'Line'aw.Thickness=2 aw. -Color=aq.config.TracerColor aw.Transparency=1 aw.Visible=false aq.entries[ar]={model=ar,rootPart=as,highlight=at, -billboard=au,text=av,tracer=aw}end function ai._removeEntry(aq,ar)local as=aq.entries[ar]if not as then return end if as -.highlight then as.highlight:Destroy()end if as.billboard then as.billboard:Destroy()end if as.tracer then as.tracer: -Remove()end aq.entries[ar]=nil end function ai._updateEntry(aq,ar)if not ar.model.Parent then aq:_removeEntry(ar.model) -return end ar.rootPart=ao(ar.model)if not ar.rootPart then aq:_removeEntry(ar.model)return end ar.billboard.Adornee=ar. -rootPart ar.highlight.Adornee=ar.model local as,at=ag.CurrentCamera,ae.LocalPlayer local au=ak(at and at.Character)local -av=au and au.Position or(as and as.CFrame.Position)if not av then return end local aw=(ar.rootPart.Position-av). -Magnitude local ax=aw<=aq.config.MaxDistance local ay=aq.config.Enabled and ax ar.highlight.Enabled=ay and aq.config. -ShowHighlights ar.billboard.Enabled=ay and aq.config.ShowLabels ar.highlight.FillColor=aq.config.HighlightColor ar. -highlight.OutlineColor=aq.config.LabelColor ar.highlight.FillTransparency=aq.config.FillTransparency ar.highlight. -OutlineTransparency=aq.config.OutlineTransparency ar.billboard.StudsOffset=Vector3.new(0,aq.config.LabelOffsetY,0)ar. -text.TextSize=aq.config.TextSize ar.text.TextColor3=aq.config.LabelColor if aq.config.ShowDistance then ar.text.Text= -string.format('%s [%.0f]',ar.model.Name,aw)else ar.text.Text=ar.model.Name end ar.tracer.Visible=ay and aq.config. -ShowTracers if ar.tracer.Visible then local az,aA=as:WorldToViewportPoint(ar.rootPart.Position)local aB=Vector2.new(as. -ViewportSize.X/2,as.ViewportSize.Y)ar.tracer.From=aB ar.tracer.To=Vector2.new(az.X,az.Y)ar.tracer.Color=aq.config. -TracerColor end end function ai._scanWorkspace(aq)for ar,as in ag:GetDescendants()do if as.ClassName=='Model'then aq: -_createEntry(as)end end end function ai.Start(aq)if aq.running then return end aq.running=true aq:_scanWorkspace()table. -insert(aq.connections,ae.PlayerAdded:Connect(function(ar)if not aq.running then return end local function as(at)aq: -_createEntry(at)end if ar.Character then as(ar.Character)end table.insert(aq.connections,ar.CharacterAdded:Connect(as)) -end))table.insert(aq.connections,ae.PlayerRemoving:Connect(function(ar)local as=ar.Character if as then aq:_removeEntry( -as)end end))table.insert(aq.connections,ag.DescendantAdded:Connect(function(ar)if ar.ClassName=='Model'then aq: -_createEntry(ar)end end))table.insert(aq.connections,ag.DescendantRemoving:Connect(function(ar)if ar.ClassName=='Model' -then aq:_removeEntry(ar)end end))table.insert(aq.connections,af.RenderStepped:Connect(function()for ar,as in aq.entries -do aq:_updateEntry(as)end end))end function ai.Stop(aq)if not aq.running then return end aq.running=false for ar,as in -aq.connections do if as and as.Connected then as:Disconnect()end end table.clear(aq.connections)for ar,as in aq.entries -do aq:_removeEntry(ar)end end return ai 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. +'[LOG] Obsidian Admin Panel ready!'print'[LOG] Setting up unload mechanism...'local az=getgenv and getgenv()or _G az. +unloadObsidian=function()print'[LOG] Unload requested, unloading UI...'local aA,aB=pcall(function()if au and not au. +Unloaded then au:Unload()end end)if aA then print'[LOG] UI unloaded successfully'else print( +'[ERROR] Failed to unload UI:',aB)end end au:OnUnload(function()if getgenv then getgenv().unloadObsidian=nil getgenv(). +Library=nil else _G.unloadObsidian=nil _G.Library=nil end end)print +[[[LOG] Unload mechanism ready. Use: getgenv().unloadObsidian() or _G.unloadObsidian()]]end return as 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,ai=game:GetService'Players',game: +GetService'RunService',game:GetService'Workspace',Drawing,{}ai.__index=ai local aj={Enabled=true,IncludePlayers=true, +IncludeNPCs=true,ShowHighlights=true,ShowLabels=true,ShowDistance=true,ShowTracers=false,TextSize=15,LabelOffsetY=3, +MaxDistance=3000,HighlightColor=Color3.fromRGB(255,170,0),LabelColor=Color3.fromRGB(255,230,150),TracerColor=Color3. +fromRGB(255,0,0),FillTransparency=0.55,OutlineTransparency=0}local function ak(al)if not al then return nil end 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 am.IsA then local an,ao=pcall(function()return am:IsA +'BasePart'end)if an then return ao end end local an=am.ClassName return an=='Part'or an=='MeshPart'or an=='BasePart'or +an=='UnionOperation'or an=='WedgePart'or an=='CornerWedgePart'or an=='TrussPart'end local function am(an,ao)if an. +FindFirstChildOfClass then return an:FindFirstChildOfClass(ao)end for ap,aq in an:GetChildren()do if aq.ClassName==ao +then return aq end end return nil end local function an(ao)for ap,aq in ao:GetChildren()do if al(aq)then return aq end +end return nil end local function ao(ap)return ap:FindFirstChild'HumanoidRootPart'or ap:FindFirstChild'UpperTorso'or ap: +FindFirstChild'Torso'or ap.PrimaryPart or(ap.FindFirstChildWhichIsA and ap:FindFirstChildWhichIsA'BasePart')or an(ap)end +local function ap(aq,ar)if aq.ClassName~='Model'then return false end local as=am(aq,'Humanoid')if not as then return +false end local at=ae:GetPlayerFromCharacter(aq)if at then if not ar.IncludePlayers or at==ae.LocalPlayer then return +false end return ao(aq)~=nil end if not ar.IncludeNPCs then return false end return ao(aq)~=nil end function ai.new() +local aq=setmetatable({},ai)aq.config=table.clone(aj)aq.entries={}aq.connections={}aq.running=false return aq end +function ai.UpdateConfig(aq,ar)for as,at in ar do aq.config[as]=at end end function ai._createEntry(aq,ar)if aq.entries[ +ar]or not ap(ar,aq.config)then return end local as=ao(ar)if not as then return end local at=Instance.new'Highlight'at. +Name='CustomESP_Highlight'at.Adornee=ar at.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop at.Parent=ar local au=Instance. +new'BillboardGui'au.Name='CustomESP_Billboard'au.Adornee=as au.AlwaysOnTop=true au.Size=UDim2.fromOffset(180,40)au. +StudsOffset=Vector3.new(0,3,0)au.Parent=ar local av=Instance.new'TextLabel'av.BackgroundTransparency=1 av.Size=UDim2. +fromScale(1,1)av.Font=Enum.Font.Code av.TextScaled=false av.TextSize=aq.config.TextSize av.TextStrokeTransparency=0.3 av +.TextXAlignment=Enum.TextXAlignment.Center av.TextYAlignment=Enum.TextYAlignment.Center av.Parent=au local aw=ah.new +'Line'aw.Thickness=2 aw.Color=aq.config.TracerColor aw.Transparency=1 aw.Visible=false aq.entries[ar]={model=ar,rootPart +=as,highlight=at,billboard=au,text=av,tracer=aw}end function ai._removeEntry(aq,ar)local as=aq.entries[ar]if not as then +return end if as.highlight then as.highlight:Destroy()end if as.billboard then as.billboard:Destroy()end if as.tracer +then as.tracer:Remove()end aq.entries[ar]=nil end function ai._updateEntry(aq,ar)if not ar.model.Parent then aq: +_removeEntry(ar.model)return end ar.rootPart=ao(ar.model)if not ar.rootPart then aq:_removeEntry(ar.model)return end ar. +billboard.Adornee=ar.rootPart ar.highlight.Adornee=ar.model local as,at=ag.CurrentCamera,ae.LocalPlayer local au=ak(at +and at.Character)local av=au and au.Position or(as and as.CFrame.Position)if not av then return end local aw=(ar. +rootPart.Position-av).Magnitude local ax=aw<=aq.config.MaxDistance local ay=aq.config.Enabled and ax ar.highlight. +Enabled=ay and aq.config.ShowHighlights ar.billboard.Enabled=ay and aq.config.ShowLabels ar.highlight.FillColor=aq. +config.HighlightColor ar.highlight.OutlineColor=aq.config.LabelColor ar.highlight.FillTransparency=aq.config. +FillTransparency ar.highlight.OutlineTransparency=aq.config.OutlineTransparency ar.billboard.StudsOffset=Vector3.new(0, +aq.config.LabelOffsetY,0)ar.text.TextSize=aq.config.TextSize ar.text.TextColor3=aq.config.LabelColor if aq.config. +ShowDistance then ar.text.Text=string.format('%s [%.0f]',ar.model.Name,aw)else ar.text.Text=ar.model.Name end ar.tracer. +Visible=ay and aq.config.ShowTracers if ar.tracer.Visible then local az,aA=as:WorldToViewportPoint(ar.rootPart.Position) +local aB=Vector2.new(as.ViewportSize.X/2,as.ViewportSize.Y)ar.tracer.From=aB ar.tracer.To=Vector2.new(az.X,az.Y)ar. +tracer.Color=aq.config.TracerColor end end function ai._scanWorkspace(aq)for ar,as in ag:GetDescendants()do if as. +ClassName=='Model'then aq:_createEntry(as)end end end function ai.Start(aq)if aq.running then return end aq.running=true +aq:_scanWorkspace()table.insert(aq.connections,ae.PlayerAdded:Connect(function(ar)if not aq.running then return end +local function as(at)aq:_createEntry(at)end if ar.Character then as(ar.Character)end table.insert(aq.connections,ar. +CharacterAdded:Connect(as))end))table.insert(aq.connections,ae.PlayerRemoving:Connect(function(ar)local as=ar.Character +if as then aq:_removeEntry(as)end end))table.insert(aq.connections,ag.DescendantAdded:Connect(function(ar)if ar. +ClassName=='Model'then aq:_createEntry(ar)end end))table.insert(aq.connections,ag.DescendantRemoving:Connect(function(ar +)if ar.ClassName=='Model'then aq:_removeEntry(ar)end end))table.insert(aq.connections,af.RenderStepped:Connect(function( +)for ar,as in aq.entries do aq:_updateEntry(as)end end))end function ai.Stop(aq)if not aq.running then return end aq. +running=false for ar,as in aq.connections do if as and as.Connected then as:Disconnect()end end table.clear(aq. +connections)for ar,as in aq.entries do aq:_removeEntry(ar)end end return ai 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] @@ -2609,38 +2611,46 @@ AddColorPicker('CustomEspTracerColor',{Default=ai.TracerColor,Callback=function( 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,[22]=function()local aa,ab,ac=a(22)local ad return(function(...)local ae={}function -ae.build(af,ag)print'[DEBUG] Building Fly tab...'local ah=ag.Fly:AddLeftGroupbox('Fly','rbxassetid://6031071087')ah: -AddButton{Text='Test Fly',Func=function()af:Notify{Title='Fly',Description='Fly tab works!',Time=2}end}print -'[DEBUG] Fly tab built successfully'end return ae end)()end,[23]=function()local aa,ab,ac=a(23)local ad return(function( -...)local ae,af,ag,ah=game:GetService'Players',game:GetService'ReplicatedStorage',game:GetService'Workspace',{}function -ah.build(ai,aj)local function ak(al)local am=ae.LocalPlayer if not am or not am.Character then ai:Notify{Title='Spawner' -,Description='Kein Character gefunden.',Time=2}return end local an=af:FindFirstChild(al)or ag:FindFirstChild(al)if not -an then ai:Notify{Title='Spawner',Description="Item '"..al.."' nicht gefunden.",Time=2}return end local ao=an:Clone()ao. -Parent=am.Backpack ai:Notify{Title='Spawner',Description="Item '"..al.."' gespawnt.",Time=2}end local al=aj.ItemSpawner: -AddLeftGroupbox('Item Spawner','rbxassetid://110420827043048')al:AddButton{Text='Spawn Tool',Func=function()ak'Tool'end} -al:AddButton{Text='Spawn Sword',Func=function()ak'Sword'end}al:AddButton{Text='Spawn Gun',Func=function()ak'Gun'end} -local am,an=aj.ItemSpawner:AddRightGroupbox('Custom Spawn','rbxassetid://118473315376201'),'Tool'am:AddInput( -'CustomItemName',{Text='Item Name',Default=an,Callback=function(ao)an=ao end})am:AddButton{Text='Spawn Custom Item',Func -=function()ak(an)end}end return ah end)()end,[24]=function()local aa,ab,ac=a(24)local ad return(function(...)local ae,af -,ag,ah,ai,aj=game:GetService'Players',game:GetService'UserInputService',game:GetService'Lighting',game:GetService -'RunService',game:GetService'Workspace',{}local function ak()local al=ae.LocalPlayer if not al then return nil end local -am=al.Character if not am then return nil end return am:FindFirstChildOfClass'Humanoid'end local function al(am)local an -=ak()if not an then return false end an.WalkSpeed=am.WalkSpeed if an.UseJumpPower~=nil then an.UseJumpPower=true end if -an.JumpPower~=nil then an.JumpPower=am.JumpPower else an.JumpHeight=am.JumpHeight end return true end function aj.build( -am,an)print'[LOG] Initializing Player features...'local ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH={ -WalkSpeed=16,JumpPower=50,JumpHeight=7.2},false,false,false,false,false,false,false,false,false,false,false,false,false, -false,false,false,false,false,an.Player:AddLeftGroupbox('Player','rbxassetid://120044548842840')aH:AddButton{Text= -'Respawn (Self)',Func=function()local aI=ak()if aI then aI.Health=0 am:Notify{Title='Respawn',Description= -'Du wirst neu gespawnt.',Time=2}else am:Notify{Title='Respawn',Description='Kein Character gefunden.',Time=2}end end}aH: -AddButton{Text='Apply Movement',Func=function()if al(ao)then am:Notify{Title='Movement',Description='Werte angewendet.', -Time=2}else am:Notify{Title='Movement',Description='Kein Character gefunden.',Time=2}end end}aH:AddButton{Text= -'Reset Movement',Func=function()ao.WalkSpeed=16 ao.JumpPower=50 ao.JumpHeight=7.2 if al(ao)then am:Notify{Title= -'Movement',Description='Standardwerte gesetzt.',Time=2}end end}aH:AddButton{Text='Fix Camera',Func=function()local aI,aJ -=ae.LocalPlayer,ai.CurrentCamera if aI and aI.Character and aI.Character:FindFirstChild'HumanoidRootPart'then local aK, -aL=aI.Character.HumanoidRootPart,ak()if aL then local aM,aN=aL.CameraOffset,CFrame.new(aK.Position+Vector3.new(0,2,5),aK -.Position)aJ.CFrame=aN am:Notify{Title='Camera',Description='Kamera zur\u{fc}ckgesetzt.',Time=2}end else am:Notify{Title -='Camera',Description='Kein Character gefunden.',Time=2}end end}aH:AddToggle('SpeedBoost',{Text= +=ap ak()end})end return af end)()end,[22]=function()local aa,ab,ac=a(22)local ad return(function(...)local ae,af=ac(ab. +Parent.Parent:WaitForChild'scripts':WaitForChild'FlyController'),{}function af.build(ag,ah)print +'[DEBUG] Building Fly tab...'local ai,aj=ae.new(),{Enabled=false,Speed=80,BoostMultiplier=2,Noclip=true}local function +ak()ai:UpdateConfig(aj)end local function al(am)aj.Enabled=am ak()if am 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 ag:OnUnload( +function()ai:Stop()end)local am=ah.Fly:AddLeftGroupbox('Fly','wind')am:AddLabel'WASD zum Bewegen, Shift = Boost'am: +AddToggle('FlyEnabled',{Text='Enable Fly',Default=aj.Enabled,Callback=function(an)al(an)end})am:AddSlider('FlySpeed',{ +Text='Speed',Default=aj.Speed,Min=10,Max=200,Rounding=0,Callback=function(an)aj.Speed=an ak()end})am:AddSlider( +'FlyBoost',{Text='Boost Multiplier',Default=aj.BoostMultiplier,Min=1,Max=5,Rounding=1,Callback=function(an)aj. +BoostMultiplier=an ak()end})am:AddToggle('FlyNoclip',{Text='Noclip While Flying',Default=aj.Noclip,Callback=function(an) +aj.Noclip=an ak()end})print'[DEBUG] Fly tab built successfully'end return af end)()end,[23]=function()local aa,ab,ac=a( +23)local ad return(function(...)local ae,af,ag,ah=game:GetService'Players',game:GetService'ReplicatedStorage',game: +GetService'Workspace',{}function ah.build(ai,aj)local function ak(al)local am=ae.LocalPlayer if not am or not am. +Character then ai:Notify{Title='Spawner',Description='Kein Character gefunden.',Time=2}return end local an=af: +FindFirstChild(al)or ag:FindFirstChild(al)if not an then ai:Notify{Title='Spawner',Description="Item '"..al.. +"' nicht gefunden.",Time=2}return end local ao=an:Clone()ao.Parent=am.Backpack ai:Notify{Title='Spawner',Description= +"Item '"..al.."' gespawnt.",Time=2}end local al=aj.ItemSpawner:AddLeftGroupbox('Item Spawner', +'rbxassetid://110420827043048')al:AddButton{Text='Spawn Tool',Func=function()ak'Tool'end}al:AddButton{Text='Spawn Sword' +,Func=function()ak'Sword'end}al:AddButton{Text='Spawn Gun',Func=function()ak'Gun'end}local am,an=aj.ItemSpawner: +AddRightGroupbox('Custom Spawn','rbxassetid://118473315376201'),'Tool'am:AddInput('CustomItemName',{Text='Item Name', +Default=an,Callback=function(ao)an=ao end})am:AddButton{Text='Spawn Custom Item',Func=function()ak(an)end}end return ah +end)()end,[24]=function()local aa,ab,ac=a(24)local ad return(function(...)local ae,af,ag,ah,ai,aj=game:GetService +'Players',game:GetService'UserInputService',game:GetService'Lighting',game:GetService'RunService',game:GetService +'Workspace',{}local function ak()local al=ae.LocalPlayer if not al then return nil end local am=al.Character if not am +then return nil end return am:FindFirstChildOfClass'Humanoid'end local function al(am)local an=ak()if not an then return +false end an.WalkSpeed=am.WalkSpeed if an.UseJumpPower~=nil then an.UseJumpPower=true end if an.JumpPower~=nil then an. +JumpPower=am.JumpPower else an.JumpHeight=am.JumpHeight end return true end function aj.build(am,an)print +'[LOG] Initializing Player features...'local ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH={WalkSpeed=16, +JumpPower=50,JumpHeight=7.2},false,false,false,false,false,false,false,false,false,false,false,false,false,false,false, +false,false,false,an.Player:AddLeftGroupbox('Player','rbxassetid://120044548842840')aH:AddButton{Text='Respawn (Self)', +Func=function()local aI=ak()if aI then aI.Health=0 am:Notify{Title='Respawn',Description='Du wirst neu gespawnt.',Time=2 +}else am:Notify{Title='Respawn',Description='Kein Character gefunden.',Time=2}end end}aH:AddButton{Text='Apply Movement' +,Func=function()if al(ao)then am:Notify{Title='Movement',Description='Werte angewendet.',Time=2}else am:Notify{Title= +'Movement',Description='Kein Character gefunden.',Time=2}end end}aH:AddButton{Text='Reset Movement',Func=function()ao. +WalkSpeed=16 ao.JumpPower=50 ao.JumpHeight=7.2 if al(ao)then am:Notify{Title='Movement',Description= +'Standardwerte gesetzt.',Time=2}end end}aH:AddButton{Text='Fix Camera',Func=function()local aI,aJ=ae.LocalPlayer,ai. +CurrentCamera if aI and aI.Character and aI.Character:FindFirstChild'HumanoidRootPart'then local aK,aL=aI.Character. +HumanoidRootPart,ak()if aL then local aM,aN=aL.CameraOffset,CFrame.new(aK.Position+Vector3.new(0,2,5),aK.Position)aJ. +CFrame=aN am:Notify{Title='Camera',Description='Kamera zur\u{fc}ckgesetzt.',Time=2}end else am:Notify{Title='Camera', +Description='Kein Character gefunden.',Time=2}end end}aH:AddToggle('SpeedBoost',{Text= 'Speed Boost (Shift f\u{fc}r Turbo)',Default=false,Callback=function(aI)ap=aI if aI then am:Notify{Title='Speed Boost', Description='Speed Boost aktiviert. Halte Shift f\u{fc}r Turbo.',Time=2}else local aJ=ak()if aJ then aJ.WalkSpeed=ao. WalkSpeed end am:Notify{Title='Speed Boost',Description='Speed Boost deaktiviert.',Time=2}end end})aH:AddToggle( @@ -2755,36 +2765,53 @@ am:Notify{Title='Teleport',Description='Teleportiert zu '..aS.Name,Time=2}end en function()local aa,ab,ac=a(25)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,[26]=function()local aa,ab,ac=a(26)local ad return(function( -...)local ae={}function ae.build(af,ag)print'[DEBUG] Building Noclip tab...'local ah=ag.Noclip:AddLeftGroupbox('Noclip', -'rbxassetid://6031071453')ah:AddButton{Text='Test Noclip',Func=function()af:Notify{Title='Noclip',Description= -'Noclip tab works!',Time=2}end}print'[DEBUG] Noclip tab built successfully'end return ae end)()end,[27]=function()local -aa,ab,ac=a(27)local ad return(function(...)local ae={}function ae.build(af,ag)print'[DEBUG] Building UI Settings tab...' -local ah=ag['UI Settings']:AddLeftGroupbox('Settings','rbxassetid://6031071591')ah:AddButton{Text='Test Settings',Func= -function()af:Notify{Title='Settings',Description='UI Settings tab works!',Time=2}end}ah:AddButton{Text='Unload UI',Func= -function()local ai,aj=pcall(function()af:Unload()end)if not ai then print('[ERROR] Failed to unload UI:',aj)end end} -print'[DEBUG] UI Settings tab built successfully'end return ae end)()end,[28]=function()local aa,ab,ac=a(28)local ad -return(function(...)local ae={}function ae.build(af,ag)print'[DEBUG] Building Utils tab...'local ah=ag.Utils: -AddLeftGroupbox('Utilities','rbxassetid://6031071626')ah:AddButton{Text='Test Button',Func=function()af:Notify{Title= -'Utils',Description='Utils tab works!',Time=2}end}print'[DEBUG] Utils tab built successfully'end return ae end)()end,[29 -]=function()local aa,ab,ac=a(29)local ad return(function(...)local ae,af,ag=game:GetService'Players',game:GetService -'Lighting',{}function ag.build(ah,ai)local aj,ak,al,am,an,ao,ap=20,5,2,Color3.new(1,1,1),2,100000,ai.Visual: -AddLeftGroupbox('Crosshair Settings','rbxassetid://6031071569')ap:AddToggle('CustomCrosshair',{Text='Custom Crosshair', -Default=false,Callback=function(aq)if aq then local ar,as=Instance.new'ScreenGui',Instance.new'Frame'as.Name= -'CrosshairFrame'as.Size=UDim2.fromOffset(aj,aj)as.Position=UDim2.fromScale(0.5,0.5)as.AnchorPoint=Vector2.new(0.5,0.5)as -.BackgroundTransparency=1 local at=Instance.new'Frame'at.Name='VerticalLine'at.Size=UDim2.new(0,al,0,aj/2-ak)at.Position -=UDim2.fromScale(0.5,0.5)at.AnchorPoint=Vector2.new(0.5,0.5)at.BackgroundColor3=am at.Parent=as local au=Instance.new -'Frame'au.Name='HorizontalLine'au.Size=UDim2.new(0,aj/2-ak,0,al)au.Position=UDim2.fromScale(0.5,0.5)au.AnchorPoint= -Vector2.new(0.5,0.5)au.BackgroundColor3=am au.Parent=as ar.Parent=ae.LocalPlayer:WaitForChild'PlayerGui'ae.LocalPlayer: -SetAttribute('CrosshairGUI',ar)ah:Notify{Title='Crosshair',Description='Custom Crosshair aktiviert.',Time=2}else local -ar=ae.LocalPlayer:GetAttribute'CrosshairGUI'if ar then ar:Destroy()ae.LocalPlayer:SetAttribute('CrosshairGUI',nil)end ah -:Notify{Title='Crosshair',Description='Custom Crosshair deaktiviert.',Time=2}end end})ap:AddSlider('CrosshairSize',{Text -='Crosshair Size',Default=aj,Min=5,Max=50,Rounding=0,Callback=function(aq)aj=aq local ar=ae.LocalPlayer:GetAttribute -'CrosshairGUI'if ar then local as=ar:FindFirstChild'CrosshairFrame'if as then as.Size=UDim2.fromOffset(aj,aj)local at,au -=as:FindFirstChild'VerticalLine',as:FindFirstChild'HorizontalLine'if at then at.Size=UDim2.new(0,al,0,aj/2-ak)end if au -then au.Size=UDim2.new(0,aj/2-ak,0,al)end end end end})ap:AddSlider('CrosshairGap',{Text='Crosshair Gap',Default=ak,Min= -0,Max=20,Rounding=0,Callback=function(aq)ak=aq local ar=ae.LocalPlayer:GetAttribute'CrosshairGUI'if ar then local as=ar: -FindFirstChild'CrosshairFrame'if as then local at,au=as:FindFirstChild'VerticalLine',as:FindFirstChild'HorizontalLine'if -at then at.Size=UDim2.new(0,al,0,aj/2-ak)end if au then au.Size=UDim2.new(0,aj/2-ak,0,al)end end end end})ap:AddSlider( +...)local ae,af=ac(ab.Parent.Parent:WaitForChild'scripts':WaitForChild'NoclipController'),{}function af.build(ag,ah) +print'[DEBUG] Building Noclip tab...'local ai,aj=ae.new(),{Enabled=false}local function ak()ai:UpdateConfig(aj)end +local function al(am)aj.Enabled=am ak()if am then ai:Start()ag:Notify{Title='Noclip',Description='Noclip aktiviert.', +Time=2}else ai:Stop()ag:Notify{Title='Noclip',Description='Noclip deaktiviert.',Time=2}end end ag:OnUnload(function()ai: +Stop()end)local am=ah.Noclip:AddLeftGroupbox('Noclip','ghost')am:AddToggle('NoclipEnabled',{Text='Enable Noclip',Default +=aj.Enabled,Callback=function(an)al(an)end})am:AddLabel'Tipp: Nicht in W\u{e4}nde teleportieren'print +'[DEBUG] Noclip tab built successfully'end return af end)()end,[27]=function()local aa,ab,ac=a(27)local ad return( +function(...)local ae={}function ae.build(af,ag)print'[DEBUG] Building UI Settings tab...'local ah=ag['UI Settings']: +AddLeftGroupbox('Interface','sliders-horizontal')ah:AddButton{Text='Toggle UI',Func=function()af:Toggle()end}ah: +AddButton{Text='Unload UI',Func=function()local ai=getgenv and getgenv().unloadObsidian if ai then ai()else af:Unload() +end end}ah:AddToggle('ShowCustomCursor',{Text='Custom Cursor',Default=af.ShowCustomCursor,Callback=function(ai)af. +ShowCustomCursor=ai end})ah:AddDropdown('NotifySide',{Text='Notifications',Values={'Right','Left'},Default=af.NotifySide +,Callback=function(ai)af:SetNotifySide(ai)end})ah:AddSlider('DPIScale',{Text='UI Scale',Default=100,Min=70,Max=140, +Rounding=0,Suffix='%',Callback=function(ai)af:SetDPIScale(ai)end})local ai=ag['UI Settings']:AddRightGroupbox('Theme', +'palette')ai:AddLabel'Accent Color':AddColorPicker('AccentColor',{Default=af.Scheme.AccentColor,Callback=function(aj)af. +Scheme.AccentColor=aj af:UpdateColorsUsingRegistry()end})print'[DEBUG] UI Settings tab built successfully'end return ae +end)()end,[28]=function()local aa,ab,ac=a(28)local ad return(function(...)local ae,af,ag,ah=game:GetService'Players', +game:GetService'TeleportService',game:GetService'VirtualUser',{}function ah.build(ai,aj)print +'[DEBUG] Building Utils tab...'local ak ai:OnUnload(function()if ak then ak:Disconnect()ak=nil end end)local al=aj.Utils +:AddLeftGroupbox('Utilities','wrench')al:AddToggle('AntiAFK',{Text='Anti-AFK',Default=false,Callback=function(am)if am +then if ak then ak:Disconnect()ak=nil end ak=ae.LocalPlayer.Idled:Connect(function()ag:CaptureController()ag: +ClickButton2(Vector2.new(0,0))end)ai:Notify{Title='Anti-AFK',Description='Anti-AFK aktiviert.',Time=2}else if ak then ak +:Disconnect()ak=nil end ai:Notify{Title='Anti-AFK',Description='Anti-AFK deaktiviert.',Time=2}end end})al:AddButton{Text +='Toggle UI',Func=function()ai:Toggle()end}al:AddButton{Text='Copy JobId',Func=function()local am=setclipboard or(syn +and syn.set_clipboard)if am then am(tostring(game.JobId))ai:Notify{Title='Utils',Description='JobId kopiert.',Time=2} +else ai:Notify{Title='Utils',Description='Kein Clipboard verf\u{fc}gbar.',Time=2}end end}al:AddButton{Text= +'Rejoin Server',Func=function()local am=ae.LocalPlayer if am then af:TeleportToPlaceInstance(game.PlaceId,game.JobId,am) +end end}print'[DEBUG] Utils tab built successfully'end return ah end)()end,[29]=function()local aa,ab,ac=a(29)local ad +return(function(...)local ae,af,ag=game:GetService'Players',game:GetService'Lighting',{}function ag.build(ah,ai)local aj +,ak,al,am,an,ao,ap=20,5,2,Color3.new(1,1,1),2,100000,ai.Visual:AddLeftGroupbox('Crosshair Settings', +'rbxassetid://6031071569')ap:AddToggle('CustomCrosshair',{Text='Custom Crosshair',Default=false,Callback=function(aq)if +aq then local ar,as=Instance.new'ScreenGui',Instance.new'Frame'as.Name='CrosshairFrame'as.Size=UDim2.fromOffset(aj,aj)as +.Position=UDim2.fromScale(0.5,0.5)as.AnchorPoint=Vector2.new(0.5,0.5)as.BackgroundTransparency=1 local at=Instance.new +'Frame'at.Name='VerticalLine'at.Size=UDim2.new(0,al,0,aj/2-ak)at.Position=UDim2.fromScale(0.5,0.5)at.AnchorPoint=Vector2 +.new(0.5,0.5)at.BackgroundColor3=am at.Parent=as local au=Instance.new'Frame'au.Name='HorizontalLine'au.Size=UDim2.new(0 +,aj/2-ak,0,al)au.Position=UDim2.fromScale(0.5,0.5)au.AnchorPoint=Vector2.new(0.5,0.5)au.BackgroundColor3=am au.Parent=as +ar.Parent=ae.LocalPlayer:WaitForChild'PlayerGui'ae.LocalPlayer:SetAttribute('CrosshairGUI',ar)ah:Notify{Title= +'Crosshair',Description='Custom Crosshair aktiviert.',Time=2}else local ar=ae.LocalPlayer:GetAttribute'CrosshairGUI'if +ar then ar:Destroy()ae.LocalPlayer:SetAttribute('CrosshairGUI',nil)end ah:Notify{Title='Crosshair',Description= +'Custom Crosshair deaktiviert.',Time=2}end end})ap:AddSlider('CrosshairSize',{Text='Crosshair Size',Default=aj,Min=5,Max +=50,Rounding=0,Callback=function(aq)aj=aq local ar=ae.LocalPlayer:GetAttribute'CrosshairGUI'if ar then local as=ar: +FindFirstChild'CrosshairFrame'if as then as.Size=UDim2.fromOffset(aj,aj)local at,au=as:FindFirstChild'VerticalLine',as: +FindFirstChild'HorizontalLine'if at then at.Size=UDim2.new(0,al,0,aj/2-ak)end if au then au.Size=UDim2.new(0,aj/2-ak,0, +al)end end end end})ap:AddSlider('CrosshairGap',{Text='Crosshair Gap',Default=ak,Min=0,Max=20,Rounding=0,Callback= +function(aq)ak=aq local ar=ae.LocalPlayer:GetAttribute'CrosshairGUI'if ar then local as=ar:FindFirstChild +'CrosshairFrame'if as then local at,au=as:FindFirstChild'VerticalLine',as:FindFirstChild'HorizontalLine'if at then at. +Size=UDim2.new(0,al,0,aj/2-ak)end if au then au.Size=UDim2.new(0,aj/2-ak,0,al)end end end end})ap:AddSlider( 'CrosshairThickness',{Text='Crosshair Thickness',Default=al,Min=1,Max=10,Rounding=0,Callback=function(aq)al=aq local ar= ae.LocalPlayer:GetAttribute'CrosshairGUI'if ar then local as=ar:FindFirstChild'CrosshairFrame'if as then local at,au=as: FindFirstChild'VerticalLine',as:FindFirstChild'HorizontalLine'if at then at.Size=UDim2.new(0,al,0,aj/2-ak)end if au then @@ -3645,23 +3672,23 @@ Size=24 at.Threshold=0.8 at.Parent=af af.Brightness=3 ah:Notify{Title='Night Vis 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'},{{9,2,{'ObsidianLibrary.d'}},{2,4,{'BundleEntry'}},{3,2,{'Init'},{{5,2,{'ObsidianLibrary'}},{4, -2,{'ObsidianLibrary.d'}}}},{10,1,{'ObsidianUI'},{{18,1,{'tabs'},{{26,2,{'NoclipTab'}},{28,2,{'UtilsTab'}},{20,2,{ -'AutoFarmTab'}},{24,2,{'LocalTab'}},{19,2,{'AimbotTab'}},{25,2,{'MainTab'}},{29,2,{'VisualTab'}},{23,2,{'ItemSpawnerTab' -}},{27,2,{'UISettingsTab'}},{22,2,{'FlyTab'}},{21,2,{'ESPTab'}}}},{14,1,{'scripts'},{{16,2,{'FlyController'}},{15,2,{ -'CustomESP'}},{17,2,{'NoclipController'}}}},{11,2,{'Bootstrap'}},{13,2,{'UIConfig'}},{30,1,{'utils'},{{31,2,{'icons'}}}} -,{12,2,{'FallbackIcons'}}}},{6,2,{'Loader'}},{8,2,{'ObsidianLibrary'}},{7,2,{'MainModule'}}}}},'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: +end},{{1,1,{'waxbundle'},{{3,2,{'Init'},{{5,2,{'ObsidianLibrary'}},{4,2,{'ObsidianLibrary.d'}}}},{10,1,{'ObsidianUI'},{{ +12,2,{'FallbackIcons'}},{18,1,{'tabs'},{{19,2,{'AimbotTab'}},{23,2,{'ItemSpawnerTab'}},{29,2,{'VisualTab'}},{28,2,{ +'UtilsTab'}},{20,2,{'AutoFarmTab'}},{27,2,{'UISettingsTab'}},{26,2,{'NoclipTab'}},{24,2,{'LocalTab'}},{22,2,{'FlyTab'}}, +{21,2,{'ESPTab'}},{25,2,{'MainTab'}}}},{14,1,{'scripts'},{{16,2,{'FlyController'}},{15,2,{'CustomESP'}},{17,2,{ +'NoclipController'}}}},{13,2,{'UIConfig'}},{30,1,{'utils'},{{31,2,{'icons'}}}},{11,2,{'Bootstrap'}}}},{2,4,{ +'BundleEntry'}},{6,2,{'Loader'}},{7,2,{'MainModule'}},{9,2,{'ObsidianLibrary.d'}},{8,2,{'ObsidianLibrary'}}}}},'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