local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera -- GUI local gui = Instance.new("ScreenGui") gui.Parent = player:WaitForChild("PlayerGui") gui.ResetOnSpawn = false -- FRAME local frame = Instance.new("Frame") frame.Parent = gui frame.Size = UDim2.new(0,260,0,190) frame.Position = UDim2.new(0.4,0,0.4,0) frame.BackgroundColor3 = Color3.fromRGB(35,35,35) frame.Active = true frame.Selectable = true Instance.new("UICorner", frame).CornerRadius = UDim.new(0,18) Instance.new("UIStroke", frame).Color = Color3.fromRGB(255,0,0) ---------------------------------------------------------------- -- 🔥 SISTEMA DE DRAG UNIVERSAL (FUNCIONA EM PC E MOBILE) ---------------------------------------------------------------- local function makeDraggable(obj) local dragging = false local dragStart local startPos obj.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = obj.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) obj.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then if dragging then local delta = input.Position - dragStart obj.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end end) end makeDraggable(frame) -- FUNÇÃO PARA FORMATAR NÚMERO local function formatNumber(num) num = math.round(num * 10) / 10 if num % 1 == 0 then return tostring(math.floor(num)) else return tostring(num) end end -- TITLE local title = Instance.new("TextLabel") title.Parent = frame title.Size = UDim2.new(1,0,0,40) title.BackgroundTransparency = 1 title.Text = "Size Controller" title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true -- SCALE VALUE local currentScale = 1 local enabled = false local scaleLabel = Instance.new("TextLabel") scaleLabel.Parent = frame scaleLabel.Size = UDim2.new(1,0,0,35) scaleLabel.Position = UDim2.new(0,0,0.3,0) scaleLabel.BackgroundTransparency = 1 scaleLabel.TextColor3 = Color3.new(1,1,1) scaleLabel.TextScaled = true scaleLabel.Text = "Tamanho: 1" -- BOTÕES local plus = Instance.new("TextButton") plus.Parent = frame plus.Size = UDim2.new(0.35,0,0,35) plus.Position = UDim2.new(0.1,0,0.5,0) plus.Text = "+" plus.TextScaled = true plus.BackgroundColor3 = Color3.fromRGB(0,120,255) plus.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", plus).CornerRadius = UDim.new(0,14) local minus = Instance.new("TextButton") minus.Parent = frame minus.Size = UDim2.new(0.35,0,0,35) minus.Position = UDim2.new(0.55,0,0.5,0) minus.Text = "-" minus.TextScaled = true minus.BackgroundColor3 = Color3.fromRGB(255,120,0) minus.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", minus).CornerRadius = UDim.new(0,14) -- CAMERA local function updateCamera(scale) player.CameraMaxZoomDistance = 20 * scale player.CameraMinZoomDistance = 5 * scale end local function getStep(scale) if scale >= 150 then return 50 elseif scale >= 50 then return 10 elseif scale >= 10 then return 5 elseif scale >= 1 then return 1 else return 0.1 end end local function applyScale(scale) local char = player.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end local oldScale = char:GetScale() local oldPosition = root.Position char:ScaleTo(scale) task.wait() local heightBoost = (scale - oldScale) * 4 root.CFrame = CFrame.new( oldPosition.X, oldPosition.Y + heightBoost, oldPosition.Z ) updateCamera(scale) end local function resetScale() local char = player.Character if not char then return end char:ScaleTo(1) updateCamera(1) currentScale = 1 scaleLabel.Text = "Tamanho: 1" end -- TOGGLE local toggle = Instance.new("TextButton") toggle.Parent = frame toggle.Size = UDim2.new(0.8,0,0,35) toggle.Position = UDim2.new(0.1,0,0.75,0) toggle.Text = "Ativar" toggle.TextScaled = true toggle.BackgroundColor3 = Color3.fromRGB(0,170,0) toggle.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", toggle).CornerRadius = UDim.new(0,14) toggle.MouseButton1Click:Connect(function() if not enabled then applyScale(currentScale) enabled = true toggle.Text = "Desativar" toggle.BackgroundColor3 = Color3.fromRGB(170,0,0) else resetScale() enabled = false toggle.Text = "Ativar" toggle.BackgroundColor3 = Color3.fromRGB(0,170,0) end end) -- + plus.MouseButton1Click:Connect(function() local step = getStep(currentScale) currentScale += step currentScale = math.max(currentScale, 0.1) scaleLabel.Text = "Tamanho: "..formatNumber(currentScale) if enabled then applyScale(currentScale) end end) -- - minus.MouseButton1Click:Connect(function() local step = getStep(currentScale) currentScale -= step currentScale = math.max(currentScale, 0.1) scaleLabel.Text = "Tamanho: "..formatNumber(currentScale) if enabled then applyScale(currentScale) end end) -- MINIMIZE local mini = Instance.new("TextButton") mini.Parent = gui mini.Size = UDim2.new(0,55,0,55) mini.Position = frame.Position mini.Visible = false mini.Text = "+" mini.BackgroundColor3 = Color3.fromRGB(35,35,35) mini.TextColor3 = Color3.new(1,1,1) mini.TextScaled = true mini.Active = true Instance.new("UICorner", mini).CornerRadius = UDim.new(1,0) makeDraggable(mini) local minimizeBtn = Instance.new("TextButton") minimizeBtn.Parent = frame minimizeBtn.Size = UDim2.new(0,25,0,25) minimizeBtn.Position = UDim2.new(1,-30,0,5) minimizeBtn.Text = "-" minimizeBtn.BackgroundColor3 = Color3.fromRGB(80,80,80) minimizeBtn.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", minimizeBtn).CornerRadius = UDim.new(1,0) minimizeBtn.MouseButton1Click:Connect(function() frame.Visible = false mini.Position = frame.Position mini.Visible = true end) mini.MouseButton1Click:Connect(function() frame.Visible = true mini.Visible = false frame.Position = mini.Position end)