--[[ The Mimic - Universal Chat Mimic Script Name: The Mimic Features: Compact UI, Partial Name Matching, 0.4s Human Delay --]] local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local TargetPlayer = nil local IsMimicking = false local Connection = nil ------------------------------------------------------------------------ -- CHAT SENDER HELPER (Handles both Legacy & TextChatService) ------------------------------------------------------------------------ local function SendChatMessage(msg) if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local generalChannel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if generalChannel then generalChannel:SendAsync(msg) end else local defaultChatSystemChatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if defaultChatSystemChatEvents then local sayMessageRequest = defaultChatSystemChatEvents:FindFirstChild("SayMessageRequest") if sayMessageRequest then sayMessageRequest:FireServer(msg, "All") end end end end ------------------------------------------------------------------------ -- UI CREATION (Compact Size) ------------------------------------------------------------------------ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "TheMimic_UI" ScreenGui.ResetOnSpawn = false if syn and syn.protect_gui then syn.protect_gui(ScreenGui) ScreenGui.Parent = CoreGui else ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 190, 0, 115) -- Made significantly smaller & tighter MainFrame.Position = UDim2.new(0.05, 0, 0.4, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 18) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 6) Corner.Parent = MainFrame local Stroke = Instance.new("UIStroke") Stroke.Thickness = 1.2 Stroke.Color = Color3.fromRGB(255, 255, 255) Stroke.Parent = MainFrame -- Title Header local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 24) Title.BackgroundTransparency = 1 Title.Text = "THE MIMIC" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.GothamBold Title.TextSize = 12 Title.Parent = MainFrame -- TextBox for Username Input local NameInput = Instance.new("TextBox") NameInput.Size = UDim2.new(0.88, 0, 0, 26) NameInput.Position = UDim2.new(0.06, 0, 0.3, 0) NameInput.BackgroundColor3 = Color3.fromRGB(30, 30, 30) NameInput.PlaceholderText = "Player Name..." NameInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 120) NameInput.Text = "" NameInput.TextColor3 = Color3.fromRGB(255, 255, 255) NameInput.Font = Enum.Font.Gotham NameInput.TextSize = 11 NameInput.ClearTextOnFocus = false NameInput.Parent = MainFrame local InputCorner = Instance.new("UICorner") InputCorner.CornerRadius = UDim.new(0, 4) InputCorner.Parent = NameInput -- Toggle Action Button local ToggleBtn = Instance.new("TextButton") ToggleBtn.Size = UDim2.new(0.88, 0, 0, 30) ToggleBtn.Position = UDim2.new(0.06, 0, 0.63, 0) ToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) ToggleBtn.Text = "START MIMIC" ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleBtn.Font = Enum.Font.GothamBold ToggleBtn.TextSize = 11 ToggleBtn.Parent = MainFrame local BtnCorner = Instance.new("UICorner") BtnCorner.CornerRadius = UDim.new(0, 4) BtnCorner.Parent = ToggleBtn ------------------------------------------------------------------------ -- PLAYER MATCHING LOGIC ------------------------------------------------------------------------ local function GetPlayerByPartialName(str) if str == "" then return nil end local query = string.lower(str) for _, plr in pairs(Players:GetPlayers()) do if plr ~= LocalPlayer then if string.find(string.lower(plr.Name), query) or string.find(string.lower(plr.DisplayName), query) then return plr end end end return nil end ------------------------------------------------------------------------ -- MIMIC ENGINE (0.4s Delay) ------------------------------------------------------------------------ local function StartMimicking(plr) TargetPlayer = plr Connection = TargetPlayer.Chatted:Connect(function(msg) if IsMimicking then task.wait(0.4) -- Adjusted to 0.4 seconds SendChatMessage(msg) end end) end local function StopMimicking() if Connection then Connection:Disconnect() Connection = nil end TargetPlayer = nil end ToggleBtn.MouseButton1Click:Connect(function() IsMimicking = not IsMimicking if IsMimicking then local foundPlayer = GetPlayerByPartialName(NameInput.Text) if foundPlayer then StartMimicking(foundPlayer) ToggleBtn.Text = "MIMICKING..." ToggleBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) else IsMimicking = false ToggleBtn.Text = "NOT FOUND!" task.wait(1) ToggleBtn.Text = "START MIMIC" end else StopMimicking() ToggleBtn.Text = "START MIMIC" ToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end end)