-- Arby.Services Phone UI - Smaller + Fixed Dragging & Buttons
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ArbyServicesPhone"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
ScreenGui.Parent = playerGui

-- Main Phone Frame (Smaller)
local PhoneFrame = Instance.new("Frame")
PhoneFrame.Name = "PhoneFrame"
PhoneFrame.Size = UDim2.new(0, 245, 0, 340)
PhoneFrame.Position = UDim2.new(0.5, -122.5, 0.5, -170)
PhoneFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
PhoneFrame.BorderSizePixel = 0
PhoneFrame.ClipsDescendants = true
PhoneFrame.Visible = true
PhoneFrame.Parent = ScreenGui

Instance.new("UICorner", PhoneFrame).CornerRadius = UDim.new(0, 24)

local Stroke = Instance.new("UIStroke", PhoneFrame)
Stroke.Thickness = 7
Stroke.Color = Color3.fromRGB(35, 35, 35)

-- Inner Screen
local Screen = Instance.new("Frame")
Screen.Size = UDim2.new(1, -10, 1, -10)
Screen.Position = UDim2.new(0, 5, 0, 5)
Screen.BackgroundColor3 = Color3.fromRGB(180, 20, 20)
Screen.BorderSizePixel = 0
Screen.Parent = PhoneFrame
Instance.new("UICorner", Screen).CornerRadius = UDim.new(0, 20)

-- Background Image
local Background = Instance.new("ImageLabel")
Background.Size = UDim2.new(1, 0, 1, 0)
Background.BackgroundTransparency = 1
Background.Image = "rbxassetid://99200728861959"
Background.ImageTransparency = 0.45
Background.Parent = Screen
Background.ZIndex = 1

-- Overlay
local Overlay = Instance.new("Frame", Screen)
Overlay.Size = UDim2.new(1,0,1,0)
Overlay.BackgroundColor3 = Color3.new(0,0,0)
Overlay.BackgroundTransparency = 0.5
Overlay.ZIndex = 2

-- Status Bar
local Status = Instance.new("Frame", Screen)
Status.Size = UDim2.new(1, 0, 0, 24)
Status.BackgroundTransparency = 1
Status.ZIndex = 10

local Time = Instance.new("TextLabel", Status)
Time.Size = UDim2.new(0.5, 0, 1, 0)
Time.Position = UDim2.new(0, 10, 0, 0)
Time.BackgroundTransparency = 1
Time.Text = "9:41"
Time.TextColor3 = Color3.new(1,1,1)
Time.TextXAlignment = Enum.TextXAlignment.Left
Time.Font = Enum.Font.GothamBold
Time.TextSize = 13
Time.ZIndex = 10

-- Notch
local Notch = Instance.new("Frame", Screen)
Notch.Size = UDim2.new(0, 82, 0, 20)
Notch.Position = UDim2.new(0.5, -41, 0, 3)
Notch.BackgroundColor3 = Color3.new(0,0,0)
Notch.ZIndex = 10
Instance.new("UICorner", Notch).CornerRadius = UDim.new(1,0)

-- Tab System
local TabBar = Instance.new("Frame", Screen)
TabBar.Size = UDim2.new(1, 0, 0, 35)
TabBar.Position = UDim2.new(0, 0, 0, 32)
TabBar.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
TabBar.BackgroundTransparency = 0.4
TabBar.ZIndex = 10
Instance.new("UICorner", TabBar).CornerRadius = UDim.new(0, 8)

local TabLayout = Instance.new("UIListLayout", TabBar)
TabLayout.FillDirection = Enum.FillDirection.Horizontal
TabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
TabLayout.Padding = UDim.new(0, 6)
TabLayout.SortOrder = Enum.SortOrder.LayoutOrder

local ContentArea = Instance.new("Frame", Screen)
ContentArea.Size = UDim2.new(1, 0, 1, -112)
ContentArea.Position = UDim2.new(0, 0, 0, 67)
ContentArea.BackgroundTransparency = 1
ContentArea.ClipsDescendants = true
ContentArea.ZIndex = 5

local currentTab = nil
local tabs = {}

