-- [[ CAR HUB FE OP - BROOKHAVEN ]] -- local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Workspace = game:GetService("Workspace") -- Tele de Carregamento (Loading Screen) local ScreenGui = Instance.new("ScreenGui") local LoadingFrame = Instance.new("Frame") local LoadingText = Instance.new("TextLabel") local UICorner = Instance.new("UICorner") ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false LoadingFrame.Parent = ScreenGui LoadingFrame.BackgroundColor3 = Color3.fromRGB(128, 0, 128) LoadingFrame.Position = UDim2.new(0.35, 0, 0.4, 0) LoadingFrame.Size = UDim2.new(0, 300, 0, 150) LoadingFrame.Active = true 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.SourceSansBold LoadingText.Text = "CARREGANDO..." LoadingText.TextColor3 = Color3.fromRGB(255, 255, 255) LoadingText.TextSize = 28 task.wait(3) ScreenGui:Destroy() -- Notificação de Boas-Vindas game:GetService("StarterGui"):SetCore("SendNotification", { Title = "CAR HUB FE OP", Text = "BEM VINDO(A), " .. LocalPlayer.DisplayName, Duration = 5 }) -- Carregamento da Fluent UI local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() local Window = Fluent:CreateWindow({ Title = "CAR HUB FE OP", SubTitle = "Brookhaven FE", TabWidth = 140, Size = UDim2.fromOffset(480, 340), -- UI Menor Theme = "Dark", Acrylic = false }) -- Modificação do Menu para Roxo Fluent.Options = Fluent.Options or {} Window.Root.BackgroundColor3 = Color3.fromRGB(45, 10, 60) -- Variáveis Globais de Controle local TargetPlayerCarros = "" local TargetPlayerTrolls = "" local SpeedGiro = 50 local SuperPuloLoop = nil local GiroLoop = nil local SeguirDonoLoop = nil local OrbitLoop = nil local FollowLoop = nil -- Função Auxiliar para Encontrar Jogador pelo Primeiro Nome local function GetPlayerByFirstName(name) name = string.lower(name) for _, player in pairs(Players:GetPlayers()) do if string.sub(string.lower(player.Name), 1, #name) == name or string.sub(string.lower(player.DisplayName), 1, #name) == name then return player end end return nil end -- Função para verificar se o jogador com script está sozinho no veículo local function IsSoloInVehicle(vehicle) if not vehicle then return false end local occupants = 0 local isLocalPlayerInside = false for _, desc in pairs(vehicle:GetDescendants()) do if desc:IsA("VehicleSeat") or desc:IsA("Seat") then if desc.Occupant then occupants = occupants + 1 if desc.Occupant.Parent == LocalPlayer.Character then isLocalPlayerInside = true end end end end return isLocalPlayerInside and occupants == 1 end -- Função para verificar se o carro está completamente vazio local function IsVehicleEmpty(vehicle) if not vehicle then return false end for _, desc in pairs(vehicle:GetDescendants()) do if desc:IsA("VehicleSeat") or desc:IsA("Seat") then if desc.Occupant then return false end end end return true end -- Função para buscar o veículo de um jogador local function GetPlayerVehicle(player) if not player or not player.Character then return nil end local vehicles = Workspace:FindFirstChild("Vehicles") or Workspace for _, veh in pairs(vehicles:GetChildren()) do if veh:FindFirstChild("Owner") and veh.Owner.Value == player.Name then return veh elseif veh.Name:find(player.Name) then return veh end end return nil end -------------------------------------------------------------------------------- -- ABA 1: CARROS -------------------------------------------------------------------------------- local TabCarros = Window:AddTab({ Title = "CARROS", Icon = "car" }) TabCarros:AddInput("InputJogadorCarros", { Title = "JOGADOR:", Default = "", Placeholder = "Primeiro nome...", Callback = function(Value) TargetPlayerCarros = Value end }) TabCarros:AddButton({ Title = "VERIFICAR", Callback = function() local target = GetPlayerByFirstName(TargetPlayerCarros) if target then Fluent:Notify({ Title = "Status", Content = target.Name .. " está ativo", Duration = 3 }) else Fluent:Notify({ Title = "Status", Content = "JOGADOR INVALIDO", Duration = 3 }) end end }) TabCarros:AddButton({ Title = "SUPER PULO(CARROS)", Callback = function() local target = GetPlayerByFirstName(TargetPlayerCarros) local veh = GetPlayerVehicle(target) if SuperPuloLoop then SuperPuloLoop:Disconnect() end SuperPuloLoop = RunService.Heartbeat:Connect(function() if veh and IsSoloInVehicle(veh) then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.Velocity = Vector3.new(primary.Velocity.X, 50, primary.Velocity.Z) end end end) end }) TabCarros:AddButton({ Title = "PARAR PULO", Callback = function() if SuperPuloLoop then SuperPuloLoop:Disconnect() SuperPuloLoop = nil end end }) TabCarros:AddParagraph({ Title = "GIRO (FE)", Content = "GIRE QUALQUER CARRO DO JOGADOR SELECIONADO" }) TabCarros:AddInput("InputVelocidade", { Title = "VELOCIDADE:", Default = "50", Numeric = true, Finished = true, Callback = function(Value) SpeedGiro = tonumber(Value) or 50 end }) TabCarros:AddButton({ Title = "GIRAR CARRO SELECIONADO", Callback = function() local target = GetPlayerByFirstName(TargetPlayerCarros) local veh = GetPlayerVehicle(target) if GiroLoop then GiroLoop:Disconnect() end GiroLoop = RunService.Heartbeat:Connect(function() if veh and IsSoloInVehicle(veh) then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.CFrame = primary.CFrame * CFrame.Angles(0, math.rad(SpeedGiro), 0) end end end) end }) TabCarros:AddButton({ Title = "PARAR GIRO", Callback = function() if GiroLoop then GiroLoop:Disconnect() GiroLoop = nil end end }) -------------------------------------------------------------------------------- -- ABA 2: TROLLS -------------------------------------------------------------------------------- local TabTrolls = Window:AddTab({ Title = "TROLLS", Icon = "skull" }) TabTrolls:AddInput("InputJogadorTrolls", { Title = "JOGADOR:", Default = "", Placeholder = "Primeiro nome...", Callback = function(Value) TargetPlayerTrolls = Value end }) TabTrolls:AddButton({ Title = "VERIFICAR", Callback = function() local target = GetPlayerByFirstName(TargetPlayerTrolls) if target then Fluent:Notify({ Title = "Status", Content = target.Name .. " está ativo", Duration = 3 }) else Fluent:Notify({ Title = "Status", Content = "JOGADOR INVALIDO", Duration = 3 }) end end }) TabTrolls:AddButton({ Title = "TRAZER CARRO(CARROS)", Callback = function() local target = GetPlayerByFirstName(TargetPlayerTrolls) local veh = GetPlayerVehicle(target) if veh and IsVehicleEmpty(veh) and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -5) end end end }) TabTrolls:AddButton({ Title = "SEGUIR DONO(CARROS)", Callback = function() local target = GetPlayerByFirstName(TargetPlayerTrolls) local veh = GetPlayerVehicle(target) if SeguirDonoLoop then SeguirDonoLoop:Disconnect() end SeguirDonoLoop = RunService.Heartbeat:Connect(function() if veh and IsSoloInVehicle(veh) and target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.CFrame = target.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 8) end end end) end }) TabTrolls:AddButton({ Title = "PARAR DE SEGUIR(DONO)", Callback = function() if SeguirDonoLoop then SeguirDonoLoop:Disconnect() SeguirDonoLoop = nil end end }) TabTrolls:AddButton({ Title = "FRENTE(CARROS)", Callback = function() local target = GetPlayerByFirstName(TargetPlayerTrolls) local veh = GetPlayerVehicle(target) if veh and IsSoloInVehicle(veh) then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.CFrame = primary.CFrame * CFrame.new(0, 0, -3) end end end }) TabTrolls:AddButton({ Title = "TRAS(CARROS)", Callback = function() local target = GetPlayerByFirstName(TargetPlayerTrolls) local veh = GetPlayerVehicle(target) if veh and IsSoloInVehicle(veh) then local primary = veh.PrimaryPart or veh:FindFirstChildWhichIsA("BasePart") if primary then primary.CFrame = primary.CFrame * CFrame.new(0, 0, 3) end end end }) -------------------------------------------------------------------------------- -- ABA 3: COMMANDOS -------------------------------------------------------------------------------- local TabCommandos = Window:AddTab({ Title = "COMMANDOS", Icon = "terminal" }) TabCommandos:AddParagraph({ Title = "COMMANDOS:", Content = "Para ativa os COMMANDOS do script digite no chat: ;cmds para ativar" }) -- Criando Menu de Comandos Clássico Arrastável local CmdsGui = Instance.new("ScreenGui") local CmdsFrame = Instance.new("Frame") local CmdsTitle = Instance.new("TextLabel") local CloseBtn = Instance.new("TextButton") local ScrollFrame = Instance.new("ScrollingFrame") local UIListLayout = Instance.new("UIListLayout") CmdsGui.Parent = LocalPlayer:WaitForChild("PlayerGui") CmdsGui.Enabled = false CmdsGui.ResetOnSpawn = false CmdsFrame.Parent = CmdsGui CmdsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) CmdsFrame.BorderSizePixel = 2 CmdsFrame.BorderColor3 = Color3.fromRGB(128, 0, 128) CmdsFrame.Position = UDim2.new(0.1, 0, 0.2, 0) CmdsFrame.Size = UDim2.new(0, 260, 0, 220) CmdsFrame.Active = true CmdsFrame.Draggable = true CmdsTitle.Parent = CmdsFrame CmdsTitle.BackgroundColor3 = Color3.fromRGB(128, 0, 128) CmdsTitle.Size = UDim2.new(1, -30, 0, 25) CmdsTitle.Font = Enum.Font.SourceSansBold CmdsTitle.Text = " LISTA DE COMANDOS" CmdsTitle.TextColor3 = Color3.fromRGB(255, 255, 255) CmdsTitle.TextSize = 14 CmdsTitle.TextXAlignment = Enum.TextXAlignment.Left CloseBtn.Parent = CmdsFrame CloseBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) CloseBtn.Position = UDim2.new(1, -30, 0, 0) CloseBtn.Size = UDim2.new(0, 30, 0, 25) CloseBtn.Font = Enum.Font.SourceSansBold CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.TextSize = 14 CloseBtn.MouseButton1Click:Connect(function() CmdsGui.Enabled = false end) ScrollFrame.Parent = CmdsFrame ScrollFrame.BackgroundTransparency = 1 ScrollFrame.Position = UDim2.new(0, 5, 0, 30) ScrollFrame.Size = UDim2.new(1, -10, 1, -35) ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 200) ScrollFrame.ScrollBarThickness = 6 UIListLayout.Parent = ScrollFrame UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0, 5) local listaComandos = { ";view(NOME DO JOGADOR)", ";unview", ";Headsit: (nome do jogador)", ";unheadsit", ";orbit: (nome do jogador)", ";unorbit", ";follow: (nome do jogador)", ";unfollow" } for _, cmdText in ipairs(listaComandos) do local lbl = Instance.new("TextLabel") lbl.Parent = ScrollFrame lbl.Size = UDim2.new(1, 0, 0, 20) lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.SourceSans lbl.Text = cmdText lbl.TextColor3 = Color3.fromRGB(255, 255, 255) lbl.TextSize = 14 lbl.TextXAlignment = Enum.TextXAlignment.Left end -- Processamento de Comandos de Chat 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 CmdsGui.Enabled = true elseif cmd == ";view" and targetName ~= "" then local target = GetPlayerByFirstName(targetName) if target and target.Character and target.Character:FindFirstChild("Humanoid") then Workspace.CurrentCamera.CameraSubject = target.Character.Humanoid end elseif cmd == ";unview" then if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then Workspace.CurrentCamera.CameraSubject = LocalPlayer.Character.Humanoid end elseif cmd == ";headsit" and targetName ~= "" then local target = GetPlayerByFirstName(targetName) if target and target.Character and target.Character:FindFirstChild("Head") and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = target.Character.Head.CFrame * CFrame.new(0, 1.5, 0) end elseif cmd == ";unheadsit" then if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 3, 0) end elseif cmd == ";orbit" and targetName ~= "" then local target = GetPlayerByFirstName(targetName) if OrbitLoop then OrbitLoop:Disconnect() end local angle = 0 OrbitLoop = RunService.Heartbeat:Connect(function() if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then angle = angle + 0.05 local offset = Vector3.new(math.cos(angle) * 8, 0, math.sin(angle) * 8) LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(target.Character.HumanoidRootPart.Position + offset, target.Character.HumanoidRootPart.Position) end end) elseif cmd == ";unorbit" then if OrbitLoop then OrbitLoop:Disconnect() OrbitLoop = nil end elseif cmd == ";follow" and targetName ~= "" then local target = GetPlayerByFirstName(targetName) if FollowLoop then FollowLoop:Disconnect() end FollowLoop = RunService.Heartbeat:Connect(function() if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 4) end end) elseif cmd == ";unfollow" then if FollowLoop then FollowLoop:Disconnect() FollowLoop = nil end end end) Window:SelectTab(1)