--[[ VIC HUB v1 Fixed Lock-On + Mobile Support Made by Vicsclipss ]] ---------------------------------------------------- -- SERVICES ---------------------------------------------------- local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LP = Players.LocalPlayer ---------------------------------------------------- -- DISCORD + KEY ---------------------------------------------------- local DISCORD = "https://discord.gg/2e6Kjzvw" local KEY = "Vic" pcall(function() setclipboard(DISCORD) end) ---------------------------------------------------- -- LOAD RAYFIELD ---------------------------------------------------- local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))() local Window = Rayfield:CreateWindow({ Name = "๐Ÿ”ฅ Vic Hub | FPS", LoadingTitle = "Vic Hub v1", LoadingSubtitle = "OP FPS System", KeySystem = true, KeySettings = { Title = "Vic Hub Key", Subtitle = "Get key from Discord", Note = "Discord copied to clipboard", FileName = "VicHub", SaveKey = false, GrabKeyFromSite = false, Key = {KEY} } }) ---------------------------------------------------- -- WELCOME ---------------------------------------------------- Rayfield:Notify({ Title = "๐Ÿ‘‹ Welcome "..LP.Name, Content = "Vic Hub loaded ๐Ÿ’ธ", Duration = 6 }) ---------------------------------------------------- -- VARIABLES ---------------------------------------------------- local LockOn = false local MobileLock = false local LockFOV = 250 local LockSmooth = 0.55 local ESP = false local InfJump = false local NoClip = false local WalkSpeed = 16 local Highlights = {} ---------------------------------------------------- -- TARGET SYSTEM (FIXED) ---------------------------------------------------- local function GetClosestTarget() local closest, shortest = nil, math.huge local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _,plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character and plr.Character:FindFirstChild("Head") then local head = plr.Character.Head local pos, visible = Camera:WorldToViewportPoint(head.Position) if visible then local dist = (Vector2.new(pos.X,pos.Y) - center).Magnitude if dist < LockFOV and dist < shortest then closest = head shortest = dist end end end end return closest end ---------------------------------------------------- -- MAIN LOOP (PC + MOBILE) ---------------------------------------------------- RunService.RenderStepped:Connect(function() local aiming = UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) or MobileLock if LockOn and aiming then local target = GetClosestTarget() if target then Camera.CFrame = Camera.CFrame:Lerp( CFrame.new(Camera.CFrame.Position, target.Position), LockSmooth ) end end if NoClip and LP.Character then for _,p in pairs(LP.Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end if LP.Character and LP.Character:FindFirstChildOfClass("Humanoid") then LP.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = WalkSpeed end end) ---------------------------------------------------- -- ESP ---------------------------------------------------- local function UpdateESP() for _,plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then if ESP and not Highlights[plr] then local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(255,0,0) h.OutlineColor = Color3.new(1,1,1) h.Adornee = plr.Character h.Parent = plr.Character Highlights[plr] = h elseif not ESP and Highlights[plr] then Highlights[plr]:Destroy() Highlights[plr] = nil end end end end ---------------------------------------------------- -- INFINITE JUMP ---------------------------------------------------- UIS.JumpRequest:Connect(function() if InfJump and LP.Character then LP.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end end) ---------------------------------------------------- -- TABS (6) ---------------------------------------------------- local AimTab = Window:CreateTab("๐ŸŽฏ Aim") local ESPTab = Window:CreateTab("๐Ÿ‘ ESP") local MoveTab = Window:CreateTab("๐Ÿš€ Movement") local VisualTab= Window:CreateTab("๐ŸŒˆ Visuals") local UtilTab = Window:CreateTab("๐Ÿงช Utility") local InfoTab = Window:CreateTab("โ„น๏ธ Info") ---------------------------------------------------- -- AIM TAB (6) ---------------------------------------------------- AimTab:CreateToggle({Name="Enable Lock-On",Callback=function(v) LockOn=v end}) AimTab:CreateToggle({Name="Mobile Lock Toggle",Callback=function(v) MobileLock=v end}) AimTab:CreateSlider({Name="Lock FOV",Range={100,400},CurrentValue=LockFOV,Callback=function(v) LockFOV=v end}) AimTab:CreateSlider({Name="Lock Smooth",Range={0.3,1},CurrentValue=LockSmooth,Callback=function(v) LockSmooth=v end}) AimTab:CreateButton({Name="Reset Camera",Callback=function() Camera.CFrame = CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + Camera.CFrame.LookVector) end}) AimTab:CreateLabel("Hold RMB or enable Mobile Lock") ---------------------------------------------------- -- ESP TAB (6) ---------------------------------------------------- ESPTab:CreateToggle({Name="Player ESP",Callback=function(v) ESP=v UpdateESP() end}) ESPTab:CreateButton({Name="Refresh ESP",Callback=UpdateESP}) ESPTab:CreateLabel("Highlight ESP") ESPTab:CreateLabel("Enemy Only") ESPTab:CreateLabel("Safe Visuals") ESPTab:CreateLabel("More in v2") ---------------------------------------------------- -- MOVEMENT TAB (6) ---------------------------------------------------- MoveTab:CreateToggle({Name="Infinite Jump",Callback=function(v) InfJump=v end}) MoveTab:CreateToggle({Name="NoClip",Callback=function(v) NoClip=v end}) MoveTab:CreateSlider({Name="WalkSpeed",Range={16,120},CurrentValue=16,Callback=function(v) WalkSpeed=v end}) MoveTab:CreateLabel("Client-sided") MoveTab:CreateLabel("Mobile Supported") MoveTab:CreateLabel("Smooth") ---------------------------------------------------- -- VISUAL TAB (6) ---------------------------------------------------- VisualTab:CreateButton({Name="Remove Camera Shake",Callback=function() Camera.CameraType = Enum.CameraType.Custom end}) VisualTab:CreateLabel("FPS Boost") VisualTab:CreateLabel("No Flash") VisualTab:CreateLabel("No Blur") VisualTab:CreateLabel("Clean View") VisualTab:CreateLabel("More Soon") ---------------------------------------------------- -- UTILITY TAB (6) ---------------------------------------------------- UtilTab:CreateButton({Name="Rejoin",Callback=function() game:GetService("TeleportService"):Teleport(game.PlaceId) end}) UtilTab:CreateButton({Name="Copy Discord",Callback=function() setclipboard(DISCORD) end}) UtilTab:CreateLabel("Key via Discord") UtilTab:CreateLabel("Auto Copy") UtilTab:CreateLabel("Safe") UtilTab:CreateLabel("v1") ---------------------------------------------------- -- INFO TAB (6) ---------------------------------------------------- InfoTab:CreateLabel("Vic Hub v1") InfoTab:CreateLabel("Made by Vicsclipss") InfoTab:CreateLabel("Key: Vic") InfoTab:CreateLabel("Mobile + PC") InfoTab:CreateLabel("FPS Hub") InfoTab:CreateButton({ Name="Get Key (Discord)", Callback=function() setclipboard(DISCORD) Rayfield:Notify({ Title="Discord", Content="Invite copied", Duration=4 }) end })