// ==UserScript==
// @name deads predictor provided by chxrry.edits
// @namespace http://tampermonkey.net/
// @version 2.0
// @description deads predictor, cracked by chxrry.edits
// @author https://discord.gg/aqT9Pama
// @match https://bloxflip.com/*
// @connect *
// @grant GM_setValue
// @grant GM_getValue
// @grant none
// @icon
https://cdn.discordapp.com/attachments/1180514537284325427/1181059281462771813/
static.png
// ==/UserScript==
(function() {
'use strict';
function _0x4afd1a() {
alert('Logged in deads predictor');
let autoMinesActive = false; // Variable to track if Auto Mines is active
let isDragging = false;
let offsetX, offsetY;
// Keybinding variables
let bombminesKey = 'b';
let minesKey = 'm';
function createGUI() {
const guiHTML = `
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://fonts.googleapis.com/css2?
family=Poppins:wght@300;400;500;600;700;800;900&display=swap';
document.head.appendChild(link);
<div id="bloxflipESP" style="position: fixed; top: 50%; left: 50%; transform:
translate(-50%, -50%); background-color: #111; padding: 20px; z-index: 999; color:
#fff; width: 600px; height: 600px; border-radius: 20px; cursor: move; font-size:
16px; box-shadow: -4px 0 20px 2px rgba(212, 89, 255, 0.9), 0-4px 20px 2px rgba(212,
89, 255, 0.9), 4px 0 20px 2px rgba(212, 89, 255, 0.9);">
deads
<h2 class="glow" style="margin-bottom: 7px; text-shadow: 0 0 10px #fff; text-
align: center; font-family: 'Poppins', sans-serif;"> Predictor - </h2>
<button class="predictButton glow" id="bombminesButton" style="width: 280px;
height: 40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-
serif; display: block; margin: 10px auto; border-radius: 10px;">Bomb</button>
<button class="predictButton glow" id="minesButton" style="width: 280px;
height: 40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-
serif; display: block; margin: 5px auto; border-radius: 10px;">Safe</button>
<button class="predictButton glow" id="autoMinesButton" style="width: 280px;
height: 40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-
serif; display: block; margin: 5px auto; border-radius: 10px;">Auto Mines</button>
<link rel="stylesheet" type="text/css" href="styles.css">
<div id="bloxflipESP" class="draggable">
<button class="settingsButton glow" id="settingsButton" style="width: 280px;
height: 40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-
serif; display: block; margin: 5px auto; border-radius: 10px;">Settings</button>
<button class="unriggerButton glow" id="unriggerButton" style="width: 280px;
height: 40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-
serif; display: block; margin: 5px auto; border-radius: 10px;">Unrigger</button>
<button class="Towers glow" id="Towers" style="width: 280px; height: 40px;
background-color: #000; color: #fff; font-family: 'Poppins', sans-serif; display:
block; margin: 4px auto; border-radius: 10px;">Towers</button>
<span id="colorText" style="display: block; margin-top: 10px; text-align:
center; font-family: 'Poppins', sans-serif;"></span>
<button class="slideButton glow" id="slideButton" style="width: 280px; height:
40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-serif;
display: block; margin: 4px auto; border-radius: 10px;">Slide</button>
<button class="crashButton glow" id="crashButton" style="width: 280px; height:
40px; background-color: #000; color: #fff; font-family: 'Poppins', sans-serif;
display: block; margin: 4px auto; border-radius: 10px;">Crash</button>
<button id="settingsButton" class="glow" style="border-radius: 50%; background-
color: #000; color: #fff; display: block; margin: 0 auto; font-family: 'Poppins',
sans-serif;">âš™</button>
<div style="text-align: center; margin-top: 20px;">
<label for="borderColorInput" style="color: #fff;">Border Color:</label>
<input type="color" id="borderColorInput">
<button class="glow" id="changeBorderColorButton" style="background-color:
#fff; color: #111; border-radius: 50%; font-family: 'Poppins',
sans-serif;">🟦</button>
</div>
</div>
`;
const styleCSS = `
.circle-button {
border-radius: 50%;
width: 30px; /* Adjust the width to your preference */
height: 30px; /* Adjust the height to your preference */
display: flex;
justify-content: center;
align-items: center;
background-color: #000;
color: #fff;
border: none;
cursor: pointer;
font-size: 16px;
`;
document.body.insertAdjacentHTML('beforeend', guiHTML);
// Add the style element to the head of the document
const styleElement = document.createElement('style');
styleElement.textContent = styleCSS;
document.head.appendChild(styleElement);
const guiElement = document.getElementById('bloxflipESP');
document.getElementById('minesButton').addEventListener('click', function() {
displayGif();
resetMines(); // Reset previous outlines
predictMines(3, "#aa00f2");
});
const colorText = document.getElementById('colorText');
const slideButton = document.getElementById('slideButton');
slideButton.addEventListener('click', function() {
displayGif();
fetch('https://api.bloxflip.com/games/roulette')
.then(response => response.json())
.then(data => {
const rouletteHistory = data.history;
const colorCounts = {
red: 11,
purple: 10,
yellow: 3
};
// Count occurrences of each color in the history
rouletteHistory.forEach(game => {
const color = game.winningColor.toLowerCase();
if (colorCounts.hasOwnProperty(color)) {
colorCounts[color]++;
}
});
// Find the color with the maximum count
const maxColor = Object.keys(colorCounts).reduce((a, b) =>
colorCounts[a] > colorCounts[b] ? a : b);
const maxChance = (colorCounts[maxColor] / rouletteHistory.length) *
100;
colorText.textContent = `${maxColor.charAt(0).toUpperCase() +
maxColor.slice(1)} Past games Prediction: ${maxChance.toFixed(2)}%`;
})
.catch(error => {
console.error('API request failed: ', error);
colorText.textContent = 'Error fetching prediction';
});
});
const crashButton = document.getElementById('crashButton');
crashButton.addEventListener('click', function() {
displayGif();
fetch("https://api.bloxflip.com/games/crash")
.then(response => response.json())
.then(data => {
const previousGame = data.history[0].crashPoint;
const av2 = (data.history[0].crashPoint + data.history[1].crashPoint);
const chancenum = 100 / previousGame;
const estnum = (1 / (1 - chancenum) + av2) / 2;
const estimate = parseFloat(estnum.toFixed(2));
const chance = parseFloat(chancenum.toFixed(2));
const crashPointText = document.getElementById('crashPointText');
const estimateText = document.getElementById('estimateText');
colorText.textContent = `Crash Point: ${previousGame}`;
colorText.textContent = `Estimated: ${estimate}, Chance: ${chance}`;
crashPointText.textContent = `Crash Point: ${previousGame}`;
estimateText.textContent = `Estimated Safe: ${estimate}, Chance: $
{chance}`;
})
.catch(error => {
console.error('API request failed: ', error);
const crashPointText = document.getElementById('crashPointText');
const estimateText = document.getElementById('estimateText');
crashPointText.textContent = 'Error ';
estimateText.textContent = '';
});
});
document.getElementById('Towers').addEventListener('click', function() {
alert('towers broken rn'); // Check if this log is printed in the console
}
);
document.getElementById('bombminesButton').addEventListener('click', function() {
displayGif();
resetMines();
predictMines(15, "#FF0000"); // Predict 3 green squares
predictMines(5, "#0000000"); // Predict 3 green squares
});
document.addEventListener('DOMContentLoaded', function() {
// Find the Towers button by its class name and change its background color
const towersButton =
document.querySelector('.button_button__eJwei.towers_towersGameButton__Fm2im');
if (towersButton) {
towersButton.style.backgroundColor = '#ff00ff'; // Change the color to
purple (#ff00ff)
});
document.getElementById('changeBorderColorButton').addEventListener('click',
function() {
const newBorderColor = document.getElementById('borderColorInput').value;
guiElement.style.borderColor = newBorderColor;
const glowElements = document.querySelectorAll('.glow');
glowElements.forEach(element => {
element.style.textShadow = `0 0 10px ${newBorderColor}`;
});
const boxShadowValue = `0 0 20px 10px ${newBorderColor}, 0 0 30px 15px $
{newBorderColor}, 0 0 40px 20px ${newBorderColor}`;
guiElement.style.boxShadow = boxShadowValue;
});
document.getElementById('autoMinesButton').addEventListener('click',
function() {
autoMinesActive = !autoMinesActive; // Toggle Auto Mines status
this.textContent = autoMinesActive ? "Stop Auto Mines" : "Auto Mines";
if (autoMinesActive) {
startAutoMines();
});
document.getElementById('settingsButton').addEventListener('click',
function() {
openSettings();
});
document.getElementById('unriggerButton').addEventListener('click',
function() {
const serverHash = prompt("Please enter your server hash:");
if (serverHash !== null && serverHash !== "") {
const randomNumber = Math.floor(Math.random() * 100) + 1;
alert(`Succesfully unrigged!`);
});
guiElement.addEventListener('mousedown', startDrag);
document.addEventListener('mousemove', drag);
document.addEventListener('mouseup', endDrag);
document.getElementById('minimizeButton').addEventListener('click',
function() {
guiElement.style.display = 'none';
});
document.getElementById('toggleModeButton').addEventListener('click',
function() {
toggleMode();
});
function displayGif() {
const gifURL =
'https://imgs.search.brave.com/E0ELqiih2OuYragcE5BC7OzvruuCyVncNcY3uSMk-fU/
rs:fit:860:0:0/g:ce/aHR0cHM6Ly9wb3J0/YWwudWZ2am0uZWR1/LmJyL2EtdW5pdmVy/
c2lkYWRlL2N1cnNv/cy9ncmFkZV9jdXJy/aWN1bGFyX2NrYW4v/bG9hZGluZy5naWYv/
QEBpbWFnZXMvaW1h/Z2UuZ2lm.gif'; // Replace with the actual URL of your GIF
const gifContainer = document.createElement('div');
gifContainer.style.textAlign = 'center'; // Align to the right
const gifElement = document.createElement('img');
gifElement.src = gifURL;
gifElement.style.width = '10%'; // Adjust the width as needed
gifElement.style.marginBottom = '10px'; // Add some margin below the GIF
gifContainer.appendChild(gifElement);
const projectLHeader = document.querySelector('h2.glow');
projectLHeader.insertAdjacentElement('afterend', gifContainer);
setTimeout(() => {
gifElement.remove();
}, 500);
}
function resetMines() {
const tiles = document.querySelectorAll('.mines_minesGameItem__S2ytQ');
tiles.forEach(tile => {
tile.style.backgroundColor = '';
tile.style.boxShadow = '';
});
if (predictionTextElement) {
predictionTextElement.remove();
}
}
let predictionTextElement;
function predictMines(maxSpots, color) {
// Generate random predictions (maxSpots spots)
const predictionResult = [];
for (let i = 0; i < maxSpots; i++) {
predictionResult.push({
index: Math.floor(Math.random() * 25), // Assuming there are 25
mine spots
isGreen: color === "#aa00f2", // Check if the color is green
isRed: color === "#FF0000"
});
predictionResult.forEach(prediction => {
let mine = document.querySelector(`div.mines_minesGameContainer__Ih15s
> button:nth-child(${prediction.index + 1})`);
if (mine) {
if (prediction.isRed) {
mine.style.boxShadow = '0 0 10px #FF0000, 0 0 10px #FF0000, 0 0
10px #FF0000';
if (prediction.isGreen) {
mine.style.boxShadow = '0 0 10px #00FFD4, 0 0 10px #00FFD4, 0 0
10px #00FFD4';
})
function startAutoMines1() {
const minesButton = document.getElementById('minesButton');
// Trigger the click event on the minesButton to generate predictions
// minesButton.click();
// bombminesButton.click();
// Wait for a short time (adjust the timeout value if needed) to ensure
predictions are generated
setTimeout(() => {
const minesToClick =
document.querySelectorAll('.mines_minesGameItem__S2ytQ:not([style*="box-
shadow"])');
minesToClick.forEach(mine => {
mine.click();
});
// Disable autoMines feature after clicking the spots
autoMinesActive = false;
// Update the button text to reflect the state change
const autoMinesButton = document.getElementById('autoMinesButton');
autoMinesButton.textContent = "Auto Mines";
}, 500); // 1000 milliseconds (1 second) timeout to wait for predictions,
adjust if needed
}
function startAutoMines() {
const minesButton = document.getElementById('minesButton');
// Trigger the click event on the minesButton to generate predictions
//minesButton.click();
//bombminesButton.click();
// Wait for a short time (adjust the timeout value if needed) to ensure
predictions are generated
setTimeout(() => {
//const predictedSpots =
document.querySelectorAll('button[style*="none"]');
const predictedSpots = document.querySelectorAll('button[style*="box-
shadow"]');
predictedSpots.forEach(spot => {
spot.click();
});
// Disable autoMines feature after clicking the spots
autoMinesActive = false;
// Update the button text to reflect the state change
const autoMinesButton = document.getElementById('autoMinesButton');
autoMinesButton.textContent = "Auto Mines";
}, 500); // 1000 milliseconds (1 second) timeout to wait for predictions,
adjust if needed
function startDrag(e) {
isDragging = true;
const guiElement = document.getElementById('bloxflipESP');
// Calculate the offset between mouse pointer and GUI element
const rect = guiElement.getBoundingClientRect();
offsetX = e.clientX - rect.left;
offsetY = e.clientY - rect.top;
// Set GUI element position to absolute, adjust z-index, and prevent cursor
change
guiElement.style.position = 'absolute';
guiElement.style.zIndex = '9999';
guiElement.style.userSelect = 'none'; // Prevent cursor change
// Attach event listeners for mousemove and mouseup events
document.addEventListener('mousemove', drag);
document.addEventListener('mouseup', stopDrag);
}
//function drag(e) {
// if (isDragging) {
// // Update GUI position based on mouse coordinates and initial offset
// const guiElement = document.getElementById('bloxflipESP');
// guiElement.style.left = e.clientX - offsetX + 'px';
// guiElement.style.top = e.clientY - offsetY + 'px';
// }
//}
function drag(e) {
if (isDragging) {
// Update GUI position based on mouse coordinates and initial offset
const guiElement = document.getElementById('bloxflipESP');
guiElement.style.left = e.clientX - offsetX + 'px';
guiElement.style.top = e.clientY - offsetY + 'px';
guiElement.style.transform = `translate(-0%, -0%)`;
}
}
function stopDrag() {
isDragging = false;
// Remove event listeners for mousemove and mouseup events
document.removeEventListener('mousemove', drag);
document.removeEventListener('mouseup', stopDrag);
}
function openSettings() {
const settingsHTML = `
<div id="settingsModal" style="position: fixed; top: 50%; left: 50%;
transform: translate(-50%, -50%); background-color: #333; padding: 20px; border:
2px solid #00A36C; z-index: 1001; color: #fff; border-radius: 15px;">
<h2 style="color: #00A36C;">Settings</h2>
<label for="autoMinesCheckbox" style="margin-bottom: 10px; display:
block;">
<input type="checkbox" id="autoMinesCheckbox" ${autoMinesActive
? 'checked' : ''}>
Auto Mines
</label>
<div style="margin-bottom: 10px;">
<button id="toggleLightMode" style="background-color: #00A36C;
border: none; color: #fff; padding: 10px 20px; cursor: pointer; font-size: 16px;
display: block; margin-bottom: 5px;">Light Mode</button>
<button id="toggleDarkMode" style="background-color: #222;
border: none; color: #fff; padding: 10px 20px; cursor: pointer; font-size: 16px;
display: block;">Dark Mode</button>
</div>
<div style="margin-bottom: 10px;">
<h3 style="color: #00A36C;">Keybindings</h3>
<div>
<label for="bombminesKey">Bomb Mines:</label>
<input type="text" id="bombminesKey" value="$
{bombminesKey}">
</div>
<div>
<label for="minesKey">Mines:</label>
<input type="text" id="minesKey" value="${minesKey}">
</div>
</div>
<button id="closeSettingsButton" style="background-color: #00A36C;
border: none; color: #fff; padding: 10px 20px; cursor: pointer; font-size:
16px;">Close</button>
</div>
`;
document.body.insertAdjacentHTML('beforeend', settingsHTML);
const autoMinesCheckbox = document.getElementById('autoMinesCheckbox');
autoMinesCheckbox.addEventListener('change', function() {
autoMinesActive = this.checked;
});
document.getElementById('toggleLightMode').addEventListener('click',
function() {
toggleMode('light');
});
document.getElementById('toggleDarkMode').addEventListener('click',
function() {
toggleMode('dark');
});
document.getElementById('closeSettingsButton').addEventListener('click',
function() {
document.getElementById('settingsModal').remove();
});
function toggleMode() {
const guiElement = document.getElementById('bloxflipESP');
guiElement.classList.toggle('light-mode');
guiElement.classList.toggle('dark-mode');
function verifyUID() {
const loginHTML = `
<div id="loginContainer" style="position: fixed; top: 0; left: 0; width:
100%; height: 100%; background-color: rgba(0, 0, 0, 0); display: flex; justify-
content: center; align-items: center; z-index: 1002;">
<div class="login-form" style="background-color: #000; border-radius:
20px; padding: 20px; box-shadow: 0 0 40px 10px rgba(0, 0, 0, 0); text-align:
center;">
<h2 class="login-title glow" style="font-size: 36px; color:
#ffffff; margin-bottom: 20px; text-shadow: 0 0 20px #ffffff;">Login</h2>
<input type="text" class="login-input glow" id="uid-input"
placeholder="Enter your key from b" style="width: 100%; padding: 15px; margin: 10px
0; border: none; border-radius: 15px; background-color: #333; color: #fff; font-
size: 20px; outline: none; box-shadow: 0 0 20px 10px rgba(0, 0, 0, 0);">
<button type="submit" class="login-button glow" id="login-button"
style="width: 100%; padding: 15px; border: none; border-radius: 15px; background-
color: #ffffff; color: #000; font-size: 24px; cursor: pointer; transition:
background-color 0.3s; text-shadow: 0 0 20px #800080;">Login:)</button>
</div>
</div>
`;
document.body.insertAdjacentHTML('beforeend', loginHTML);
const loginButton = document.getElementById('login-button');
loginButton.addEventListener('click', function() {
const uid = document.getElementById('uid-input').value;
const verifiedUIDs = ['1', 'Key For LunaR','gay', ];
if (verifiedUIDs.includes(uid)) {
document.getElementById('loginContainer').remove();
createGUI();
} else {
alert('Invalid access. Please verify your UID.');
});
// Call the function to verify UID and create GUI
verifyUID();
})();