Chat:  BYPASS DO NOT SHOW TO Public
Key RequiredUniversal

Chat: BYPASS DO NOT SHOW TO Public

Universal ScriptBestpianoplayer17Bestpianoplayer17 481 views 253 executesUpdated Oct 2, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•628 lines (14356 chars)
-- ONE LocalScript
-- Put in StarterPlayer > StarterPlayerScripts

local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local LP = Players.LocalPlayer
local PG = LP:WaitForChild("PlayerGui")

--==================================================
-- COLORS
--==================================================

local BLUE = Color3.fromRGB(0,170,255)
local CYAN = Color3.fromRGB(0,255,255)
local PURPLE = Color3.fromRGB(150,70,255)

local BG = Color3.fromRGB(7,9,14)
local PANEL = Color3.fromRGB(15,18,27)
local PANEL2 = Color3.fromRGB(24,28,40)

local WHITE = Color3.fromRGB(245,248,255)
local GRAY = Color3.fromRGB(145,150,165)

--==================================================
-- MAIN GUI
--==================================================

local GUI = Instance.new("ScreenGui")
GUI.Name = "NexusChat"
GUI.ResetOnSpawn = false
GUI.IgnoreGuiInset = true
GUI.Parent = PG

local Main = Instance.new("Frame")
Main.Size = UDim2.fromOffset(470,410)
Main.Position = UDim2.new(.5,-235,.5,-205)
Main.BackgroundColor3 = BG
Main.BorderSizePixel = 0
Main.Active = true
Main.Parent = GUI

Instance.new("UICorner",Main).CornerRadius = UDim.new(0,25)

local Border = Instance.new("UIStroke")
Border.Color = BLUE
Border.Thickness = 2
Border.Transparency = .1
Border.Parent = Main

--==================================================
-- GLOW
--==================================================

local Glow = Instance.new("Frame")
Glow.Size = UDim2.new(1,45,1,45)
Glow.Position = UDim2.fromOffset(-22,-22)
Glow.BackgroundColor3 = BLUE
Glow.BackgroundTransparency = .94
Glow.BorderSizePixel = 0
Glow.ZIndex = -1
Glow.Parent = Main

Instance.new("UICorner",Glow).CornerRadius = UDim.new(0,32)

task.spawn(function()

	while Main.Parent do

		TweenService:Create(
			Glow,
			TweenInfo.new(1.5,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),
			{
				BackgroundColor3 = CYAN,
				BackgroundTransparency = .87
			}
		):Play()

		TweenService:Create(
			Border,
			TweenInfo.new(1.5),
			{Color = CYAN}
		):Play()

		task.wait(1.5)

		TweenService:Create(
			Glow,
			TweenInfo.new(1.5,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),
			{
				BackgroundColor3 = PURPLE,
				BackgroundTransparency = .94
			}
		):Play()

		TweenService:Create(
			Border,
			TweenInfo.new(1.5),
			{Color = PURPLE}
		):Play()

		task.wait(1.5)

	end

end)

--==================================================
-- TOP BAR
--==================================================

local Top = Instance.new("Frame")
Top.Size = UDim2.new(1,0,0,72)
Top.BackgroundColor3 = PANEL
Top.BorderSizePixel = 0
Top.Active = true
Top.Parent = Main

Instance.new("UICorner",Top).CornerRadius = UDim.new(0,25)

local Logo = Instance.new("TextLabel")
Logo.Size = UDim2.fromOffset(54,54)
Logo.Position = UDim2.fromOffset(10,9)
Logo.BackgroundColor3 = BLUE
Logo.Text = "⚡"
Logo.TextSize = 29
Logo.Parent = Top

Instance.new("UICorner",Logo).CornerRadius = UDim.new(0,17)

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1,-190,0,30)
Title.Position = UDim2.fromOffset(76,8)
Title.BackgroundTransparency = 1
Title.Text = "NEXUS CHAT"
Title.TextColor3 = WHITE
Title.TextSize = 21
Title.Font = Enum.Font.GothamBlack
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Top

local Status = Instance.new("TextLabel")
Status.Size = UDim2.new(1,-190,0,20)
Status.Position = UDim2.fromOffset(77,38)
Status.BackgroundTransparency = 1
Status.Text = "● LOCAL VISUAL MODE"
Status.TextColor3 = Color3.fromRGB(80,255,160)
Status.TextSize = 11
Status.Font = Enum.Font.GothamBold
Status.TextXAlignment = Enum.TextXAlignment.Left
Status.Parent = Top