local function createTab(name)
    local tabButton = Instance.new("TextButton")
    tabButton.Size = UDim2.new(0, 70, 1, -6)
    tabButton.BackgroundColor3 = Color3.fromRGB(200, 30, 30)
    tabButton.Text = name
    tabButton.TextColor3 = Color3.new(1,1,1)
    tabButton.TextSize = 14
    tabButton.Font = Enum.Font.GothamBold
    tabButton.ZIndex = 11
    tabButton.Parent = TabBar
    Instance.new("UICorner", tabButton).CornerRadius = UDim.new(0, 6)

    local scrolling = Instance.new("ScrollingFrame")
    scrolling.Size = UDim2.new(1, 0, 1, 0)
    scrolling.BackgroundTransparency = 1
    scrolling.ScrollBarThickness = 4
    scrolling.Visible = false
    scrolling.Parent = ContentArea

    local layout = Instance.new("UIListLayout", scrolling)
    layout.Padding = UDim.new(0, 6)
    layout.SortOrder = Enum.SortOrder.LayoutOrder

    table.insert(tabs, {button = tabButton, content = scrolling})

    tabButton.MouseButton1Click:Connect(function()
        if currentTab then currentTab.content.Visible = false end
        scrolling.Visible = true
        currentTab = {content = scrolling}

        for _, t in ipairs(tabs) do
            t.button.BackgroundColor3 = (t.content == scrolling) and Color3.fromRGB(255, 80, 80) or Color3.fromRGB(200, 30, 30)
        end
    end)

    return scrolling
end

-- Library
local Arby = {}

function Arby:CreateSection(title, parent)
    local lbl = Instance.new("TextLabel")
    lbl.Size = UDim2.new(1, -16, 0, 28)
    lbl.BackgroundTransparency = 1
    lbl.Text = "▶ " .. title
    lbl.TextColor3 = Color3.fromRGB(255, 80, 80)
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.Font = Enum.Font.GothamBold
    lbl.TextSize = 17
    lbl.Parent = parent
end

function Arby:CreateLabel(text, parent)
    local lbl = Instance.new("TextLabel")
    lbl.Size = UDim2.new(1, -16, 0, 38)
    lbl.BackgroundTransparency = 1
    lbl.Text = text
    lbl.TextColor3 = Color3.new(1,1,1)
    lbl.TextSize = 17
    lbl.Font = Enum.Font.GothamBold
    lbl.TextWrapped = true
    lbl.Parent = parent
    return lbl
end

function Arby:CreateButton(text, callback, parent)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, -16, 0, 46)
    btn.BackgroundColor3 = Color3.fromRGB(200, 30, 30)
    btn.Text = text
    btn.TextColor3 = Color3.new(1,1,1)
    btn.TextSize = 17
    btn.Font = Enum.Font.GothamBold
    btn.Parent = parent
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12)
    
    btn.MouseButton1Click:Connect(function()
        btn:TweenSize(UDim2.new(1, -24, 0, 42), "Out", "Quad", 0.1, true)
        task.wait(0.1)
        btn:TweenSize(UDim2.new(1, -16, 0, 46), "Out", "Quad", 0.1, true)
        if callback then callback() end
    end)
end

function Arby:CreateToggle(text, defaultState, callback, parent)
    local toggled = defaultState or false
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, -16, 0, 46)
    btn.BackgroundColor3 = toggled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(200, 30, 30)
    btn.Text = text .. " : " .. (toggled and "ON" or "OFF")
    btn.TextColor3 = Color3.new(1,1,1)
    btn.TextSize = 17
    btn.Font = Enum.Font.GothamBold
    btn.Parent = parent
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12)

    btn.MouseButton1Click:Connect(function()
        toggled = not toggled
        btn.BackgroundColor3 = toggled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(200, 30, 30)
        btn.Text = text .. " : " .. (toggled and "ON" or "OFF")
        if callback then callback(toggled) end
    end)

    if defaultState and callback then callback(defaultState) end
end

-- Discord Tag System
local tagConnection

