local Players = game:GetService("Players") local lp = Players.LocalPlayer local UIS = game:GetService("UserInputService") local RS = game:GetService("RunService") local plrGui = lp:WaitForChild("PlayerGui") -- UI setup local gui = Instance.new("ScreenGui", plrGui) gui.Name = "GunGUI" gui.ResetOnSpawn = false local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 400, 0, 450) frame.Position = UDim2.new(0.5, -200, 0.5, -225) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.Active = true frame.Draggable = true Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundTransparency = 1 title.Text = "Gun Selector" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 22 local dropdownToggle = Instance.new("TextButton", frame) dropdownToggle.Position = UDim2.new(0, 20, 0, 50) dropdownToggle.Size = UDim2.new(1, -40, 0, 40) dropdownToggle.BackgroundColor3 = Color3.fromRGB(40, 40, 40) dropdownToggle.TextColor3 = Color3.fromRGB(255, 255, 255) dropdownToggle.Text = "Select Gun ▼" dropdownToggle.Font = Enum.Font.Gotham dropdownToggle.TextSize = 16 Instance.new("UICorner", dropdownToggle).CornerRadius = UDim.new(0, 6) local dropdownFrame = Instance.new("ScrollingFrame", frame) dropdownFrame.Position = UDim2.new(0, 20, 0, 100) dropdownFrame.Size = UDim2.new(1, -40, 0, 160) dropdownFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) dropdownFrame.Visible = false dropdownFrame.CanvasSize = UDim2.new(0, 0, 0, 0) dropdownFrame.ScrollBarThickness = 8 dropdownFrame.BorderSizePixel = 0 Instance.new("UICorner", dropdownFrame).CornerRadius = UDim.new(0, 6) local layout = Instance.new("UIListLayout", dropdownFrame) layout.Padding = UDim.new(0, 4) local gunList = {"Rifle", "DoubleBarrel", "M1911", "Revolver", "AK74", "Tec9"} local selectedGun = nil for _, gunName in ipairs(gunList) do local button = Instance.new("TextButton", dropdownFrame) button.Size = UDim2.new(1, -10, 0, 35) button.BackgroundColor3 = Color3.fromRGB(60, 60, 60) button.TextColor3 = Color3.fromRGB(255, 255, 255) button.Font = Enum.Font.Gotham button.TextSize = 16 button.Text = gunName button.BorderSizePixel = 0 Instance.new("UICorner", button).CornerRadius = UDim.new(0, 4) button.MouseButton1Click:Connect(function() selectedGun = gunName dropdownToggle.Text = "Selected: " .. gunName dropdownFrame.Visible = false print("Selected gun:", gunName) end) end layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() dropdownFrame.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10) end) dropdownToggle.MouseButton1Click:Connect(function() dropdownFrame.Visible = not dropdownFrame.Visible end) local applyButton = Instance.new("TextButton", frame) applyButton.Position = UDim2.new(0, 20, 0, 280) applyButton.Size = UDim2.new(1, -40, 0, 40) applyButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0) applyButton.TextColor3 = Color3.fromRGB(255, 255, 255) applyButton.Font = Enum.Font.GothamBold applyButton.TextSize = 16 applyButton.Text = "Apply Gun Stats" Instance.new("UICorner", applyButton).CornerRadius = UDim.new(0, 6) applyButton.MouseButton1Click:Connect(function() if not selectedGun then warn("No gun selected.") return end local gunData = require(game:GetService("ReplicatedStorage"):WaitForChild("Guns")) local char = lp.Character or lp.CharacterAdded:Wait() local tool = char:FindFirstChild(selectedGun) if tool then gunData[selectedGun] = { Damage = 200, AttackSpeed = 0.5, ReloadSpeed = 0.5, CrosshairSize = UDim2.new(0, 20, 0, 20), Recoil = 0, Pellets = 10, Spray = nil, Automatic = false } print("Stats applied to " .. selectedGun) else warn("Tool " .. selectedGun .. " not found in character.") end end) local proxButton = Instance.new("TextButton", frame) proxButton.Position = UDim2.new(0, 20, 1, -60) proxButton.Size = UDim2.new(1, -40, 0, 40) proxButton.BackgroundColor3 = Color3.fromRGB(255, 85, 0) proxButton.TextColor3 = Color3.fromRGB(255, 255, 255) proxButton.Font = Enum.Font.GothamBold proxButton.TextSize = 14 proxButton.Text = "Set All ProximityPrompts to 0" Instance.new("UICorner", proxButton).CornerRadius = UDim.new(0, 6) proxButton.MouseButton1Click:Connect(function() for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("ProximityPrompt") then obj.HoldDuration = 0 print("HoldDuration set to 0 for: " .. obj:GetFullName()) end end end) -- GUI Toggle (press K) UIS.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.KeyCode == Enum.KeyCode.K then frame.Visible = not frame.Visible -- Lock the mouse when the GUI is closed if not frame.Visible then UIS.MouseBehavior = Enum.MouseBehavior.Locked end end end) -- 🧠 Mouse unlock fix lp:GetMouse().Icon = "rbxasset://textures/ArrowCursor.png" UIS.MouseIconEnabled = true lp.CameraMode = Enum.CameraMode.Classic game:GetService("StarterPlayer").EnableMouseLockOption = false RS.RenderStepped:Connect(function() if UIS.MouseBehavior ~= Enum.MouseBehavior.Default then UIS.MouseBehavior = Enum.MouseBehavior.Default end end)