local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() getgenv().LockEnabled = false getgenv().FOV = 250 getgenv().LockedTarget = nil getgenv().SelectedPlayer = nil local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local lp = Players.LocalPlayer local Window = Rayfield:CreateWindow({ Name = "SHIFT AIMLOCK PRO", LoadingTitle = "Tyshawn Lock", LoadingSubtitle = "Better Humans Edition", KeySystem = false }) -- FOV local Circle = Drawing.new("Circle") Circle.Thickness = 2 Circle.NumSides = 100 Circle.Filled = false Circle.Color = Color3.new(1,1,1) local labels = {} local function Center() local vp = Camera.ViewportSize return Vector2.new(vp.X/2,vp.Y/2) end local function GetPlayersList() local list = {} for i,p in pairs(Players:GetPlayers()) do if p ~= lp then table.insert(list, i..": "..p.Name) end end return list end local function GetClosest() local closest local shortest = getgenv().FOV local center = Center() for _,p in pairs(Players:GetPlayers()) do if p ~= lp and p.Character and p.Character:FindFirstChild("Head") then local pos,vis = Camera:WorldToViewportPoint( p.Character.Head.Position ) if vis then local dist = (Vector2.new(pos.X,pos.Y)-center).Magnitude if dist < shortest then shortest = dist closest = p end end end end return closest end RunService.RenderStepped:Connect(function() local center = Center() Circle.Position = center Circle.Radius = getgenv().FOV Circle.Visible = true -- player numbers for i,p in pairs(Players:GetPlayers()) do if p ~= lp and p.Character and p.Character:FindFirstChild("Head") then if not labels[p] then labels[p] = Drawing.new("Text") labels[p].Size = 18 labels[p].Center = true labels[p].Outline = true labels[p].Color = Color3.new(1,1,0) end local pos,vis = Camera:WorldToViewportPoint( p.Character.Head.Position + Vector3.new(0,3,0) ) labels[p].Visible = vis labels[p].Text = tostring(i) labels[p].Position = Vector2.new(pos.X,pos.Y) end end -- lock logic if getgenv().LockEnabled then if getgenv().SelectedPlayer then getgenv().LockedTarget = getgenv().SelectedPlayer else getgenv().LockedTarget = GetClosest() end local target = getgenv().LockedTarget if target and target.Character and target.Character:FindFirstChild("Head") then Camera.CFrame = CFrame.new( Camera.CFrame.Position, target.Character.Head.Position ) end end end) local Tab = Window:CreateTab("Main",4483362458) Tab:CreateToggle({ Name = "Aimlock", CurrentValue = false, Callback = function(v) getgenv().LockEnabled = v end }) Tab:CreateSlider({ Name = "FOV", Range = {50,500}, Increment = 10, CurrentValue = 250, Callback = function(v) getgenv().FOV = v end }) local Drop = Tab:CreateDropdown({ Name = "Select Player", Options = GetPlayersList(), CurrentOption = nil, Callback = function(v) local name = string.match(v,"%d+:%s(.+)") getgenv().SelectedPlayer = Players:FindFirstChild(name) end }) Tab:CreateButton({ Name = "Refresh Players", Callback = function() Drop:Refresh(GetPlayersList()) end }) Tab:CreateButton({ Name = "Teleport To Selected", Callback = function() local target = getgenv().SelectedPlayer if target and target.Character and lp.Character then lp.Character:MoveTo( target.Character.HumanoidRootPart.Position + Vector3.new(3,0,0) ) end end }) Rayfield:Notify({ Title = "Loaded", Content = "Pick players by number and teleport. Because walking is apparently too hard.", Duration = 5 })