Dragon Chat
Key RequiredUniversal

Dragon Chat

Universal Scriptbabdo5058babdo5058 603 views 2.4K executesUpdated Sep 22, 2026
Unrated
00
Lua Scriptโ€ข274 lines (9313 chars)
-- Dragooon Chat (Fixed Typing & Mobile Send)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Chat = game:GetService("Chat")
local localPlayer = Players.LocalPlayer

if _G.DragooonBubbleChatLoaded then
    if _G.DragooonBubbleChatGui then _G.DragooonBubbleChatGui:Destroy() end
end
_G.DragooonBubbleChatLoaded = true

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DragooonBubbleChat"
screenGui.ResetOnSpawn = false
_G.DragooonBubbleChatGui = screenGui

pcall(function()
    screenGui.Parent = game:GetService("CoreGui")
end)
if not screenGui.Parent then
    screenGui.Parent = localPlayer:WaitForChild("PlayerGui")
end

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 40, 0, 40)
toggleBtn.Position = UDim2.new(0, 15, 0.4, 0)
toggleBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 22)
toggleBtn.TextColor3 = Color3.fromRGB(0, 255, 200)
toggleBtn.Text = "๐Ÿ‡ง๐Ÿ‡ท"
toggleBtn.TextSize = 18
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.Parent = screenGui

local tCorner = Instance.new("UICorner")
tCorner.CornerRadius = UDim.new(1, 0)
tCorner.Parent = toggleBtn

local tStroke = Instance.new("UIStroke")
tStroke.Thickness = 2
tStroke.Color = Color3.fromRGB(0, 255, 200)
tStroke.Parent = toggleBtn

local tiktokBanner = Instance.new("Frame")
tiktokBanner.Size = UDim2.new(0, 240, 0, 50)
tiktokBanner.Position = UDim2.new(0, 70, 0, 15)
tiktokBanner.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
tiktokBanner.Visible = true
tiktokBanner.Parent = screenGui

local bBannerCorner = Instance.new("UICorner")
bBannerCorner.CornerRadius = UDim.new(0, 10)
bBannerCorner.Parent = tiktokBanner

local bBannerStroke = Instance.new("UIStroke")
bBannerStroke.Thickness = 2
bBannerStroke.Color = Color3.fromRGB(254, 44, 85)
bBannerStroke.Parent = tiktokBanner

local bannerText = Instance.new("TextButton")
bannerText.Size = UDim2.new(1, -35, 1, 0)
bannerText.BackgroundTransparency = 1
bannerText.TextColor3 = Color3.fromRGB(255, 255, 255)
bannerText.Text = " ๐ŸŽต TikTok: @0xdragon_404"
bannerText.TextSize = 11
bannerText.Font = Enum.Font.GothamBold
bannerText.TextXAlignment = Enum.TextXAlignment.Left
bannerText.Parent = tiktokBanner

local closeBannerBtn = Instance.new("TextButton")
closeBannerBtn.Size = UDim2.new(0, 25, 0, 25)
closeBannerBtn.Position = UDim2.new(1, -30, 0.5, -12)
closeBannerBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
closeBannerBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBannerBtn.Text = "X"
closeBannerBtn.TextSize = 12
closeBannerBtn.Font = Enum.Font.GothamBold
closeBannerBtn.Parent = tiktokBanner

local xCorner = Instance.new("UICorner")
xCorner.CornerRadius = UDim.new(1, 0)
xCorner.Parent = closeBannerBtn

closeBannerBtn.MouseButton1Click:Connect(function()
    tiktokBanner.Visible = false
end)

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 380, 0, 240)
mainFrame.Position = UDim2.new(0, 70, 0.4, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 18)
mainFrame.Visible = true
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = mainFrame

local mainStroke = Instance.new("UIStroke")
mainStroke.Thickness = 2.5
mainStroke.Color = Color3.fromRGB(0, 255, 200)
mainStroke.Parent = mainFrame

local dragging, dragStart, startPos
mainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then dragging = false end
        end)
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

