-- [[ CAR HUB FE OP - BROOKHAVEN ]] -- local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer -- UI DE CARREGAMENTO (TELA ROXA PROTEGIDA) local function CreateLoadingScreen() local parentTarget = (gethui and gethui()) or CoreGui or LocalPlayer:WaitForChild("PlayerGui") local LoadingScreen = Instance.new("ScreenGui") local LoadingFrame = Instance.new("Frame") local LoadingText = Instance.new("TextLabel") local UICorner = Instance.new("UICorner") LoadingScreen.Name = "CarHubLoading" LoadingScreen.Parent = parentTarget LoadingScreen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling LoadingFrame.Parent = LoadingScreen LoadingFrame.BackgroundColor3 = Color3.fromRGB(110, 0, 200) LoadingFrame.Position = UDim2.new(0.35, 0, 0.4, 0) LoadingFrame.Size = UDim2.new(0.3, 0, 0.2, 0) UICorner.CornerRadius = UDim.new(0, 12) UICorner.Parent = LoadingFrame LoadingText.Parent = LoadingFrame LoadingText.BackgroundTransparency = 1 LoadingText.Size = UDim2.new(1, 0, 1, 0) LoadingText.Font = Enum.Font.GothamBold LoadingText.Text = "CARREGANDO..." LoadingText.TextColor3 = Color3.fromRGB(255, 255, 255) LoadingText.TextSize = 22 task.wait(2) LoadingScreen:Destroy() end CreateLoadingScreen() -- CARREGAR FLUENT UI (LINK SEGURO / FALLBACK) local Success, Fluent = pcall(function() return loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() end) if not Success or not Fluent then -- Fallback de repositório caso o principal esteja indisponível Fluent = loadstring(game:HttpGet("https://raw.githubusercontent.com/disco0001/Fluent/main/main.lua"))() end -- CRIAR JANELA PRINCIPAL local Window = Fluent:CreateWindow({ Title = "CAR HUB FE OP", SubTitle = "by Community", TabWidth = 120, Size = UDim2.fromOffset(480, 320), Theme = "Dark", MinimizeKey = Enum.KeyCode.LeftControl }) -- NOTIFICAÇÃO DE BOAS-VINDAS Fluent:Notify({ Title = "CAR HUB FE OP", Content = "BEM VINDO(A), " .. LocalPlayer.Name, Duration = 5 }) -- VARIÁVEIS GLOBAIS local TargetPlayerName = "" local TargetPlayerTroll = "" local SpeedRotation = 50 local SuperJumpActive = false local SpinActive = false local FollowActive = false -- FUNÇÕES UTILITÁRIAS local function FindPlayerByFirstName(name) if not name or name == "" then return nil end name = string.lower(name) for _, player in ipairs(Players:GetPlayers()) do local firstName = string.split(player.Name, " ")[1] local displayName = string.split(player.DisplayName, " ")[1] if string.sub(string.lower(player.Name), 1, #name) == name or string.sub(string.lower(firstName), 1, #name) == name or string.sub(string.lower(displayName), 1, #name) == name then return player end end return nil end local function GetPlayerVehicle(player) if not player then return nil end if player.Character and player.Character:FindFirstChildOfClass("Humanoid") then local seat = player.Character.Humanoid.SeatPart if seat and seat:IsA("VehicleSeat") then return seat.Parent end end for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Model") and (obj:FindFirstChildOfClass("VehicleSeat") or obj:FindFirstChild("Body")) then local ownerValue = obj:FindFirstChild("Owner") or obj:FindFirstChild("CarOwner") if ownerValue and tostring(ownerValue.Value) == player.Name then return obj elseif string.find(string.lower(obj.Name), string.lower(player.Name)) then return obj end end end if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local pRoot = player.Character.HumanoidRootPart for _, seat in ipairs(Workspace:GetDescendants()) do if seat:IsA("VehicleSeat") and seat.Parent then local mainPart = seat.Parent.PrimaryPart or seat if (mainPart.Position - pRoot.Position).Magnitude < 20 then return seat.Parent end end end end return nil end local function IsVehicleEmptyExceptMe(vehicle) if not vehicle then return false end local myChar = LocalPlayer.Character if not myChar or not myChar:FindFirstChildOfClass("Humanoid") then return false end local mySeat = myChar.Humanoid.SeatPart if not mySeat or not mySeat:IsDescendantOf(vehicle) then return false end local occupantCount = 0 for _, seat in ipairs(vehicle:GetDescendants()) do if (seat:IsA("VehicleSeat") or seat:IsA("Seat")) and seat.Occupant then occupantCount = occupantCount + 1 end end return occupantCount == 1 end local function MoveVehicle(vehicle, cframe) if not vehicle then return end if vehicle.PrimaryPart then vehicle:SetPrimaryPartCFrame(cframe) else vehicle:PivotTo(cframe) end end -- CRIAÇÃO DAS ABAS local Tabs = { Carros = Window:AddTab({ Title = "CARROS", Icon = "car" }), Trolls = Window:AddTab({ Title = "TROLLS", Icon = "skull" }), Commandos = Window:AddTab({ Title = "COMMANDOS", Icon = "terminal" }), Config = Window:AddTab({ Title = "CONFIGURAÇÃO", Icon = "settings" }) } ---------------------------------------------------- -- ABA 1: CARROS ---------------------------------------------------- Tabs.Carros:AddInput("InputJogador1", { Title = "JOGADOR", Default = "", Placeholder = "Apenas o primeiro nome...", Callback = function(Value) TargetPlayerName = Value end }) Tabs.Carros:AddButton({ Title = "VERIFICAR", Callback = function() local target = FindPlayerByFirstName(TargetPlayerName) if target then Fluent:Notify({ Title = "Verificação", Content = target.Name .. " está ativo", Duration = 3 }) else Fluent:Notify({ Title = "Verificação", Content = "JOGADOR INVALIDO", Duration = 3 }) end end }) Tabs.Carros:AddButton({ Title = "SUPER PULO(CARROS)", Callback = function() local target = FindPlayerByFirstName(TargetPlayerName) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmptyExceptMe(veh) then SuperJumpActive = true task.spawn(function() local rootPart = veh.PrimaryPart or veh:FindFirstChildOfClass("VehicleSeat") or veh:FindFirstChildWhichIsA("BasePart") while SuperJumpActive and veh and rootPart do rootPart.AssemblyLinearVelocity = Vector3.new(rootPart.AssemblyLinearVelocity.X, 120, rootPart.AssemblyLinearVelocity.Z) task.wait(0.15) end end) else Fluent:Notify({ Title = "Erro", Content = "Você deve estar no carro do jogador e sozinho!", Duration = 3 }) end end }) Tabs.Carros:AddButton({ Title = "PARAR PULO", Callback = function() SuperJumpActive = false end }) Tabs.Carros:AddParagraph({ Title = "GIRO (FE)", Content = "GIRE QUALQUER CARRO DO JOGADOR SELECIONADO" }) Tabs.Carros:AddInput("VelocidadeGiro", { Title = "VELOCIDADE", Default = "50", Numeric = true, Finished = true, Callback = function(Value) SpeedRotation = tonumber(Value) or 50 end }) Tabs.Carros:AddButton({ Title = "GIRAR CARRO SELECIONADO", Callback = function() local target = FindPlayerByFirstName(TargetPlayerName) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmptyExceptMe(veh) then SpinActive = true task.spawn(function() while SpinActive and veh do local currentCF = veh:GetPivot() MoveVehicle(veh, currentCF * CFrame.Angles(0, math.rad(SpeedRotation), 0)) task.wait(0.03) end end) else Fluent:Notify({ Title = "Erro", Content = "Você deve estar no veículo e sozinho!", Duration = 3 }) end end }) Tabs.Carros:AddButton({ Title = "PARAR GIRO", Callback = function() SpinActive = false end }) ---------------------------------------------------- -- ABA 2: TROLLS ---------------------------------------------------- Tabs.Trolls:AddInput("InputJogador2", { Title = "JOGADOR", Default = "", Placeholder = "Apenas o primeiro nome...", Callback = function(Value) TargetPlayerTroll = Value end }) Tabs.Trolls:AddButton({ Title = "VERIFICAR", Callback = function() local target = FindPlayerByFirstName(TargetPlayerTroll) if target then Fluent:Notify({ Title = "Verificação", Content = target.Name .. " está no servidor", Duration = 3 }) else Fluent:Notify({ Title = "Verificação", Content = "JOGADOR INVALIDO", Duration = 3 }) end end }) Tabs.Trolls:AddButton({ Title = "TRAZER CARRO(CARROS)", Callback = function() local target = FindPlayerByFirstName(TargetPlayerTroll) local veh = GetPlayerVehicle(target) if veh then local empty = true for _, s in ipairs(veh:GetDescendants()) do if (s:IsA("VehicleSeat") or s:IsA("Seat")) and s.Occupant then empty = false break end end if empty and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then MoveVehicle(veh, LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -10)) else Fluent:Notify({ Title = "Erro", Content = "Carro ocupado ou não encontrado!", Duration = 3 }) end else Fluent:Notify({ Title = "Erro", Content = "Veículo do jogador não foi encontrado!", Duration = 3 }) end end }) Tabs.Trolls:AddButton({ Title = "SEGUIR DONO(CARROS)", Callback = function() local target = FindPlayerByFirstName(TargetPlayerTroll) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmptyExceptMe(veh) and target and target.Character then FollowActive = true task.spawn(function() while FollowActive and target and target.Character do local tRoot = target.Character:FindFirstChild("HumanoidRootPart") if tRoot then MoveVehicle(veh, tRoot.CFrame * CFrame.new(0, 0, 6)) end task.wait(0.05) end end) else Fluent:Notify({ Title = "Erro", Content = "Você precisa estar no carro e sozinho!", Duration = 3 }) end end }) Tabs.Trolls:AddButton({ Title = "PARAR DE SEGUIR(DONO)", Callback = function() FollowActive = false end }) Tabs.Trolls:AddButton({ Title = "FRENTE(CARROS)", Callback = function() local target = FindPlayerByFirstName(TargetPlayerTroll) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmptyExceptMe(veh) then MoveVehicle(veh, veh:GetPivot() * CFrame.new(0, 0, -5)) else Fluent:Notify({ Title = "Erro", Content = "Você deve estar no carro e sozinho!", Duration = 3 }) end end }) Tabs.Trolls:AddButton({ Title = "TRAS(CARROS)", Callback = function() local target = FindPlayerByFirstName(TargetPlayerTroll) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmptyExceptMe(veh) then MoveVehicle(veh, veh:GetPivot() * CFrame.new(0, 0, 5)) else Fluent:Notify({ Title = "Erro", Content = "Você deve estar no carro e sozinho!", Duration = 3 }) end end }) ---------------------------------------------------- -- ABA 3: COMMANDOS ---------------------------------------------------- Tabs.Commandos:AddParagraph({ Title = "COMMANDOS", Content = "Para ativa os COMMANDOS do script digite no chat: ;cmds para ativar" }) -- MOD MENU DE COMANDOS ARRASTÁVEL local parentTarget = (gethui and gethui()) or CoreGui or LocalPlayer:WaitForChild("PlayerGui") local CmdGui = Instance.new("ScreenGui") local CmdFrame = Instance.new("Frame") local CmdTitle = Instance.new("TextLabel") local CmdClose = Instance.new("TextButton") local CmdScroll = Instance.new("ScrollingFrame") local UIListLayout = Instance.new("UIListLayout") CmdGui.Name = "CmdModMenu" CmdGui.Parent = parentTarget CmdGui.Enabled = false CmdFrame.Parent = CmdGui CmdFrame.BackgroundColor3 = Color3.fromRGB(30, 20, 45) CmdFrame.BorderColor3 = Color3.fromRGB(130, 0, 255) CmdFrame.Position = UDim2.new(0.05, 0, 0.2, 0) CmdFrame.Size = UDim2.new(0, 240, 0, 280) CmdFrame.Active = true CmdFrame.Draggable = true CmdTitle.Parent = CmdFrame CmdTitle.BackgroundColor3 = Color3.fromRGB(110, 0, 200) CmdTitle.Size = UDim2.new(0.8, 0, 0, 30) CmdTitle.Font = Enum.Font.GothamBold CmdTitle.Text = " LISTA DE COMANDOS" CmdTitle.TextColor3 = Color3.fromRGB(255, 255, 255) CmdTitle.TextXAlignment = Enum.TextXAlignment.Left CmdClose.Parent = CmdFrame CmdClose.BackgroundColor3 = Color3.fromRGB(200, 0, 50) CmdClose.Position = UDim2.new(0.8, 0, 0, 30) CmdClose.Position = UDim2.new(0.8, 0, 0, 0) CmdClose.Size = UDim2.new(0.2, 0, 0, 30) CmdClose.Font = Enum.Font.GothamBold CmdClose.Text = "X" CmdClose.TextColor3 = Color3.fromRGB(255, 255, 255) CmdClose.MouseButton1Click:Connect(function() CmdGui.Enabled = false end) CmdScroll.Parent = CmdFrame CmdScroll.BackgroundTransparency = 1 CmdScroll.Position = UDim2.new(0, 5, 0, 35) CmdScroll.Size = UDim2.new(1, -10, 1, -40) CmdScroll.CanvasSize = UDim2.new(0, 0, 2, 0) CmdScroll.ScrollBarThickness = 6 UIListLayout.Parent = CmdScroll UIListLayout.Padding = UDim.new(0, 5) local cmdsList = { ";view (nome) - Ver jogador", ";unview - Volta camera", ";headsit (nome) - Senta na cabeça", ";unheadsit - Volta ao normal", ";orbit (nome) - Gira em torno", ";unorbit - Para de girar", ";follow (nome) - Segue jogador", ";unfollow - Para de seguir" } for _, cmdText in ipairs(cmdsList) do local lbl = Instance.new("TextLabel") lbl.Parent = CmdScroll lbl.Size = UDim2.new(1, 0, 0, 25) lbl.BackgroundColor3 = Color3.fromRGB(45, 30, 65) lbl.TextColor3 = Color3.fromRGB(255, 255, 255) lbl.Font = Enum.Font.SourceSans lbl.TextSize = 14 lbl.Text = " " .. cmdText lbl.TextXAlignment = Enum.TextXAlignment.Left end -- LÓGICA DOS COMANDOS NO CHAT local OrbitConnection, FollowCmdConnection LocalPlayer.Chatted:Connect(function(msg) local args = string.split(msg, " ") local cmd = string.lower(args[1] or "") local targetName = args[2] or "" if cmd == ";cmds" then CmdGui.Enabled = true elseif cmd == ";view" then local t = FindPlayerByFirstName(targetName) if t and t.Character then Workspace.CurrentCamera.CameraSubject = t.Character end elseif cmd == ";unview" then if LocalPlayer.Character then Workspace.CurrentCamera.CameraSubject = LocalPlayer.Character end elseif cmd == ";headsit" then local t = FindPlayerByFirstName(targetName) if t and t.Character and LocalPlayer.Character then LocalPlayer.Character.HumanoidRootPart.CFrame = t.Character.Head.CFrame * CFrame.new(0, 1.5, 0) end elseif cmd == ";unheadsit" then if LocalPlayer.Character then LocalPlayer.Character.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 3, 0) end elseif cmd == ";orbit" then local t = FindPlayerByFirstName(targetName) if t and t.Character then if OrbitConnection then OrbitConnection:Disconnect() end local angle = 0 OrbitConnection = RunService.RenderStepped:Connect(function() if t.Character and t.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character then angle = angle + 0.05 local offset = CFrame.new(math.cos(angle) * 5, 0, math.sin(angle) * 5) LocalPlayer.Character.HumanoidRootPart.CFrame = t.Character.HumanoidRootPart.CFrame * offset end end) end elseif cmd == ";unorbit" then if OrbitConnection then OrbitConnection:Disconnect() OrbitConnection = nil end elseif cmd == ";follow" then local t = FindPlayerByFirstName(targetName) if t and t.Character then if FollowCmdConnection then FollowCmdConnection:Disconnect() end FollowCmdConnection = RunService.RenderStepped:Connect(function() if t.Character and t.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character then LocalPlayer.Character.HumanoidRootPart.CFrame = t.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 3) end end) end elseif cmd == ";unfollow" then if FollowCmdConnection then FollowCmdConnection:Disconnect() FollowCmdConnection = nil end end end) ---------------------------------------------------- -- ABA 4: CONFIGURAÇÃO ---------------------------------------------------- Tabs.Config:AddButton({ Title = "TRAZER MEU CARRO", Callback = function() local myVeh = GetPlayerVehicle(LocalPlayer) if myVeh and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then MoveVehicle(myVeh, LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -8)) else Fluent:Notify({ Title = "Config", Content = "Nenhum carro seu encontrado por perto!", Duration = 3 }) end end }) Tabs.Config:AddButton({ Title = "RADOM CARRO", Callback = function() local vehicles = {} for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("VehicleSeat") and obj.Parent then table.insert(vehicles, obj.Parent) end end if #vehicles > 0 then local randomVeh = vehicles[math.random(1, #vehicles)] if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = randomVeh:GetPivot() * CFrame.new(0, 5, 0) end else Fluent:Notify({ Title = "Config", Content = "Nenhum carro encontrado no servidor!", Duration = 3 }) end end }) local EspActive = false Tabs.Config:AddButton({ Title = "ESP CARRO", Callback = function() EspActive = not EspActive for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("VehicleSeat") and obj.Parent then local veh = obj.Parent if EspActive then if not veh:FindFirstChild("CarESP") then local bb = Instance.new("BillboardGui") bb.Name = "CarESP" bb.Adornee = veh.PrimaryPart or obj bb.Size = UDim2.new(0, 100, 0, 30) bb.AlwaysOnTop = true bb.Parent = veh local txt = Instance.new("TextLabel") txt.Parent = bb txt.Size = UDim2.new(1, 0, 1, 0) txt.BackgroundTransparency = 1 txt.Text = "[CARRO] " .. veh.Name txt.TextColor3 = Color3.fromRGB(0, 255, 200) txt.Font = Enum.Font.GothamBold txt.TextSize = 12