local Min = Instance.new("TextButton")
Min.Size = UDim2.fromOffset(42,42)
Min.Position = UDim2.new(1,-100,0,15)
Min.BackgroundColor3 = PANEL2
Min.Text = "—"
Min.TextColor3 = WHITE
Min.TextSize = 20
Min.Font = Enum.Font.GothamBold
Min.Parent = Top

Instance.new("UICorner",Min).CornerRadius = UDim.new(0,13)

local Close = Instance.new("TextButton")
Close.Size = UDim2.fromOffset(42,42)
Close.Position = UDim2.new(1,-52,0,15)
Close.BackgroundColor3 = Color3.fromRGB(55,25,40)
Close.Text = "×"
Close.TextColor3 = Color3.fromRGB(255,110,145)
Close.TextSize = 25
Close.Font = Enum.Font.GothamBold
Close.Parent = Top

Instance.new("UICorner",Close).CornerRadius = UDim.new(0,13)

--==================================================
-- PLAYER SELECTOR
--==================================================

local PlayerArea = Instance.new("Frame")
PlayerArea.Size = UDim2.new(1,-30,0,58)
PlayerArea.Position = UDim2.fromOffset(15,87)
PlayerArea.BackgroundColor3 = PANEL
PlayerArea.BorderSizePixel = 0
PlayerArea.Parent = Main

Instance.new("UICorner",PlayerArea).CornerRadius = UDim.new(0,16)

local Avatar = Instance.new("ImageLabel")
Avatar.Size = UDim2.fromOffset(46,46)
Avatar.Position = UDim2.fromOffset(6,6)
Avatar.BackgroundColor3 = PANEL2
Avatar.Parent = PlayerArea

Instance.new("UICorner",Avatar).CornerRadius = UDim.new(0,13)

local PlayerButton = Instance.new("TextButton")
PlayerButton.Size = UDim2.new(1,-65,1,0)
PlayerButton.Position = UDim2.fromOffset(62,0)
PlayerButton.BackgroundTransparency = 1
PlayerButton.Text = "👤  Select a player..."
PlayerButton.TextColor3 = GRAY
PlayerButton.TextSize = 14
PlayerButton.Font = Enum.Font.Gotham
PlayerButton.TextXAlignment = Enum.TextXAlignment.Left
PlayerButton.Parent = PlayerArea

--==================================================
-- PLAYER DROPDOWN
--==================================================

local Dropdown = Instance.new("ScrollingFrame")
Dropdown.Size = UDim2.new(1,-30,0,145)
Dropdown.Position = UDim2.fromOffset(15,150)
Dropdown.BackgroundColor3 = PANEL2
Dropdown.BorderSizePixel = 0
Dropdown.ScrollBarThickness = 4
Dropdown.Visible = false
Dropdown.ZIndex = 20
Dropdown.Parent = Main

Instance.new("UICorner",Dropdown).CornerRadius = UDim.new(0,15)

local Layout = Instance.new("UIListLayout")
Layout.Padding = UDim.new(0,5)
Layout.Parent = Dropdown

local Padding = Instance.new("UIPadding")
Padding.PaddingTop = UDim.new(0,7)
Padding.PaddingLeft = UDim.new(0,7)
Padding.PaddingRight = UDim.new(0,7)
Padding.Parent = Dropdown

--==================================================
-- MESSAGE BOX
--==================================================

local MessageBox = Instance.new("TextBox")
MessageBox.Size = UDim2.new(1,-30,0,55)
MessageBox.Position = UDim2.fromOffset(15,155)
MessageBox.BackgroundColor3 = PANEL
MessageBox.TextColor3 = WHITE
MessageBox.PlaceholderColor3 = GRAY
MessageBox.PlaceholderText = "✦  Type a message..."
MessageBox.Text = ""
MessageBox.TextSize = 14
MessageBox.Font = Enum.Font.Gotham
MessageBox.ClearTextOnFocus = false
MessageBox.TextXAlignment = Enum.TextXAlignment.Left
MessageBox.Parent = Main

Instance.new("UICorner",MessageBox).CornerRadius = UDim.new(0,16)

--==================================================
-- PREVIEW
--==================================================

local PreviewTitle = Instance.new("TextLabel")
PreviewTitle.Size = UDim2.new(1,-30,0,20)
PreviewTitle.Position = UDim2.fromOffset(15,220)
PreviewTitle.BackgroundTransparency = 1
PreviewTitle.Text = "LIVE PREVIEW"
PreviewTitle.TextColor3 = BLUE
PreviewTitle.TextSize = 10
PreviewTitle.Font = Enum.Font.GothamBold
PreviewTitle.TextXAlignment = Enum.TextXAlignment.Left
PreviewTitle.Parent = Main

local Preview = Instance.new("TextLabel")
Preview.Size = UDim2.new(1,-30,0,38)
Preview.Position = UDim2.fromOffset(15,240)
Preview.BackgroundColor3 = PANEL
Preview.Text = "   Player: ..."
Preview.TextColor3 = WHITE
Preview.TextSize = 13
Preview.Font = Enum.Font.Gotham
Preview.TextXAlignment = Enum.TextXAlignment.Left
Preview.TextTruncate = Enum.TextTruncate.AtEnd
Preview.Parent = Main

Instance.new("UICorner",Preview).CornerRadius = UDim.new(0,12)

--==================================================
-- SEND BUTTON
--==================================================

local Send = Instance.new("TextButton")
Send.Size = UDim2.new(1,-30,0,55)
Send.Position = UDim2.fromOffset(15,290)
Send.BackgroundColor3 = BLUE
Send.Text = "⚡  SEND TO CHAT + BUBBLE"
Send.TextColor3 = WHITE
Send.TextSize = 14
Send.Font = Enum.Font.GothamBold
Send.Parent = Main

Instance.new("UICorner",Send).CornerRadius = UDim.new(0,15)

--==================================================
-- SELECTED PLAYER
--==================================================

local SelectedPlayer = nil

local function UpdateAvatar(player)

	if not player then
		Avatar.Image = ""
		return
	end

	local ok,url = pcall(function()

		return Players:GetUserThumbnailAsync(
			player.UserId,
			Enum.ThumbnailType.HeadShot,
			Enum.ThumbnailSize.Size100x100
		)

	end)

	if ok then
		Avatar.Image = url
	end

end

local function UpdatePreview()

	local name = SelectedPlayer and SelectedPlayer.DisplayName or "You"
	local msg = MessageBox.Text

	if msg == "" then
		msg = "..."
	end

	Preview.Text = "   " .. name .. ": " .. msg

end

MessageBox:GetPropertyChangedSignal("Text"):Connect(UpdatePreview)

--==================================================
-- PLAYER LIST
--==================================================

local function RefreshPlayers()

	for _,child in ipairs(Dropdown:GetChildren()) do
		if child:IsA("TextButton") then
			child:Destroy()
		end
	end

	for _,player in ipairs(Players:GetPlayers()) do

		local Button = Instance.new("TextButton")
		Button.Size = UDim2.new(1,0,0,38)
		Button.BackgroundColor3 = PANEL
		Button.Text = "  " .. player.DisplayName .. "  @" .. player.Name
		Button.TextColor3 = WHITE
		Button.TextSize = 12
		Button.Font = Enum.Font.Gotham
		Button.TextXAlignment = Enum.TextXAlignment.Left
		Button.ZIndex = 21
		Button.Parent = Dropdown

		Instance.new("UICorner",Button).CornerRadius = UDim.new(0,10)

		Button.Activated:Connect(function()

			SelectedPlayer = player

			PlayerButton.Text =
				"👤  " ..
				player.DisplayName

			PlayerButton.TextColor3 = WHITE

			UpdateAvatar(player)
			UpdatePreview()

			Dropdown.Visible = false

		end)

	end

	Dropdown.CanvasSize =
		UDim2.fromOffset(0,Layout.AbsoluteContentSize.Y + 15)

end

Players.PlayerAdded:Connect(RefreshPlayers)
Players.PlayerRemoving:Connect(function(player)

	if SelectedPlayer == player then
		SelectedPlayer = nil
		PlayerButton.Text = "👤  Select a player..."
		PlayerButton.TextColor3 = GRAY
		Avatar.Image = ""
		UpdatePreview()
	end

	RefreshPlayers()

end)

PlayerButton.Activated:Connect(function()

	RefreshPlayers()

	Dropdown.Visible = not Dropdown.Visible

end)

--==================================================
-- SHOW MESSAGE
--==================================================

local function ShowMessage(target,message)

	if not target or message == "" then
		return
	end

	-- Chat window
	local channels = TextChatService:FindFirstChild("TextChannels")

	if channels then

		local general = channels:FindFirstChild("RBXGeneral")

		if general then

			general:DisplaySystemMessage(
				"<font color='#FFFFFF'>" ..
				target.DisplayName ..
				": " ..
				message ..
				"</font>"
			)

		end

	end

	-- Bubble
	local character = target.Character

	if character then

		local head = character:FindFirstChild("Head")

		if head then
			TextChatService:DisplayBubble(head,message)
		end

	end

end

Send.Activated:Connect(function()

	-- Blank player = yourself
	local target = SelectedPlayer or LP
	local message = MessageBox.Text

	if message == "" then

		Send.Text = "⚠  TYPE A MESSAGE"

		task.wait(.8)

		Send.Text = "⚡  SEND TO CHAT + BUBBLE"

		return
	end

	ShowMessage(target,message)

	MessageBox.Text = ""

	Send.Text = "✓  SENT"

	TweenService:Create(
		Send,
		TweenInfo.new(.12),
		{Size = UDim2.new(1,-45,0,48)}
	):Play()

	task.wait(.15)

	TweenService:Create(
		Send,
		TweenInfo.new(.12),
		{Size = UDim2.new(1,-30,0,55)}
	):Play()

	task.wait(.5)

	Send.Text = "⚡  SEND TO CHAT + BUBBLE"

end)

--==================================================
-- MINIMIZE
--==================================================

local minimized = false

Min.Activated:Connect(function()

	minimized = not minimized

	for _,obj in ipairs(Main:GetChildren()) do

		if obj ~= Top and obj ~= Glow then
			obj.Visible = not minimized
		end

	end

	Main.Size = minimized
		and UDim2.fromOffset(470,72)
		or UDim2.fromOffset(470,410)

	Min.Text = minimized and "+" or "—"

end)

--==================================================
-- CLOSE / REOPEN
--==================================================

local Reopen = Instance.new("TextButton")
Reopen.Size = UDim2.fromOffset(68,68)
Reopen.Position = UDim2.fromOffset(20,180)
Reopen.BackgroundColor3 = BG
Reopen.Text = "⚡"
Reopen.TextSize = 30
Reopen.Visible = false
Reopen.Parent = GUI

Instance.new("UICorner",Reopen).CornerRadius = UDim.new(1,0)

local ReopenStroke = Instance.new("UIStroke")
ReopenStroke.Color = BLUE
ReopenStroke.Thickness = 2
ReopenStroke.Parent = Reopen

Close.Activated:Connect(function()

	Main.Visible = false
	Reopen.Visible = true

end)

Reopen.Activated:Connect(function()

	Main.Visible = true
	Reopen.Visible = false

end)

--==================================================
-- DRAGGING — MOBILE + PC
--==================================================

local dragging = false
local dragStart
local startPos

Top.InputBegan:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = true
		dragStart = input.Position
		startPos = Main.Position

	end

end)

UserInputService.InputChanged:Connect(function(input)

	if not dragging then
		return
	end

	if input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch then

		local delta = input.Position - dragStart

		Main.Position = UDim2.new(
			startPos.X.Scale,
			startPos.X.Offset + delta.X,
			startPos.Y.Scale,
			startPos.Y.Offset + delta.Y
		)

	end

end)

UserInputService.InputEnded:Connect(function(input)

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = false

	end

end)

--==================================================
-- START
--==================================================

RefreshPlayers()
UpdatePreview()

Features & Information

Wip

Community Comments (4)

kgbcatkgbcatOct 7, 2026

holy **** bro. god power right here.

Replying to @kgbcat
kgbcatkgbcatOct 7, 2026

im an idiot who cant read

324324324324Oct 7, 2026

Is it suppose to only be client side

bro this is the most realest shi ive ever seen wowie best script best lie of the century

More Scripts for Universal Scripts