task.spawn(function()
    while true do
        TweenService:Create(mainStroke, TweenInfo.new(2), {Color = Color3.fromRGB(255, 0, 120)}):Play()
        TweenService:Create(tStroke, TweenInfo.new(2), {Color = Color3.fromRGB(255, 0, 120)}):Play()
        TweenService:Create(bBannerStroke, TweenInfo.new(2), {Color = Color3.fromRGB(0, 255, 200)}):Play()
        task.wait(2)
        TweenService:Create(mainStroke, TweenInfo.new(2), {Color = Color3.fromRGB(0, 255, 200)}):Play()
        TweenService:Create(tStroke, TweenInfo.new(2), {Color = Color3.fromRGB(0, 255, 200)}):Play()
        TweenService:Create(bBannerStroke, TweenInfo.new(2), {Color = Color3.fromRGB(254, 44, 85)}):Play()
        task.wait(2)
    end
end)

toggleBtn.MouseButton1Click:Connect(function()
    mainFrame.Visible = not mainFrame.Visible
end)

local titleBar = Instance.new("TextLabel")
titleBar.Size = UDim2.new(1, 0, 0, 30)
titleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
titleBar.Text = " โœจ ุฏูเขชุฃู‘ุฌู‘ู€ู€ู€ู€ู€ู€ู€ู€ู€๐Ÿ‡ง๐Ÿ‡ทู€ู€ู€ู€ู€ู€ู€ูˆูŒู†ู โœจ"
titleBar.TextColor3 = Color3.fromRGB(255, 255, 255)
titleBar.TextSize = 13
titleBar.Font = Enum.Font.GothamBold
titleBar.Parent = mainFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 12)
titleCorner.Parent = titleBar

local chatScroll = Instance.new("ScrollingFrame")
chatScroll.Size = UDim2.new(1, -16, 1, -85)
chatScroll.Position = UDim2.new(0, 8, 0, 36)
chatScroll.BackgroundColor3 = Color3.fromRGB(8, 8, 12)
chatScroll.BorderSizePixel = 0
chatScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
chatScroll.ScrollBarThickness = 4
chatScroll.Parent = mainFrame

local uiList = Instance.new("UIListLayout")
uiList.SortOrder = Enum.SortOrder.LayoutOrder
uiList.Padding = UDim.new(0, 4)
uiList.Parent = chatScroll

local function addCleanMessage(text, isReminder)
    local msg = Instance.new("TextLabel")
    msg.Size = UDim2.new(1, 0, 0, 22)
    msg.BackgroundTransparency = 1
    msg.TextSize = 13
    msg.Font = Enum.Font.GothamBold
    msg.TextXAlignment = Enum.TextXAlignment.Left
    msg.Text = isReminder and ("โœฆ " .. text) or ("โœฆ [ุฏุฑุงุฌูˆู†]: " .. text)
    msg.Parent = chatScroll
    
    task.defer(function()
        chatScroll.CanvasSize = UDim2.new(0, 0, 0, uiList.AbsoluteContentSize.Y + 10)
        chatScroll.CanvasPosition = Vector2.new(0, chatScroll.CanvasSize.Y.Offset)
    end)
    
    task.spawn(function()
        while msg and msg.Parent do
            for i = 0, 1, 0.05 do
                if not msg or not msg.Parent then break end
                msg.TextColor3 = Color3.fromHSV(i, 1, 1)
                task.wait(0.1)
            end
        end
    end)
end

addCleanMessage("ุฃู‡ู„ุงู‹ ุจูƒ ูŠุง ุฏุฑุงุฌูˆู†.. ุฑุณุงุฆู„ูƒ ุณุชุธู‡ุฑ ููˆู‚ ุฑุฃุณูƒ ููŠ ุงู„ุดุงุช ุงู„ุฑุณู…ูŠ.", false)

