do local Players=game:GetService("Players");local RunService=game:GetService("RunService");local UserInputService=game:GetService("UserInputService");local TweenService=game:GetService("TweenService");local VirtualUser=game:GetService("VirtualUser");local Camera=workspace.CurrentCamera;local THEME={Main=Color3.fromRGB(20,20,24),Sidebar=Color3.fromRGB(26,26,32),TopBar=Color3.fromRGB(30,30,38),Button=Color3.fromRGB(40,40,50),ButtonHover=Color3.fromRGB(55,55,65),Accent=Color3.fromRGB(0,130,255),Text=Color3.fromRGB(240,240,240),TextDim=Color3.fromRGB(150,150,150),Stroke=Color3.fromRGB(60,60,75),Red=Color3.fromRGB(220,60,60),Green=Color3.fromRGB(46,204,113)};local UI_TOGGLE_KEY=Enum.KeyCode.V;local TARGET_PROMPT_NAME="InteractionPrompt";local TARGET_PARENT_KEYWORD="ManualDropper";local TARGET_PATH_KEYWORD="ManualDropper";local TARGET_CASH_NAME="CashCollector";local MAGNET_INTERVAL=0.18;local MAX_PULL_PER_TICK=12;local States={InfiniteReach=false,AutoTap=false,AutoMagnet=false};local Cache={Prompts={},Reach={},Cash={}};local player=Players.LocalPlayer;local char=player.Character or player.CharacterAdded:Wait() ;local root=char:WaitForChild("HumanoidRootPart");player.CharacterAdded:Connect(function(c) char=c;root=c:WaitForChild("HumanoidRootPart");end);task.spawn(function() player.Idled:Connect(function() VirtualUser:CaptureController();VirtualUser:ClickButton2(Vector2.new());end);end);local existingUI=player:WaitForChild("PlayerGui"):FindFirstChild("MeinUI_AutoHub");if existingUI then existingUI:Destroy();end local gui=Instance.new("ScreenGui");gui.Name="MeinUI_AutoHub";gui.ResetOnSpawn=false;gui.IgnoreGuiInset=true;gui.Parent=player:WaitForChild("PlayerGui");local main=Instance.new("Frame",gui);main.Size=UDim2.fromOffset(500,350);main.Position=UDim2.fromScale(0.5,0.5);main.AnchorPoint=Vector2.new(0.5,0.5);main.BackgroundColor3=THEME.Main;main.BorderSizePixel=0;main.Active=true;main.ClipsDescendants=true;Instance.new("UICorner",main).CornerRadius=UDim.new(0,10);local mainStroke=Instance.new("UIStroke",main);mainStroke.Color=THEME.Stroke;mainStroke.Thickness=2;local top=Instance.new("Frame",main);top.Size=UDim2.new(1,0,0,40);top.BackgroundColor3=THEME.TopBar;top.BorderSizePixel=0;Instance.new("UICorner",top).CornerRadius=UDim.new(0,10);local topFix=Instance.new("Frame",top);topFix.Size=UDim2.new(1,0,0,10);topFix.Position=UDim2.new(0,0,1, -10);topFix.BackgroundColor3=THEME.TopBar;topFix.BorderSizePixel=0;local title=Instance.new("TextLabel",top);title.Size=UDim2.new(1, -60,1,0);title.Position=UDim2.fromOffset(15,0);title.BackgroundTransparency=1;title.Text="MEIN UI - AUTO HUB";title.Font=Enum.Font.GothamBlack;title.TextSize=16;title.TextXAlignment=Enum.TextXAlignment.Left;title.TextColor3=THEME.Text;local close=Instance.new("TextButton",top);close.Size=UDim2.fromOffset(28,28);close.Position=UDim2.new(1, -36,0.5, -14);close.Text="×";close.Font=Enum.Font.GothamBold;close.TextSize=20;close.TextColor3=Color3.new(1,1,1);close.BackgroundColor3=THEME.Red;close.AutoButtonColor=true;Instance.new("UICorner",close).CornerRadius=UDim.new(0,6);local sidebar=Instance.new("ScrollingFrame",main);sidebar.Size=UDim2.new(0,150,1, -40);sidebar.Position=UDim2.new(0,0,0,40);sidebar.BackgroundColor3=THEME.Sidebar;sidebar.BorderSizePixel=0;sidebar.ScrollBarThickness=2;local sidePad=Instance.new("UIPadding",sidebar);sidePad.PaddingTop=UDim.new(0,10);sidePad.PaddingLeft=UDim.new(0,10);sidePad.PaddingRight=UDim.new(0,10);local sideLayout=Instance.new("UIListLayout",sidebar);sideLayout.Padding=UDim.new(0,8);sideLayout.HorizontalAlignment=Enum.HorizontalAlignment.Center;local ProfileIndicatorFrame=Instance.new("Frame",sidebar);ProfileIndicatorFrame.Size=UDim2.new(1,0,0,50);ProfileIndicatorFrame.BackgroundColor3=THEME.Main;ProfileIndicatorFrame.BackgroundTransparency=0.5;ProfileIndicatorFrame.LayoutOrder=99;Instance.new("UICorner",ProfileIndicatorFrame).CornerRadius=UDim.new(0,8);local profileStroke=Instance.new("UIStroke",ProfileIndicatorFrame);profileStroke.Color=THEME.Stroke;profileStroke.Thickness=1;local ProfilePicture=Instance.new("ImageLabel",ProfileIndicatorFrame);ProfilePicture.Size=UDim2.fromOffset(34,34);ProfilePicture.Position=UDim2.new(0,8,0.5, -17);ProfilePicture.BackgroundColor3=THEME.TopBar;Instance.new("UICorner",ProfilePicture).CornerRadius=UDim.new(1,0);local textContainer=Instance.new("Frame",ProfileIndicatorFrame);textContainer.Size=UDim2.new(1, -50,1,0);textContainer.Position=UDim2.new(0,50,0,0);textContainer.BackgroundTransparency=1;local WelcomeLabel=Instance.new("TextLabel",textContainer);WelcomeLabel.Size=UDim2.new(1,0,0,18);WelcomeLabel.Position=UDim2.new(0,0,0.5, -10);WelcomeLabel.BackgroundTransparency=1;WelcomeLabel.Font=Enum.Font.GothamBold;WelcomeLabel.Text=player.DisplayName;WelcomeLabel.TextColor3=THEME.Text;WelcomeLabel.TextXAlignment=Enum.TextXAlignment.Left;WelcomeLabel.TextSize=11;WelcomeLabel.TextTruncate=Enum.TextTruncate.AtEnd;local FollowerLabel=Instance.new("TextLabel",textContainer);FollowerLabel.Size=UDim2.new(1,0,0,14);FollowerLabel.Position=UDim2.new(0,0,0.5,6);FollowerLabel.BackgroundTransparency=1;FollowerLabel.Font=Enum.Font.Gotham;FollowerLabel.Text="Anti-AFK Active";FollowerLabel.TextColor3=THEME.Green;FollowerLabel.TextXAlignment=Enum.TextXAlignment.Left;FollowerLabel.TextSize=10;task.spawn(function() local success,content=pcall(function() return Players:GetUserThumbnailAsync(player.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size150x150);end);if success then ProfilePicture.Image=content;end end);local content=Instance.new("Frame",main);content.Size=UDim2.new(1, -150,1, -40);content.Position=UDim2.new(0,150,0,40);content.BackgroundColor3=THEME.Main;content.BorderSizePixel=0;local pages={};local function newPage(name) local f=Instance.new("ScrollingFrame",content);f.Name=name;f.Size=UDim2.fromScale(1,1);f.BackgroundTransparency=1;f.Visible=false;f.BorderSizePixel=0;f.ScrollBarThickness=3;f.ScrollBarImageColor3=THEME.Accent;local p=Instance.new("UIPadding",f);p.PaddingTop=UDim.new(0,15);p.PaddingLeft=UDim.new(0,15);p.PaddingBottom=UDim.new(0,15);local layout=Instance.new("UIListLayout",f);layout.Padding=UDim.new(0,10);layout.HorizontalAlignment=Enum.HorizontalAlignment.Left;layout.SortOrder=Enum.SortOrder.LayoutOrder;pages[name]=f;return f;end local function makeTab(name) local b=Instance.new("TextButton",sidebar);b.Size=UDim2.new(1,0,0,32);b.Text=name;b.Font=Enum.Font.GothamMedium;b.TextSize=13;b.TextColor3=THEME.TextDim;b.BackgroundColor3=Color3.new(0,0,0);b.BackgroundTransparency=1;b.BorderSizePixel=0;Instance.new("UICorner",b).CornerRadius=UDim.new(0,6);local ind=Instance.new("Frame",b);ind.Size=UDim2.new(0,3,0.6,0);ind.Position=UDim2.new(0,0,0.2,0);ind.BackgroundColor3=THEME.Accent;ind.Transparency=1;Instance.new("UICorner",ind).CornerRadius=UDim.new(1,0);b.MouseButton1Click:Connect(function() for _,p in pairs(pages) do p.Visible=false;end for _,child in pairs(sidebar:GetChildren()) do if child:IsA("TextButton") then TweenService:Create(child,TweenInfo.new(0.2),{TextColor3=THEME.TextDim,BackgroundTransparency=1}):Play();if child:FindFirstChild("Frame") then child.Frame.Transparency=1;end end end pages[name].Visible=true;TweenService:Create(b,TweenInfo.new(0.2),{TextColor3=Color3.new(1,1,1),BackgroundTransparency=0.9}):Play();ind.Transparency=0;end);return b;end local function bigButton(parent,text) local b=Instance.new("TextButton",parent);b.Size=UDim2.new(1, -10,0,38);b.Text=text;b.Font=Enum.Font.GothamBold;b.TextSize=12;b.TextColor3=THEME.Text;b.BackgroundColor3=THEME.Button;b.AutoButtonColor=false;Instance.new("UICorner",b).CornerRadius=UDim.new(0,6);local stroke=Instance.new("UIStroke",b);stroke.Color=THEME.Stroke;stroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;stroke.Thickness=1;b.MouseEnter:Connect(function() TweenService:Create(b,TweenInfo.new(0.2),{BackgroundColor3=THEME.ButtonHover}):Play();end);b.MouseLeave:Connect(function() TweenService:Create(b,TweenInfo.new(0.2),{BackgroundColor3=THEME.Button}):Play();end);b.MouseButton1Down:Connect(function() TweenService:Create(b,TweenInfo.new(0.1),{Size=UDim2.new(1, -14,0,36)}):Play();end);b.MouseButton1Up:Connect(function() TweenService:Create(b,TweenInfo.new(0.1),{Size=UDim2.new(1, -10,0,38)}):Play();end);return b;end local pageDropper=newPage("Dropper");local pageMagnet=newPage("Magnet");local tabDropper=makeTab("Dropper");local tabMagnet=makeTab("Magnet");pageDropper.Visible=true;TweenService:Create(tabDropper,TweenInfo.new(0.2),{TextColor3=Color3.new(1,1,1),BackgroundTransparency=0.9}):Play();if tabDropper:FindFirstChild("Frame") then tabDropper.Frame.Transparency=0;end local function isTargetPrompt(prompt) if ( not prompt or not prompt:IsA("ProximityPrompt")) then return false;end if (prompt.Name~=TARGET_PROMPT_NAME) then return false;end local path=prompt:GetFullName();if (string.find(path,TARGET_PATH_KEYWORD) or (prompt.Parent and string.find(prompt.Parent.Name,TARGET_PARENT_KEYWORD))) then return true;end return false;end local function applyReach(prompt) if not Cache.Reach[prompt] then Cache.Reach[prompt]={dist=prompt.MaxActivationDistance,los=prompt.RequiresLineOfSight};end prompt.MaxActivationDistance=99999;prompt.RequiresLineOfSight=false;end local function restoreReach(prompt) local saved=Cache.Reach[prompt];if (saved and prompt and prompt.Parent) then prompt.MaxActivationDistance=saved.dist;prompt.RequiresLineOfSight=saved.los;end end local function executeMagnet() if not root then return 0;end local pulled=0;for obj in pairs(Cache.Cash) do if (pulled>=MAX_PULL_PER_TICK) then break;end if (obj and obj.Parent) then local offset=CFrame.new(math.random( -4,4),0,math.random( -4,4));obj.CFrame=root.CFrame * offset ;if obj:IsA("BasePart") then obj.AssemblyLinearVelocity=Vector3.zero;obj.AssemblyAngularVelocity=Vector3.zero;obj.CanCollide=false;end pulled+=1 else Cache.Cash[obj]=nil;end end return pulled;end local btnReach=bigButton(pageDropper,"Infinite Reach: OFF");btnReach.MouseButton1Click:Connect(function() States.InfiniteReach= not States.InfiniteReach;btnReach.Text=(States.InfiniteReach and "Infinite Reach: ON") or "Infinite Reach: OFF" ;btnReach.TextColor3=(States.InfiniteReach and THEME.Green) or THEME.Text ;for prompt in pairs(Cache.Prompts) do if States.InfiniteReach then applyReach(prompt);else restoreReach(prompt);end end end);local btnTap=bigButton(pageDropper,"Auto Tap Dropper: OFF");btnTap.MouseButton1Click:Connect(function() States.AutoTap= not States.AutoTap;btnTap.Text=(States.AutoTap and "Auto Tap Dropper: ON") or "Auto Tap Dropper: OFF" ;btnTap.TextColor3=(States.AutoTap and THEME.Green) or THEME.Text ;if States.AutoTap then task.spawn(function() while States.AutoTap do for prompt in pairs(Cache.Prompts) do if (prompt and prompt.Parent and prompt.Enabled) then if fireproximityprompt then fireproximityprompt(prompt,0);else prompt.HoldDuration=0;prompt:InputHoldBegin();task.wait();prompt:InputHoldEnd();end end end task.wait(0.1);end end);end end);local btnPull=bigButton(pageMagnet,"Pull Cash (Once)");btnPull.MouseButton1Click:Connect(function() local pulled=executeMagnet();btnPull.Text="Pulled " .. pulled .. " Cash!" ;task.wait(0.5);btnPull.Text="Pull Cash (Once)";end);local btnMag=bigButton(pageMagnet,"Auto Magnet Loop: OFF");btnMag.MouseButton1Click:Connect(function() States.AutoMagnet= not States.AutoMagnet;btnMag.Text=(States.AutoMagnet and "Auto Magnet Loop: ON") or "Auto Magnet Loop: OFF" ;btnMag.TextColor3=(States.AutoMagnet and THEME.Green) or THEME.Text ;if States.AutoMagnet then task.spawn(function() while States.AutoMagnet do executeMagnet();task.wait(MAGNET_INTERVAL);end end);end end);local function processObject(obj) if (obj:IsA("ProximityPrompt") and isTargetPrompt(obj)) then Cache.Prompts[obj]=true;if States.InfiniteReach then applyReach(obj);end elseif (obj:IsA("BasePart") and (obj.Name==TARGET_CASH_NAME)) then Cache.Cash[obj]=true;end end for _,obj in ipairs(workspace:GetDescendants()) do processObject(obj);end workspace.DescendantAdded:Connect(processObject);workspace.DescendantRemoving:Connect(function(obj) if obj:IsA("ProximityPrompt") then Cache.Prompts[obj]=nil;Cache.Reach[obj]=nil;elseif (obj.Name==TARGET_CASH_NAME) then Cache.Cash[obj]=nil;end end);local dragging,dragStart,startPos;top.InputBegan:Connect(function(input) if ((input.UserInputType==Enum.UserInputType.MouseButton1) or (input.UserInputType==Enum.UserInputType.Touch)) then dragging=true;dragStart=input.Position;startPos=main.Position;input.Changed:Connect(function() if (input.UserInputState==Enum.UserInputState.End) then dragging=false;end end);end end);UserInputService.InputChanged:Connect(function(input) if (dragging and ((input.UserInputType==Enum.UserInputType.MouseMovement) or (input.UserInputType==Enum.UserInputType.Touch))) then local delta=input.Position-dragStart ;main.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset + delta.X ,startPos.Y.Scale,startPos.Y.Offset + delta.Y );end end);local isAnimating=false;local isOpen=true;local openSize=UDim2.fromOffset(500,350);local closeSize=UDim2.fromOffset(500,0);local function toggleUI() if isAnimating then return;end isAnimating=true;isOpen= not isOpen;if isOpen then main.Visible=true;TweenService:Create(main,TweenInfo.new(0.4,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=openSize}):Play();task.wait(0.4);else TweenService:Create(main,TweenInfo.new(0.4,Enum.EasingStyle.Quart,Enum.EasingDirection.Out),{Size=closeSize}):Play();task.wait(0.4);main.Visible=false;end isAnimating=false;end UserInputService.InputBegan:Connect(function(i,gp) if gp then return;end if (i.KeyCode==UI_TOGGLE_KEY) then toggleUI();end end);close.MouseButton1Click:Connect(function() States.AutoTap=false;States.AutoMagnet=false;for prompt in pairs(Cache.Prompts) do restoreReach(prompt);end gui:Destroy();end); end