
Keyless VerifiedUniversal

--========================================================--
-- 🚀 ANSHUU CHAT -- Gemini AI & Cross-Server Hub
-- STRICT OWNER: anshuuxdivine ONLY
-- SINGLE GLOBAL ROOM ENGINE
--========================================================--
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
--========================================================--
-- CONFIGURATION
--========================================================--
local FIREBASE_URL = "https://YOUR-DATABASE-NAME.firebaseio.com"
local CHAT_ROOM_PATH = "/global_main_room.json" -- Single Global Server Room Path
local OWNER_USERNAME = "anshuuxdivine"
local CLIENT_ID = HttpService:GenerateGUID(false)
--========================================================--
-- CROSS-EXECUTOR HTTP WRAPPER
--========================================================--
local function HttpRequest(options)
local req = (syn and syn.request) or (http and http.request) or http_request or request
if not req then return nil end
local success, res = pcall(req, options)
if success then return res end
return nil
end
--========================================================--
-- STRICT OWNER CHECK
--========================================================--
local function IsOwner(username)
if not username then return false end
return tostring(username):lower():gsub("%s+", "") == OWNER_USERNAME:lower()
end
--========================================================--
-- RP NAME DETECTION
--========================================================--
local function GetRPName(player)
if not player then return "Unknown" end
local character = player.Character
if character then
for _, object in ipairs(character:GetDescendants()) do
if object:IsA("TextLabel") and object.Visible then
local objName = object.Name:lower()
if (objName:find("rp") or objName:find("roleplay") or objName:find("nametag") or objName == "name") then
local text = object.Text
if text and text ~= "" and not text:find("ANSHUU CHAT") then
return text
end
end
end
end
end
return (player.DisplayName and player.DisplayName ~= "") and player.DisplayName or player.Name
end
--========================================================--
-- SCREEN GUI SETUP
--========================================================--
local oldGui = LocalPlayer.PlayerGui:FindFirstChild("AnshuuChatUI")
if oldGui then oldGui:Destroy() end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AnshuuChatUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
ScreenGui.Parent = LocalPlayer.PlayerGui
--========================================================--
-- MAIN CONTAINER
--========================================================--
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainContainer"
MainFrame.Size = UDim2.new(0, 330, 0, 310)
MainFrame.Position = UDim2.new(0.02, 0, 0.35, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
MainFrame.BackgroundTransparency = 0.08
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainFrame
--========================================================--
-- TITLE HEADER
--========================================================--
local Title = Instance.new("TextLabel")
Title.Name = "ChatTitle"
Title.Size = UDim2.new(1, -45, 0, 30)
Title.Position = UDim2.new(0, 10, 0, 2)
Title.BackgroundTransparency = 1
Title.Text = "🚀 ANSHUU CHAT [GLOBAL] 🚀"
Title.TextSize = 14
Title.Font = Enum.Font.GothamBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = MainFrame
local RGBObjects = {}
RGBObjects[Title] = true
--========================================================--
-- MINIMIZE BUTTON
--========================================================--
local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Size = UDim2.new(0, 24, 0, 24)
MinimizeBtn.Position = UDim2.new(1, -30, 0, 5)
MinimizeBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
MinimizeBtn.Text = "-"
MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeBtn.TextSize = 16
MinimizeBtn.Font = Enum.Font.GothamBold
MinimizeBtn.Parent = MainFrame
local MinCorner = Instance.new("UICorner")
MinCorner.CornerRadius = UDim.new(0, 6)
MinCorner.Parent = MinimizeBtn
--========================================================--
-- CONTENT & SCROLL AREA
--========================================================--
local ContentHolder = Instance.new("Frame")
ContentHolder.Size = UDim2.new(1, 0, 1, -35)
ContentHolder.Position = UDim2.new(0, 0, 0, 35)
ContentHolder.BackgroundTransparency = 1
ContentHolder.Parent = MainFrame
local ScrollContainer = Instance.new("ScrollingFrame")
ScrollContainer.Size = UDim2.new(1, -16, 1, -45)
ScrollContainer.Position = UDim2.new(0, 8, 0, 0)
ScrollContainer.BackgroundTransparency = 1
ScrollContainer.BorderSizePixel = 0
ScrollContainer.ScrollBarThickness = 4
ScrollContainer.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollContainer.Parent = ContentHolder
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.Parent = ScrollContainer
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
ScrollContainer.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 10)
ScrollContainer.CanvasPosition = Vector2.new(0, math.max(0, UIListLayout.AbsoluteContentSize.Y))
end)
--========================================================--
-- INPUT BOX
--========================================================--
local InputBox = Instance.new("TextBox")
InputBox.Size = UDim2.new(1, -16, 0, 32)
InputBox.Position = UDim2.new(0, 8, 1, -38)
InputBox.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
InputBox.PlaceholderText = "Type '@gemini <prompt>' to ask AI..."
InputBox.PlaceholderColor3 = Color3.fromRGB(140, 140, 150)
InputBox.Text = ""
InputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
InputBox.TextSize = 13
InputBox.Font = Enum.Font.Gotham
InputBox.ClearTextOnFocus = false
InputBox.Parent = ContentHolder
local InputCorner = Instance.new("UICorner")
InputCorner.CornerRadius = UDim.new(0, 8)
InputCorner.Parent = InputBox
--========================================================--
-- MINIMIZE LOGIC
--========================================================--
local minimized = false
MinimizeBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
ContentHolder.Visible = false
MainFrame:TweenSize(UDim2.new(0, 330, 0, 35), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.2, true)
MinimizeBtn.Text = "+"
else
MainFrame:TweenSize(UDim2.new(0, 330, 0, 310), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.2, true)
task.delay(0.2, function()
if not minimized then ContentHolder.Visible = true end
end)
MinimizeBtn.Text = "-"
end
end)
--========================================================--
-- REALTIME RGB ENGINE
--========================================================--
RunService.RenderStepped:Connect(function()
local hue = (os.clock() * 0.35) % 1
local rgbColor = Color3.fromHSV(hue, 0.9, 1)
for object, _ in pairs(RGBObjects) do
if object and object.Parent then
object.TextColor3 = rgbColor
else
RGBObjects[object] = nil
end
end
end)
--========================================================--
-- CHAT MESSAGE RENDERER
--========================================================--
local function RenderChatMessage(data)
if type(data) ~= "table" then return end
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, 0, 0, 42)
Frame.BackgroundTransparency = 1
Frame.Parent = ScrollContainer
-- Avatar Display
local Avatar = Instance.new("ImageLabel")
Avatar.Size = UDim2.new(0, 30, 0, 30)
Avatar.Position = UDim2.new(0, 0, 0, 2)
Avatar.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
Avatar.BorderSizePixel = 0
Avatar.Parent = Frame
local AvatarCorner = Instance.new("UICorner")
AvatarCorner.CornerRadius = UDim.new(1, 0)
AvatarCorner.Parent = Avatar
if data.isGemini then
Avatar.Image = "rbxassetid://10888331510"
elseif tonumber(data.userId) then
task.spawn(function()
pcall(function()
Avatar.Image = Players:GetUserThumbnailAsync(
tonumber(data.userId),
Enum.ThumbnailType.HeadShot,
Enum.ThumbnailSize.Size100x100
)
end)
end)
end
-- Name Layout Frame
local NameContainer = Instance.new("Frame")
NameContainer.Size = UDim2.new(1, -38, 0, 17)
NameContainer.Position = UDim2.new(0, 36, 0, 0)
NameContainer.BackgroundTransparency = 1
NameContainer.Parent = Frame
local NameLayout = Instance.new("UIListLayout")
NameLayout.FillDirection = Enum.FillDirection.Horizontal
NameLayout.Padding = UDim.new(0, 4)
NameLayout.Parent = NameContainer
-- TAGS
local msgUsername = tostring(data.username or "")
if IsOwner(msgUsername) then
local OwnerTag = Instance.new("TextLabel")
OwnerTag.AutomaticSize = Enum.AutomaticSize.X
OwnerTag.Size = UDim2.new(0, 0, 1, 0)
OwnerTag.BackgroundTransparency = 1
OwnerTag.Text = "[👑 OWNER]"
OwnerTag.TextSize = 12
OwnerTag.Font = Enum.Font.GothamBold
OwnerTag.Parent = NameContainer
RGBObjects[OwnerTag] = true
elseif data.isGemini then
local AITag = Instance.new("TextLabel")
AITag.AutomaticSize = Enum.AutomaticSize.X
AITag.Size = UDim2.new(0, 0, 1, 0)
AITag.BackgroundTransparency = 1
AITag.Text = "[🤖 AI]"
AITag.TextColor3 = Color3.fromRGB(0, 180, 255)
AITag.TextSize = 12
AITag.Font = Enum.Font.GothamBold
AITag.Parent = NameContainer
end
-- RP / DISPLAY NAME
local RPName = Instance.new("TextLabel")
RPName.AutomaticSize = Enum.AutomaticSize.X
RPName.Size = UDim2.new(0, 0, 1, 0)
RPName.BackgroundTransparency = 1
local rawName = tostring(data.rpName or data.displayName or data.username or "Unknown")
RPName.Text = (rawName ~= "" and rawName) or "Unknown"
RPName.TextSize = 12
RPName.Font = Enum.Font.GothamBold
RPName.Parent = NameContainer
if IsOwner(msgUsername) then
RGBObjects[RPName] = true
elseif data.isGemini then
RPName.TextColor3 = Color3.fromRGB(100, 200, 255)
else
RPName.TextColor3 = Color3.fromRGB(220, 220, 230)
end
-- Message Body
local Message = Instance.new("TextLabel")
Message.Size = UDim2.new(1, -38, 0, 20)
Message.Position = UDim2.new(0, 36, 0, 17)
Message.BackgroundTransparency = 1
Message.Text = tostring(data.message or "")
Message.TextColor3 = Color3.fromRGB(255, 255, 255)
Message.TextSize = 12
Message.Font = Enum.Font.Gotham
Message.TextXAlignment = Enum.TextXAlignment.Left
Message.TextWrapped = true
Message.Parent = Frame
end
--========================================================--
-- GEMINI AI API HANDLER
--========================================================--
local function FetchGeminiResponse(userPrompt)
local query = HttpService:UrlEncode(userPrompt)
local apiUrl = "https://api.popcat.xyz/chatbot?msg=" .. query
local response = HttpRequest({
Url = apiUrl,
Method = "GET"
})
if response and response.StatusCode == 200 then
local success, result = pcall(function() return HttpService:JSONDecode(response.Body) end)
if success and result and result.response then
return result.response
end
end
return "Mujhe aapke sawaal ka jawaab process karne me problem hui. Kripya firse try karein!"
end
--========================================================--
-- SEND MESSAGE FUNCTION
--========================================================--
local function SendMessage(message)
message = tostring(message or "")
if message:match("^%s*$") then return end
if #message > 300 then message = message:sub(1, 300) end
local payload = {
rpName = GetRPName(LocalPlayer),
username = LocalPlayer.Name,
displayName = LocalPlayer.DisplayName,
userId = LocalPlayer.UserId,
message = message,
isOwner = IsOwner(LocalPlayer.Name),
timestamp = os.time(),
clientId = CLIENT_ID
}
-- Instant Local Render
RenderChatMessage(payload)
-- Global Firebase Dispatch (Single Server Room)
if not FIREBASE_URL:find("YOUR-DATABASE-NAME") then
task.spawn(function()
HttpRequest({
Url = FIREBASE_URL .. CHAT_ROOM_PATH,
Method = "POST",
Headers = { ["Content-Type"] = "application/json" },
Body = HttpService:JSONEncode(payload)
})
end)
end
-- GEMINI AI COMMAND CHECK (@gemini prompt)
if message:lower():sub(1, 7) == "@gemini" then
local prompt = message:sub(8):match("^%s*(.-)%s*$")
if prompt and prompt ~= "" then
RenderChatMessage({
rpName = "Gemini AI",
username = "GEMINI_BOT",
isGemini = true,
message = "Thinking...",
timestamp = os.time()
})
task.spawn(function()
local aiResponse = FetchGeminiResponse(prompt)
local aiPayload = {
rpName = "Gemini AI",
username = "GEMINI_BOT",
isGemini = true,
message = aiResponse,
timestamp = os.time(),
clientId = CLIENT_ID
}
RenderChatMessage(aiPayload)
if not FIREBASE_URL:find("YOUR-DATABASE-NAME") then
HttpRequest({
Url = FIREBASE_URL .. CHAT_ROOM_PATH,
Method = "POST",
Headers = { ["Content-Type"] = "application/json" },
Body = HttpService:JSONEncode(aiPayload)
})
end
end)
end
end
end
--========================================================--
-- SINGLE GLOBAL ROOM POLLING ENGINE
--========================================================--
local renderedKeys = {}
local function FetchGlobalRoomMessages()
if FIREBASE_URL:find("YOUR-DATABASE-NAME") then return end
local res = HttpRequest({ Url = FIREBASE_URL .. CHAT_ROOM_PATH, Method = "GET" })
if not res then return end
if res.StatusCode == 200 and res.Body ~= "null" then
local success, data = pcall(function() return HttpService:JSONDecode(res.Body) end)
if success and type(data) == "table" then
local list = {}
for key, msg in pairs(data) do
if type(msg) == "table" then
msg.key = key
table.insert(list, msg)
end
end
table.sort(list, function(a, b) return (a.timestamp or 0) < (b.timestamp or 0) end)
for _, msg in ipairs(list) do
if not renderedKeys[msg.key] then
renderedKeys[msg.key] = true
if msg.clientId ~= CLIENT_ID then
RenderChatMessage(msg)
end
end
end
end
end
end
--========================================================--
-- INPUT LISTENERS & INITIALIZATION
--========================================================--
InputBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
local msg = InputBox.Text
InputBox.Text = ""
SendMessage(msg)
end
end)
-- Initial System Online Message
RenderChatMessage({
rpName = "SYSTEM",
username = "SYSTEM",
userId = LocalPlayer.UserId,
message = "⚡ ANSHUU CHAT ONLINE • JOINED SINGLE GLOBAL ROOM (@gemini)",
isOwner = false
})
-- Continuous Global Room Synchronization Loop
task.spawn(function()
while true do
pcall(FetchGlobalRoomMessages)
task.wait(1.5)
end
end)No comments yet for this script.


![[NEW] Nore Hub](https://scriptblox.com/images/script/0-1791028937811.png)