local arabicReminders = {
    "ุตู„ู ุนู„ู‰ ุงู„ู†ุจูŠ ู…ุญู…ุฏ ุตู„ู‰ ุงู„ู„ู‡ ุนู„ูŠู‡ ูˆุณู„ู… ๐ŸŒธ",
    "ุณุจุญุงู† ุงู„ู„ู‡ ูˆุจุญู…ุฏู‡ ุณุจุญุงู† ุงู„ู„ู‡ ุงู„ุนุธูŠู… โœจ",
    "ู„ุง ุฅู„ู‡ ุฅู„ุง ุฃู†ุช ุณุจุญุงู†ูƒ ุฅู†ูŠ ูƒู†ุช ู…ู† ุงู„ุธุงู„ู…ูŠู† ๐Ÿคฒ",
    "ุงุณุชุบูุฑ ุงู„ู„ู‡ ุงู„ุนุธูŠู… ูˆุงุชูˆุจ ุฅู„ูŠู‡ ๐Ÿค",
    "ู„ุง ุญูˆู„ ูˆู„ุง ู‚ูˆุฉ ุฅู„ุง ุจุงู„ู„ู‡ ุงู„ุนู„ูŠ ุงู„ุนุธูŠู… ๐ŸŒฟ"
}

task.spawn(function()
    while true do
        task.wait(120)
        local randomReminder = arabicReminders[math.random(1, #arabicReminders)]
        addCleanMessage(randomReminder, true)
    end
end)

bannerText.MouseButton1Click:Connect(function()
    pcall(function()
        setclipboard("https://tiktok.com/@0xdragon_404")
    end)
end)

local chatBox = Instance.new("TextBox")
chatBox.Size = UDim2.new(1, -100, 0, 35)
chatBox.Position = UDim2.new(0, 8, 1, -42)
chatBox.BackgroundColor3 = Color3.fromRGB(22, 22, 32)
chatBox.TextColor3 = Color3.fromRGB(255, 255, 255)
chatBox.PlaceholderText = "ุงูƒุชุจ ุฑุณุงู„ุชูƒ ู‡ู†ุง..."
chatBox.Text = ""
chatBox.ClearTextOnFocus = false
chatBox.Parent = mainFrame

chatBox:GetPropertyChangedSignal("Text"):Connect(function()
    local txt = chatBox.Text
    if utf8.len(txt) > 200 then
        chatBox.Text = utf8.sub(txt, 1, 200)
    end
end)

local bCorner = Instance.new("UICorner")
bCorner.CornerRadius = UDim.new(0, 8)
bCorner.Parent = chatBox

local sendBtn = Instance.new("TextButton")
sendBtn.Size = UDim2.new(0, 80, 0, 35)
sendBtn.Position = UDim2.new(1, -88, 1, -42)
sendBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 100)
sendBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
sendBtn.Text = "ุฅุฑุณุงู„"
sendBtn.TextSize = 13
sendBtn.Font = Enum.Font.GothamBold
sendBtn.Parent = mainFrame

local sCorner = Instance.new("UICorner")
sCorner.CornerRadius = UDim.new(0, 8)
sCorner.Parent = sendBtn

local function executeSend()
    local txt = chatBox.Text
    if txt ~= "" then
        if utf8.len(txt) > 200 then
            addCleanMessage("โš ๏ธ ุฑุณุงู„ุฉ ุทูˆูŠู„ุฉ ุฌุฏุงู‹! ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ 200 ุญุฑู.", true)
        else
            chatBox.Text = ""
            addCleanMessage(txt, false)
            
            pcall(function()
                local char = localPlayer.Character
                if char and char:FindFirstChild("Head") then
                    Chat:Chat(char.Head, txt, Enum.ChatColor.White)
                end
            end)
        end
    end
end

sendBtn.MouseButton1Click:Connect(executeSend)
chatBox.FocusLost:Connect(function(enter)
    if enter then executeSend() end
end)

Features & Information

Dragooon Bubble Chat - Mobile & PC Support Draggable UI Custom Chat Above Head
#dragooon chat

Community Comments (2)

Maxim_67Maxim_67Sep 27, 2026

thanks

Maxim_67Maxim_67Sep 27, 2026

Is swearing allowed in this chat?

More Scripts for Universal Scripts