--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] --[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] -- CAMERA HUB VIEW SCRIPT (VERSÃO ATUALIZADA - ROTAÇÃO LIVRE + ZOOM/FOV) local Player = game.Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local Mouse = Player:GetMouse() local Camera = workspace.CurrentCamera local CamerasPosicionadas = {} local MaxCameras = 5 local CameraAtualIndice = 1 local FOVPadrao = 70 -- FOV padrão do Roblox -- Criando a Interface Principal local ScreenGui = Instance.new("ScreenGui", game.CoreGui) ScreenGui.Name = "CameraHubView" -- 1. Mensagem Inicial Alterada local Notificacao = Instance.new("Frame", ScreenGui) Notificacao.Size = UDim2.new(0, 320, 0, 120) Notificacao.Position = UDim2.new(0.5, -160, 0.4, 0) Notificacao.BackgroundColor3 = Color3.new(0, 0, 0) Notificacao.BorderSizePixel = 2 local NotificacaoTexto = Instance.new("TextLabel", Notificacao) NotificacaoTexto.Size = UDim2.new(1, 0, 1, 0) NotificacaoTexto.Text = "BEM-VINDO AO CAMERA HUB ATUALIZADO: 29/05/2026\n\nNOVIDADES: AGORA VOCE PODE DAR ZOOM NA CAMERA" NotificacaoTexto.TextColor3 = Color3.new(1, 1, 1) NotificacaoTexto.TextWrapped = true NotificacaoTexto.BackgroundTransparency = 1 NotificacaoTexto.TextSize = 14 -- 2. Menu Principal local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Size = UDim2.new(0, 250, 0, 420) -- Aumentado levemente para caber os novos botões MainFrame.Position = UDim2.new(0.1, 0, 0.3, 0) MainFrame.BackgroundColor3 = Color3.new(0, 0, 0) MainFrame.Active = true MainFrame.Draggable = true MainFrame.Visible = false local Stroke = Instance.new("UIStroke", MainFrame) Stroke.Color = Color3.new(1, 1, 1) Stroke.Thickness = 2 task.delay(7, function() if Notificacao then Notificacao:Destroy() end MainFrame.Visible = true end) local Title = Instance.new("TextLabel", MainFrame) Title.Size = UDim2.new(1, -30, 0, 30) Title.Text = "CAMERA HUB VIEW" Title.TextColor3 = Color3.new(1, 1, 1) Title.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) local CloseBtn = Instance.new("TextButton", MainFrame) CloseBtn.Size = UDim2.new(0, 30, 0, 30) CloseBtn.Position = UDim2.new(1, -30, 0, 0) CloseBtn.Text = "X" CloseBtn.BackgroundColor3 = Color3.new(0.7, 0, 0) CloseBtn.TextColor3 = Color3.new(1, 1, 1) CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) local ContentFrame = Instance.new("ScrollingFrame", MainFrame) ContentFrame.Size = UDim2.new(1, 0, 1, -40) ContentFrame.Position = UDim2.new(0, 0, 0, 40) ContentFrame.BackgroundTransparency = 1 ContentFrame.CanvasSize = UDim2.new(0, 0, 1.4, 0) -- Aumentado o canvas para scroll ContentFrame.ScrollBarThickness = 5 local UIList = Instance.new("UIListLayout", ContentFrame) UIList.Padding = UDim.new(0, 10) UIList.HorizontalAlignment = Enum.HorizontalAlignment.Center local function CriarBotao(texto, cor) local btn = Instance.new("TextButton", ContentFrame) btn.Size = UDim2.new(0, 200, 0, 40) btn.Text = texto btn.BackgroundColor3 = cor or Color3.new(1, 1, 1) btn.TextColor3 = (cor == Color3.new(1, 1, 1) or cor == nil) and Color3.new(0, 0, 0) or Color3.new(1, 1, 1) return btn end local StatusLabel = Instance.new("TextLabel", ContentFrame) StatusLabel.Size = UDim2.new(0, 200, 0, 30) StatusLabel.Text = "CAMERA(S) RESTANTE(S): " .. MaxCameras StatusLabel.BackgroundTransparency = 1 StatusLabel.TextColor3 = Color3.new(1, 1, 1) local PegarCamBtn = CriarBotao("PEGAR CAMERA") local VerCamInput = Instance.new("TextBox", ContentFrame) VerCamInput.Size = UDim2.new(0, 200, 0, 40) VerCamInput.PlaceholderText = "NUMERO DA CAMERA (1-5)" VerCamInput.Text = "" local VerCamBtn = CriarBotao("VER CAMERA", Color3.new(0.2, 0.2, 0.2)) -- NOVA FUNÇÃO: SEÇÃO DE AJUSTE DE FOV / ZOOM local FOVLabel = Instance.new("TextLabel", ContentFrame) FOVLabel.Size = UDim2.new(0, 200, 0, 20) FOVLabel.Text = "AJUSTE POV / ZOOM (FOV: " .. Camera.FieldOfView .. ")" FOVLabel.BackgroundTransparency = 1 FOVLabel.TextColor3 = Color3.new(1, 1, 1) local FOVContainer = Instance.new("Frame", ContentFrame) FOVContainer.Size = UDim2.new(0, 200, 0, 40) FOVContainer.BackgroundTransparency = 1 local FOVMenosBtn = Instance.new("TextButton", FOVContainer) FOVMenosBtn.Size = UDim2.new(0, 95, 1, 0) FOVMenosBtn.Position = UDim2.new(0, 0, 0, 0) FOVMenosBtn.Text = "ZOOM (-)" FOVMenosBtn.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3) FOVMenosBtn.TextColor3 = Color3.new(1, 1, 1) local FOVMaisBtn = Instance.new("TextButton", FOVContainer) FOVMaisBtn.Size = UDim2.new(0, 95, 1, 0) FOVMaisBtn.Position = UDim2.new(1, -95, 0, 0) FOVMaisBtn.Text = "AFASTAR (+)" FOVMaisBtn.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3) FOVMaisBtn.TextColor3 = Color3.new(1, 1, 1) local ResetCamBtn = CriarBotao("VOLTAR AO PERSONAGEM", Color3.new(0.2, 0.2, 0.2)) local ApagarBtn = CriarBotao("APAGAR TODAS AS CAMERAS", Color3.new(0.8, 0, 0)) -- Lógica dos botões de ZOOM (POV) FOVMenosBtn.MouseButton1Click:Connect(function() if Camera.FieldOfView > 10 then -- Limite para não inverter a tela Camera.FieldOfView = Camera.FieldOfView - 5 FOVLabel.Text = "AJUSTE POV / ZOOM (FOV: " .. Camera.FieldOfView .. ")" end end) FOVMaisBtn.MouseButton1Click:Connect(function() if Camera.FieldOfView < 120 then -- Limite máximo de visão panorâmica Camera.FieldOfView = Camera.FieldOfView + 5 FOVLabel.Text = "AJUSTE POV / ZOOM (FOV: " .. Camera.FieldOfView .. ")" end end) local function DarItem() local Tool = Instance.new("Tool") Tool.Name = "Camera View" Tool.RequiresHandle = false Tool.Parent = Player.Backpack Tool.Activated:Connect(function() if CamerasPosicionadas[CameraAtualIndice] then CamerasPosicionadas[CameraAtualIndice]:Destroy() end local Pos = Mouse.Hit.p local CamPart = Instance.new("Part", workspace) CamPart.Name = "Cam_" .. CameraAtualIndice CamPart.Size = Vector3.new(1, 1, 1) CamPart.Position = Pos + Vector3.new(0, 1, 0) CamPart.Anchored = true CamPart.CanCollide = false CamPart.Transparency = 0.6 CamPart.Color = Color3.new(0, 1, 0) CamPart.Shape = Enum.PartType.Ball local Billboard = Instance.new("BillboardGui", CamPart) Billboard.Size = UDim2.new(0, 50, 0, 50) Billboard.AlwaysOnTop = true Billboard.ExtentsOffset = Vector3.new(0, 2, 0) local Label = Instance.new("TextLabel", Billboard) Label.Size = UDim2.new(1, 0, 1, 0) Label.Text = tostring(CameraAtualIndice) Label.BackgroundTransparency = 1 Label.TextColor3 = Color3.new(1, 1, 1) Label.TextSize = 25 CamerasPosicionadas[CameraAtualIndice] = CamPart CameraAtualIndice = CameraAtualIndice + 1 if CameraAtualIndice > MaxCameras then CameraAtualIndice = 1 end local count = 0 for _ in pairs(CamerasPosicionadas) do count = count + 1 end StatusLabel.Text = "CAMERA(S) RESTANTE(S): " .. (MaxCameras - count) Tool:Destroy() end) end PegarCamBtn.MouseButton1Click:Connect(function() DarItem() end) VerCamBtn.MouseButton1Click:Connect(function() local num = tonumber(VerCamInput.Text) if num and CamerasPosicionadas[num] then Camera.CameraType = Enum.CameraType.Custom Camera.CameraSubject = CamerasPosicionadas[num] else VerCamInput.Text = "A CAMERA NAO EXISTE" task.wait(1.5) VerCamInput.Text = "" end end) ResetCamBtn.MouseButton1Click:Connect(function() Camera.CameraType = Enum.CameraType.Custom Camera.FieldOfView = FOVPadrao -- Restaura o zoom original ao voltar pro personagem FOVLabel.Text = "AJUSTE POV / ZOOM (FOV: " .. Camera.FieldOfView .. ")" if Player.Character and Player.Character:FindFirstChild("Humanoid") then Camera.CameraSubject = Player.Character.Humanoid end end) ApagarBtn.MouseButton1Click:Connect(function() for _, v in pairs(CamerasPosicionadas) do v:Destroy() end CamerasPosicionadas = {} CameraAtualIndice = 1 Camera.FieldOfView = FOVPadrao FOVLabel.Text = "AJUSTE POV / ZOOM (FOV: " .. Camera.FieldOfView .. ")" StatusLabel.Text = "CAMERA(S) RESTANTE(S): " .. MaxCameras end)