-- REMOTE CONTROL GUI FINAL (FULL INTEGRATED) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local selected local active = false local mode = "CAR" local turn, throttle = 0,0 local pedalsCreated = false local MAX_SIZE = Vector3.new(20,20,20) -- limite de tamanho do objeto -- ================= SCREEN GUI ================= local gui = Instance.new("ScreenGui") gui.Name = "RemoteGUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- ================= MAIN FRAME ================= local frame = Instance.new("Frame") frame.Parent = gui frame.Size = UDim2.new(0, 140, 0, 180) frame.Position = UDim2.new(0.75,0,0.3,0) frame.BackgroundColor3 = Color3.fromRGB(40,40,40) frame.BorderSizePixel = 0 frame.Active = true frame.ClipsDescendants = false -- ===== TITLE ===== local title = Instance.new("TextLabel") title.Parent = frame title.Size = UDim2.new(1,0,0,25) title.BackgroundColor3 = Color3.fromRGB(25,25,25) title.Text = "REMOTE CONTROL" title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true title.Font = Enum.Font.SourceSansBold -- ===== LAYOUT ===== local layout = Instance.new("UIListLayout") layout.Parent = frame layout.Padding = UDim.new(0,4) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center -- ===== BUTTON CREATOR ===== local function createButton(text) local b = Instance.new("TextButton") b.Parent = frame b.Size = UDim2.new(0.8,0,0,26) b.BackgroundColor3 = Color3.fromRGB(70,70,70) b.Text = text b.TextScaled = true b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.SourceSans b.BorderSizePixel = 0 b.AutoButtonColor = true return b end -- ===== MAIN BUTTONS ===== local btnSelect = createButton("📌 SELECT") local btnPedals = createButton("🎮 PEDALS") local btnMode = createButton("🚗 CAR") local btnActivate = createButton("▶ ACTIVATE") local btnDelete = createButton("❌ DELETE TARGET") -- ================= DRAG GUI ================= local dragging, dragInput, dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) RunService.RenderStepped:Connect(function() if dragging and dragInput then local delta = dragInput.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- ================= SECONDARY GUI (OPEN/CLOSE) ================= local secondFrame = Instance.new("Frame") secondFrame.Parent = gui secondFrame.Size = UDim2.new(0,36,0,36) secondFrame.Position = UDim2.new(0,10,0.3,0) secondFrame.BackgroundTransparency = 0.5 secondFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) local btnToggle = Instance.new("TextButton") btnToggle.Parent = secondFrame btnToggle.Size = UDim2.new(1,0,1,0) btnToggle.Text = "≡" btnToggle.TextScaled = true btnToggle.BackgroundTransparency = 1 btnToggle.TextColor3 = Color3.new(1,1,1) btnToggle.BorderSizePixel = 0 btnToggle.MouseButton1Click:Connect(function() frame.Visible = not frame.Visible end) -- ================= HIGHLIGHT CENTER CROSSHAIR ================= local highlight = Instance.new("Highlight") highlight.Parent = gui highlight.FillColor = Color3.fromRGB(0,255,255) highlight.OutlineColor = Color3.fromRGB(255,255,255) highlight.Adornee = nil RunService.RenderStepped:Connect(function() local camera = workspace.CurrentCamera local center = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2) local unitRay = camera:ScreenPointToRay(center.X, center.Y) local ray = Ray.new(unitRay.Origin, unitRay.Direction*500) local part = workspace:FindPartOnRayWithIgnoreList(ray, {player.Character}) highlight.Adornee = part end) -- ================= BUTTON FUNCTIONS ================= local function limitSize(obj) if obj:IsA("BasePart") then local size = obj.Size obj.Size = Vector3.new( math.min(size.X, MAX_SIZE.X), math.min(size.Y, MAX_SIZE.Y), math.min(size.Z, MAX_SIZE.Z) ) end end btnSelect.MouseButton1Click:Connect(function() if highlight.Adornee then selected = highlight.Adornee limitSize(selected) end end) btnDelete.MouseButton1Click:Connect(function() selected = nil highlight.Adornee = nil end) -- ================= CREATE PEDALS ================= btnPedals.MouseButton1Click:Connect(function() if pedalsCreated then return end pedalsCreated = true local turnGui = Instance.new("Frame", gui) turnGui.Size = UDim2.new(0.15,0,0.2,0) turnGui.Position = UDim2.new(0.02,0,0.65,0) turnGui.BackgroundTransparency = 1 local left = Instance.new("TextButton", turnGui) left.Size = UDim2.new(0.45,0,1,0) left.Text = "⬅" left.TextScaled = true left.BackgroundColor3 = Color3.fromRGB(60,60,60) left.TextColor3 = Color3.new(1,1,1) left.BorderSizePixel = 0 local right = Instance.new("TextButton", turnGui) right.Size = UDim2.new(0.45,0,1,0) right.Position = UDim2.new(0.55,0,0,0) right.Text = "➡" right.TextScaled = true right.BackgroundColor3 = Color3.fromRGB(60,60,60) right.TextColor3 = Color3.new(1,1,1) right.BorderSizePixel = 0 left.MouseButton1Down:Connect(function() turn = 1 end) left.MouseButton1Up:Connect(function() turn = 0 end) right.MouseButton1Down:Connect(function() turn = -1 end) right.MouseButton1Up:Connect(function() turn = 0 end) local throttleGui = Instance.new("Frame", gui) throttleGui.Size = UDim2.new(0.15,0,0.2,0) throttleGui.Position = UDim2.new(0.78,0,0.65,0) throttleGui.BackgroundTransparency = 1 local accel = Instance.new("TextButton", throttleGui) accel.Size = UDim2.new(1,0,0.45,0) accel.Text = "⬆" accel.TextScaled = true accel.BackgroundColor3 = Color3.fromRGB(0,170,255) accel.TextColor3 = Color3.new(1,1,1) accel.BorderSizePixel = 0 local brake = Instance.new("TextButton", throttleGui) brake.Size = UDim2.new(1,0,0.45,0) brake.Position = UDim2.new(0,0,0.55,0) brake.Text = "⬇" brake.TextScaled = true brake.BackgroundColor3 = Color3.fromRGB(255,0,0) brake.TextColor3 = Color3.new(1,1,1) brake.BorderSizePixel = 0 accel.MouseButton1Down:Connect(function() throttle = 1 end) accel.MouseButton1Up:Connect(function() throttle = 0 end) brake.MouseButton1Down:Connect(function() throttle = -1 end) brake.MouseButton1Up:Connect(function() throttle = 0 end) end) -- ================= MODE TOGGLE ================= btnMode.MouseButton1Click:Connect(function() if mode == "CAR" then mode = "PLANE" btnMode.Text = "✈️ PLANE" else mode = "CAR" btnMode.Text = "🚗 CAR" end end) -- ================= ACTIVATE ================= local vel, gyro local function activate() if not selected then return end vel = Instance.new("BodyVelocity", selected) vel.MaxForce = Vector3.new(1e5,1e5,1e5) -- velocidade ilimitada gyro = Instance.new("BodyGyro", selected) gyro.MaxTorque = Vector3.new(0,1e5,0) gyro.CFrame = selected.CFrame active = true end local function deactivate() active = false if vel then vel:Destroy() end if gyro then gyro:Destroy() end end btnActivate.MouseButton1Click:Connect(function() if active then deactivate() btnActivate.Text = "▶ ACTIVATE" else activate() btnActivate.Text = "⏹ DEACTIVATE" end end) -- ================= MOVEMENT ================= RunService.RenderStepped:Connect(function() if not active or not selected then return end if mode == "CAR" then vel.Velocity = selected.CFrame.LookVector * throttle * 1e5 -- ilimitado gyro.CFrame *= CFrame.Angles(0, math.rad(turn*2),0) else vel.Velocity = selected.CFrame.LookVector * math.max(throttle,0) * 1e5 gyro.CFrame *= CFrame.Angles(0, math.rad(turn*1.5), math.rad(-turn*6)) end end)