do local Players=game:GetService("Players");local ReplicatedStorage=game:GetService("ReplicatedStorage");local UserInputService=game:GetService("UserInputService");local TweenService=game:GetService("TweenService");local localPlayer=Players.LocalPlayer;local gui=Instance.new("ScreenGui");gui.Name="ShopGui";gui.ResetOnSpawn=false;gui.Parent=localPlayer:WaitForChild("PlayerGui");local frame=Instance.new("Frame",gui);frame.Size=UDim2.new(0,380,0,420);frame.Position=UDim2.new(0,20,0,20);frame.BackgroundColor3=Color3.fromRGB(50,50,50);frame.BorderSizePixel=0;local notif=Instance.new("TextLabel",gui);notif.Size=UDim2.new(0,300,0,50);notif.Position=UDim2.new(0.5, -150,1, -60);notif.BackgroundColor3=Color3.fromRGB(30,30,30);notif.TextColor3=Color3.new(1,1,1);notif.Font=Enum.Font.SourceSansBold;notif.TextSize=22;notif.TextStrokeTransparency=0.6;notif.TextStrokeColor3=Color3.new(0,0,0);notif.BackgroundTransparency=0.2;notif.Visible=false;notif.BorderSizePixel=0;Instance.new("UICorner",notif).CornerRadius=UDim.new(0,8);local function notify(message,isError) notif.Text=message;notif.BackgroundColor3=(isError and Color3.fromRGB(180,50,50)) or Color3.fromRGB(50,180,50) ;notif.Visible=true;delay(2,function() notif.Visible=false;end);end local tabs={"Guns","Settings","AutoFarm","Police"};local tabButtons={};local tabContents={};local tabsFrame=Instance.new("Frame",frame);tabsFrame.Size=UDim2.new(1,0,0,45);tabsFrame.BackgroundTransparency=1;local contentHolder=Instance.new("Frame",frame);contentHolder.Size=UDim2.new(1,0,1, -45);contentHolder.Position=UDim2.new(0,0,0,45);contentHolder.BackgroundTransparency=1;for i,tabName in ipairs(tabs) do local btn=Instance.new("TextButton",tabsFrame);btn.Size=UDim2.new(0,120,1,0);btn.Position=UDim2.new(0,(i-1) * 125 ,0,0);btn.BackgroundColor3=Color3.fromRGB(70,70,70);btn.TextColor3=Color3.new(1,1,1);btn.Font=Enum.Font.SourceSansBold;btn.TextSize=20;btn.Text=tabName;tabButtons[tabName]=btn;local contentFrame=Instance.new("Frame",contentHolder);contentFrame.Size=UDim2.new(1,0,1,0);contentFrame.BackgroundColor3=Color3.fromRGB(60,60,60);contentFrame.Visible=false;tabContents[tabName]=contentFrame;end tabContents['Guns'].Visible=true;tabButtons['Guns'].BackgroundColor3=Color3.fromRGB(90,90,90);for name,btn in pairs(tabButtons) do btn.MouseButton1Click:Connect(function() for tName,content in pairs(tabContents) do content.Visible=false;tabButtons[tName].BackgroundColor3=Color3.fromRGB(70,70,70);end tabContents[name].Visible=true;btn.BackgroundColor3=Color3.fromRGB(90,90,90);end);end local function createBtn(text,parent,callback) local button=Instance.new("TextButton",parent);button.Size=UDim2.new(1, -20,0,40);button.Position=UDim2.new(0,10,0,0);button.BackgroundColor3=Color3.fromRGB(70,70,70);button.TextColor3=Color3.new(1,1,1);button.Font=Enum.Font.SourceSansBold;button.TextSize=18;button.Text=text;button.MouseButton1Click:Connect(callback);return button;end local gunsScroll=Instance.new("ScrollingFrame",tabContents['Guns']);gunsScroll.Size=UDim2.new(1, -20,1, -20);gunsScroll.Position=UDim2.new(0,10,0,10);gunsScroll.BackgroundTransparency=1;gunsScroll.ScrollBarThickness=8;local gunsLayout=Instance.new("UIListLayout",gunsScroll);gunsLayout.SortOrder=Enum.SortOrder.LayoutOrder;gunsLayout.Padding=UDim.new(0,5);gunsScroll.CanvasSize=UDim2.new(0,0,0,gunsLayout.AbsoluteContentSize.Y);gunsLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() gunsScroll.CanvasSize=UDim2.new(0,0,0,gunsLayout.AbsoluteContentSize.Y);end);local weaponsStatic={"Shotgun","Sawed Off","Revolver","Glock","Uzi","TEC-9","Super Shotty","Dual Pistols","Vest"};local weaponsNew={"Assault Rifle","AK47","Sniper","Heckler","M4A1","MP5","P90","Deagle","Mossberg","Winchester","SPAS-12"};local function buyWeapon(name,isAmmo) local shop=workspace:WaitForChild("WeaponShops"):WaitForChild("GunShop");local item=shop:WaitForChild("Items"):WaitForChild(name);local args=(isAmmo and {"BuyShopWeaponAmmo",item}) or {"BuyShopWeapon",item,shop} ;local success,err=pcall(function() ReplicatedStorage.Events.GeneralEvent:FireServer(unpack(args));end);if success then notify(((isAmmo and (name .. " Ammo")) or name) .. " Purchased!" ,false);else notify("Purchase Failed!",true);end end for _,weaponName in ipairs(weaponsStatic) do local wBtn=createBtn(weaponName,gunsScroll,function() buyWeapon(weaponName,false);end);if (weaponName~="Vest") then local ammoBtn=createBtn(weaponName .. " Ammo" ,gunsScroll,function() buyWeapon(weaponName,true);end);end end for _,weaponName in ipairs(weaponsNew) do createBtn(weaponName,gunsScroll,function() buyWeapon(weaponName,false);end);createBtn(weaponName .. " Ammo" ,gunsScroll,function() buyWeapon(weaponName,true);end);end local colorGrid=Instance.new("Frame",tabContents['Settings']);colorGrid.Size=UDim2.new(1, -20,0,200);colorGrid.Position=UDim2.new(0,10,0,10);colorGrid.BackgroundTransparency=1;local gridLayout=Instance.new("UIGridLayout",colorGrid);gridLayout.CellSize=UDim2.new(0,80,0,40);gridLayout.CellPadding=UDim2.new(0,10,0,10);local colors={Red=Color3.fromRGB(255,85,85),Green=Color3.fromRGB(85,255,85),Blue=Color3.fromRGB(85,85,255),Yellow=Color3.fromRGB(255,255,85),Purple=Color3.fromRGB(170,85,255),Cyan=Color3.fromRGB(85,255,255),Orange=Color3.fromRGB(255,170,85),White=Color3.fromRGB(255,255,255)};for name,color in pairs(colors) do local btn=Instance.new("TextButton",colorGrid);btn.Size=UDim2.new(0,80,0,40);btn.BackgroundColor3=color;btn.Text=name;btn.Font=Enum.Font.SourceSansBold;btn.TextSize=18;btn.TextColor3=Color3.new(1,1,1);btn.MouseButton1Click:Connect(function() frame.BackgroundColor3=color;end);end local autoFrame=tabContents['AutoFarm'];local cashVal=ReplicatedStorage:WaitForChild("PlayerFolders"):WaitForChild(localPlayer.Name):WaitForChild("Cash");local cashLabel=Instance.new("TextLabel",autoFrame);cashLabel.Size=UDim2.new(1, -20,0,40);cashLabel.Position=UDim2.new(0,10,0,20);cashLabel.BackgroundColor3=Color3.fromRGB(60,60,60);cashLabel.BackgroundTransparency=0.3;cashLabel.TextColor3=Color3.new(1,1,1);cashLabel.Font=Enum.Font.SourceSansBold;cashLabel.TextSize=20;cashLabel.TextXAlignment=Enum.TextXAlignment.Center;cashLabel.Text="Cash: 0";local toggleBtn=Instance.new("TextButton",autoFrame);toggleBtn.Size=UDim2.new(0,140,0,50);toggleBtn.Position=UDim2.new(0.5, -70,0,80);toggleBtn.BackgroundColor3=Color3.fromRGB(70,70,70);toggleBtn.TextColor3=Color3.new(1,1,1);toggleBtn.Font=Enum.Font.SourceSansBold;toggleBtn.TextSize=22;toggleBtn.Text="AutoFarm: OFF";local farmOn=false;local startCash=0;local function tweenToPosition(pos,duration) local root=localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") ;if root then local tween=TweenService:Create(root,TweenInfo.new(duration or 0.1 ,Enum.EasingStyle.Linear),{CFrame=CFrame.new(pos)});tween:Play();tween.Completed:Wait();end end local function spamPrompt(prompt) if prompt then prompt:InputHoldBegin();wait(0.1);prompt:InputHoldEnd();end end local function farmCash() local moneySpawns=workspace:FindFirstChild("MoneySpawns");if not moneySpawns then return;end while farmOn do for _,cashItem in pairs(moneySpawns:GetChildren()) do if not farmOn then break;end local pos=nil;if cashItem:IsA("Model") then if cashItem.PrimaryPart then pos=cashItem.PrimaryPart.Position;else pos=cashItem:GetPivot().Position;end elseif cashItem:IsA("BasePart") then pos=cashItem.Position;end if pos then tweenToPosition(pos,0.05);wait(0.1);local prompt=cashItem:FindFirstChildWhichIsA("ProximityPrompt",true);spamPrompt(prompt);end end wait(0.5);end end toggleBtn.MouseButton1Click:Connect(function() farmOn= not farmOn;if farmOn then startCash=cashVal.Value;toggleBtn.Text="AutoFarm: ON";notify("AutoFarm Enabled!",false);coroutine.wrap(farmCash)();else toggleBtn.Text="AutoFarm: OFF";notify("AutoFarm Disabled!",false);cashLabel.Text="Cash Made: " .. (cashVal.Value-startCash) ;end end);cashVal.Changed:Connect(function() if farmOn then cashLabel.Text="Cash Made: " .. (cashVal.Value-startCash) ;else cashLabel.Text="Cash: " .. cashVal.Value ;end end);local uiVisible=true;UserInputService.InputBegan:Connect(function(input,gameProcessed) if ( not gameProcessed and (input.KeyCode==Enum.KeyCode.RightControl)) then uiVisible= not uiVisible;frame.Visible=uiVisible;end end);local dragging,dragInput,dragStart,startPos;frame.InputBegan:Connect(function(input) if (input.UserInputType==Enum.UserInputType.MouseButton1) then dragging=true;dragStart=input.Position;startPos=frame.Position;input.Changed:Connect(function() if (input.UserInputState==Enum.UserInputState.End) then dragging=false;end end);end end);frame.InputChanged:Connect(function(input) if (input.UserInputType==Enum.UserInputType.MouseMovement) then dragInput=input;end end);UserInputService.InputChanged:Connect(function(input) if ((input==dragInput) and dragging) then local delta=input.Position-dragStart ;frame.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset + delta.X ,startPos.Y.Scale,startPos.Y.Offset + delta.Y );end end);local policeTab=tabContents['Police'];local wantedToggleBtn=Instance.new("TextButton",policeTab);wantedToggleBtn.Size=UDim2.new(0,200,0,50);wantedToggleBtn.Position=UDim2.new(0.5, -100,0,20);wantedToggleBtn.BackgroundColor3=Color3.fromRGB(70,70,70);wantedToggleBtn.TextColor3=Color3.new(1,1,1);wantedToggleBtn.Font=Enum.Font.SourceSansBold;wantedToggleBtn.TextSize=22;wantedToggleBtn.Text="Wanted ESP: OFF";local highlightingEnabled=false;local highlightedPlayers={};local function createHighlight(player,character) if not character then return;end local highlight=Instance.new("Highlight");highlight.Name="WantedHighlight";highlight.FillColor=Color3.new(1,0,0);highlight.OutlineColor=Color3.new(1,0,0);highlight.FillTransparency=0.5;highlight.OutlineTransparency=0;highlight.Adornee=character;highlight.Parent=gui;local head=character:FindFirstChild("Head");local billboard;if head then billboard=Instance.new("BillboardGui");billboard.Name="WantedBillboard";billboard.Adornee=head;billboard.Size=UDim2.new(0,150,0,50);billboard.StudsOffset=Vector3.new(0,3,0);billboard.AlwaysOnTop=true;billboard.Parent=gui;local textLabel=Instance.new("TextLabel",billboard);textLabel.BackgroundTransparency=1;textLabel.Size=UDim2.new(1,0,1,0);textLabel.Text="Wanted";textLabel.TextColor3=Color3.new(1,0,0);textLabel.Font=Enum.Font.SourceSansBold;textLabel.TextSize=22;textLabel.TextStrokeTransparency=0;textLabel.TextStrokeColor3=Color3.new(0,0,0);end return highlight,billboard;end local function clearHighlights() for _,h in pairs(highlightedPlayers) do if h.Highlight then h.Highlight:Destroy();end if h.Billboard then h.Billboard:Destroy();end end highlightedPlayers={};end local function updateWantedESP() clearHighlights();for _,player in pairs(Players:GetPlayers()) do if ((player~=localPlayer) and player.Character) then local folder=ReplicatedStorage:FindFirstChild("PlayerFolders");if folder then local targetFolder=folder:FindFirstChild(player.Name);if targetFolder then local wanted=targetFolder:FindFirstChild("Wanted");if (wanted and (wanted.Value>0)) then local hl,bb=createHighlight(player,player.Character);highlightedPlayers[player]={Highlight=hl,Billboard=bb};end end end end end end local wantedESPOn=false;wantedToggleBtn.MouseButton1Click:Connect(function() wantedESPOn= not wantedESPOn;wantedToggleBtn.Text="Wanted ESP: " .. ((wantedESPOn and "ON") or "OFF") ;if wantedESPOn then updateWantedESP();notify("Wanted ESP Enabled!",false);else clearHighlights();notify("Wanted ESP Disabled!",false);end end);Players.PlayerRemoving:Connect(function(player) if highlightedPlayers[player] then if highlightedPlayers[player].Highlight then highlightedPlayers[player].Highlight:Destroy();end if highlightedPlayers[player].Billboard then highlightedPlayers[player].Billboard:Destroy();end highlightedPlayers[player]=nil;end end);Players.PlayerAdded:Connect(function(player) if wantedESPOn then wait(1);updateWantedESP();end end);spawn(function() while true do wait(3);if wantedESPOn then updateWantedESP();end end end);local moneyEarnedLabel=Instance.new("TextLabel",frame);moneyEarnedLabel.Size=UDim2.new(0,200,0,30);moneyEarnedLabel.Position=UDim2.new(1, -210,1, -40);moneyEarnedLabel.BackgroundColor3=Color3.fromRGB(50,50,50);moneyEarnedLabel.TextColor3=Color3.new(1,1,1);moneyEarnedLabel.Font=Enum.Font.SourceSansBold;moneyEarnedLabel.TextSize=20;moneyEarnedLabel.TextXAlignment=Enum.TextXAlignment.Right;moneyEarnedLabel.Text="Earned: 0";local earnedMoney=0;local lastCash=cashVal.Value;cashVal.Changed:Connect(function() local diff=cashVal.Value-lastCash ;if (diff>0) then earnedMoney=earnedMoney + diff ;moneyEarnedLabel.Text="Earned: " .. earnedMoney ;end lastCash=cashVal.Value;end); end