local Players = game:GetService("Players") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() -- Screen GUI Setup local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) screenGui.Name = "PetDuplicator" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- Main Frame local frame = Instance.new("Frame", screenGui) frame.Size = UDim2.new(0, 300, 0, 160) frame.Position = UDim2.new(0.5, -150, 0.5, -80) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.Active = true frame.Draggable = true frame.Name = "PetDuplicateFrame" Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) -- Title local title = Instance.new("TextLabel", frame) title.Text = "Pet Duplicate" title.Font = Enum.Font.FredokaOne title.TextSize = 20 title.TextColor3 = Color3.fromRGB(255, 255, 255) title.BackgroundTransparency = 1 title.Size = UDim2.new(1, 0, 0, 30) title.Position = UDim2.new(0, 0, 0, 5) -- Close Button local closeButton = Instance.new("TextButton", frame) closeButton.Text = "X" closeButton.Font = Enum.Font.FredokaOne closeButton.TextSize = 18 closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.BackgroundColor3 = Color3.fromRGB(60, 0, 0) closeButton.Size = UDim2.new(0, 28, 0, 28) closeButton.Position = UDim2.new(1, -34, 0, 6) Instance.new("UICorner", closeButton) closeButton.MouseButton1Click:Connect(function() frame.Visible = false end) -- Equipped Pet Label local petInfo = Instance.new("TextLabel", frame) petInfo.Text = "Equipped Pet: [None]" petInfo.Font = Enum.Font.FredokaOne petInfo.TextSize = 16 petInfo.TextColor3 = Color3.fromRGB(200, 200, 160) petInfo.BackgroundTransparency = 1 petInfo.Position = UDim2.new(0, 12, 0, 40) petInfo.Size = UDim2.new(1, -24, 0, 24) petInfo.TextXAlignment = Enum.TextXAlignment.Left -- Duplicate Pet Button (White Style) local dupeButton = Instance.new("TextButton", frame) dupeButton.Text = "Duplicate Pet" dupeButton.Font = Enum.Font.FredokaOne dupeButton.TextSize = 16 dupeButton.TextColor3 = Color3.fromRGB(40, 40, 40) -- Dark text dupeButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) -- White button dupeButton.Size = UDim2.new(0, 220, 0, 36) dupeButton.Position = UDim2.new(0.5, -110, 0, 76) Instance.new("UICorner", dupeButton) -- Footer Label local footer = Instance.new("TextLabel", frame) footer.Text = "Discord:jheremy.x" footer.Font = Enum.Font.FredokaOne footer.TextSize = 13 footer.TextColor3 = Color3.fromRGB(150, 150, 150) footer.BackgroundTransparency = 1 footer.Size = UDim2.new(1, 0, 0, 20) footer.Position = UDim2.new(0, 0, 1, -20) -- Get equipped pet local function getEquippedPetTool() character = player.Character or player.CharacterAdded:Wait() for _, tool in pairs(character:GetChildren()) do if tool:IsA("Tool") and tool:FindFirstChild("Handle") then return tool end end return nil end -- Update pet label local function updateGUI() local pet = getEquippedPetTool() if pet then petInfo.Text = "Equipped Pet: " .. pet.Name else petInfo.Text = "Equipped Pet: [None]" end end -- Error message popup local function showErrorMessage(text) local errorLabel = Instance.new("TextLabel", screenGui) errorLabel.AnchorPoint = Vector2.new(0.5, 0.5) errorLabel.Position = UDim2.new(0.5, 0, 0.45, 0) errorLabel.Size = UDim2.new(0, 250, 0, 40) errorLabel.BackgroundColor3 = Color3.fromRGB(100, 0, 0) errorLabel.Text = text errorLabel.Font = Enum.Font.FredokaOne errorLabel.TextSize = 16 errorLabel.TextColor3 = Color3.fromRGB(255, 255, 255) errorLabel.ZIndex = 30 Instance.new("UICorner", errorLabel) task.delay(2.5, function() errorLabel:Destroy() end) end -- Instant duplication (no loading) dupeButton.MouseButton1Click:Connect(function() local equipped = getEquippedPetTool() if not equipped then showErrorMessage("No Equipped Pet Detected") return end local clone = equipped:Clone() clone.Name = equipped.Name clone.Parent = player.Backpack dupeButton.Text = "Pet Duplicated!" task.wait(1.5) dupeButton.Text = "Duplicate Pet" end) -- Keep pet name updated task.spawn(function() while true do updateGUI() task.wait(1) end end)