local function addTag(character)
    local head = character:WaitForChild("Head", 3)
    if not head then return end
    if head:FindFirstChild("DiscordTag") then head.DiscordTag:Destroy() end

    local billboard = Instance.new("BillboardGui")
    billboard.Name = "DiscordTag"
    billboard.Adornee = head
    billboard.Size = UDim2.new(0, 200, 0, 50)
    billboard.StudsOffset = Vector3.new(0, 3, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = head

    local text = Instance.new("TextLabel")
    text.Size = UDim2.new(1, 0, 1, 0)
    text.BackgroundTransparency = 1
    text.Text = "ScorpioHub Discord.gg"
    text.TextColor3 = Color3.fromRGB(255, 0, 0)
    text.TextStrokeTransparency = 0
    text.TextStrokeColor3 = Color3.new(0,0,0)
    text.TextScaled = true
    text.Font = Enum.Font.GothamBold
    text.Parent = billboard
end

local function removeTag()
    local char = player.Character
    if char and char:FindFirstChild("Head") and char.Head:FindFirstChild("DiscordTag") then
        char.Head.DiscordTag:Destroy()
    end
end

-- Create Tabs
local HomeTab = createTab("Home")
local FarmsTab = createTab("Farms")
local MiscTab = createTab("Misc")

HomeTab.Visible = true
currentTab = {content = HomeTab}

-- Content
Arby:CreateSection("Arby.Services", HomeTab)
Arby:CreateLabel("Welcome", HomeTab)
Arby:CreateLabel("Reliable • Fast • Clean", HomeTab)
Arby:CreateButton("Start Script", function()
    loadstring(game:HttpGet("https://[Log in to view URL]"))()
end, HomeTab)

Arby:CreateSection("Farming", FarmsTab)
Arby:CreateToggle("Discord Tag", false, function(state)
    if state then
        if player.Character then addTag(player.Character) end
        if tagConnection then tagConnection:Disconnect() end
        tagConnection = player.CharacterAdded:Connect(addTag)
    else
        removeTag()
        if tagConnection then
            tagConnection:Disconnect()
            tagConnection = nil
        end
    end
end, FarmsTab)

Arby:CreateSection("Miscellaneous", MiscTab)
Arby:CreateButton("Copy Discord", function()
    setclipboard("https://[Log in to view URL]")
    print("✅ Discord link copied!")
end, MiscTab)

-- Bottom Bar
local BottomBar = Instance.new("Frame", Screen)
BottomBar.Size = UDim2.new(1, 0, 0, 40)
BottomBar.Position = UDim2.new(0, 0, 1, -40)
BottomBar.BackgroundColor3 = Color3.fromRGB(255,255,255)
BottomBar.BackgroundTransparency = 0.12
Instance.new("UICorner", BottomBar).CornerRadius = UDim.new(0, 14)

-- Close Button
local CloseBtn = Instance.new("TextButton", Screen)
CloseBtn.Size = UDim2.new(0, 28, 0, 28)
CloseBtn.Position = UDim2.new(1, -34, 0, 6)
CloseBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
CloseBtn.Text = "✕"
CloseBtn.TextColor3 = Color3.new(1,1,1)
CloseBtn.TextSize = 17
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.ZIndex = 15
Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(1,0)

-- Open Button
local OpenBtn = Instance.new("TextButton", ScreenGui)
OpenBtn.Size = UDim2.new(0, 55, 0, 55)
OpenBtn.Position = UDim2.new(0, 20, 1, -80)
OpenBtn.BackgroundColor3 = Color3.fromRGB(200, 30, 30)
OpenBtn.Text = "📱"
OpenBtn.TextSize = 26
OpenBtn.Font = Enum.Font.GothamBold
OpenBtn.Visible = false
OpenBtn.ZIndex = 20
Instance.new("UICorner", OpenBtn).CornerRadius = UDim.new(1,0)

-- Improved Dragging
local function makeDraggable(frame)
    local dragging = false
    local dragInput
    local dragStart
    local startPos

    frame.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = frame.Position
        end
    end)

    frame.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
            dragInput = input
        end
    end)

    game:GetService("UserInputService").InputChanged:Connect(function(input)
        if dragging and input == dragInput then
            local delta = input.Position - dragStart
            frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        end
    end)
end

makeDraggable(PhoneFrame)

-- Open / Close Functions
CloseBtn.MouseButton1Click:Connect(function()
    PhoneFrame.Visible = false
    OpenBtn.Visible = true
end)

OpenBtn.MouseButton1Click:Connect(function()
    PhoneFrame.Visible = true
    OpenBtn.Visible = false
end)

print("✅ Arby.Services Phone UI Loaded (Smaller + Fixed)!")

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: