--!strict -- KukGug Admin Chat -- Game ID: 122914466528201 -- FireServer to ReplicatedStorage.AdminMessageEvent local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local TextService = game:GetService("TextService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- ========================================== -- CONFIGURATION -- ========================================== local CONFIG = { TargetGameId = "122914466528201", Colors = { Background = Color3.fromRGB(30, 30, 40), Header = Color3.fromRGB(40, 40, 55), Accent = Color3.fromRGB(88, 101, 242), Button = Color3.fromRGB(88, 101, 242), ButtonHover = Color3.fromRGB(108, 121, 262), TextBox = Color3.fromRGB(45, 45, 60), Text = Color3.fromRGB(255, 255, 255), Placeholder = Color3.fromRGB(150, 150, 170), Error = Color3.fromRGB(237, 66, 69), Success = Color3.fromRGB(59, 165, 93), }, AnimSpeed = 0.2, MaxChars = 200, } -- ========================================== -- GAME CHECKER -- ========================================== local function checkGame(): boolean local currentGameId = tostring(game.PlaceId) return currentGameId == CONFIG.TargetGameId end local function showNotification(message: string, isError: boolean): () -- Notification GUI local notifGui = Instance.new("ScreenGui") notifGui.Name = "KukGugNotification" notifGui.Parent = PlayerGui local backdrop = Instance.new("Frame") backdrop.Size = UDim2.new(1, 0, 1, 0) backdrop.BackgroundColor3 = Color3.new(0, 0, 0) backdrop.BackgroundTransparency = 0.5 backdrop.Parent = notifGui local card = Instance.new("Frame") card.Size = UDim2.new(0, 300, 0, 120) card.Position = UDim2.new(0.5, -150, 0.5, -60) card.BackgroundColor3 = CONFIG.Colors.Background card.BorderSizePixel = 0 card.Parent = notifGui local cardCorner = Instance.new("UICorner") cardCorner.CornerRadius = UDim.new(0, 16) cardCorner.Parent = card -- Icon local icon = Instance.new("TextLabel") icon.Size = UDim2.new(0, 40, 0, 40) icon.Position = UDim2.new(0.5, 0, 0, 20) icon.AnchorPoint = Vector2.new(0.5, 0) icon.BackgroundTransparency = 1 icon.Text = isError and "⚠️" or "✅" icon.TextSize = 32 icon.Parent = card -- Message local msg = Instance.new("TextLabel") msg.Size = UDim2.new(1, -40, 0, 40) msg.Position = UDim2.new(0.5, 0, 0, 70) msg.AnchorPoint = Vector2.new(0.5, 0) msg.BackgroundTransparency = 1 msg.Text = message msg.TextColor3 = isError and CONFIG.Colors.Error or CONFIG.Colors.Success msg.TextSize = 14 msg.Font = Enum.Font.GothamBold msg.TextWrapped = true msg.Parent = card -- Auto dismiss task.delay(3, function() TweenService:Create(card, TweenInfo.new(0.3), { Size = UDim2.new(0, 280, 0, 110) }):Play() TweenService:Create(backdrop, TweenInfo.new(0.3), { BackgroundTransparency = 1 }):Play() task.wait(0.3) notifGui:Destroy() end) end -- ========================================== -- MAIN GUI -- ========================================== local function createMainGUI(): ScreenGui local gui = Instance.new("ScreenGui") gui.Name = "KukGugAdminChat" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.Parent = PlayerGui -- Main Frame local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.new(0, 320, 0, 200) main.Position = UDim2.new(0.5, -160, 0.5, -100) main.BackgroundColor3 = CONFIG.Colors.Background main.BorderSizePixel = 0 main.Active = true main.ClipsDescendants = true main.Parent = gui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 20) mainCorner.Parent = main -- Shadow local shadow = Instance.new("ImageLabel") shadow.AnchorPoint = Vector2.new(0.5, 0.5) shadow.Position = UDim2.new(0.5, 0, 0.5, 6) shadow.Size = UDim2.new(1, 40, 1, 40) shadow.BackgroundTransparency = 1 shadow.Image = "rbxassetid://6015897843" shadow.ImageColor3 = Color3.new(0, 0, 0) shadow.ImageTransparency = 0.4 shadow.ScaleType = Enum.ScaleType.Slice shadow.SliceCenter = Rect.new(49, 49, 450, 450) shadow.ZIndex = -1 shadow.Parent = main -- Header local header = Instance.new("Frame") header.Name = "Header" header.Size = UDim2.new(1, 0, 0, 50) header.BackgroundColor3 = CONFIG.Colors.Header header.BorderSizePixel = 0 header.Parent = main local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 20) headerCorner.Parent = header local headerFix = Instance.new("Frame") headerFix.Size = UDim2.new(1, 0, 0, 20) headerFix.Position = UDim2.new(0, 0, 1, -20) headerFix.BackgroundColor3 = CONFIG.Colors.Header headerFix.BorderSizePixel = 0 headerFix.Parent = header -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -60, 1, 0) title.Position = UDim2.new(0, 20, 0, 0) title.BackgroundTransparency = 1 title.Text = "KukGug Admin Chat" title.TextColor3 = CONFIG.Colors.Text title.TextSize = 16 title.Font = Enum.Font.GothamBlack title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header -- Close Button local closeBtn = Instance.new("TextButton") closeBtn.Name = "Close" closeBtn.Size = UDim2.new(0, 36, 0, 36) closeBtn.Position = UDim2.new(1, -46, 0.5, 0) closeBtn.AnchorPoint = Vector2.new(0, 0.5) closeBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255) closeBtn.BackgroundTransparency = 0.9 closeBtn.Text = "" closeBtn.AutoButtonColor = false closeBtn.Parent = header local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 10) closeCorner.Parent = closeBtn local closeIcon = Instance.new("TextLabel") closeIcon.Size = UDim2.new(1, 0, 1, 0) closeIcon.BackgroundTransparency = 1 closeIcon.Text = "×" closeIcon.TextColor3 = CONFIG.Colors.Text closeIcon.TextSize = 24 closeIcon.Font = Enum.Font.GothamBold closeIcon.Parent = closeBtn -- Hover effects closeBtn.MouseEnter:Connect(function() TweenService:Create(closeBtn, TweenInfo.new(0.15), { BackgroundTransparency = 0.7 }):Play() end) closeBtn.MouseLeave:Connect(function() TweenService:Create(closeBtn, TweenInfo.new(0.15), { BackgroundTransparency = 0.9 }):Play() end) closeBtn.MouseButton1Click:Connect(function() TweenService:Create(main, TweenInfo.new(0.2), { Size = UDim2.new(0, 0, 0, 0) }):Play() task.wait(0.2) gui:Destroy() end) -- Content local content = Instance.new("Frame") content.Name = "Content" content.Size = UDim2.new(1, -30, 1, -65) content.Position = UDim2.new(0.5, 0, 0, 58) content.AnchorPoint = Vector2.new(0.5, 0) content.BackgroundTransparency = 1 content.Parent = main -- TextBox Container local textBoxContainer = Instance.new("Frame") textBoxContainer.Name = "TextBoxContainer" textBoxContainer.Size = UDim2.new(1, 0, 0, 80) textBoxContainer.BackgroundColor3 = CONFIG.Colors.TextBox textBoxContainer.BorderSizePixel = 0 textBoxContainer.Parent = content local textBoxCorner = Instance.new("UICorner") textBoxCorner.CornerRadius = UDim.new(0, 12) textBoxCorner.Parent = textBoxContainer -- TextBox local textBox = Instance.new("TextBox") textBox.Name = "MessageInput" textBox.Size = UDim2.new(1, -20, 1, -20) textBox.Position = UDim2.new(0.5, 0, 0.5, 0) textBox.AnchorPoint = Vector2.new(0.5, 0.5) textBox.BackgroundTransparency = 1 textBox.Text = "" textBox.PlaceholderText = "Type your admin message here..." textBox.PlaceholderColor3 = CONFIG.Colors.Placeholder textBox.TextColor3 = CONFIG.Colors.Text textBox.TextSize = 14 textBox.Font = Enum.Font.Gotham textBox.TextWrapped = true textBox.TextXAlignment = Enum.TextXAlignment.Left textBox.TextYAlignment = Enum.TextYAlignment.Top textBox.ClearTextOnFocus = false textBox.MultiLine = true textBox.Parent = textBoxContainer -- Character counter local charCounter = Instance.new("TextLabel") charCounter.Name = "CharCounter" charCounter.Size = UDim2.new(0, 50, 0, 16) charCounter.Position = UDim2.new(1, -10, 1, -8) charCounter.AnchorPoint = Vector2.new(1, 1) charCounter.BackgroundTransparency = 1 charCounter.Text = "0/" .. CONFIG.MaxChars charCounter.TextColor3 = CONFIG.Colors.Placeholder charCounter.TextSize = 10 charCounter.Font = Enum.Font.Gotham charCounter.Parent = textBoxContainer -- Update counter textBox:GetPropertyChangedSignal("Text"):Connect(function() local len = #textBox.Text charCounter.Text = len .. "/" .. CONFIG.MaxChars if len > CONFIG.MaxChars then textBox.Text = string.sub(textBox.Text, 1, CONFIG.MaxChars) charCounter.TextColor3 = CONFIG.Colors.Error else charCounter.TextColor3 = len > CONFIG.MaxChars * 0.9 and Color3.fromRGB(255, 200, 100) or CONFIG.Colors.Placeholder end end) -- Send Button local sendBtn = Instance.new("TextButton") sendBtn.Name = "SendButton" sendBtn.Size = UDim2.new(1, 0, 0, 50) sendBtn.Position = UDim2.new(0, 0, 0, 90) sendBtn.BackgroundColor3 = CONFIG.Colors.Button sendBtn.Text = "" sendBtn.AutoButtonColor = false sendBtn.Parent = content local sendCorner = Instance.new("UICorner") sendCorner.CornerRadius = UDim.new(0, 12) sendCorner.Parent = sendBtn -- Button gradient local btnGradient = Instance.new("UIGradient") btnGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), ColorSequenceKeypoint.new(1, Color3.new(0.9, 0.9, 1)) }) btnGradient.Transparency = NumberSequence.new(0.8, 1) btnGradient.Rotation = 90 btnGradient.Parent = sendBtn -- Button text local btnText = Instance.new("TextLabel") btnText.Size = UDim2.new(1, 0, 1, 0) btnText.BackgroundTransparency = 1 btnText.Text = "📤 SEND MESSAGE" btnText.TextColor3 = CONFIG.Colors.Text btnText.TextSize = 15 btnText.Font = Enum.Font.GothamBlack btnText.Parent = sendBtn -- Button icon local btnIcon = Instance.new("TextLabel") btnIcon.Size = UDim2.new(0, 24, 0, 24) btnIcon.Position = UDim2.new(0, 20, 0.5, 0) btnIcon.AnchorPoint = Vector2.new(0, 0.5) btnIcon.BackgroundTransparency = 1 btnIcon.Text = "⚡" btnIcon.TextSize = 18 btnIcon.Parent = sendBtn -- Button effects sendBtn.MouseEnter:Connect(function() TweenService:Create(sendBtn, TweenInfo.new(0.15), { Size = UDim2.new(1, 4, 0, 54), BackgroundColor3 = CONFIG.Colors.ButtonHover }):Play() end) sendBtn.MouseLeave:Connect(function() TweenService:Create(sendBtn, TweenInfo.new(0.15), { Size = UDim2.new(1, 0, 0, 50), BackgroundColor3 = CONFIG.Colors.Button }):Play() end) sendBtn.MouseButton1Down:Connect(function() TweenService:Create(sendBtn, TweenInfo.new(0.1), { Size = UDim2.new(1, -2, 0, 48) }):Play() end) sendBtn.MouseButton1Up:Connect(function() TweenService:Create(sendBtn, TweenInfo.new(0.1), { Size = UDim2.new(1, 4, 0, 54) }):Play() end) -- Send functionality local function sendMessage() local message = textBox.Text if message == "" then -- Shake animation for empty TweenService:Create(textBoxContainer, TweenInfo.new(0.05), { Position = UDim2.new(0.52, 0, 0, 0) }):Play() task.wait(0.05) TweenService:Create(textBoxContainer, TweenInfo.new(0.05), { Position = UDim2.new(0.48, 0, 0, 0) }):Play() task.wait(0.05) TweenService:Create(textBoxContainer, TweenInfo.new(0.05), { Position = UDim2.new(0.5, 0, 0, 0) }):Play() return end -- Fire server local success, err = pcall(function() ReplicatedStorage.AdminMessageEvent:FireServer(message) end) if success then textBox.Text = "" charCounter.Text = "0/" .. CONFIG.MaxChars charCounter.TextColor3 = CONFIG.Colors.Placeholder -- Success flash TweenService:Create(sendBtn, TweenInfo.new(0.1), { BackgroundColor3 = CONFIG.Colors.Success }):Play() btnText.Text = "✅ SENT!" task.wait(0.5) TweenService:Create(sendBtn, TweenInfo.new(0.2), { BackgroundColor3 = CONFIG.Colors.Button }):Play() btnText.Text = "📤 SEND MESSAGE" else -- Error TweenService:Create(sendBtn, TweenInfo.new(0.1), { BackgroundColor3 = CONFIG.Colors.Error }):Play() btnText.Text = "❌ ERROR" task.wait(0.5) TweenService:Create(sendBtn, TweenInfo.new(0.2), { BackgroundColor3 = CONFIG.Colors.Button }):Play() btnText.Text = "📤 SEND MESSAGE" end end sendBtn.MouseButton1Click:Connect(sendMessage) -- Enter key support (PC) textBox.FocusLost:Connect(function(enterPressed) if enterPressed then sendMessage() end end) -- Mobile return key textBox.ReturnPressedFromOnScreenKeyboard:Connect(sendMessage) -- Dragging local dragging = false local dragStart: Vector3? local startPos: UDim2? header.InputBegan:Connect(function(input: InputObject) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position TweenService:Create(main, TweenInfo.new(0.1), { Size = UDim2.new(0, 308, 0, 192) }):Play() input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false TweenService:Create(main, TweenInfo.new(0.1), { Size = UDim2.new(0, 320, 0, 200) }):Play() end end) end end) UserInputService.InputChanged:Connect(function(input: InputObject) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then if dragStart and startPos 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 end) -- Intro animation main.Size = UDim2.new(0, 0, 0, 0) main.Rotation = -3 TweenService:Create(main, TweenInfo.new(0.4, Enum.EasingStyle.Back), { Size = UDim2.new(0, 320, 0, 200), Rotation = 0 }):Play() return gui end -- ========================================== -- INITIALIZATION -- ========================================== local function init() if not checkGame() then showNotification("Wrong game! This script only works on the correct game.", true) return end -- Wait for character if not LocalPlayer.Character then LocalPlayer.CharacterAdded:Wait() end createMainGUI() end init()