-- Pistol Arena Rayfield v7 - Fixed WalkSpeed + Rainbow local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() -- Brown Theme local BrownTheme = { TextColor = Color3.fromRGB(255, 245, 220), Background = Color3.fromRGB(139, 69, 19), Topbar = Color3.fromRGB(160, 82, 45), Shadow = Color3.fromRGB(80, 40, 10), NotificationBackground = Color3.fromRGB(139, 69, 19), MainFrame = Color3.fromRGB(160, 82, 45), Accent = Color3.fromRGB(205, 133, 63), Outline = Color3.fromRGB(205, 133, 63), } local Window = Rayfield:CreateWindow({ Name = "Pistol Arena Hub v7 - Fixed", LoadingTitle = "Loading...", LoadingSubtitle = "WalkSpeed Fixed", ConfigurationSaving = {Enabled = true, FolderName = "PistolArena", FileName = "Config"}, KeySystem = false, Theme = BrownTheme, }) local Combat = Window:CreateTab("Combat", 4483362458) local Visuals = Window:CreateTab("Visuals", 4483362458) local Farm = Window:CreateTab("Auto Farm", 4483362458) local Movement = Window:CreateTab("Movement", 4483362458) local Misc = Window:CreateTab("Misc", 4483362458) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local Workspace = game:GetService("Workspace") local aimbotEnabled = false local autoFarmEnabled = false local espEnabled = false local tracersEnabled = false local targetPart = "Head" local fovRadius = 200 local walkspeedValue = 50 local walkspeedEnabled = false local ESP = {} local function createDrawing(type, props) local d = Drawing.new(type) for k,v in pairs(props) do d[k] = v end return d end local function getRainbowColor(speed) return Color3.fromHSV(tick() % speed / speed, 1, 1) end local function updateESP() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then if not ESP[plr] then ESP[plr] = { Box = createDrawing("Square", {Thickness=2, Filled=false, Transparency=1}), Name = createDrawing("Text", {Size=15, Color=Color3.fromRGB(255,255,255), Center=true, Outline=true}), Tracer = createDrawing("Line", {Thickness=1.5, Transparency=1}) } end local root = plr.Character.HumanoidRootPart local screen, onScreen = Camera:WorldToViewportPoint(root.Position) local esp = ESP[plr] if onScreen then local top = Camera:WorldToViewportPoint(root.Position + Vector3.new(0,3,0)) local bottom = Camera:WorldToViewportPoint(root.Position - Vector3.new(0,3,0)) local height = bottom.Y - top.Y if espEnabled then local rainbow = getRainbowColor(2) esp.Box.Visible = true esp.Box.Color = rainbow esp.Box.Size = Vector2.new(height/1.8, height) esp.Box.Position = Vector2.new(screen.X - esp.Box.Size.X/2, top.Y) esp.Name.Visible = true esp.Name.Text = plr.Name esp.Name.Position = Vector2.new(screen.X, top.Y - 18) else esp.Box.Visible = false esp.Name.Visible = false end if tracersEnabled then esp.Tracer.Visible = true esp.Tracer.Color = getRainbowColor(1.5) esp.Tracer.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) esp.Tracer.To = Vector2.new(screen.X, screen.Y) else esp.Tracer.Visible = false end else for _, v in pairs(esp) do v.Visible = false end end end end end RunService.RenderStepped:Connect(updateESP) -- Fixed WalkSpeed Loop local function applyWalkSpeed() while walkspeedEnabled do if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then LocalPlayer.Character.Humanoid.WalkSpeed = walkspeedValue end wait(0.1) end end -- Character Respawn Support LocalPlayer.CharacterAdded:Connect(function() wait(1) if walkspeedEnabled then applyWalkSpeed() end end) -- Visibility & Aimbot Functions (same) local function isVisible(target) if not target.Character then return false end local part = target.Character:FindFirstChild(targetPart) or target.Character:FindFirstChild("Head") if not part then return false end local origin = Camera.CFrame.Position local direction = (part.Position - origin) local params = RaycastParams.new() params.FilterDescendantsInstances = {LocalPlayer.Character} params.FilterType = Enum.RaycastFilterType.Exclude local result = Workspace:Raycast(origin, direction, params) return result == nil or result.Instance:IsDescendantOf(target.Character) end local function getClosestVisible() local closest, dist = nil, math.huge for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild(targetPart) then local part = plr.Character[targetPart] local pos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local screenDist = (Vector2.new(pos.X, pos.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude if screenDist < dist and screenDist < fovRadius and isVisible(plr) then dist = screenDist closest = plr end end end end return closest end -- ==================== MOVEMENT (Fixed WalkSpeed) ==================== Movement:CreateToggle({ Name = "Enable WalkSpeed", CurrentValue = false, Callback = function(Value) walkspeedEnabled = Value if Value then spawn(applyWalkSpeed) end end }) Movement:CreateSlider({ Name = "WalkSpeed Value", Range = {16, 300}, Increment = 1, CurrentValue = 50, Callback = function(Value) walkspeedValue = Value end }) Movement:CreateToggle({ Name = "Noclip", CurrentValue = false, Callback = function(Value) local noclip = Value spawn(function() while noclip do if LocalPlayer.Character then for _, part in pairs(LocalPlayer.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end RunService.Stepped:Wait() end end) end }) -- Rest of the script (Combat, Visuals, Farm, Misc) Combat:CreateToggle({ Name = "Aimbot (FOV + Wall Check)", CurrentValue = false, Callback = function(Value) aimbotEnabled = Value if Value then spawn(function() while aimbotEnabled do local target = getClosestVisible() if target and target.Character and target.Character:FindFirstChild(targetPart) then Camera.CFrame = CFrame.lookAt(Camera.CFrame.Position, target.Character[targetPart].Position) end RunService.RenderStepped:Wait() end end) end end }) Combat:CreateSlider({ Name = "Aimbot FOV", Range = {50, 800}, Increment = 10, CurrentValue = 200, Callback = function(Value) fovRadius = Value end }) Combat:CreateDropdown({ Name = "Aim Part", Options = {"Head", "UpperTorso", "HumanoidRootPart"}, CurrentOption = {"Head"}, MultipleOptions = false, Callback = function(CurrentOption) targetPart = CurrentOption[1] end }) Visuals:CreateToggle({ Name = "ESP (Box + Name) Rainbow", CurrentValue = false, Callback = function(Value) espEnabled = Value end }) Visuals:CreateToggle({ Name = "Rainbow Tracers", CurrentValue = false, Callback = function(Value) tracersEnabled = Value end }) Farm:CreateToggle({ Name = "Auto Farm (Visible Only)", CurrentValue = false, Callback = function(Value) autoFarmEnabled = Value while autoFarmEnabled do local target = getClosestVisible() if target and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.lookAt(LocalPlayer.Character.HumanoidRootPart.Position, target.Character.HumanoidRootPart.Position) end wait(0.2) end end }) Misc:CreateButton({ Name = "Unload Script", Callback = function() Rayfield:Destroy() end }) Rayfield:Notify({ Title = "v7 Loaded!", Content = "WalkSpeed Fixed ✅ | Rainbow ESP & Tracers", Duration = 5 })