Auto-deploy: Update bundled Lua script

This commit is contained in:
2026-02-05 20:29:42 +00:00
parent 21e4e89950
commit 4eedbbc2b4

357
main.luau
View File

@@ -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